很多人做 RAG 的流程都惊人地相似:找几篇文档扔进去 → 随便切成块 → 存进向量数据库 → 接个大模型 → 上线收工。

然后就开始踩坑:AI 答非所问、一本正经地胡说八道、明明文档里有的信息就是找不到、同一个问题每次回答都不一样……

这时候大家第一反应都是:“换个更好的大模型!”或者“换个更好的 embedding 模型!”

但其实 90% 的情况下,问题根本不在模型。而是你从来没有真正评估过你的 RAG 系统到底好不好用。你不知道是检索没找到正确的文档,还是找到了但大模型没看懂。

今天咱们就把 RAG 评估这件事彻底讲透。从为什么要做评估,到检索和生成两个阶段怎么测,再到工程化落地和常见误区,一篇给你讲明白。

下面是RAG评估的整体流程概览,帮你快速建立全局认知:

用户输入问题

检索阶段评估

检索是否准确?

生成阶段评估

优化检索策略
调整分块/embedding/混合检索

生成是否合格?

上线部署

优化生成策略
调整prompt/模型/上下文

生产环境持续监控

指标是否正常?

分析问题根因
进入数据闭环迭代

一、先搞懂:RAG为什么必须做评估?

很多人觉得RAG评估是"锦上添花"的事,能跑通就行。但实际上,评估是RAG系统的生命线。没有评估,你就是在盲人摸象。

不做评估的三大恶果

  1. 召回不准:用户问的问题,正确答案明明在文档里,但就是检索不到。你以为是模型不行,其实是检索系统在拖后腿
  2. 生成幻觉:检索到了错误的或者不相关的文档,大模型基于这些垃圾信息生成答案,结果就是胡说八道
  3. 优化无方向:出了问题不知道该改哪里。是分块大小不对?还是embedding模型选错了?还是prompt写得不好?只能瞎试,效率极低

RAG系统的效果不是"感觉出来"的,是"测出来"的。而且RAG的评估必须分成两个独立的阶段:检索阶段生成阶段

这两个阶段的问题完全不一样,解决方案也完全不一样。混在一起评估,你永远找不到问题的根源。

二、检索阶段评估:先保证"找得到、找得对"

检索是RAG的地基。地基歪了,上面的生成再强也没用。如果检索阶段就没找到正确的文档,那大模型再聪明也不可能给出正确的答案。
在这里插入图片描述

三个核心量化指标

检索阶段的评估指标都是信息检索领域经过几十年验证的成熟指标,没有必要自己发明。

1. Recall@K(召回率)

这是最重要也是最常用的指标。它的意思是:在前K个检索结果中,包含至少一个相关文档的比例。

比如Recall@5=0.8,意思就是80%的问题,正确答案都出现在前5个检索结果里。

K一般取5或10。K太小,容易漏检;K太大,会把太多无关信息塞进上下文,反而影响生成效果。

2. MRR(平均倒数排名)

MRR衡量的是第一个相关文档出现在第几位。它的计算方式是:第一个相关文档排名的倒数,然后取所有问题的平均值。

比如第一个相关文档出现在第1位,倒数就是1;出现在第2位,倒数就是0.5;出现在第3位,倒数就是0.33。

MRR越接近1越好。它适合那种"只要找到一个正确答案就够了"的场景。

3. NDCG(归一化折损累计增益)

NDCG是最全面的一个指标,它不仅考虑了有没有找到相关文档,还考虑了相关文档的排序位置和相关性等级。

比如一个问题有3个相关文档,一个高度相关,两个部分相关。如果高度相关的排在第1位,NDCG就高;如果排在第3位,NDCG就低。

NDCG适合有分级标注的场景,也是工业界最常用的综合指标。
在这里插入图片描述

怎么构建靠谱的测试集?

指标再好,没有靠谱的测试集也是白搭。构建测试集有三种常用的方法,各有优缺点。

1. 人工标注

最准确但也最耗时的方法。找几个熟悉业务的人,针对你的知识库,人工生成一批问题和对应的正确答案。

优点:准确率最高,最贴合实际业务场景。
缺点:耗时耗力,成本高。

2. 大模型自动标注

现在最流行的方法。把文档喂给GPT-4o或者Claude Sonnet,让它自动生成问题和对应的答案。

优点:速度快,成本低,能快速生成几百上千个测试用例。
缺点:可能会生成一些不自然或者不符合实际用户需求的问题,需要人工抽检。

3. 点击日志隐式反馈

这是生产环境最有价值的测试集来源。用户点击了哪个检索结果,就认为那个结果是相关的。

优点:完全来自真实用户的行为,最能反映实际使用情况。
缺点:有噪声,用户点击不一定代表真的相关,可能只是好奇。

常见的检索坑

  • 分块不合理:块太小,语义不完整;块太大,噪声多。一定要根据你的文档类型和embedding模型的最大长度来调整分块大小
  • 只用向量检索:一定要加上关键词检索做混合检索。很多时候精确匹配比相似性匹配更准确
  • embedding模型选错:不要盲目用最新最贵的模型。很多开源模型在中文场景下的表现比OpenAI的embedding还好

三、生成阶段评估:再保证"答得准、答得全"

找对了文档,不代表AI能生成正确的答案。大模型可能会忽略文档里的关键信息,也可能会加入自己的幻觉,甚至会把多个文档的信息混在一起拼凑出错误答案。

