HuggingFace镜像/embeddinggemma-300m-GGUF
模型介绍文件和版本分析
下载使用量0

EmbeddingGemma 模型卡片

模型页面:EmbeddingGemma

资源与技术文档:

  • 负责任的生成式 AI 工具包
  • Kaggle 上的 EmbeddingGemma
  • Vertex Model Garden 中的 EmbeddingGemma

使用条款:条款

作者:Google DeepMind

模型信息

描述

EmbeddingGemma 是一款由 Google 推出的、拥有 3 亿参数的开源嵌入模型,就其尺寸而言达到了业界领先水平。该模型基于 Gemma 3(采用 T5Gemma 初始化)构建,并运用了用于创建 Gemini 模型的相同研究成果与技术。EmbeddingGemma 能够生成文本的向量表示,使其非常适用于搜索和检索任务,包括分类、聚类和语义相似度搜索。此模型在超过 100 种口语语言的数据集上进行了训练。

其小巧的模型尺寸和对设备端部署的专注,使其能够在移动电话、笔记本电脑或台式机等资源有限的环境中部署,从而普及了尖端 AI 模型的使用,助力为所有人营造创新氛围。

输入与输出

  • 输入:

    • 文本字符串,例如问题、提示词或待嵌入的文档
    • 最大输入上下文长度为 2048 个 tokens
  • 输出:

    • 输入文本数据的数值向量表示
    • 输出嵌入维度大小为 768,通过 Matryoshka 表示学习(MRL)还提供更小的选项(512、256 或 128)。MRL 允许用户将 768 维的输出嵌入截断至所需大小,然后重新归一化,以实现高效且准确的表示。

用法

这些模型权重旨在与 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 亿。主要组成部分如下:

  • 网络文档:多样化的网络文本集合确保模型能够接触到广泛的语言风格、主题和词汇。训练数据集涵盖了 100 多种语言的内容。
  • 代码与技术文档:让模型接触代码和技术文档有助于其学习编程语言的结构与模式以及专业的科学内容,从而提升其对代码和技术问题的理解能力。
  • 合成数据与特定任务数据:合成训练数据有助于教授模型特定技能。这包括为信息检索、分类和情感分析等任务精心整理的数据,以针对常见的嵌入应用场景微调其性能。

这些多样化数据源的组合对于训练一个功能强大的多语言嵌入模型至关重要,使其能够处理各种不同的任务和数据格式。

数据预处理

以下是应用于训练数据的关键数据清洗和过滤方法:

  • 儿童性虐待材料(CSAM)过滤:在数据准备过程的多个阶段都应用了严格的 CSAM 过滤,以确保排除有害和非法内容。
  • 敏感数据过滤:为了使 Gemma 预训练模型安全可靠,我们使用自动化技术从训练集中过滤掉某些个人信息和其他敏感数据。
  • 其他方法:根据我们的政策对内容质量和安全性进行过滤。

模型开发

硬件环境

EmbeddingGemma 的训练采用了最新一代 Tensor Processing Unit (TPU) 硬件(TPUv5e),更多详情请参考 Gemma 3 模型卡片。

软件环境

训练过程使用了 JAX 和 ML Pathways。更多详情请参考 Gemma 3 模型卡片。

评估

基准测试结果

为全面评估文本理解能力,该模型在大量不同数据集和指标上进行了测试。

全精度检查点

MTEB(多语言,v2 版)
维度任务均值任务类型均值
768维61.1554.31
512维60.7153.89
256维59.6853.01
128维58.2351.77
MTEB(英语,v2 版)
维度任务均值任务类型均值
768维68.3664.15
512维67.8063.59
256维66.8962.94
128维65.0961.56
MTEB(代码,v1 版)
维度任务均值任务类型均值
768维68.7668.76
512维68.4868.48
256维66.7466.74
128维62.9662.96

量化感知训练(QAT)检查点

MTEB(多语言,v2 版)
量化配置(维度)任务均值任务类型均值
Q4_0(768维)60.6253.61
Q8_0(768维)60.9353.95
混合精度*(768维)60.6953.82
MTEB(英语,v2 版)
量化配置(维度)任务均值任务类型均值
Q4_0(768维)67.9163.64
Q8_0(768维)68.1363.85
混合精度*(768维)67.9563.83
MTEB(代码,v1 版)
量化配置(维度)任务均值任务类型均值
Q4_0(768维)67.9967.99
Q8_0(768维)68.7068.70
混合精度*(768维)68.0368.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}

使用方法与局限性

这些模型存在一些用户应注意的局限性。

预期用途

开源嵌入模型在各个行业和领域拥有广泛的应用场景。以下潜在用途列表并非详尽无遗。列出这些用途旨在提供背景信息,说明模型创建者在模型训练和开发过程中所考虑的可能使用场景。

  • 语义相似度:针对文本相似度评估优化的嵌入,例如推荐系统和重复内容检测

  • 分类:针对按预设标签对文本进行分类优化的嵌入,例如情感分析和垃圾邮件检测

  • 聚类:针对基于文本相似度进行聚类优化的嵌入,例如文档组织、市场调研和异常检测

  • 检索

    • 文档:针对文档搜索优化的嵌入,例如为文章、书籍或网页建立搜索索引
    • 查询:针对通用搜索查询优化的嵌入,例如自定义搜索
    • 代码查询:针对基于自然语言查询检索代码块优化的嵌入,例如代码建议和搜索
  • 问答:问答系统中的问题嵌入,针对查找能回答问题的文档进行优化,例如聊天机器人。

  • 事实核查:需要验证的陈述的嵌入,针对检索包含支持或反驳该陈述证据的文档进行优化,例如自动化事实核查系统。

局限性

  • 训练数据

    • 训练数据的质量和多样性对模型的能力有显著影响。训练数据中的偏差或缺口可能导致模型响应存在局限性。
    • 训练数据集的范围决定了模型能够有效处理的主题领域。
  • 语言歧义与细微差别

    • 自然语言本质上具有复杂性。模型可能难以理解细微的差别、讽刺或比喻性语言。

伦理考量与风险

已识别的风险及缓解措施:

  • 偏见的延续:建议在模型训练、微调及其他使用场景中,通过评估指标、人工审查等方式进行持续监控,并探索去偏技术。
  • 恶意滥用:技术限制以及对开发者和最终用户的教育,有助于减少嵌入技术的恶意应用。我们提供了教育资源和用户举报机制,以便用户标记滥用行为。Gemma 模型的禁止用途在 Gemma 禁止使用政策 中有详细说明。
  • 隐私侵犯:模型训练数据经过过滤,已移除特定个人信息和其他敏感数据。建议开发者遵守隐私法规,并采用隐私保护技术。

优势

在发布时,与同等规模的模型相比,该系列模型提供了高性能的开放式嵌入模型实现,这些实现从设计之初就致力于负责任的 AI 开发。根据本文档中描述的基准评估指标,这些模型表现出优于其他同等规模开放式替代模型的性能。