EmbeddingGemma 2 发布:五种模态共享同一个 768 维向量空间

InfoQ 中文 2026-10-31T01:00:00+08:00

Google 推出开放权重多模态嵌入模型 EmbeddingGemma 2,用统一的 768 维向量空间表示文本、代码、图像、视频和音频,面向端侧语义搜索与 RAG 场景。模型基于 Gemma 4、Apache 2.0 许可,编码器可按需加载;同时支持向量截断压缩存储,但需要在检索质量上做取舍。

发布概况

Google 发布了 EmbeddingGemma 2,一款紧凑的开放权重多模态嵌入模型(embedding model,即把文本、图片等内容转成一串数字向量,便于计算机按语义比较相似度)。它基于 Gemma 4 构建,采用 Apache 2.0 许可证,目标是提升语义搜索与检索增强生成(RAG)的效率,并针对手机、笔记本等消费级硬件的端侧部署做了优化。

一个向量空间,覆盖五种模态

该模型的核心特性,是能把文本、代码、图像、视频和音频映射到同一个 768 维嵌入空间里。开发者搭建检索系统时,不必再为每种媒体维护一套互不兼容的向量空间。这意味着用自然语言就能查找相关文档、截图和录音,搜索源代码,或按文字描述检索视频内容。

尽管来自不同模态,EmbeddingGemma 2 生成的嵌入仍处于相同的维度空间中,可以根据语义相似度进行比较。

按需加载编码器,参数 2.7 亿到 7.4 亿

开发者可以只加载应用实际需要的编码器。参数规模从 2.7 亿(文本与代码)到 7.4 亿(完整多模态)不等。Google 表示,该模型“在代码搜索和技术内容检索方面显著超越 EmbeddingGemma 1”,适合本地代码库索引和智能体代码搜索——这也正是当下 AI 编程工具所需的底层检索能力。

截断换存储:MRL 的收益与代价

模型支持套娃表示学习(Matryoshka Representation Learning,MRL:让同一个向量可以截短使用,前面若干维就能近似表达整段语义)。例如以 bfloat16 精度存储 100 万个 768 维向量约需 1.5GB 内存,截断到 128 维后只需 250MB,占用降至六分之一。

代价是检索质量。Google 建议只在存储空间或搜索速度确有需要时才截断。在 128 维下,模型在文本任务上可保留约 90% 的质量,但图像、视频和语音检索表现会降到约 75%。

社区反馈:两个容易踩的坑

Reddit 用户 Distinct-Target7503 认可多模态共享语义空间的价值,但对纯文本任务的提升幅度存疑:

这个模型令人印象深刻的地方,是它可以将图像和音频嵌入同一个共享语义空间;但如果只看文本任务,提升并不算巨大。

Reddit 用户 Open-Adhesiveness-86 则提醒了初代使用中踩过的坑,这些问题很可能同样适用于新版本:任务前缀不是可选项,索引文档时若误用查询前缀而不是“title: none | text:”,召回率会明显下降;另外,如果要对 MRL 向量做截断,应先切片、再对较短的向量执行 L2 归一化,若先在 768 维上归一化再截断,得到的向量范数就是错的。

背景

EmbeddingGemma 初代于去年推出,主要面向离线和隐私敏感场景,例如在本地搜索个人文件、用 Gemma 3n 运行移动端 RAG 流水线,或构建特定领域的聊天机器人。EmbeddingGemma 2 已在 Hugging Face 上提供。

关键要点

查看原文