本文属于 RAG 工程框架中的「6 模块化架构与评估闭环」环节,聚焦「Evaluation Benchmark(评测基准)」方法。可先阅读 RAG-00.方法概述 再进入本篇。
原理
建立固定评测集与指标体系,在每次改动后自动回归,防止质量、时延、成本退化。
关键技术/实现路径
- 分层指标(召回、重排、生成、系统)。
- 固定回归集 + 场景专项集。
- 自动化评测流水线。
优缺点
- 优点:迭代可控,结果可复现。
- 缺点:评测集维护成本高。
性能与资源
- 主要为离线计算成本。
应用场景
- 中大型 RAG 平台的持续迭代。
统一合成数据示例
输入数据片段
1 | {"benchmark":"travel_expense_v1","queries":120} |
中间结果(评测输出)
1 | {"recall_at_10":0.86,"mrr":0.74,"citation_precision":0.89,"p95_ms":840} |
最终生成示例(含引用)
1 | {"decision":"通过回归门禁","thresholds":{"recall_at_10":0.84,"p95_ms":900}} |
原始发表与工程实现
- 代表性原始发表:BEIR (2021), RAGAS (2024)。
- 核心解决问题:解决离线可复现评测。
- 成熟实现工具:RAGAS, DeepEval, TruLens。
详细原理拆解
- 固定评测集 + 固定指标(recall@k/MRR/citation_precision)保证可复现。
- 典型实现可拆为:输入预处理 -> 方法核心计算 -> 候选/证据构建 -> 生成与引用。
- 工程调优重点:质量(准确率/引用率)与成本(时延/token)的联合优化。
1 | flowchart LR |
工程落地扩展示例
伪代码
1 | def run_benchmark(system, dataset, metrics): |
参数示例
1 | benchmark: travel_expense_v1 |
常见失败案例
- 失败模式 1:评测集 与线上分布漂移,离线通过、线上崩。
- 失败模式 2:指标只看 相关性 不看 引用正确性,合规场景失真。
- 失败模式 3:多次调参 过拟合同一 dev 集,需锁盲测集。
Demo 数据带入计算示例
1 | 版本 A:recall@10=0.84 < 门禁 0.85 → 不通过;版本 B:0.88 → 通过。 |