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

![Conceptual illustration of one person seated on a rug, holding a phone and a landscape photo beside a box of personal prints and paper records.](https://bigchange.ai/api/media/file/embeddinggemma-personal-collection-hero-v1.png)
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) — 指定的模型仓库、已发布文件和许可。
