RRF、DBSF、加权融合与Cross-Encoder重排怎么选?RAG排序策略指南
文章摘要
企业RAG从单一向量检索升级到混合检索后,通常需要解决“多路结果如何合并”和“候选文档如何再次排序”两个问题。RRF、DBSF、加权融合和Cross-Encoder经常被放在一起比较,但它们解决的层次并不完全相同。本文从输入、计算成本、是否依赖分数标定、可解释性和适用场景出发,给出一套可执行的选型方法。
一、先区分融合与重排
典型混合检索:
用户问题
├─ BM25或稀疏检索
├─ Dense向量检索
└─ 业务规则检索
↓
候选集合
↓
融合
↓
重排
↓
Top N上下文
其中:
融合
解决:
多路检索结果如何合并
常见方法:
- RRF;
- DBSF;
- WeightedRanker;
- 归一化后加权。
重排
解决:
候选文档与当前问题到底谁更相关
常见方法:
- Cross-Encoder;
- ColBERT或Late Interaction;
- 大模型评分;
- 业务规则重排。
因此,RRF和Cross-Encoder通常不是二选一,而可以串联:
Dense+Sparse
→ RRF融合Top100
→ Cross-Encoder重排Top20
→ 最终Top5
二、RRF:最安全的默认方案
RRF全称Reciprocal Rank Fusion。
它主要使用文档在各路结果中的排名,而不是直接使用原始分数。
简化公式:
score(d) = Σ 1 / (k + rank(d))
假设文档A:
BM25排名第1
Dense排名第4
文档B:
BM25排名第8
Dense排名第1
RRF会根据两路排名综合计算,而不要求:
BM25分数
和
余弦相似度
处于同一量纲。
优点
- 不依赖原始分数可比;
- 对不同检索器比较稳定;
- 参数少;
- 容易上线;
- 没有评测集时也能使用;
- 对异常高分不敏感。
缺点
- 丢失原始分数差异;
- 无法表达某一路检索更重要;
- 排名变化一位与分数巨大变化可能被同等处理;
- 业务定制能力有限。
适合
没有成熟评测集
Dense与Sparse分数量纲不同
需要快速上线混合检索
希望先获得稳定基线
三、DBSF:信任原始分数时更合适
DBSF可以理解为对每路结果的分数分布进行归一化,再合并。
它试图保留:
分数之间的相对差异
例如Dense结果:
0.91
0.90
0.89
0.50
前三条明显形成一个高相关组。
如果只看排名,0.89与0.50只是第三和第四;如果看分布,两者差距很大。
优点
- 保留原始分数信息;
- 当检索分数有可信统计意义时,排序更细腻;
- 不需要手工指定每路权重;
- 适合分数分布稳定的检索器。
缺点
- 对分数分布漂移更敏感;
- 不同租户或语料的分布可能不同;
- 极端值可能影响归一化;
- 需要持续监控检索分数。
适合
检索分数质量稳定
缺少标注集但相信原始分数
希望比RRF保留更多相关性信息
四、加权融合:有评测集时更有价值
加权融合通常表示:
final_score
= α × dense_score
+ β × sparse_score
+ γ × business_score
例如:
Dense:0.55
BM25:0.30
标题匹配:0.10
新鲜度:0.05
但原始分数必须先归一化,否则:
BM25分数可能是12.8
余弦分数是0.83
直接相加没有意义。
优点
- 可以表达业务偏好;
- 可以针对不同查询类型配置;
- 有标注集时可通过搜索或训练优化权重;
- 可叠加标题、时间、权限和质量分。
缺点
- 权重容易靠经验拍脑袋;
- 不同语料和查询类型需要不同权重;
- 分数归一化复杂;
- 模型或索引变化后需要重新调参;
- 容易过拟合小规模测试集。
适合
已经有黄金测试集
能够离线调参
业务规则明确
需要针对查询类型动态路由
五、WeightedRanker与普通加权有什么区别
Milvus等向量数据库提供WeightedRanker,用于合并多个向量字段或多路ANN结果。
例如:
标题向量权重0.7
正文向量权重0.3
适合:
- 多向量字段;
- 图文检索;
- 标题和正文重要性不同;
- 多Embedding模型组合。
它依然属于融合,而不是深度语义重排。
六、Cross-Encoder:精度高,但成本更高
Cross-Encoder把:
问题+候选文档
一起输入模型,直接预测相关性。
与Embedding的双塔结构不同:
Embedding:问题和文档分别编码
Cross-Encoder:问题与文档联合编码
联合编码能够更细致地判断:
- 条件是否匹配;
- 否定词;
- 数字;
- 术语;
- 上下文关系;
- 问题是否真的能被文档回答。
优点
- 通常比单纯向量相似度更准确;
- 能识别细粒度语义;
- 适合区分多个高度相似Chunk;
- 对法律、制度、产品参数等场景有价值。
缺点
- 每个候选都要计算;
- 延迟高;
- GPU或API成本;
- 候选过多时不可接受;
- 需要批处理和缓存。
正确使用方式
不要重排整个库。
应该:
第一阶段快速召回Top50或Top100
→ 第二阶段重排Top10或Top20
→ 取Top3到Top8给大模型
七、ColBERT与Late Interaction
ColBERT保留Token级向量,通过Late Interaction计算问题Token与文档Token之间的匹配。
它介于:
Dense双塔
和
Cross-Encoder
之间。
特点:
- 比普通Dense表达更细;
- 比Cross-Encoder更适合大规模检索;
- 存储和索引成本更高;
- 工程复杂度更大。
适合:
- 高质量搜索;
- 代码检索;
- 专业文档;
- 大规模且对精度要求高的场景。
八、LLM重排是否值得使用
可以让大模型对候选进行排序:
给定问题和10个片段
请按相关性排序
优点:
- 可使用复杂业务标准;
- 能输出解释;
- 快速验证想法。
缺点:
- 成本高;
- 延迟高;
- 输出不稳定;
- 候选多时Prompt很长;
- 可能受到片段中的提示词注入;
- 难以保证严格排序格式。
更适合:
离线标注
高价值低频任务
生成训练数据
评测Reviewer
不建议作为所有在线查询的默认重排器。
九、业务规则应该在哪一层加入
业务规则包括:
- 文档新鲜度;
- 权威来源;
- 当前版本;
- 用户常用产品;
- 地理距离;
- 热度;
- 人工精选。
可以在融合后加入:
final_score
= retrieval_score
+ freshness_boost
+ authority_boost
但权限规则不能只是加分或降分。
权限必须是硬过滤:
无权限文档
→ 直接排除
不能让高相关性覆盖访问控制。
十、如何选择
没有评测集
Dense+Sparse
→ RRF
RRF是稳妥默认值。
有稳定分数但没有评测集
Dense+Sparse
→ DBSF
有黄金测试集
归一化加权
或
Weighted RRF
通过离线指标选择参数。
高精度知识问答
混合召回
→ RRF或DBSF
→ Cross-Encoder
大规模专业检索
Dense/Sparse候选
→ ColBERT或Late Interaction
强业务排序
检索融合
→ Formula/业务规则
→ 可选Cross-Encoder
十一、候选数量怎么设置
示例:
Dense Top50
Sparse Top50
RRF融合Top30
Cross-Encoder重排Top15
最终返回Top5
候选太少:
- 正确文档可能未进入重排;
- 重排器无法挽救召回失败。
候选太多:
- 重排成本高;
- 延迟增加;
- 噪声更多;
- 批处理压力大。
应使用评测集调优:
候选召回率
重排后MRR
nDCG
P95延迟
单次成本
十二、不要只看最终问答准确率
检索排序应独立评估:
Recall@K
MRR
nDCG@K
Hit Rate
Answer-Bearing Recall
最终生成还应评估:
Faithfulness
Answer Correctness
Citation Accuracy
否则无法判断提升来自:
- 召回;
- 融合;
- 重排;
- 大模型。
十三、动态路由比固定策略更好
不同查询适合不同策略。
精确编号查询
“合同编号HT-2026-001”
→ Sparse或关键词优先
概念性查询
“渠道费用为什么难以核销”
→ Dense优先
多条件专业问题
混合检索+Cross-Encoder
可以先分类:
from enum import StrEnum
class QueryType(StrEnum):
EXACT = "exact"
SEMANTIC = "semantic"
COMPLEX = "complex"
再选择检索链。
十四、推荐的企业默认架构
权限和版本过滤
→ Dense Top50
+ Sparse Top50
→ RRF融合Top30
→ Cross-Encoder重排Top10
→ 去重与多样性控制
→ Top5进入上下文
如果延迟敏感:
跳过Cross-Encoder
或只重排Top10
如果成本敏感:
先RRF上线
有数据后再增加重排
总结
四类方法的定位可以概括为:
RRF:无评测集时的安全默认
DBSF:相信原始分数分布
加权融合:有评测集和业务偏好
Cross-Encoder:小候选集上的高精度重排
企业RAG最常用的不是单选,而是:
混合召回
→ 稳定融合
→ 小规模精排
延伸阅读
如果你正在关注企业级 AI 应用、RAG、Agent、MCP 与大模型工程化落地,欢迎访问 智元界:
https://www.zyentor.com/
智元界将持续分享可运行的技术实战、架构设计、问题排查与企业应用案例。