Skip to content

L02-10 Rerank:召回之后必须精排 ​

全局中心内容:召回要广(重召回率),精排要准(重准确率),一个模型干不了两件事。 全局讲解主线:召回损失的直觉 → 双塔 vs 交叉编码 → 二阶段流程 → 成本 → 编码 → 什么时候可以不上。


P1 · 产出页 ​

中心内容:召回 50 条 → Rerank 取 5 条 → 生成,准确率显著提升。

  • 讲解技巧
    • 开场用一个比喻:召回是海选,精排是面试。让海选评委同时面试 50 个人是不现实的。
  • 时长:20s

P2 · 为什么召回不准 ​

中心内容:双塔模型把 query 和文档分别压缩成向量,压缩就丢信息。

  • 页面内容:双塔结构图;交叉编码结构图

  • 讲解技巧

    • 这是本节最关键的原理页:双塔是「各自编码后比距离」,交叉编码是「拼在一起过模型」。后者能看到词与词的交互,代价是慢。
    • 用一句话收尾:快的东西不准,准的东西不快,所以要分两段。
  • 时长:6min


P3 · 二阶段流程 ​

中心内容:向量/BM25 召回 top50 → Rerank → top5 → 拼进 Prompt。

  • 页面内容:流程图,标注每段的候选数量与耗时量级

  • 讲解技巧

    • 给数量级:召回 50~100 条,Rerank 后取 3~5 条。这个数字学员可以直接抄。
    • 强调 Rerank 的输入是原文文本不是向量,所以要把片段原文传进去。
  • 时长:5min


P4 · 成本与延迟 ​

中心内容:Rerank 每次要跑 50 次模型前向,是最贵的一环。

  • 页面内容:单次 Rerank 的延迟与费用估算

  • 讲解技巧

    • 诚实讲代价:Rerank 可能占整个 RAG 链路延迟的 30~50%。
    • 给优化手段:只对 top20 做 Rerank、本地部署小 rerank 模型、对高频 query 缓存。
  • 时长:5min


P5 · 编码:Rerank 接入 ​

中心内容:Spring AI 的 Rerank 抽象 + 降级开关。

  • 页面内容:RerankRetriever;开关关闭时按原始分数截断

  • 讲解技巧

    • 重点讲降级开关:Rerank 服务超时/超预算时,系统必须能降级为「按召回分数取 top5」,而不是报错。
    • 提醒不要把 Rerank 结果缓存进语义缓存的 key,会导致缓存命中率失真。
  • 时长:7min


P6 · 效果验证 ​

中心内容:看「正确答案是否进入 top3」这个指标。

  • 页面内容:加 Rerank 前后 top3 命中率对照

  • 讲解技巧

    • 明确指标定义:top3 命中率 / MRR,比 recall@10 更贴近最终答案质量。
    • 提醒:Rerank 提升的是排序,如果召回阶段根本没召到,Rerank 也救不了。
  • 时长:5min


P7 · 什么时候可以不上 ​

中心内容:文档少于几百篇、query 很短很明确时可以省掉。

  • 讲解技巧
    • 客观给判断标准:候选少于 10 条时 Rerank 收益很小。
    • 另一个信号:如果换更贵的 rerank 模型提升不到 2%,说明瓶颈在召回或切分。
  • 时长:3min

P8 · 避坑与小结 ​

中心内容:Rerank 会改变顺序,引用编号要在精排之后生成。

  • 讲解技巧
    • 引出下一节:答案怎么标注来源、怎么敢说「不知道」——02-11。
  • 时长:2min

讲师备忘 ​

项内容
课前必做准备 top3 命中率对照数据;准备一张双塔/交叉编码对比图
最容易超时处P2 原理部分,容易讲成论文——控制在 6 分钟
学员最常问「Rerank 模型怎么选?」答:中文场景优先 bge-reranker 系列,本地部署成本可控
现场备用Rerank 服务不可用 → 演示降级开关生效的效果