如何评估一个 RAG 系统?检索和生成分别看哪些指标?
简化版
RAG 必须拆开评估检索与生成:检索看正确证据能否进前 k 名及排序质量(Recall@k、Precision@k、MRR、nDCG);生成看答案正确性、相关性、忠实度(Faithfulness)、引用支持。最后再结合端到端任务成功率、拒答、安全、延迟、成本。不能只靠一个 LLM-as-a-Judge 分数——评审模型有偏差,重要结论要人工标注校准。
详细版
评估分四层:
- 检索层:Recall@k、Precision@k、Hit Rate、MRR、nDCG;
- 上下文层:Context Precision、Context Recall、噪声比例、证据覆盖率;
- 生成层:答案正确性、Answer Relevance、Faithfulness、引用支持率、拒答准确率;
- 系统层:任务成功率、P50/P95 延迟、吞吐、token 成本、权限泄露率。
RAGAS 等框架可用 LLM 在缺人工标注时评上下文相关性、回答相关性、忠实度,加快迭代;但评审模型受提示/语言/领域/自身错误影响,重要结论必须人工标注校准。
完整版教学
一、为什么要分层评估(同样是”答错”,根因不同)
只看最终答案无法定位问题。同一个「答错」可能有完全不同的根因:
知识库根本没有答案 → 该拒答却硬答(拒答问题)
正确文档存在但没召回 → 召回问题(调 Retriever/切块)
正确块召回了但排名太后 → 重排问题(调 Reranker)
上下文正确,模型忽略/曲解 → 生成问题(调 prompt)
答案正确,但引用不支持它 → 引用问题
分层评估才能知道该调切块、Retriever、Reranker 还是提示词——这是 RAG 评估的核心价值。
二、检索指标怎么理解(附例子)
| 指标 | 含义 | 关注 |
|---|---|---|
| Recall@k | 所有相关证据中有多少进前 k | 漏没漏 |
| Precision@k | 前 k 中有多少相关 | 噪声 |
| Hit Rate@k | 前 k 是否至少 1 条相关 | 有没有命中 |
| MRR | 第一条相关结果排名的倒数均值 | 首个命中位置 |
| nDCG | 支持多级相关性、高排名高权重 | 排序质量 |
一个问题需要 3 条证据才能完整回答:
Hit Rate@5 命中 1 条 → 看起来"成功",但另外 2 条没召回 → 答不全
Recall@5 = 1/3 → 才真实反映"证据不齐全"
→ 多证据问题必须看 Recall,Hit Rate 会给虚假的成功感
三、上下文评估:不是越多越好
- Context Precision:送给模型的上下文是否集中在相关证据(噪声少);
- Context Recall:回答所需证据是否被覆盖(不漏)。
还要测重复块比例、矛盾证据、token 利用率。关键认知:上下文越多不一定越好——噪声增成本,还可能触发长上下文的「中间遗忘」。好的上下文选择在「证据覆盖」和「精简」间平衡。
四、Faithfulness ≠ 正确性(高频混淆点)
这是最容易答错的区分:
Faithfulness(忠实度):答案的陈述能否由【给定上下文】支持
→ 若上下文本身是错的,模型忠实复述 → 忠实度高,但不符合现实!
答案正确性:对照【可靠参考答案/权威数据】
Answer Relevance:回答是否切题(一个事实正确但答非所问的输出,相关性仍很差)
所以三个指标要分开测:忠实度管「有没有基于上下文」、正确性管「符不符合现实」、相关性管「切不切题」。
五、引用评估与 LLM-as-a-Judge 边界
引用要查两件事:
- Citation Correctness:引用内容是否真的支持对应陈述(不是曲解);
- Citation Completeness:需要证据的关键陈述是否都有引用。
记忆钩子:只验证”链接存在”或”文档被召回”远远不够,要看引用是否真的蕴含结论。
LLM-as-a-Judge 扩展快、能处理开放文本,但会偏爱更长/更流畅/与自身风格相似的回答,专业领域可能误判。要固定 rubric、随机答案顺序、重复抽样、与人工标注算一致性。RAGAS 是自动化工具,不是业务正确性的最终裁判。
六、常见误区与追问
- 误区:看最终答案对错就够了。 定位不到是切块/召回/重排/生成哪一环的问题,必须分层评估。
- 误区:Faithfulness 高就是答案对。 忠实度只管”基于上下文”,上下文错了忠实复述也错,正确性要对照权威答案。
- 误区:上下文越多越好。 噪声增成本、触发中间遗忘,要平衡覆盖和精简。
- 误区:召回了文档就等于引用对。 要查 Citation Correctness(引用是否真支持结论),不只是链接存在。
- 误区:LLM-as-a-Judge 打分就是定论。 它偏爱长/流畅/自身风格,要 rubric+换顺序+人工校准。
- 追问:多证据问题看 Hit Rate 还是 Recall? 看 Recall——Hit Rate 命中一条就”成功”,掩盖证据不齐全。
- 追问:Faithfulness、正确性、相关性怎么区分? 忠实度=基于上下文、正确性=符合现实、相关性=切题,三者独立。
- 追问:评估集怎么建? 来自真实日志,覆盖常见/长尾/无答案/歧义/多跳/权限/时效,每条含参考答案+相关证据 ID+允许的拒答+风险等级;升级任何组件都重跑同一基准。
七、加强记忆
RAG 评估记「沿流水线验货」:先看资料找全没(Recall@k,多证据看 Recall 不看 Hit Rate)、排序靠前否(MRR/nDCG),再看上下文干净否(Context Precision/Recall,越多不一定越好),最后看回答正确、切题、忠于证据、引用到位。最关键区分钉死:Faithfulness(基于上下文)≠ 正确性(符合现实)≠ 相关性(切题);引用要查 Citation Correctness(真支持结论,不只链接存在)。自动评分(RAGAS/LLM-Judge)负责提速但有偏差(偏爱长/流畅),人工金标准负责校准,高风险还需专家和确定性校验。