用途:在初步检索之后,对已召回的文档重新打分排序,从而提高搜索精度。资料指出,初始的双编码器检索速度快但精度近似,交叉编码器或 LLM 能同时处理查询与文档,速度慢但更准确,因此常用做法是“先多召回(top-50)、再重排保留少量(top-10)”。
主要能力与模式:
- 交叉编码器重排:使用 sentence_transformers 的 CrossEncoder,默认模型 cross-encoder/ms-marco-MiniLM-L-6-v2,将查询与文档组成对并预测分数,排序后返回 top_k。
- LLM 批量重排:构造包含全部候选文档的提示,让模型按 0.0-1.0 逐行输出相关性分数,再解析、排序;示例模型为 gpt-5.2-mini,温度设为 0。
- Cohere Rerank API:使用 rerank-english-v3.0,传入查询与文档内容,取回带 relevance_score 的结果。
- 组合评分:以加权平均融合基础检索分、LLM 分与时效分(示例权重 alpha=0.3、beta=0.5、gamma=0.2)。
- 完整重排服务:设置超时(示例 5 秒),超时则回退到按原始分数排序,实现优雅降级。
使用与最佳实践:资料建议先召回 50-100 条再重排到 10 条;LLM 重排时每篇文档截断到 200-400 字符;始终设置超时并回退;同一查询与文档对可缓存分数;尽量一次 LLM 调用批量处理所有文档。模型选择上给出延迟、成本与质量对比:cross-encoder/ms-marco-MiniLM-L-6-v2 约 50ms、免费、质量好;BAAI/bge-reranker-large 约 100ms、免费、更好;cohere rerank-english-v3.0 约 200ms、约 $1/1K、最佳;gpt-5.2-mini 约 500ms、约 $0.15/1M、很好。
适用场景:需要高精度的生产级 RAG 系统、双编码器嵌入丢失语义细节时、需要融合多种相关性信号时。
限制与说明:资料未提供具体的安装命令、完整可运行环境依赖版本或评测脚本;上述代码为示例,价格与模型名以资料原文为准,实际以官方文档为准。