五厂面经真题集腾讯面经高频腾讯真题RAG精排速答 · 约 5 分钟更新 2026-09-29

Reranker 放在召回链路的什么位置?候选数量怎么确定?

一句话结论

Reranker 放在召回之后、生成之前,先合并多路召回结果,再用交叉编码器精排出少量候选进入上下文。

先这样答

Reranker 放在召回之后、生成之前,属于精排阶段。它不负责生成答案,而是从召回得到的候选中,筛出更适合进入上下文的内容。

具体流程是多路召回各取 Top-N。这里的 N 通常是几十到几百。系统合并各路结果并去重,再交给 Reranker 排序。Reranker 最后输出 Top-K。K 通常是几个到十几个,只有这些结果会进入上下文。

N 和 K 要分开考虑。Reranker 使用交叉编码器,延迟比较敏感。N 越大,候选覆盖通常越好,但排序速度会变慢。线上常见的 N 会取几十档。K 主要由上下文预算决定。K 太大,后面的噪声会进入上下文并稀释注意力。实际选择时,要在召回覆盖、排序延迟和上下文预算之间取平衡。

面试官会怎么追问

  • 「为什么不直接把多路召回结果交给大模型?」 召回结果里会混入相关性较弱的内容。Reranker 先对候选做精排,再只把 Top-K 送进上下文。这样可以减少后面的噪声对注意力的稀释。

  • 「Top-N 和 Top-K 分别应该怎么定?」 Top-N 决定交给 Reranker 的候选范围。N 可以从几十到几百,通常要结合排序延迟来选。Top-K 决定进入上下文的内容数量,主要受上下文预算约束。

  • 「N 取大一些是不是一定更好?」 N 越大,候选覆盖可能越好。Reranker 需要处理的候选也越多,延迟会更高。线上通常会在几十档选择,而不是无限扩大 N。

回答的坑

  • 把 Reranker 放在生成之后,混淆了精排和生成的职责。
  • 只说 N 越大越准,却不说明交叉编码器带来的延迟代价。
—— 本题完 ——