跳到正文
docai.cc

DOCAI · 概念 · L3

重排(rerank)解决什么问题

一句话定义

用交叉编码器对召回的候选逐条精排,把真正能回答问题的片段排到前面。

专业更新 2026-11-13核验 2026-11-13 · docai 编辑部

它是什么

重排(rerank)是在召回之后追加的一步精排。检索先用向量或关键词粗筛出一批候选,再由一个专门的模型逐条判断「这个片段到底能不能回答这个问题」,按相关性重新排序,只把最前面的几条交给大模型。

怎么工作

召回和重排的目标不同。召回追求快和全,向量检索把查询和片段分别编码成向量再比相似度,代价低,但它比较的是整体语义像不像,而不是能不能回答问题。

重排通常用交叉编码器:把查询和候选片段拼在一起送进模型,直接输出相关性分数。查询和文档在模型内部发生交互,判断更准;代价是每条候选都要单独跑一次,开销随候选数量增长。

常见的取数方式是召回 top-k,重排后取前 n 条放进上下文。k 和 n 要一起调:k 太小,正确答案进不了候选;n 太大,无关片段占满预算。

重排是同步链路里新增的一跳,候选多、文本长时延迟明显。工程上要设超时和降级:重排服务不可用时退回原始召回顺序,而不是让整个问答失败。

没有重排模型时,可以用规则兜底:关键词命中、字段权重、时间新近度、来源可信度。对专名、编号、错误码这类查询,关键词规则往往更稳。索引层也能直接设置相似度阈值和过滤条件。

常见误解

  • 重排能救回没召回到的内容:不能。重排只对候选集排序,召回漏掉的内容它看不到。
  • 重排模型越大越好:延迟和成本一起涨,收益还取决于候选质量。
  • 上了重排就一定更好:召回本来就好、n 又小时,提升可能抵不过延迟。
  • 只看最终答案:要把召回质量和排序质量分开评估,否则无法判断问题出在哪一层。

怎么评估重排有没有用

用一批带标注的问题,固定召回结果,比较重排前后正确片段进入前 n 的比例;再看端到端答案正确率和延迟变化。如果命中没有提升、延迟明显增加,就不要上重排。评估方法可以参考如何评估一次改动。

延伸阅读

什么时候用得上

当向量召回的结果「意思接近但答非所问」、前几条经常混入无关片段时,考虑在召回后加一层重排,并先算清延迟和候选数量。

常见误解

很多人以为重排能把漏掉的答案找回来。重排只对已经召回的候选重新排序,召回阶段没进候选的内容,重排模型再强也看不到。

来源

定义与事实以以下来源为准;表述与取舍是本站整理的。
  1. [1]Cohere · Rerank overview
  2. [2]Elasticsearch · kNN search
查看 Markdown

所属专题

相邻概念