上了 RAG,然后呢?
过去两年,RAG(Retrieval-Augmented Generation)几乎成了企业 AI 应用的标配。文档问答、知识库检索、智能客服,到处都在用。
但有一个问题很少有人认真回答:你的 RAG 系统效果到底好不好?
我问过不少团队这个问题。得到的回答通常是:
- “感觉还行吧,用户没怎么投诉”
- “我们看了几个 case,答案都对”
- “召回率大概 80% 多”
这些回答都有一个共同的问题:没有系统化的评估框架。 凭感觉、看个案、用单一指标,都无法真正回答"效果好不好"这个问题。
RAG 系统不是上了就完事了。它需要持续评估、持续优化。而评估的前提,是有一套完整的指标体系。
RAG 评估的四个层次
评估 RAG 系统,不能只看一个维度。我把它分成四个层次,从底层到顶层:
| 层次 | 评估对象 | 核心问题 | 典型指标 |
|---|---|---|---|
| L1 检索质量 | 检索模块 | 能不能找到相关文档? | Recall@K、MRR、NDCG |
| L2 生成质量 | 生成模块 | 答案准不准? | 忠实度、相关性、完整性 |
| L3 端到端效果 | 整个系统 | 用户满意吗? | 满意度、任务完成率、人工通过率 |
| L4 业务价值 | 业务结果 | 值不值得做? | 效率提升、成本节约、决策质量 |
这四个层次是递进关系。检索质量好不代表生成质量好,生成质量好不代表用户满意,用户满意不代表有业务价值。
很多企业只做了 L1 层的评估,就宣称"我们的 RAG 系统效果很好"。这是不完整的。
L1:检索质量评估
检索质量是 RAG 的基础。如果检索不到相关文档,后面的一切都无从谈起。
核心指标
Recall@K(召回率)
从所有相关文档中,检索系统返回的前 K 个结果包含了多少。
|
|
比如一共有 10 个相关文档,系统返回的前 5 个结果中有 4 个是相关的,那么 Recall@5 = 4/10 = 40%。
MRR(Mean Reciprocal Rank,平均倒数排名)
衡量第一个相关结果排在第几位。
|
|
其中 rank_i 是第 i 个查询的第一个相关结果的排名。MRR 越接近 1 越好。
NDCG(Normalized Discounted Cumulative Gain,归一化折损累积增益)
考虑了结果的相关性等级和位置。比前两个指标更精细。
指标对比
| 指标 | 关注点 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|---|
| Recall@K | 覆盖率 | 直观易懂 | 不考虑排序 | 评估检索的全面性 |
| MRR | 首位排名 | 关注最相关结果 | 只看第一个 | 评估检索的精准性 |
| NDCG | 整体排序 | 考虑相关度等级 | 计算复杂 | 精细化评估 |
实践建议
不要只用一个指标。建议组合使用:
- Recall@5 和 Recall@10:评估检索的全面性
- MRR@10:评估检索的精准性
- NDCG@10:评估整体排序质量
同时,要建立标注数据集。至少准备 100-200 个标注样本,每个样本包含:查询、相关文档列表、相关度评分。
L2:生成质量评估
检索到了相关文档,不代表生成的答案就是好的。生成质量评估关注的是:答案准不准?
三个核心维度
1. 忠实度(Faithfulness)
生成的答案是否忠实于检索到的文档?有没有幻觉(Hallucination)?
评估方法:
- 人工标注:标注员判断答案中的每个事实是否能在文档中找到依据
- 自动化评估:用 NLI(Natural Language Inference)模型判断答案与文档的一致性
2. 相关性(Relevance)
生成的答案是否与用户的问题相关?有没有答非所问?
评估方法:
- 人工标注:标注员判断答案是否回答了用户的问题
- 自动化评估:计算答案与问题的语义相似度
3. 完整性(Completeness)
生成的答案是否完整?有没有遗漏重要信息?
评估方法:
- 人工标注:标注员判断答案是否涵盖了所有关键信息
- 自动化评估:检查答案是否包含了文档中的关键实体和事实
评估流程
|
|
自动化评估工具
手动评估成本高,可以借助自动化工具:
- RAGAS:开源的 RAG 评估框架,支持忠实度、相关性、完整性评估
- TruLens:提供 RAG 系统的可观测性和评估能力
- LangSmith:LangChain 的评估平台,支持多种评估指标
这些工具不能完全替代人工评估,但可以大幅提高效率。
L3:端到端效果评估
L1 和 L2 评估的是系统组件,L3 评估的是整个系统的用户体验。
用户满意度
最直接的方式:让用户评分。
|
|
但用户评分有局限性:用户可能懒得评分,或者评分标准不一致。
任务完成率
对于有明确目标的任务(比如"帮我查一下退货政策"),可以评估任务是否完成。
|
|
这需要定义什么是"成功完成"。比如用户找到了想要的信息,或者问题得到了解答。
人工审核通过率
对于高风险场景(比如医疗、法律),需要人工审核生成的答案。
|
|
这个指标直接反映了系统的可靠性。
综合评估
建议组合使用这三个指标:
| 指标 | 目标值 | 评估频率 |
|---|---|---|
| 用户满意度 | ≥ 4.0/5 | 每周 |
| 任务完成率 | ≥ 85% | 每周 |
| 人工通过率 | ≥ 90% | 每月(高风险场景) |
L4:业务价值评估
前面三个层次评估的是"系统好不好用",L4 评估的是"值不值得做"。
效率提升
RAG 系统最常见的价值是提升效率。比如:
- 客服场景:减少人工客服的工作量
- 知识检索:减少员工查找信息的时间
- 文档处理:减少人工阅读和总结的时间
量化方法:
|
|
比如原来客服处理一个问题需要 5 分钟,RAG 辅助后只需要 2 分钟,效率提升 = (5-2)/5 = 60%。
成本节约
效率提升直接带来成本节约:
|
|
比如客服场景:
- 原流程成本:50 元/小时
- 每天处理 200 个问题
- 效率提升 60%
成本节约 = 60% * 50 * (200 * 5/60) = 5000 元/天
决策质量
有些场景,RAG 的价值不是效率,而是决策质量。比如:
- 医疗诊断:提供更准确的诊断建议
- 法律咨询:提供更全面的法律分析
- 投资建议:提供更可靠的投资分析
决策质量的量化比较难,通常需要用代理指标:
- 决策准确率:正确决策数 / 总决策数
- 决策一致性:相同情况下的决策一致率
- 专家认可度:专家认可的决策数 / 总决策数
ROI 计算
最终,所有价值都要折算成 ROI:
|
|
系统成本包括:
- 开发成本:人力、工具、测试
- 运维成本:服务器、API 调用、监控
- 标注成本:数据标注、模型训练
业务价值包括:
- 效率提升带来的成本节约
- 质量提升带来的收入增长
- 风险降低带来的损失减少
一套可复用的评估框架
把上面的内容整合,给出一套可直接复用的评估框架:
评估指标体系
| 层次 | 指标 | 目标值 | 评估频率 | 评估方式 |
|---|---|---|---|---|
| L1 检索 | Recall@5 | ≥ 80% | 每周 | 自动化 |
| L1 检索 | MRR@10 | ≥ 0.7 | 每周 | 自动化 |
| L2 生成 | 忠实度 | ≥ 90% | 每周 | 自动+人工 |
| L2 生成 | 相关性 | ≥ 85% | 每周 | 自动+人工 |
| L3 端到端 | 用户满意度 | ≥ 4.0/5 | 每周 | 用户反馈 |
| L3 端到端 | 任务完成率 | ≥ 85% | 每周 | 日志分析 |
| L4 业务 | 效率提升 | ≥ 50% | 每月 | A/B 测试 |
| L4 业务 | ROI | ≥ 100% | 每季度 | 财务分析 |
评估流程
|
|
评估报告模板
每周生成一份评估报告,包含:
|
|
评估不是为了打分,而是为了发现问题、指导优化。
很多团队上了 RAG 就急着推广,结果用户投诉不断、效果达不到预期。根本原因不是技术不行,而是没有建立评估体系,不知道问题出在哪里。
建立一套完整的评估框架,持续监控、持续优化,RAG 系统才能真正发挥价值。这不是锦上添花,而是落地的必经之路。