Embedding 模型怎么选?看哪些指标?维度越大越好吗?
谁在问:一二面必问;「维度越大越好吗」是常设陷阱
口语化问法
- 你们用的什么 embedding 模型?为什么选它?
- MTEB 榜第一的那个不是最好吗?
- 1536 维和 768 维差在哪,是不是维度越高越准?
考察意图
三个陷阱依次埋着:① 只看综合分——MTEB 综合分含大量与 RAG 无关的任务,做检索应该只看 Retrieval 子榜;② 唯榜单论——榜单是通用语料,你的领域可能完全不同,最终依据只能是自建评测集;③ 维度崇拜——维度是成本精度旋钮,不是越大越好。三个都能绕开的候选人不多。
参考答案
60 分答案(及格线)
主要看三方面:效果——参考 MTEB / C-MTEB 榜单,但要看 Retrieval 子榜而不是综合分,最终还要用自己的数据验证;成本与部署——API 免运维但量大了很贵,开源模型可自托管、数据不出内网;适配性——中文场景、领域词汇、最大输入长度是否够。维度不是越大越好,维度高意味着存储更大、检索更慢,很多场景降维后召回率只掉一两个点而速度和存储收益明显。
90 分答案(有生产经验的回答)
补四层:
- 为什么只看 Retrieval 子榜:综合分包含分类、聚类等任务,一个模型可能靠这些拉高综合分而检索平平。做 RAG 只关心检索。
- 自建评测集才是决定性依据:哪怕只有 100 条人工标注的「问题 → 正确 chunk」对,也比榜单可信,因为榜单是通用语料,你的语料可能全是内部代号、专业术语。
- 维度当成本旋钮:现代模型普遍支持维度截断(MRL,训练时就让前 N 维承载主要信息,所以能直接截断而不必重训)。实践是测几个档位的 recall@k,取拐点,而不是默认用最大维度。
- 两个能踩雷的工程点:① 许可证——部分高分开源模型是 CC-BY-NC,不允许商用,企业场景必须确认;② 换模型 = 全量重建索引,几百万向量重跑成本不小,所以选型要在项目早期定下来。
再补一个 2026 年的判断:开源模型在主流基准上已追平甚至反超闭源 API,且成本差距可达一个数量级以上。所以「用 OpenAI 更保险」这个默认假设在 2026 年需要重新论证,尤其在中文和大数据量场景。
追问链
一路绕开榜单:每层都在问「你自己的数据和约束说了什么」
你说要用自己的评测集,具体怎么建?
期望真实提问日志抽 100–200 条 → 人工标注到 chunk 级的正确答案 → 按口语化/专有名词/长问题分桶 → recall@k、MRR、NDCG 对比候选,同时记编码耗时与存储成本,效果与成本一起决策信号说不出标注对象是「chunk 级」→ 大概率没真做过检索评测维度从 1536 降到 512,你怎么知道掉了多少?
期望评测集直接测各档位 recall@k / NDCG → 画精度-维度曲线找拐点;常见结论是某档位精度只掉 1–2%,而存储与查询速度提升数倍信号说「有拐点、要画曲线」→ 量化思维;只说「降维会掉一点」→ 泛泛而谈你们领域有很多内部代号和型号,embedding 对这些词效果怎么样?
期望通常差 —— 低频专有名词在向量空间区分度低。解法:BM25 那一路补齐(混合检索)→ 或换支持稀疏向量的模型(如 BGE-M3 三合一)→ 必要时领域微调。这问实际是在把话题引向混合检索信号答「embedding 都能理解」→ 没在专业语料上测过换 embedding 模型的成本是什么?
期望全量重新编码 + 重建索引 —— 百万级向量是小时到天级的作业,还要处理切换期的双写或停机;所以选型要在项目早期定死,并留意模型会不会被下线信号意识不到「换模型 = 重建全量索引」→ 没经历过模型迭代有个模型分数最高,但许可证是 CC-BY-NC,你怎么办?
期望顺序是许可证检查前置到选型清单第一步 → 命中 CC-BY-NC 即排除,不商量 → 仍想要就走商业授权或托管 API。企业场景合规优先于分数,而不是选完才发现信号说「先用着再说」→ 风险认知缺失,这是能让整个项目返工的那种
分水岭在第 1 层和第 4 层:前者考「你真建过 chunk 级评测集吗」,后者考「你知不知道选型是不可逆的」—— 只会报榜单名次的,两层都接不住。
评分要点
- 提到 MTEB / C-MTEB 但明确说要看 Retrieval 子榜
- 强调自建评测集才是最终依据
- 明确否定「维度越大越好」,能说出成本精度权衡
- 提到自托管 vs API 的成本与数据合规差异
- 知道 query 与 document 必须用同一模型编码
- 加分:知道许可证风险(CC-BY-NC 不可商用)
- 加分:知道换模型需要全量重建索引
- 加分:知道部分模型 query 侧需要指令前缀,漏加会掉点
常见错误
「用榜单第一的」——三个陷阱全踩。
认为维度越高越好。
完全不提评测方法,选型全凭博客推荐。
不知道 query 和 doc 必须用同一模型(这个错会让系统整体失效却不报错)。
从没考虑过许可证和数据出境合规。