Google 工具 · · 8 min
嵌入向量与企业语义搜索:RAG背后的隐形引擎
嵌入向量看似技术细节——但错误的选择会降低任何企业AI智能体的效果。为CTO提供关于模型、维度、成本和生产中真正重要事项的客观指南。
Fabiano Brito
CEO & Founder
TL;DR
嵌入向量是让语义搜索运作的数字表示。在Gemini Enterprise中,默认值(通过Vertex AI的
text-embedding-005)覆盖90%的场景。其余10%(重度多语种、代码、法律)值得有意识地选择。比模型更重要的是:分块策略、元数据、重排序器和混合搜索。
嵌入向量是RAG中最被低估的组件。团队为提示词争论数周,却不加比较地使用默认嵌入。结果:语义搜索引擎平庸,智能体看似在"幻觉",实际上是收到了糟糕的上下文。
本文是我们在批准架构之前会提供给CTO的指南。
什么是嵌入向量(两段话)
嵌入模型接收文本("服务合同")并返回N个数字的向量(如:768个)。含义相似的文本在空间中变成相近的向量;不同的文本则相距甚远。
语义搜索的工作方式:将所有文档索引为向量。接收问题,向量化,找到K个最近的向量 = top-K相关文档。这就是任何现代RAG中"搜索"背后的原理。
Vertex AI中可用的模型
| 模型 | 维度 | 成本(美元/百万tokens) | 推荐用途 |
|---|---|---|---|
text-embedding-005 |
768 | 0.025 | 通用默认,轻量多语种 |
text-embedding-large-005 |
3072 | 0.10 | 高精度,更高延迟 |
text-multilingual-embedding-002 |
768 | 0.025 | 专用多语种(20+语言) |
| OSS (E5, BGE) | 可变 | 自有基础设施 | 超敏感数据的本地部署场景 |
在Gemini Enterprise + Vertex AI Search中,选择已预先配置好。若要自定义,需创建专用的Data Store。
实际决策标准
1
涉及的语言
仅PT-BR + 偶尔英语 → text-embedding-005。有显著的ES/ZH/AR/JA → text-multilingual-embedding-002。
2
领域
一般业务 → 默认。密集法律/医疗 → 测试大型版本。源代码 → 专用代码嵌入(绝非文本嵌入)。
3
可接受的延迟
向量越大 = 搜索越慢 + 存储越多。对话式聊天 → 768,除非召回率至关重要。
4
量与成本
在10万+文档的规模下,768与3072的差异会转化为真实的存储和定期重新索引成本。
比模型选择更重要的事
好分块的差嵌入 >> 差分块的好嵌入。绝对优先级是语义分块,而非模型。
- 语义分块:尊重文档结构。参见企业RAG。
- 预摘要:索引(分块+摘要)可使技术语料的召回率翻倍。
- 元数据作为过滤器:类别/日期/作者在语义搜索前缩小范围。
- 重排序:嵌入top-50 → 交叉编码器top-5。Vertex AI Search原生支持。
- 混合搜索:语义+词法组合。同时捕获同义词和精确术语(合同编号、专有名词)。
如何评估搜索质量
| 指标 | 衡量内容 | 目标 |
|---|---|---|
| Recall@10 | 正确文档在前10中? | > 90% |
| MRR | 最佳结果的平均位置 | > 0.6 |
| nDCG@10 | 结果排序质量 | > 0.7 |
构建100–300对(问题,预期文档)的黄金集。使用Vertex AI Evaluation在每次变更时运行。更多内容参见生产环境AI智能体评估。
常见错误
⚠️ 5个常见陷阱
每周重新索引整个数据库(使用upsert)、在单语嵌入中混合语言、2000个token的分块会"模糊"语义、忽略结构化元数据,以及从未在样本上测试更换模型。
何时构建自己的嵌入
非常罕见。仅在以下情况下考虑:
- 极度特定的领域(工业化学、制药专利)。
- 规模可证明微调+服务的成本(每月数百万次查询)。
- 团队有专职ML工程师。
在95%的企业项目中,Vertex AI默认模型+精心分块胜过业余微调。
