说明文档
EmbeddingGemma 模型卡
模型页面:EmbeddingGemma
资源与技术文档:
使用条款:条款
作者:Google DeepMind
模型信息
描述
EmbeddingGemma 是 Google 推出的 3 亿参数开源嵌入模型,在其尺寸级别中处于最先进水平。该模型基于 Gemma 3(采用 T5Gemma 初始化)构建,使用了与创建 Gemini 模型相同的研究和技术。EmbeddingGemma 生成文本的向量表示,非常适合搜索和检索任务,包括分类、聚类和语义相似度搜索。该模型使用 100 多种口语的数据进行训练。
其小巧的尺寸和对设备端运行的专注使其可以部署在资源受限的环境中,如手机、笔记本电脑或台式机,从而普及了最先进 AI 模型的使用,并帮助促进所有人的创新。
有关更多技术细节,请参阅我们的论文:EmbeddingGemma: Powerful and Lightweight Text Representations。
输入与输出
-
输入:
- 文本字符串,例如问题、提示或要嵌入的文档
- 最大输入上下文长度为 2048 个 token
-
输出:
- 输入文本数据的数值向量表示
- 输出嵌入维度大小为 768,通过 Matryoshka 表示学习(MRL)可提供更小的选项(512、256 或 128)。MRL 允许用户将 768 维的输出嵌入截断到所需大小,然后重新归一化,以实现高效且准确的表示。
引用
@article{embedding_gemma_2025,
title={EmbeddingGemma: Powerful and Lightweight Text Representations},
author={Schechter Vera, Henrique* and Dua, Sahil* and Zhang, Biao and Salz, Daniel and Mullins, Ryan and Raghuram Panyam, Sindhu and Smoot, Sara and Naim, Iftekhar and Zou, Joe and Chen, Feiyang and Cer, Daniel and Lisak, Alice and Choi, Min and Gonzalez, Lucas and Sanseviero, Omar and Cameron, Glenn and Ballantyne, Ian and Black, Kat and Chen, Kaifeng and Wang, Weiyi and Li, Zhe and Martins, Gus and Lee, Jinhyuk and Sherwood, Mark and Ji, Juyeong and Wu, Renjie and Zheng, Jingxiao and Singh, Jyotinder and Sharma, Abheesht and Sreepat, Divya and Jain, Aashi and Elarabawy, Adham and Co, AJ and Doumanoglou, Andreas and Samari, Babak and Hora, Ben and Potetz, Brian and Kim, Dahun and Alfonseca, Enrique and Moiseev, Fedor and Han, Feng and Palma Gomez, Frank and Hernández Ábrego, Gustavo and Zhang, Hesen and Hui, Hui and Han, Jay and Gill, Karan and Chen, Ke and Chen, Koert and Shanbhogue, Madhuri and Boratko, Michael and Suganthan, Paul and Duddu, Sai Meher Karthik and Mariserla, Sandeep and Ariafar, Setareh and Zhang, Shanfeng and Zhang, Shijie and Baumgartner, Simon and Goenka, Sonam and Qiu, Steve and Dabral, Tanmaya and Walker, Trevor and Rao, Vikram and Khawaja, Waleed and Zhou, Wenlei and Ren, Xiaoqi and Xia, Ye and Chen, Yichang and Chen, Yi-Ting and Dong, Zhe and Ding, Zhongli and Visin, Francesco and Liu, Gaël and Zhang, Jiageng and Kenealy, Kathleen and Casbon, Michelle and Kumar, Ravin and Mesnard, Thomas and Gleicher, Zach and Brick, Cormac and Lacombe, Olivier and Roberts, Adam and Sung, Yunhsuan and Hoffmann, Raphael and Warkentin, Tris and Joulin, Armand and Duerig, Tom and Seyedhosseini, Mojtaba},
publisher={Google DeepMind},
year={2025},
url={https://arxiv.org/abs/2509.20354}
}
使用方法
这些模型权重设计用于与 Sentence Transformers 配合使用,并以 Hugging Face Transformers 的 Gemma 3 实现作为骨干。
首先安装 Sentence Transformers 库:
pip install -U sentence-transformers
然后您可以加载此模型并运行推理。
from sentence_transformers import SentenceTransformer
# 从 🤗 Hub 下载
model = SentenceTransformer("google/embeddinggemma-300m")
# 使用查询和文档运行推理
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)
# 计算相似度以确定排名
similarities = model.similarity(query_embeddings, document_embeddings)
print(similarities)
# tensor([[0.3011, 0.6359, 0.4930, 0.4889]])
注意:EmbeddingGemma 的激活不支持 float16。请根据您的硬件情况使用 float32 或 bfloat16。
模型数据
训练数据集
该模型在包含多种来源的文本数据集上进行了训练,总计约 3200 亿个 token。以下是主要组成部分:
- 网页文档:多样化的网页文本集合确保模型接触到广泛的语言风格、主题和词汇。训练数据集包含 100 多种语言的内容。
- 代码和技术文档:让模型接触代码和技术文档有助于其学习编程语言和专业科学内容的结构和模式,从而提高其对代码和技术问题的理解能力。
- 合成数据和任务特定数据:合成训练数据有助于教会模型特定技能。这包括为信息检索、分类和情感分析等任务精心策划的数据,有助于针对常见嵌入应用微调其性能。
这些多样化数据源的组合对于训练能够处理各种不同任务和数据格式的强大多语言嵌入模型至关重要。
数据预处理
以下是应用于训练数据的主要数据清洗和过滤方法:
- CSAM 过滤:在数据准备过程的多个阶段应用了严格的 CSAM(儿童性虐待材料)过滤,以确保排除有害和非法内容。
- 敏感数据过滤:作为使 Gemma 预训练模型安全可靠的一部分,使用自动化技术从训练集中过滤掉某些个人信息和其他敏感数据。
- 其他方法:根据我们的政策进行基于内容质量和安全性的过滤。
模型开发
硬件
EmbeddingGemma 使用最新一代的 张量处理单元 (TPU) 硬件(TPUv5e)进行训练,更多详情请参阅 Gemma 3 模型卡。
软件
训练使用 JAX 和 ML Pathways 进行。更多详情请参阅 Gemma 3 模型卡。
评估
基准测试结果
该模型针对涵盖文本理解不同方面的大量不同数据集和指标进行了评估。
全精度检查点
<table> <thead> <tr> <th colspan="3"><strong>MTEB(多语言,v2)</strong></th> </tr> </thead> <tbody> <tr> <td><strong>维度</strong></td> <td><strong>平均(任务)</strong></td> <td><strong>平均(任务类型)</strong></td> </tr> <tr> <td>768d</td> <td>61.15</td> <td>54.31</td> </tr> <tr> <td>512d</td> <td>60.71</td> <td>53.89</td> </tr> <tr> <td>256d</td> <td>59.68</td> <td>53.01</td> </tr> <tr> <td>128d</td> <td>58.23</td> <td>51.77</td> </tr> </tbody> </table>
<table> <thead> <tr> <th colspan="3"><strong>MTEB(英语,v2)</strong></th> </tr> </thead> <tbody> <tr> <td><strong>维度</strong></td> <td><strong>平均(任务)</strong></td> <td><strong>平均(任务类型)</strong></td> </tr> <tr> <td>768d</td> <td>69.67</td> <td>65.11</td> </tr> <tr> <td>512d</td> <td>69.18</td> <td>64.59</td> </tr> <tr> <td>256d</td> <td>68.37</td> <td>64.02</td> </tr> <tr> <td>128d</td> <td>66.66</td> <td>62.70</td> </tr> </tbody> </table>
<table> <thead> <tr> <th colspan="3"><strong>MTEB(代码,v1)</strong></th> </tr> </thead> <tbody> <tr> <td><strong>维度</strong></td> <td><strong>平均(任务)</strong></td> <td><strong>平均(任务类型)</strong></td> </tr> <tr> <td>768d</td> <td>68.76</td> <td>68.76</td> </tr> <tr> <td>512d</td> <td>68.48</td> <td>68.48</td> </tr> <tr> <td>256d</td> <td>66.74</td> <td>66.74</td> </tr> <tr> <td>128d</td> <td>62.96</td> <td>62.96</td> </tr> </tbody> </table>
QAT 检查点
<table> <thead> <tr> <th colspan="3"><strong>MTEB(多语言,v2)</strong></th> </tr> </thead> <tbody> <tr> <td><strong>量化配置(维度)</strong></td> <td><strong>平均(任务)</strong></td> <td><strong>平均(任务类型)</strong></td> </tr> <tr> <td>Q4_0 (768d)</td> <td>60.62</td> <td>53.61</td> </tr> <tr> <td>Q8_0 (768d)</td> <td>60.93</td> <td>53.95</td> </tr> <tr> <td>混合精度* (768d)</td> <td>60.69</td> <td>53.82</td> </tr> </tbody> </table>
<table> <thead> <tr> <th colspan="3"><strong>MTEB(英语,v2)</strong></th> </tr> </thead> <tbody> <tr> <td><strong>量化配置(维度)</strong></td> <td><strong>平均(任务)</strong></td> <td><strong>平均(任务类型)</strong></td> </tr> <tr> <td>Q4_0 (768d)</td> <td>69.31</td> <td>64.65</td> </tr> <tr> <td>Q8_0 (768d)</td> <td>69.49</td> <td>64.84</td> </tr> <tr> <td>混合精度* (768d)</td> <td>69.32</td> <td>64.82</td> </tr> </tbody> </table>
<table> <thead> <tr> <th colspan="3"><strong>MTEB(代码,v1)</strong></th> </tr> </thead> <tbody> <tr> <td><strong>量化配置(维度)</strong></td> <td><strong>平均(任务)</strong></td> <td><strong>平均(任务类型)</strong></td> </tr> <tr> <td>Q4_0 (768d)</td> <td>67.99</td> <td>67.99</td> </tr> <tr> <td>Q8_0 (768d)</td> <td>68.70</td> <td>68.70</td> </tr> <tr> <td>混合精度* (768d)</td> <td>68.03</td> <td>68.03</td> </tr> </tbody> </table>
注意:QAT 模型在量化后进行评估
* 混合精度指嵌入层、前馈层和投影层使用 int4 的逐通道量化,注意力层使用 int8(e4_a8_f4_p4)。
提示指令
EmbeddingGemma 可以使用前置到输入字符串的提示,为各种用例(如文档检索、问答和事实验证)或特定输入类型(查询或文档)生成优化的嵌入。
查询提示遵循 task: {任务描述} | query: 的形式,其中任务描述因用例而异,默认任务描述为 search result。文档样式提示遵循 title: {标题 | "none"} | text: 的形式,其中标题为 none(默认值)或文档的实际标题。请注意,如果可用,提供标题将提高文档提示的模型性能,但可能需要手动格式化。
根据您的用例和输入数据类型使用以下提示。这些提示可能已在您选择的建模框架的 EmbeddingGemma 配置中可用。
<table> <thead> <tr> <th><br> <strong>用例(任务类型枚举)</strong></th> <th><br> <strong>描述</strong></th> <th><br> <strong>推荐提示</strong></th> </tr> </thead> <tbody> <tr> <td><br> 检索(查询)</td> <td rowspan="4"><br> 用于生成针对文档搜索或信息检索优化的嵌入</td> <td><br> task: search result | query: {内容}</td> </tr> <tr> <td><br> 检索(文档)</td> <td><br> title: {标题 | "none"} | text: {内容}</td> </tr> <tr> <td><br> 问答</td> <td><br> task: question answering | query: {内容}</td> </tr> <tr> <td><br> 事实验证</td> <td><br> task: fact checking | query: {内容}</td> </tr> <tr> <td><br> 分类</td> <td><br> 用于生成针对按预设标签对文本进行分类优化的嵌入</td> <td><br> task: classification | query: {内容}</td> </tr> <tr> <td><br> 聚类</td> <td><br> 用于生成针对基于相似度对文本进行聚类优化的嵌入</td> <td><br> task: clustering | query: {内容}</td> </tr> <tr> <td><br> 语义相似度</td> <td><br> 用于生成针对评估文本相似度优化的嵌入。这不适用于检索用例。</td> <td><br> task: sentence similarity | query: {内容}</td> </tr> <tr> <td><br> 代码检索</td> <td><br> 用于基于自然语言查询(如<em>数组排序</em>或<em>反转链表</em>)检索代码块。代码块的嵌入使用 retrieval_document 计算。</td> <td><br> task: code retrieval | query: {内容}</td> </tr> </tbody> </table>
使用与限制
这些模型存在一些用户应该注意的限制。
预期用途
开源嵌入模型在各个行业和领域都有广泛的应用。以下潜在用途列表并不全面。此列表的目的是提供关于模型创建者在模型训练和开发过程中考虑的可能用例的背景信息。
-
语义相似度:针对评估文本相似度优化的嵌入,如推荐系统和重复检测
-
分类:针对按预设标签对文本进行分类优化的嵌入,如情感分析和垃圾邮件检测
-
聚类:针对基于相似度对文本进行聚类优化的嵌入,如文档组织、市场研究和异常检测
-
检索
- 文档:针对文档搜索优化的嵌入,如为搜索索引文章、书籍或网页
- 查询:针对通用搜索查询优化的嵌入,如自定义搜索
- 代码查询:针对基于自然语言查询检索代码块优化的嵌入,如代码建议和搜索
-
问答:问答系统中问题的嵌入,针对查找回答问题的文档进行了优化,如聊天机器人。
-
事实验证:需要验证的陈述的嵌入,针对检索包含支持或反驳该陈述证据的文档进行了优化,如自动事实核查系统。
限制
-
训练数据
- 训练数据的质量和多样性显著影响模型的能力。训练数据中的偏差或空白可能导致模型响应的限制。
- 训练数据集的范围决定了模型能够有效处理的主题领域。
-
语言歧义和细微差别
- 自然语言本质上很复杂。模型可能难以理解微妙的细微差别、讽刺或比喻性语言。
伦理考量与风险
已识别的风险及缓解措施:
- 偏见的延续:鼓励在模型训练、微调和其他用例中进行持续监控(使用评估指标、人工审查)并探索去偏技术。
- 恶意用途:技术限制以及对开发者和最终用户的教育可以帮助缓解嵌入的恶意应用。提供了教育资源供用户标记滥用的报告机制。Gemma 模型的禁止用途在 Gemma 禁止使用政策中列出。
- 隐私侵犯:模型在经过过滤以删除某些个人信息和其他敏感数据的数据上进行训练。鼓励开发者使用隐私保护技术遵守隐私法规。
优势
在发布时,与类似尺寸的模型相比,该模型系列提供了从头开始为负责任 AI 开发设计的高性能开源嵌入模型实现。使用本文档中描述的基准评估指标,这些模型已显示出比其他同等尺寸的开源模型替代品更优越的性能。
sigalr/embeddinggemma-300m-ONNX-ST
作者 sigalr
创建时间: 2025-12-22 15:40:37+00:00
更新时间: 2025-12-22 15:43:02+00:00
在 Hugging Face 上查看