核心原则
先宽召回再窄重排:常见模式是 top 20-80 候选进入 top 3-10 上下文。
Cross-encoder 精度高但延迟高,ColBERT 类 late interaction 在速度和质量之间折中。
当答案忠实度比极低延迟更重要时,应优先考虑重排序。
重排序输入应保留标题、来源和关键 metadata,不要只给孤立正文。
应监控重排序带来的成本、p95 延迟和答案拒答率变化。
方法对比
| 方法 | 延迟 | 成本 | 最适合 |
|---|---|---|---|
| 无重排序 | 最快 | 低 | 低风险内部搜索 |
| BGE-Reranker | 中 | 中 | 中英 RAG |
| Cohere Rerank | 中 | 中 | 托管企业搜索 |
| ColBERT | 中偏快 | 中 | 高吞吐语义排名 |
大厂与框架实践
Cohere Rerank 常作为托管二阶段 ranker 接入企业搜索。
BGE reranker 在自托管中文企业栈中很常见。
ColBERT late interaction 适合需要 token 级匹配但不能接受 cross-encoder 全量成本的系统。
政策问答中重排序能把最新版本条款排到旧版本之前。
表格问答中重排序输入若缺表头,模型即使更强也无法判断数字含义。
关键论文与参考
monoT5,Nogueira 等,2020
ColBERT,Khattab 与 Zaharia,2020
RankGPT,Sun 等,2023
BGE Reranker,Xiao 等,2023
TART,Asai 等,2023
深度讲解
重排序收益可以用 delta_ndcg = ndcg_rerank - ndcg_first_stage 观察。如果 top40 重排到 top6,延迟约等于 base + 40 * pair_cost;pair_cost 在托管 API 和自托管 GPU 上差异很大。一个常见阈值是:若 nDCG@5 提升低于 3 点且 p95 增加超过 300 ms,就只在高风险域启用。输入模板建议包含 title、section、date、body,避免 reranker 只根据正文片段判断相关性。
最佳实践
候选池太小不要启用重排序评测。
按业务域开关重排序,而不是全局强制。
同时报告质量提升和 p95 延迟增加。