RAG 怎么评测?从检索命中到答案可信度的完整方法

RAG 系统怎么判断是否好用?讲清检索、生成与端到端三层评测,如何准备测试集、定位“答错”的根因,以及上线后的持续监控。

RAG 怎么评测?从检索命中到答案可信度的完整方法
编辑部 ·

RAG 系统回答错了,原因可能完全不同:没有找对资料、找到了但片段不完整、模型误读了证据,或者回答看似合理却越过了资料范围。只看最终“答得像不像”无法解决问题,必须把评测拆开。

RAG 评测的三层

1. 检索评测:资料有没有找对

给定一个问题,检查正确答案所在的文档或片段是否进入了候选结果。常见观察项包括:

  • 命中率:正确片段是否出现在前 K 条结果中
  • 排序质量:正确片段排得是否足够靠前
  • 覆盖度:回答需要多个事实时,是否都检索到了

如果正确资料根本没进上下文,后面的模型再强也很难答对。此时应检查切分方式、Embedding、查询改写和过滤条件,而不是只改提示词。

2. 生成评测:有没有忠于证据

资料找对后,模型仍可能遗漏限定条件、拼错数字或补充资料里没有的内容。生成层应检查:

  • 回答是否能被引用片段支撑
  • 是否回答了用户真正的问题
  • 是否明确说明资料缺失或不确定性
  • 格式、语气和长度是否符合产品要求

这一步的核心不是文笔,而是“有据可查”。

3. 端到端评测:用户任务完成了吗

用户不在乎你在哪一层得分高,只在乎问题是否解决。端到端测试把检索、生成、权限、延迟与前端体验放在一起,检查最终任务是否可用。

测试集怎么准备

从真实用户问题中抽样,脱敏后标注标准答案、支持它的资料片段和不可接受的回答。测试集至少应包含:

  • 普通事实问答
  • 多文档综合问题
  • 资料中没有答案的问题
  • 已过期或相互冲突的信息
  • 权限不同的用户问题

“资料中没有答案”尤其重要。好的 RAG 应该会说“现有资料无法确认”,而不是为了显得有帮助而编造。

一张定位问题的表

现象更可能的原因优先检查
回答完全跑题查询理解或检索失败查询改写、过滤、Top K
答案缺一半文档切分或覆盖不足chunk 大小、相邻片段、重排
引用了资料仍答错生成误读或提示词不足引用格式、回答约束、模型
总说不知道阈值过高或知识库不全检索分数、资料覆盖
偶尔泄露不该看的内容权限过滤位置错误检索前权限控制

自动评测与人工评测如何配合

规则能检查是否有引用、是否输出指定 JSON;模型裁判能大规模评估相关性和忠实度;人工最擅长判断业务语义和高风险错误。三者应结合,而不是只相信某一个总分。

评测也要持续做。资料更新、Embedding 更换、模型升级、提示词调整都可能造成回归。将一小套高价值测试接入发布流程,效果类似传统软件的回归测试。

总结

RAG 评测的关键是分层:先确认找没找对,再确认有没有忠于资料,最后确认用户任务是否完成。准备覆盖正常、边界和“无答案”场景的测试集,并用结果反推检索、上下文与生成模块,才能把知识库问答从“偶尔很惊艳”做成稳定可信的产品。想先了解基础架构,可看什么是 RAG