RAG 进阶 高级

端到端 RAG 调优实战:把 Hit Rate 从 62% 提到 91%

一条完整的调优复盘:按"评测定位 → 切分 → 混合召回 → 重排"的顺序逐层优化,每一步用数据说话。

背景与基线

企业内部知识库(600 篇文档)问答机器人,50 题评测集。基线配置:固定 500 字符切分 + 单路向量检索 Top-3 → Hit Rate@3 仅 62%。下面按工程顺序逐步优化,每步只改一个变量。

第一步:修切分(62% → 71%)

  • 固定长度切分 → Markdown 标题感知切分,块随章节结构;
  • 每块注入上下文前缀(文档名 + 章节路径);
  • 结论:命中提升最大的改动 —— 很多"检索不准"其实是"切碎了语义"

第二步:加混合召回(71% → 79%)

  • 接入 BM25 与向量双路 + RRF 融合;
  • 评测集里 8 道含产品型号的题目全部由 BM25 路补回 —— 关键词路的价值在专有名词

第三步:上重排(79% → 88%)

  • 召回 Top-20 → BGE-Reranker 精排取 Top-3;
  • 正确片段从"第 5~15 位"被顶到前三,Hit Rate@3 直接受益。

第四步:查询改写补漏(88% → 91%)

  • 对口语化问题做查询凝练 + Multi-Query 扩展(见《查询改写与 HyDE》);
  • 剩余 9% 失败 case 分析:3 题答案确实不在知识库(正常失败)、2 题表格内容需专用解析 —— 记录到已知问题,不再盲调

复盘:调优的方法论比技巧更重要

  1. 先有评测集,没有它一切都是盲调;
  2. 每次只改一个变量,用 Hit Rate 定位问题在检索层还是生成层;
  3. 优化顺序固定:切分 → 召回 → 重排 → 改写,从前往后(便宜的先上);
  4. 知道何时停:剩下的失败属于"知识库本来就没有",记录而不是死磕。
这份复盘就是前几课的总装车间:切分(63) + 混合召回(64) + 重排(65) + 改写(24) 在一条真实流水线上的协作方式。

📝 课后练习

quiz-1 RAG 效果不佳时,正确的调优顺序是?