重排序(Reranker)是检索系统里负责“二次挑选结果”的那一层。它通常出现在初步召回之后,用来把一批“看起来都像相关”的片段重新排一遍顺序,尽量把真正最相关的内容顶到前面。很多知识库系统不是没搜到,而是搜到后排错了,模型最后吃到的是次优材料,这时就轮到 Reranker 发挥作用。
它和 Embedding 检索不是一回事
Embedding 检索更像第一轮粗筛,目的是快速从大量文档里捞出候选结果;Reranker 更像第二轮精排,重点不是速度,而是更细地判断“这个问题和这段内容到底是不是最匹配”。前者偏召回,后者偏精度,两者经常配合使用。
为什么知识库系统经常需要它
- 用户的问题往往很短,但文档片段很长,光靠向量相似度容易把“像相关”的段落排到前面。
- 业务里常有版本、部门、产品线、时间条件这些细边界,初筛阶段不一定分得清。
- 当多个片段都含有相似关键词时,模型最怕先读到错的那条证据。
Reranker 解决的不是“有没有”,而是“先给谁”
这点特别关键。它通常不负责从零找资料,而是把已经召回的一组候选重新比较。换句话说,Reranker 不是万能补丁。如果前面根本没召回到正确片段,它也救不回来;但如果问题出在“正确答案被压到后面”,它就很有价值。
常见误解
- 误解一:加了 Reranker,知识库就一定更准。实际上它只能优化排序,不能替代文档切块、过滤和上下文拼接。
- 误解二:它就是更贵一点的搜索。更准确地说,它是更精细的相关性判断层。
- 误解三:只有大系统才需要。只要你的知识库开始出现“明明有资料却老答偏”,就已经值得理解它了。
所以,Reranker 最适合解释一种特别常见的用户感受:资料明明在库里,系统也像是搜到了,可答案就是不贴题。很多时候,真正的断层就发生在排序这一步。