如何评估 RAG 系统的效果
搭好 RAG 只是开始:改了 chunk 大小、换了 embedding 模型、加了 rerank,效果是变好还是变坏?靠”问几个问题感觉一下”无法支撑决策。RAG 评估要把它变成可量化、可回归的工程流程。本文按”评什么 → 用什么指标 → 怎么建评测集 → 怎么进 CI”展开。
评什么:三层指标体系
第一层:检索质量(召回的 chunk 对不对)
- Recall@k:正确答案所在 chunk 是否进入 top-k——最核心指标
- MRR / Hit Rate:正确 chunk 的排名位置
- 上下文精度(context precision):召回内容中相关段落占比(噪声多会干扰生成)
第二层:生成质量(基于召回内容答得好不好)
- 忠实度(faithfulness):答案的每个论断是否都能由召回上下文支持——幻觉的直接度量
- 答案相关性(answer relevancy):答案是否切题
- 引用正确性:给出的出处是否真包含该信息
第三层:端到端业务指标
- 任务成功率 / 人工满意度评分 / 客服场景的解决率与转人工率
三层分离的价值:答案错时能定位是”没查到”(检索层)还是”查到了但编了”(生成层),改法完全不同。
用什么评:LLM-as-judge 与工具链
人工评全部用例太贵,主流做法是用强模型当裁判(LLM-as-judge)按上述维度打分:
- RAGAS:提供 faithfulness/context precision/answer relevancy 等开箱指标
- TruLens / DeepEval:反馈函数 + 可视化追踪
- 自建裁判 prompt:给”问题+上下文+答案”,要求逐论断核对引用并输出结构化分
裁判模型本身要校准:抽 10% 用例人工复核裁判分,一致性不足就改裁判 prompt 或换裁判模型。
评测集怎么建
- golden set:100-300 条”问题 + 标准答案 + 答案来源 chunk/文档 ID”三元组;来源标注是检索指标的地面真相
- 覆盖四类问题:事实单跳、多文档综合、需要拒答的(知识库没有的)、表述变体(同义改写)
- 防泄漏:评测集文档版本固定,知识库更新时评测集同步审订;评测问题不能出现在知识库的 FAQ 里(否则测的是背诵而非检索)
- 持续扩充:线上 badcase 定期回流进评测集——评测集是活资产
进 CI:每次变更跑回归
把评估做成流水线:chunk 策略 / embedding / rerank / prompt 任何变更 → 自动跑 golden set → 输出三层指标对比报告 → 指标回超阈值(如 Recall@5 降 2 个点)即阻断合并。RAG 系统的”单元测试”就是这套回归。
常见误区
- 只评端到端不评检索:坏在检索的锅被生成层背,优化方向全错
- 评测集太小(<50):指标波动大于真实差异,结论不可信
- 用生成模型自评自建知识库的内容:同模型偏见互相放大
- 忽略拒答类用例:RAG 最容易在”不知道”时自信胡说,这类用例专测诚实度
RAG 评估的本质是把”感觉好用”翻译成三层可回归的数字:检索看 Recall@k 与上下文精度,生成看忠实度,业务看任务成功率;配上 golden set 与 CI 回归,RAG 才从 demo 变成可维护的系统。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 非鱼小站!
评论
WalineDisqus







