Markdown 版本
AI-translated from English; not yet reviewed by a fluent editor.
# EmbeddingGemma 2:文本与媒体的本地搜索原型
> Google 的 EmbeddingGemma 2 将文本、图像、视频和音频嵌入整合到一个本地检索模型中。本指南依据文档梳理配置与评估时的选择。
By BIG CHANGE Editorial
Published: 2026-10-06T20:48:02.995Z
Updated: 2026-10-06T20:48:02.995Z
Canonical: https://bigchange.ai/blog/embeddinggemma-2-local-multimodal-search-guide

A person considers a small personal collection of photos and records beside a phone. Conceptual AI-generated illustration by BIG CHANGE; it does not show an EmbeddingGemma 2 interface or tested search result.
Google 于 2026 年 10 月 6 日发布 EmbeddingGemma 2,并以 Apache 2.0 许可提供可下载权重。该模型将文本、代码、图像、视频和音频转换为向量,可在同一 768 维空间中比较。对于拥有本地资料集的开发者,实际问题是加载哪些编码器、如何表示查询和文件,以及结果是否对该资料集有用。本指南遵循 Google 发布的说明和模型卡;BIG CHANGE 未运行该模型,也未测量检索质量。
## 重大变化
- **变化之处:**此前的 EmbeddingGemma 只处理文本。第二版增加了视觉和音频编码器,因此无需先生成字幕或转录文本,就能在共享向量空间中将文本查询与受支持的媒体进行比较。Google 已发布权重;[Android 上的 ML Kit 服务预计将在未来几周推出](https://developers.googleblog.com/google-ai-edge-with-embeddinggemma-2/)。
- **重要原因:**开发者可以加载本地资料集所需的编码器,并为受支持的文件类型建立一个统一检索索引。[Google 的 AI Edge Gallery](https://developers.googleblog.com/google-ai-edge-with-embeddinggemma-2/)展示了在 SQLite 中存储本地媒体向量并按余弦相似度排序的做法。应用仍需处理文件导入、向量存储、结果展示,以及识别误导性匹配的检查。
- **观察重点:**眼下要判断的是:代表性文件能否在设备的内存和延迟预算内获得良好排序。后续推出的 Android 服务可能改变集成方式;公告时间并不代表服务目前已经可用。
## 加载模型前先选择输入
开发者[指南](https://developers.googleblog.com/en/embeddinggemma-2-the-developer-guide/)记录了 Sentence Transformers 6.1.0 或更高版本,以及适用于所有受支持媒体的安装命令:
```bash
pip install -U sentence-transformers[image,audio,video] transformers
```
准确的检查点是 `google/embeddinggemma-2`。Sentence Transformers 默认加载会包含所有编码器。对于仅包含文本和代码的资料集,指南建议加载时排除视觉和音频:
```python
from sentence_transformers import SentenceTransformer
model = SentenceTransformer(
"google/embeddinggemma-2",
config_kwargs={"vision_config": None, "audio_config": None},
)
```
保留视觉并排除音频需要 `config_kwargs={"audio_config": None}`;保留音频并排除视觉需要 `config_kwargs={"vision_config": None}`。这些选项会改变加载的权重,但生成的向量仍处于模型的共享空间中。因此,根据指南,纯文本查询可以与使用包含视觉编码器的配置编码的图像进行比较。Google 称该模型适用于消费级设备,但公开的 Python 示例只是库的快速入门,并非针对读者设备内存或延迟的实测保证。
## 以不同方式编码查询和资料项
对于文本检索,[模型卡](https://ai.google.dev/gemma/docs/embeddinggemma/model_card_2)为查询和语料项规定了不同的任务指令。Sentence Transformers 通过 `prompt_name`提供这些指令:
```python
query_vector = model.encode("northern lights", prompt_name="SearchQuery")
document_vector = model.encode(
"Charged particles from the sun cause the northern lights.",
prompt_name="Document",
)
score = model.similarity(query_vector, document_vector)
```
这段文档示例会生成向量和相似度分数;它不是我们环境中观察到的结果。`Document`会插入 `title: none`。如果资料项有实际标题,Google 要求开发者明确将其格式化为 `title: {title} | text: {content}`。代码搜索使用 `CodeRetrieval` 查询指令,并搭配已索引代码的标题或文件名。分类、聚类和句子相似度各有自己的对称指令。模型卡指出,省略文本指令后模型仍可运行,但精确度会降低。
较早的 `model`没有视觉或音频编码器。编码图像前,请从同一检查点加载指南中的[文本与视觉配置](https://developers.googleblog.com/en/embeddinggemma-2-the-developer-guide/),再用该模型处理媒体和查询。此步骤遵循文档;我们尚未运行:
```python
media_model = SentenceTransformer(
"google/embeddinggemma-2",
config_kwargs={"audio_config": None},
)
image_vector = media_model.encode({"image": "photo.jpg"})
query_vector = media_model.encode("a photo query", prompt_name="SearchQuery")
score = media_model.similarity(query_vector, image_vector)
```
处理音频时,重新加载并省略 `audio_config: None`以启用音频编码器;默认完整加载包含视觉和音频。Google 指南会传入类似 `{"audio": "recording.wav"}`的字典,不加文本任务前缀。也可以在文本中加入 `<|image|>`、`<|video|>`或`<|audio|>` 标记,并在字典中提供匹配文件,以组合文本和媒体。该调用会为组合输入生成一个向量。模型卡规定音频为 16 kHz 单声道,并说明视频默认每秒采样一帧。图像、视频帧、音频和文本共享 8,192 个 token 的上下文预算,因此长视频或混合项目需要规划输入,不能假设每个文件都能放入。
## 选择向量大小,再检查取舍
原生输出为 768 维。Google 模型卡支持将向量截短至 512、256 和 128 维。指南记录了在 `truncate_dim=256`中用 `normalize_embeddings=True`搭配 `model.encode()`。查询向量和索引项向量必须维度相同;缩短后的向量在余弦比较前需要归一化。模型卡称,128 维造成的多模态质量损失明显大于 256 维,并主要建议将 128 维用于文本工作负载。这些数字来自 Google 的全精度基准测试,并不预测某个资料集的召回率。
数值精度也是一项配置选择。模型卡建议在支持的硬件上使用 `bfloat16`,其他情况下(包括大多数 CPU)使用 `float32`。它警告称,`float16`可能产生 NaN 或导致嵌入质量悄然下降。选择性加载参数数量描述的是模型组件;设备的实际内存和搜索速度取决于执行路径、精度、索引和输入大小。
## 使用结果前应评估什么
原型可以为一小批获准样本建立索引,留出有代表性的查询,并检查正确项目是否排在前列。只有资料集中确有相应媒体时,才加入文本对文本、文本对图像或文本对音频的用例。在相同查询上比较 768 维和 256 维,检查相关语言和文档类型中的失败情况,并在目标设备上测量内存、索引时间和查询延迟。这些是提供给读者的评估步骤;BIG CHANGE 未执行这些测试。
模型卡公布的[结果](https://ai.google.dev/gemma/docs/embeddinggemma/model_card_2)显示,EmbeddingGemma 2 在 MTEB code v1 上得分 78.68,早期模型为 68.76;multilingual MTEB v2 的得分分别为 61.36 和 61.15。模型卡还报告了图像、视频和音频结果,但这些模态没有与版本 1 的对比。所有引用的基准结果均使用全精度检查点。它们体现的是 Google 的评估条件,并不代表本地档案的准确率。模型卡提醒,质量会随语言和任务变化,检索应用需要自行进行过滤和公平性检查。
权重以 Apache 2.0 许可发布,指南链接到其[Hugging Face 仓库](https://huggingface.co/google/embeddinggemma-2)。Google 的材料提供了本地运行方式,但没有通用部署价格:设备、计算、存储和工程都是应用成本。读者接下来要判断的是,模型能否在设备预算内正确排列代表性文件。
## 来源与延伸阅读
- [Google AI Edge 公告](https://developers.googleblog.com/google-ai-edge-with-embeddinggemma-2/),2026 年 10 月 6 日:发布阶段、AI Edge Gallery 的本地媒体搜索实现,以及公布的 ML Kit 时间安排。本文中的设备测量值来自 Google。
- [EmbeddingGemma 2 开发者指南](https://developers.googleblog.com/en/embeddinggemma-2-the-developer-guide/),2026 年 10 月 6 日:库版本、加载选项、编码示例和向量截短说明。
- [EmbeddingGemma 2 模型卡](https://ai.google.dev/gemma/docs/embeddinggemma/model_card_2):模型架构、输入限制、任务提示、精度警告、基准表格和局限。结果由 Google 报告。
- [Google 模型仓库](https://huggingface.co/google/embeddinggemma-2):指定的检查点和已发布模型文件。仓库可用并不能验证应用性能。
## Sources
- [借助 EmbeddingGemma 2 将多模态语义搜索带到边缘设备](https://developers.googleblog.com/google-ai-edge-with-embeddinggemma-2/) — 发布阶段、Google AI Edge Gallery 实现及即将开放的 ML Kit 访问;设备数据由供应商测量。
- [EmbeddingGemma 2:开发者指南](https://developers.googleblog.com/en/embeddinggemma-2-the-developer-guide/) — Sentence Transformers 6.1.0 及以上版本、加载配置、任务与媒体编码示例,以及向量截短。
- [EmbeddingGemma 2 模型卡](https://ai.google.dev/gemma/docs/embeddinggemma/model_card_2) — 架构、输入限制、提示、精度、Google 报告的基准分数、风险和局限。
- [google/embeddinggemma-2 检查点](https://huggingface.co/google/embeddinggemma-2) — 指定的模型仓库、已发布文件和许可。
BIG CHANGE 新闻通讯
纵览全局,按自己的节奏。
关于人工智能和机器人技术的近期报道、值得关注的变化以及可采用的实用想法。选择每日简报、每周摘要或每月视角。
下次计划发送时间(UTC): . 确认订阅后,您将在下一个计划发送时间收到第一期通讯。