模型页面:EmbeddingGemma
资源与技术文档:
使用条款:条款
作者:Google DeepMind
EmbeddingGemma 是一款由 Google 推出的、拥有 3 亿参数的开源嵌入模型,就其尺寸而言达到了业界领先水平。该模型基于 Gemma 3(采用 T5Gemma 初始化)构建,并运用了用于创建 Gemini 模型的相同研究成果与技术。EmbeddingGemma 能够生成文本的向量表示,使其非常适用于搜索和检索任务,包括分类、聚类和语义相似度搜索。此模型在超过 100 种口语语言的数据集上进行了训练。
其小巧的模型尺寸和对设备端部署的专注,使其能够在移动电话、笔记本电脑或台式机等资源有限的环境中部署,从而普及了尖端 AI 模型的使用,助力为所有人营造创新氛围。
输入:
输出:
这些模型权重旨在与 Sentence Transformers 配合使用,并将 Hugging Face Transformers 中的 Gemma 3 实现作为骨干网络。
首先安装 Sentence Transformers 库:
pip install -U sentence-transformers然后您可以加载此模型并运行推理。
from sentence_transformers import SentenceTransformer
# Download from the 🤗 Hub
model = SentenceTransformer("google/embeddinggemma-300m")
# Run inference with queries and documents
query = "Which planet is known as the Red Planet?"
documents = [
"Venus is often called Earth's twin because of its similar size and proximity.",
"Mars, known for its reddish appearance, is often referred to as the Red Planet.",
"Jupiter, the largest planet in our solar system, has a prominent red spot.",
"Saturn, famous for its rings, is sometimes mistaken for the Red Planet."
]
query_embeddings = model.encode_query(query)
document_embeddings = model.encode_document(documents)
print(query_embeddings.shape, document_embeddings.shape)
# (768,) (4, 768)
# Compute similarities to determine a ranking
similarities = model.similarity(query_embeddings, document_embeddings)
print(similarities)
# tensor([[0.3011, 0.6359, 0.4930, 0.4889]])注意:EmbeddingGemma 的激活函数不支持 float16。请根据您的硬件情况,适当使用 float32 或 bfloat16。
本模型的训练数据包含多种来源的文本数据,总标记量约为 3200 亿。主要组成部分如下:
这些多样化数据源的组合对于训练一个功能强大的多语言嵌入模型至关重要,使其能够处理各种不同的任务和数据格式。
以下是应用于训练数据的关键数据清洗和过滤方法:
EmbeddingGemma 的训练采用了最新一代 Tensor Processing Unit (TPU) 硬件(TPUv5e),更多详情请参考 Gemma 3 模型卡片。
训练过程使用了 JAX 和 ML Pathways。更多详情请参考 Gemma 3 模型卡片。
为全面评估文本理解能力,该模型在大量不同数据集和指标上进行了测试。
| MTEB(多语言,v2 版) | ||
|---|---|---|
| 维度 | 任务均值 | 任务类型均值 |
| 768维 | 61.15 | 54.31 |
| 512维 | 60.71 | 53.89 |
| 256维 | 59.68 | 53.01 |
| 128维 | 58.23 | 51.77 |
| MTEB(英语,v2 版) | ||
|---|---|---|
| 维度 | 任务均值 | 任务类型均值 |
| 768维 | 68.36 | 64.15 |
| 512维 | 67.80 | 63.59 |
| 256维 | 66.89 | 62.94 |
| 128维 | 65.09 | 61.56 |
| MTEB(代码,v1 版) | ||
|---|---|---|
| 维度 | 任务均值 | 任务类型均值 |
| 768维 | 68.76 | 68.76 |
| 512维 | 68.48 | 68.48 |
| 256维 | 66.74 | 66.74 |
| 128维 | 62.96 | 62.96 |
| MTEB(多语言,v2 版) | ||
|---|---|---|
| 量化配置(维度) | 任务均值 | 任务类型均值 |
| Q4_0(768维) | 60.62 | 53.61 |
| Q8_0(768维) | 60.93 | 53.95 |
| 混合精度*(768维) | 60.69 | 53.82 |
| MTEB(英语,v2 版) | ||
|---|---|---|
| 量化配置(维度) | 任务均值 | 任务类型均值 |
| Q4_0(768维) | 67.91 | 63.64 |
| Q8_0(768维) | 68.13 | 63.85 |
| 混合精度*(768维) | 67.95 | 63.83 |
| MTEB(代码,v1 版) | ||
|---|---|---|
| 量化配置(维度) | 任务均值 | 任务类型均值 |
| Q4_0(768维) | 67.99 | 67.99 |
| Q8_0(768维) | 68.70 | 68.70 |
| 混合精度*(768维) | 68.03 | 68.03 |
注:量化感知训练(QAT)模型的评估在量化后进行
* 混合精度指的是按通道量化,其中嵌入层、前馈层和投影层采用 int4 精度,注意力层采用 int8 精度(e4_a8_f4_p4)。
EmbeddingGemma 能够为各类使用场景(如文档检索、问答和事实核查)或特定输入类型(查询或文档)生成优化的嵌入向量,具体方法是在输入字符串前添加提示词。
查询类提示词的格式为 task: {task description} | query: ,其中任务描述(task description)会因使用场景而异,默认的任务描述为 search result。文档类提示词的格式为 title: {title | "none"} | text: ,其中标题(title)可以是 none(默认值)或文档的实际标题。请注意,如果文档有标题,提供标题将提升文档提示词的模型性能,但可能需要手动格式化。
请根据您的使用场景和输入数据类型选择以下提示词。这些提示词可能已在您所选建模框架的 EmbeddingGemma 配置中提供。
使用场景(任务类型枚举) | 描述 | 推荐提示词 |
|---|---|---|
检索(查询) | 用于生成针对文档搜索或信息检索优化的嵌入向量 | task: search result | query: {content} |
检索(文档) | title: {title | "none"} | text: {content} | |
问答 | task: question answering | query: {content} | |
事实核查 | task: fact checking | query: {content} | |
分类 | 用于生成针对按预设标签对文本进行分类优化的嵌入向量 | task: classification | query: {content} |
聚类 | 用于生成针对基于文本相似性进行聚类优化的嵌入向量 | task: clustering | query: {content} |
语义相似度 | 用于生成针对评估文本相似度优化的嵌入向量。此场景不用于检索。 | task: sentence similarity | query: {content} |
代码检索 | 用于根据自然语言查询检索代码块,例如 sort an array(对数组排序)或 reverse a linked list(反转链表)。代码块的嵌入向量使用 retrieval_document 计算。 | task: code retrieval | query: {content} |
这些模型存在一些用户应注意的局限性。
开源嵌入模型在各个行业和领域拥有广泛的应用场景。以下潜在用途列表并非详尽无遗。列出这些用途旨在提供背景信息,说明模型创建者在模型训练和开发过程中所考虑的可能使用场景。
语义相似度:针对文本相似度评估优化的嵌入,例如推荐系统和重复内容检测
分类:针对按预设标签对文本进行分类优化的嵌入,例如情感分析和垃圾邮件检测
聚类:针对基于文本相似度进行聚类优化的嵌入,例如文档组织、市场调研和异常检测
检索
问答:问答系统中的问题嵌入,针对查找能回答问题的文档进行优化,例如聊天机器人。
事实核查:需要验证的陈述的嵌入,针对检索包含支持或反驳该陈述证据的文档进行优化,例如自动化事实核查系统。
训练数据
语言歧义与细微差别
已识别的风险及缓解措施:
在发布时,与同等规模的模型相比,该系列模型提供了高性能的开放式嵌入模型实现,这些实现从设计之初就致力于负责任的 AI 开发。根据本文档中描述的基准评估指标,这些模型表现出优于其他同等规模开放式替代模型的性能。