端到端 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 题表格内容需专用解析 —— 记录到已知问题,不再盲调。
复盘:调优的方法论比技巧更重要
- 先有评测集,没有它一切都是盲调;
- 每次只改一个变量,用 Hit Rate 定位问题在检索层还是生成层;
- 优化顺序固定:切分 → 召回 → 重排 → 改写,从前往后(便宜的先上);
- 知道何时停:剩下的失败属于"知识库本来就没有",记录而不是死磕。
这份复盘就是前几课的总装车间:切分(63) + 混合召回(64) + 重排(65) + 改写(24) 在一条真实流水线上的协作方式。
📝 课后练习
quiz-1 RAG 效果不佳时,正确的调优顺序是?