检索重排序
概述
检索重排序(Retrieval Reranking)是 RAG 流水线中的精排步骤:在初始召回(粗排)获得大量候选 Chunk 后,用专门的重排序模型对每个 Chunk 结合查询重新评分,筛选出最相关的 Top-K 个注入模型。
关键内容
动机:粗排的局限
初始召回(嵌入相似度 + BM25)速度快但精度有限,大知识库中常返回数百个相关性参差不齐的 Chunk。不加筛选地将大量 Chunk 注入模型会: - 消耗注意力预算(见 注意力预算),分散模型注意力 - 引入噪声,降低回答质量 - 增加 token 成本和延迟
重排序解决"多中取精"的问题。
工作流程
初始检索(粗排)→ Top-150 候选 Chunk
↓
重排序模型(query + chunk × 150 → relevance score)
↓
取 Top-20 高分 Chunk
↓
注入模型生成最终回答
性能数据(Anthropic 实验)
单独使用 Cohere Reranker,在 情境化检索(情境化嵌入 + 情境化 BM25)基础上继续改善:
| 方案 | Top-20 失败率 |
|---|---|
| 情境化嵌入 + 情境化 BM25 | 2.9% |
| + Reranking(Cohere) | 1.9% |
与无任何增强的基准(5.7%)相比,联合方案将失败率降低 67%。
实现权衡
| 因素 | 说明 |
|---|---|
| 延迟 | Reranking</td> </tr> <tr> <td><strong>成本</strong></td> <td>重排粒度越细(候选越多)成本越高</td> </tr> <tr> <td><strong>粗排规模</strong></td> <td>候选 Chunk 越多(如 150 vs 50),精排潜力越大,但[[计算开销增加 |
| Top-K 选择 | 最终注入的 Chunk 数(20 vs 10)需平衡检索覆盖与注意力预算 |
最佳实践:在具体用例上实验不同的粗排数量(100~200)和精排 Top-K(10~20),找到延迟/成本/质量的最优平衡点。
主流重排序模型
- Cohere Reranker:Anthropic 实验中使用,效果验证充分
- Voyage Reranker:Voyage AI 提供,未在本次实验中测试
- 其他:Jina AI、BGE Reranker 等开源选项
来源
- raw/articles/ai-engineering/anthropic-engineering/Contextual Retrieval in AI Systems.md
相关
- 情境化检索 — related_to(两者联合实现 67% 失败率降低)
- 检索增强生成 — part_of(重排序是 RAG 流水线的可选精排步骤)
- 注意力预算 — related_to(重排序通过减少注入 Chunk 数量保护注意力预算)
- Context-Engineering — part_of(精排是上下文信息质量控制的关键手段)