Reranker

别名:重排器 / Cross-Encoder Reranker

对召回候选做 cross-encoder 精排,选出最相关的 Top-K;精度高但延迟大。

更新于 2026/11/08
RAG检索排序

一句话定义

Reranker 是对召回候选做二次排序的模型:它把 query 和每个候选文档拼在一起打分(cross-encoder),选出最相关的 Top-K 放进上下文。

为什么需要它

向量检索是 bi-encoder:query 和文档各自编码,快但精度有限。Reranker 让 query 和文档逐对交互,能捕捉更细的相关性;代价是每个候选都要一次前向。

怎么工作

  1. 向量检索先召回 Top-N(如 50–200)。
  2. Reranker 对每个 query-doc 对打分。
  3. 按分数排序,取 Top-K(如 5–10)。
  4. 可选去重、压缩,再放进上下文。

Reranker:先召回,再精排

关键取舍

  • 精度通常高于纯向量召回,但延迟随候选数线性增长。Reranker 不是免费。
  • 候选太多会拖慢;候选太少会漏掉正确结果。
  • cross-encoder 模型越大越准,也越吃显存。
  • 多语言/领域数据要选匹配的 reranker。
  • Reranker 常用交叉熵/对比学习训练,需要标注相关性。
  • 线上要限制候选数和超时,避免尾延迟。
  • 小模型 reranker 可以跑在 CPU/边缘。
  • 多语言、长文档要先切块再打分。
  • Rerank 与向量召回互补,不是替代;Top-K 不是越多越好,按延迟预算调。先做离线评测再上线。

常见误区

  • Reranker 能替代向量检索:它通常只做精排,召回仍靠向量/关键词。
  • 候选越多越好:延迟和成本会上升,收益递减。
  • Reranker 分数可跨模型比较:不同模型的分数尺度不同。
  • 重排后不用去重:重复片段仍会挤占上下文。

用在哪里

  • RAG 的检索后处理。
  • 搜索、问答、推荐的精排。
  • 对相关性要求高、延迟可接受的场景。

相关概念