为什么 RAG 还需要 Rerank
一句话速记
双塔检索:query 与 doc 分别 编码,再比相似度 —— 快,但不能对 (query, doc) 整对做深交互。
Rerank:用交叉编码器等在小集合 top-k 上再打分,把更相关的排到前面,用多算力换更准的序。
双塔瓶颈(为何还要二排)
- Bi-encoder:
sim(f(q), g(d)),f、g 各 只得固定 维向量,无法 建模 q 中某 词 仅 与 d 中某 句 的交叉 关系(以可接受 计算量 为前提)。 - 实际现象:同义 能抓,精 确到子句/否定/条件 时,易 次优排序。
- Reranker(常 cross-encoder):输入 拼接的 [q;d] 进 Transformer 出相关 分数,两两 算,准 但贵 → 只 在 k 个(如 50→重排→10)上跑。
常见 Rerank 形态
| 类型 | 说明 | 成本 |
|---|---|---|
| 交叉编码器 | query+doc 同进一网络,分类/回归 相关分 | 高、k 不宜大 |
| 轻量 模型 / 蒸馏 小模型 | 为时延 与成本 折中 | 中 |
| 重排序+截断 | 只对前 50 条 重排,再取前 5 进 prompt | 工程标配 思路 |
ColBERT 等「后期 交互」 介于双塔与全交叉 之间,不 把全文拼进一塔,记 有这一族 即可。
不用 Rerank 何时可接受
- 语料小、k 已很小、对 顺序不 敏感。
- 强 稀疏通道(BM25)已很 准的专名 场景。
- 强 预算与时延 约束,宁 调 query 改写/混合检索 也不上二排。
延伸追问
- Q:Rerank 和 用** 更大 embedding 换 一塔** 区别?**
答:更大单塔仍 是双塔 近似;非 任意可替代 成对 细交互,是 能力谱系 不同。 - Q:Rerank 能 替代 混合 检索吗?**
答:不能 单点替代;混合 解决 召 回** 广度,Rerank 解决** 序 与** 精 度。**
我的记法
TODO
状态
- 已背速记
- 能讲通俗版
- 能答追问
参考资料
- Dense Passage Retrieval 与后续 重排/ColBERT 系论文作脉络 即可。