AI 学习笔记(十三):RAG 评估自动化与回归基线管理(工程落地)
上一篇我们完成了 RAG 评估指标和检索调优方法,这一篇继续 Phase 4,解决另一个工程难点:
评估不是“偶尔跑一次”,而是要变成自动化回归体系。
很多团队在某次调优后效果不错,但两周后换了 embedding、改了切分或重排模型,质量悄悄下滑却没人第一时间发现。
要避免这种问题,关键是把评估变成和单测、构建一样的固定流程。
1. 先定义“基线”是什么
建议把基线拆成三层:
Data Baseline:固定评测集版本(问题、标准答案、证据文档 ID)Metric Baseline:固定关键指标阈值(Recall@K、MRR、Citation Accuracy)Runtime Baseline:固定成本与时延范围(P95 latency、token cost)
只有三层都固定,才谈得上“回归检测”。
2. 评估自动化的最小流水线
可以先落一条最小 CI 流水线:
- 拉取当前评测集快照(例如
eval-set-v7.jsonl) - 对候选版本执行批量问答
- 计算检索层和生成层指标
- 与上一个稳定版本做差异对比
- 输出评估报告并决定是否阻断发布
重点不是一步到位很复杂,而是先保证每次改动都会经过同一套评估路径。
3. 回归判定规则建议(可直接落地)
先用简单、可解释的门槛:
Recall@5下降超过2%=> 回归Citation Accuracy下降超过3%=> 回归P95 latency上升超过20%=> 性能回归- 单次请求平均成本上升超过
15%=> 成本回归
建议把规则写成配置文件,避免散落在脚本常量里。
4. 报告结构:让问题可定位、可复盘
每次自动评估报告至少包含:
run_id、模型版本、索引版本、评测集版本- 指标总览(当前值、基线值、差异百分比)
- 回归样本 TopN(问题、命中文档、答案、失败归因)
- 建议动作(继续发布 / 人工复核 / 阻断)
这份报告既是发布依据,也是后续排障入口。
5. 失败归因自动化:先做半自动就够用
不要一开始追求全自动根因分析,先做半自动:
- 规则优先归因:
retrieve_miss / rank_miss / generation_drift - 人工补充标签:对关键失败样本追加业务语义标签
- 每周汇总 Top3 失败类型,驱动下一轮调优优先级
这样能快速形成“评估 -> 归因 -> 修复 -> 再评估”的闭环。
6. 与发布流程结合:把评估当门禁,而非附属文档
建议至少设置两级门禁:
warning gate:轻微波动,允许发布但强制创建跟踪任务blocking gate:关键指标超阈值,阻断上线
如果评估只生成报告但不影响发布决策,长期很容易被忽略。
7. 一个可执行的目录约定(示例)
1 | rag-eval/ |
目录标准化后,切换成员和工具都更容易接手。
总结
RAG 评估真正难的不是“算指标”,而是把它做成稳定的工程机制:
- 有版本化基线
- 有自动回归检测
- 有清晰门禁策略
- 有可追溯评估报告
当这套体系跑起来,模型、索引、策略可以持续迭代,但质量不会靠运气维持。