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-BERT;MTEB 榜单作粗筛;各模型卡(model card)的 intended use。