什么是 Reranker?为什么 RAG 要“二次排序”

Reranker 是什么?向量检索找出的结果为什么还要重排、它和 Embedding 的区别、何时值得加入重排序模型,一文讲清。

什么是 Reranker?为什么 RAG 要“二次排序”
编辑部 ·

向量检索擅长从海量资料里快速捞出“看起来相关”的几十段,但它不总能把最能回答问题的那一段排在第一名。**Reranker(重排序模型)**负责第二轮更细的判断:拿着问题和候选片段逐一比较,再重新排出最值得交给大模型的几段。

两阶段检索

可以把它理解成招聘流程:第一轮用简历筛出 50 人,第二轮再仔细面试选出 5 人。

  • Embedding 检索:快,适合在百万资料里初筛
  • Reranker:更慢但更精细,适合对少量候选重排

这样既保留速度,也提升最前面结果的相关性。

它为什么更准

向量检索通常把问题和文档分别编码后比较相似度,速度很快;Reranker 会同时阅读“问题 + 某个片段”,直接判断两者是否匹配,能更好理解否定词、限定条件、词序和细节差异。

代价是每个候选都要额外计算,所以不该对整个知识库直接重排,只对第一轮取回的 Top N 使用。

什么时候值得加

  • 检索结果看似相关,但答案经常引用错片段
  • 文档术语相近、多个章节容易混淆
  • 用户问题有多个限定条件
  • 知识库规模较大且准确率比毫秒级延迟更重要

若资料很少、问题很简单,直接检索可能已经够用。先用RAG 评测确认瓶颈在排序,再决定是否增加 Reranker。

总结

Reranker 不是替代向量检索,而是给初筛结果做精排:先快后准。它能提高 RAG 上下文的相关性,但也增加延迟与成本。只有当真实评测显示“找到了却没排对”时,二次排序才真正值得加入。