生成质量的四个维度

生成阶段的评估比检索复杂,因为它涉及到自然语言的理解和生成。一般从四个维度来衡量:

1. 忠实度(Faithfulness)

最重要的维度。衡量生成的答案是否严格基于检索到的文档,有没有加入文档里没有的信息。

忠实度低就是我们常说的"幻觉"。这是RAG系统最致命的问题,尤其是在医疗、金融等严肃场景。

2. 相关性(Relevance)

衡量生成的答案是否回答了用户的问题,有没有答非所问。

比如用户问"这个产品的价格是多少",AI回答了一堆产品功能,就是相关性低。

3. 完整性(Completeness)

衡量生成的答案是否包含了文档里所有相关的关键信息,有没有遗漏。

比如文档里说了产品有三个特点,AI只说了两个,就是完整性不够。

4. 流畅度(Fluency)

衡量生成的答案是否通顺自然,有没有语法错误,逻辑是否清晰。

这个维度一般大模型都能做得不错,除非是特别差的模型。

自动化评测工具

现在已经有很多成熟的工具可以自动评估生成质量,不用再完全靠人工了。

1. Ragas

目前最流行的RAG评估框架,专门为RAG场景设计。内置了忠实度、相关性、完整性等多个指标,支持所有主流大模型。

2. LangSmith

LangChain官方的评估和监控平台。可以很方便地集成到你的LangChain项目里,自动运行评估并生成可视化报告。

3. DeepEval

另一个优秀的开源RAG评估框架,支持自定义指标,功能非常强大。

人工抽检的正确姿势

自动化评测虽然方便,但不能完全替代人工。正确的做法是:

  • 用自动化工具跑所有测试用例,过滤出明显有问题的案例
  • 对自动化评测得分低的案例进行人工复核
  • 随机抽取10%-20%的高分案例进行人工抽检,确保自动化评测的准确性

参考资料

四、工程化落地:从一次性评测到持续监控

很多人觉得评估就是上线前做一次就完事了。但实际上,RAG系统的效果会随着时间推移而下降。

文档会更新,用户的问题会变,大模型的输出也会变。所以评估必须是一个持续的过程。

集成到CI/CD流程

每次更新知识库或者修改RAG的配置(比如分块大小、embedding模型、prompt),都要自动跑一遍完整的评估。

如果评估得分低于预设的阈值,就自动阻止合并,防止把有问题的版本上线。

生产环境的实时监控

上线后也要持续监控RAG系统的效果。常用的监控指标有:

  • 检索阶段:Recall@K、MRR、平均检索时间
  • 生成阶段:自动化评测得分、用户点赞率、用户差评率
  • 系统指标:成功率、响应时间、token消耗

当这些指标出现明显下降时,要及时报警,排查问题。

建立数据闭环

把用户的反馈转化为测试集,持续优化你的RAG系统:

  • 用户点了"有用"的回答,加入正例测试集
  • 用户点了"没用"的回答,加入负例测试集,分析问题出在哪里
  • 定期用新的测试集重新评估,迭代优化你的RAG系统

这才是一个健康的RAG系统该有的样子。
在这里插入图片描述

五、RAG评估的5个常见误区

1. 只看生成效果,不看检索效果

很多人评估RAG只看最终的回答好不好,从来不看检索到的文档对不对。

如果检索就错了,你再怎么优化prompt和大模型都没用。一定要先把检索阶段的指标提上去,再去优化生成阶段。

2. 用单一指标衡量所有场景

不同的场景对指标的要求不一样。

  • 客服场景:忠实度最重要,绝对不能有幻觉
  • 问答场景:相关性和完整性最重要
  • 搜索场景:MRR最重要,要把最相关的结果排在最前面

不要用一个指标去衡量所有场景。

3. 测试集和训练集重合

很多人会用构建知识库的文档来生成测试集,然后用同一个测试集去评估RAG系统。

这就像考试考你做过的原题,分数再高也没有意义。测试集一定要和训练集分开,才能真实反映系统的泛化能力。

4. 完全依赖自动化评测

自动化评测虽然方便,但它本身也是用大模型来评估大模型,会有误差。

一定要保留人工抽检的环节,尤其是对于高风险的场景。

5. 评估一次就一劳永逸

RAG系统不是上线就完事了。文档会更新,用户的问题会变,大模型也会更新。

一定要建立持续的评估和监控机制,定期迭代优化。

六、总结:RAG评估的核心原则

最后,总结一下RAG评估的三个核心原则,只要遵守这三条,就能避开80%的坑。

  1. 先评估检索,再评估生成:检索是地基,地基打牢了,上面的建筑才稳。
  2. 自动化为主,人工为辅:用自动化工具提高效率,用人工抽检保证质量。
  3. 建立数据闭环,持续迭代优化:评估不是终点,而是优化的起点。

RAG技术发展到今天,已经不是什么黑科技了。但真正能把RAG做好的团队,无一例外都非常重视评估。

不要等到上线后用户投诉了才想起评估。从你做RAG的第一天开始,就应该把评估体系搭起来。

参考资料

  1. Ragas官方文档:快速入门指南
  2. LangSmith官方文档:评估RAG系统
  3. DeepEval官方文档:RAG评估教程
Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