Appearance
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 服务不可用 → 演示降级开关生效的效果 |