← 返回题目列表

RAG 中为什么需要 Reranker?Bi-Encoder 和 Cross-Encoder 有什么区别?

高频 中等 第 10 / 25 题 更新于 2026/07/25
RAGRerankerCross-Encoder重排

简化版

向量召回用 Bi-Encoder(双编码器)独立编码查询和文档,速度快但交互不足;Cross-Encoder 把查询和候选文档一起输入,让 token 级特征充分交互,相关性判断更准但计算更贵。所以 RAG 用**「宽召回、精重排」** 两阶段:先快速召回几十到几百条(保证不漏),再用 Cross-Encoder 重排出少量高相关上下文(保证准)。

详细版

维度Bi-EncoderCross-Encoder
输入方式查询、文档分别编码查询和文档成对联合编码
文档表示可离线缓存每个查询都要重算
检索规模百万级召回少量候选精排
交互能力向量级token 级
速度

Reranker 接收召回候选,为每个 query-document 对输出相关性分数再重排。候选太少会让正确文档在重排前就丢失;候选太多会增加延迟。

完整版教学

一、为什么向量相似 ≠ 能回答

Embedding 把整段文本压成一个向量,适合粗粒度语义召回,但可能混淆否定、时间条件、主体、细节

"支持退款" 和 "不支持退款":主题高度相似 → 向量距离可能很近
但对用户来说,一个是"能退"、一个是"不能退",天壤之别

Cross-Encoder 同时读问题和文档,能直接建模「这个文档是否回答这个问题」,更容易识别词序、否定、实体对应、条件约束——这是它比 Bi-Encoder 准的根源。

二、两阶段架构如何工作

第一阶段(高召回,宁滥勿缺):
  BM25 / Dense / Hybrid 召回 Top-100  ← 追求"别漏掉正确证据",允许混入噪声
第二阶段(高精确,去伪存真):
  Cross-Encoder 逐个精算相关性 → 重排 → 去重 → 选 Top-5  ← 追求"把真能回答的排前面"

分工明确:召回保 recall(别漏)、重排保 precision(别混)。具体数字(100、5)要按延迟和评估选,别照搬。

三、Reranker 的输入输出与陷阱

输入通常是「查询 + 单个 chunk」拼接的序列,输出一个相关性分数。一个高频坑:模型有最大输入长度,过长 chunk 会被截断——如果重要内容在 chunk 末尾就被切掉了。所以要保证切块长度和 Reranker 上限匹配

实现上,有的是分类式 Cross-Encoder,有的直接生成分数或 yes/no token;也可用大模型做 Listwise 重排(一次看多个候选),但成本、稳定性、延迟更高。

四、分数怎么用(不止排序)

除了排序,还可设最低相关性阈值:低于阈值时拒答或扩大检索。但注意——不同模型的分数未必是校准概率,阈值要用业务数据确定。

另一个易错点:只按分数取前几名可能得到同一文档的重复邻近块。可加 MMR(最大边际相关)、文档级配额、相邻块合并,在「相关性」和「信息多样性」之间平衡。

五、Reranker 不是万能

它有明确边界:

  • 召回阶段漏掉的证据,Reranker 无法凭空找回(它只能排序已召回的候选);
  • 训练域和业务域差异大时,排序分数不可靠;
  • 查询依赖对话上下文时,只送最后一句会误判;
  • 不是事实验证器——排在第一不代表内容正确。

六、常见误区与追问

  • 误区:向量相似度高就能回答问题。 会混淆否定/时间/主体(“支持退款”vs”不支持退款”向量很近),要 Cross-Encoder 精判。
  • 误区:Reranker 能弥补召回漏掉的证据。 不能,它只排序已召回候选,漏了就找不回。
  • 误区:只按 Reranker 分数取 Top-k 就行。 可能取到同文档重复块,要加 MMR/配额/合并保多样性。
  • 误区:Reranker 分数是概率。 未必校准,阈值要业务数据确定。
  • 追问:Bi-Encoder 和 Cross-Encoder 核心区别? 前者查询文档分开编码(可离线缓存、快、向量级交互);后者成对联合编码(每次重算、慢、token 级交互、更准)。
  • 追问:为什么用两阶段而不是全用 Cross-Encoder? Cross-Encoder 每个 query-doc 都要重算,百万级文档算不起,只能对少量候选精排。
  • 追问:候选数怎么定? 太少正确证据可能在重排前丢失,太多延迟高,按延迟和评估结果选。
  • 追问:Reranker 收益什么时候有限? 召回已很准时边际收益小;复杂/噪声大的知识库收益更明显。

七、加强记忆

Reranker 记「宽召回、精重排」:Bi-Encoder 像按简历关键词海选(快、可离线缓存、能看很多人),Cross-Encoder 像面试官逐份对照岗位精审(慢、token 级交互、更准)。第一阶段高召回别漏(Top-100),第二阶段高精确排前面(Top-5)。核心认知钉死:向量相似≠能回答(会混淆否定/主体)、Reranker 找不回召回漏掉的证据、分数未必是概率、只按分排可能取重复块(要 MMR/配额)。它是候选排序器,不是检索器也不是事实验证器。