图片由 Google Gemini 2.0 Flash 生成
近日,Google 在 Gemini API 中推出了一款全新的实验性文本嵌入模型 gemini-embedding-exp-03-07
[1]。该模型基于 Gemini 模型训练,继承了 Gemini 对语言和细微语境的深刻理解,适用场景广泛。值得一提的是,这款新模型超越了 Google 此前发布的 text-embedding-004
模型,并在多语言文本嵌入基准测试 (MTEB) 排行榜上名列前茅,同时还带来了更长的输入 token 长度等新特性。
评论
考虑到市场上已有一些开源的嵌入模型,例如 multilingual-e5-large-instruct,尽管在性能上可能略逊于 Gemini 新模型,但在某些场景下,如小文本块处理和对成本敏感的应用中,开源模型可能仍具有竞争力。因此,Gemini 新模型未来的市场接受度,除了其卓越的性能外,最终还将取决于其定价策略和使用限制是否能满足开发者的需求。
全面领先的文本嵌入模型
Google 表示,新模型经过专门训练,具有出色的通用性,在金融、科学、法律、搜索等多个领域表现卓越,无需针对特定任务进行大量微调即可直接使用。
在多语言 MTEB 排行榜上,gemini-embedding-exp-03-07
的平均任务得分达到了 68.32 分,比排名第二的模型高出 5.81 分。MTEB 排行榜对文本嵌入模型在检索、分类等多种任务上的表现进行综合评估,是模型对比的重要参考。
为什么选择文本嵌入?
从构建智能检索增强生成 (RAG) 和推荐系统,到文本分类,大型语言模型 (LLM) 理解文本背后含义的能力至关重要。与关键字匹配系统相比,嵌入技术通常能构建更高效的系统,降低成本和延迟,同时提供更好的结果。
嵌入技术通过数据的数值表示来捕捉语义和上下文。语义相似的数据,其嵌入向量也更接近。嵌入技术支持多种应用,包括:
- 高效检索: 通过比较查询和文档的嵌入向量,在大型数据库中查找相关文档,例如法律文档检索或企业搜索。
- 检索增强生成 (RAG): 通过检索和整合相关信息到模型上下文中,提高生成文本的质量和相关性。
- 聚类和分类: 将相似文本分组,识别数据中的趋势和主题。
- 分类: 根据文本内容自动分类,例如情感分析或垃圾邮件检测。
- 文本相似度: 识别重复内容,实现网页去重或抄袭检测等任务。
要了解更多关于嵌入和常见 AI 用例的信息,可以参考 Gemini API 文档。
立即体验 Gemini 文本嵌入
开发者现在可以通过 Gemini API 使用这款全新的实验性文本嵌入模型。它与现有的 embed_content
接口兼容。
from google import genai
client = genai.Client(api_key="GEMINI_API_KEY")
result = client.models.embed_content(
model="gemini-embedding-exp-03-07",
contents="阿尔法折叠是如何工作的?",
)
print(result.embeddings)
除了在各个方面都提高了质量外,gemini-embedding-exp-03-07
还具有以下特点:
- 8K token 输入限制: 相比之前的模型,Google 改进了上下文长度,允许嵌入更大块的文本、代码或其他数据。
- 3072 维输出: 高维嵌入向量,比之前的嵌入模型多了近 4 倍的 token。
- Matryoshka 表示学习 (MRL): MRL 允许开发者将原始的 3072 维向量截断,以降低存储成本。简单来说,MRL技术允许用户通过牺牲一部分精度,来换取存储空间的节省。
- 扩展的语言支持: 支持的语言数量翻了一番,超过 100 种。
- 统一模型: 该模型在质量上超越了 Google 之前发布的特定任务的多语言、纯英语和代码专用模型。
尽管目前处于实验阶段,容量有限,但此次发布为开发者提供了提前探索 gemini-embedding-exp-03-07
能力的机会。与所有实验模型一样,它可能会有所变化。Google 表示,正努力在未来几个月内推出稳定且普遍可用的版本。
Google 鼓励开发者通过 嵌入反馈表 提供反馈。
一些用户注意到,该模型在预览期间是免费的,但有严格的速率限制——每分钟 5 个请求,每天 100 个请求。 开发者在测试模型时,很容易触发这些限制。有用户表示,希望 Google 能尽快提高这些限制。
在 Reddit 讨论中,许多用户对新模型的发布表示兴奋,认为这是“一个比人们意识到的更大的交易”。一位用户评论说:“3k 维度的 fp32 嵌入向量非常庞大。我敢打赌,你可以用这么多数据构建一个非常合理的解码器......如果这个模型很便宜,我可能会更多地使用它,而不是完整的大型语言模型。通常,语义特征提取才是你真正想要的。”
另一位用户指出,这个模型在多语言领域“没有太多竞争”,并补充说,由于速率限制和嵌入的维度,这个模型可能最适合用于较大的文本块。
[1]:在 Vertex AI 上,相同的模型通过text-embedding-large-exp-03-07
接口提供。在正式发布时,命名将保持一致。