Embedding 模型怎么选

一句话速记

检索用 embedding 常见为双塔句向量/段向量,目标是在表示空间里让「语义近」的距离近**;选型看:(通用/医/法/代码)、语种维度与延迟是否可本地部署与 Rerank 是否同族** 有无增益。**

和「生成模型」的区分

  • Embedding 模型(Encoder 系为主):输入→固定维向量,用于相似度/聚类/检索第一阶。
  • 生成/对话模型:不直接当大规模语料离线全量廉价 索引的唯一选择(贵、慢);RAG 索引侧主流仍是小一号的 embedding 模型或专用 sentence-transformers 类。

选型维度

维度说明
通用(百科、聊天)** vs 医疗/金融/法条/代码;后者常要域内微调过的 checkpoint
语种多语 是否 平行好(mE5、multilingual 系列等);中英混 看基准(MTEB 子集、自建黄金集)
最大长度必须 ≥ 典型 chunk 长度(按 token)
维度 d大则更细存与算 增;常 256~1536+;可 PCA 降维(有损失)
延迟/吞吐在线 query 一次;离线 文档百万级则批大小GPU/CPU 要估
归一化内积/余弦常配合 L2 归一化点积+温度和索引库/量化 一致

与 Rerank 的配合

  • 双塔 embedding 追求牺牲 细粒度query-文档交互。
  • 高价值场景常 小集合交叉编码器 Rerank;embedding 与 reranker 同系列配套 论文推荐组合(不绝对)。

闭源 API vs 自托管

  • 闭源 API:迭代快、 运维;数据出境QPS/费用 约束。
  • 自托管(BGE、E5 系等):合规成本 可预期;自己压测版本 管理。

延伸追问

  • Q:能直接拿 7B 聊天模型最后一层出向量做检索吗?**
    答:一般不当作第一选择:推理未必长文档池 做了句级 对比训练;有研究用最后一层+池化作 embedding, 实验/特定架构, 专用嵌入模型别混成默认

  • Q:MTEB 分数高就一定好?
    答:公开榜与语料/查询 分布 不一致;自己 标注集一版检索 Recall@k

我的记法

TODO

状态

  • 已背速记
  • 能讲通俗版
  • 能答追问

参考资料

  • Sentence-BERTMTEB 榜单作粗筛;各模型卡(model card)的 intended use