Rerank重排序
707 字约 2 分钟
domain/aiai/rag
2026-07-24
1. 核心结论
- Rerank 是对初步检索结果进行精细排序的步骤,能显著提升检索质量
- Cross-Encoder 模型比 Bi-Encoder(embedding)更准确但计算成本更高
- Rerank 通常用于 top-50 到 top-5 的精排阶段
- 好的 Rerank 可以减少送入 LLM 的噪声,提升回答质量
- Rerank 是 RAG 系统中性价比最高的优化手段之一
2. 基础概念
Rerank:对检索结果重新排序,提升最相关文档的排名。
Bi-Encoder:双编码器,分别编码查询和文档,计算向量相似度。速度快但精度有限。
Cross-Encoder:交叉编码器,将查询和文档一起编码,捕捉交互特征。精度高但速度慢。
Relevance Score:相关性分数,衡量文档与查询的匹配程度。
Top-K:检索返回的文档数量。
NDCG:归一化折损累计增益,评估排序质量的指标。
3. 工作原理
Rerank 流程:
- 初步检索:
- 使用 Bi-Encoder 或 BM25 检索 top-50 文档
- 快速召回候选文档
- Rerank 评分:
- 将查询和每个候选文档送入 Cross-Encoder
- 计算精确的相关性分数
- 模型理解查询-文档的细粒度匹配
- 重新排序:
- 按 Rerank 分数排序
- 选择 top-K 送入 LLM
- 阈值过滤:
- 低于阈值的文档丢弃
- 避免不相关文档干扰
主流 Rerank 模型:
- Cohere Rerank
- BGE Reranker
- Jina Reranker
- Cross-Encoder(Sentence Transformers)
- ColBERT
性能对比:
- Bi-Encoder:毫秒级,适合大规模召回
- Cross-Encoder:百毫秒级,适合精排
- 典型配置:Bi-Encoder 召回 50 → Cross-Encoder 精排取 5
4. 实战场景
- RAG 系统:提升检索结果质量
- 搜索引擎:精排搜索结果
- 推荐系统:精排候选物品
- 问答系统:选择最佳答案
- 文档匹配:合同条款匹配
- 信息抽取:选择最相关的文本片段
5. 常见误区
- 对所有文档做 Rerank:计算成本过高
- 忽视阈值设置:不相关文档也会进入 top-K
- 不评估 Rerank 效果:没有对比有无 Rerank 的差异
- 选择过大的模型:Rerank 模型不需要太大,速度更重要
- 忽视领域适配:通用 Rerank 模型在专业领域效果可能不佳
6. 进阶方向
- 领域自适应 Rerank
- 多阶段 Rerank
- 轻量级 Rerank 模型
- 多语言 Rerank
- 联合训练 Rerank
- 实时 Rerank 优化
7. 推荐资料
- Cohere Rerank - https://docs.cohere.com/docs/rerank-2
- BGE Reranker - https://github.com/FlagOpen/FlagEmbedding
- Sentence Transformers Cross Encoder - https://www.sbert.net/examples/applications/cross-encoder/README.html
- Jina Reranker - https://jina.ai/reranker/
- ColBERT - https://github.com/stanford-futuredata/ColBERT
8. 关联笔记
- Hybrid Search
- 检索增强生成流程
- RAG评估与优化
- 向量与Embedding