谷歌的新 EmbeddingGemma 2 能有多小?

谷歌的新 EmbeddingGemma 2 能有多小?

💡 原文英文,约700词,阅读约需3分钟。
📝

内容提要

谷歌发布 EmbeddingGemma 2 嵌入模型,可将文本、代码、图像等映射到 768 维空间。Qdrant 测试其内存优化:全尺寸 1 比特量化向量仅需 30 倍更少内存,保留 99% 检索质量;256 维加重新评分可省 77 倍内存,保留 94.5%。建议优先压缩比特而非维度,从全尺寸 1 比特量化起步。

🔎

延伸解读

内存节省的两种路径:压缩比特 vs 缩短维度

文章对比了两种节省向量内存的方法:减少每个维度的比特数(量化)和缩短向量维度(Matryoshka)。测试显示,在相近内存预算下,全尺寸768维1比特量化保留99%检索质量,而512维1比特保留97.3%,128维4比特仅保留84.0%。因此作者建议优先压缩比特而非维度,因为高维低比特能更好地保持检索质量。

重评分对检索质量与延迟的权衡

重评分能显著提升量化后的检索质量,但会增加查询时间。例如,256维1比特量化无重评分时保留88.1%的nDCG@10,有重评分时提升至94.5%。然而,重评分需要读取原始向量,可能拖慢搜索。文章建议,如果应用依赖恢复完全相同的邻居,才启用重评分;否则可关闭以节省时间。

实际部署的起步配置与注意事项

作者推荐从全尺寸768维、1比特TurboQuant、关闭重评分开始。该配置下,1000万文档的向量仅需约1GB内存,查询时间不到float32搜索的一半,且保留99%的检索质量。但需注意,无重评分时约74%的top 10结果与精确搜索一致,若应用对结果一致性要求高,则需考虑重评分。

❓

Q&A

EmbeddingGemma 2 是什么?它有哪些主要特点?

EmbeddingGemma 2 是谷歌基于 Gemma 4 构建的开源嵌入模型,可将文本、代码、图像、视频和音频映射到统一的 768 维空间。其纯文本路径有 2.7 亿参数,支持 8K 令牌上下文窗口,在代码检索上比第一代 EmbeddingGemma 提升 14%。

EmbeddingGemma 2 的向量内存占用有多大?如何节省内存?

全尺寸 float32 向量在 1000 万文档下占用 30.7 GB 内存。节省内存有两种方式:一是减少每个维度的比特数(量化),二是缩短向量维度。测试表明,优先压缩比特比缩短维度更有效。

使用 1 比特量化全尺寸向量能节省多少内存?检索质量如何?

使用 1 比特 TurboQuant 量化全尺寸 768 维向量,每个向量仅占 104 字节(原为 3072 字节),1000 万文档的向量内存降至约 1 GB,节省 30 倍内存,同时保留 99% 的检索质量(nDCG@10)。

缩短向量维度与量化相比,哪种方式更节省内存且保持质量?

测试表明,优先压缩比特(量化)比缩短维度更有效。例如,512 维 1 比特向量保留 97.3% 质量,而相近内存预算下 128 维 4 比特仅保留 84.0%。因此建议先尝试保持更多维度并更激进地压缩每个维度。

使用 256 维向量并重新评分能节省多少内存?质量保留如何?

使用 256 维 1 比特 TurboQuant 向量,每个向量占 40 字节,节省 77 倍向量内存。配合重新评分(4 倍过采样),可保留 94.5% 的检索质量;若不重新评分,仅保留 88.1%。

对于 EmbeddingGemma 2,推荐的初始配置是什么?

推荐从全尺寸 768 维向量、1 比特 TurboQuant 量化、关闭重新评分开始。该配置每个向量占 104 字节,1000 万文档约 1 GB 内存,保留 99% 检索质量,且查询时间比 float32 搜索减少一半以上。

🏷️

标签

➡️

继续阅读