6. 评估策略
“没有评估的优化只是盲目的猜测。” —— RAG 评估原则
本章涵盖 RAG 三元组评估框架、检索与生成指标、评估方法论(黄金数据集、合成数据、LLM 作为裁判)以及生产环境的可观测性工具。
6.1 为什么评估至关重要?
6.1.1 RAG 质量鸿沟
根本问题:检索到的文档并非最终答案,生成的答案也可能并不忠实于上下文或不相关。没有评估,你就无法衡量或改进 RAG 系统的质量。
三个质量鸿沟:
-
上下文相关性鸿沟:检索到的分块可能包含无关信息。
- 症状:LLM 接收到含噪声的上下文。
- 原因:Embedding 相似度不佳,查询理解薄弱。
- 影响:垃圾进,垃圾出。
-
忠实度鸿沟:生成的答案可能产生超出检索上下文的幻觉。
- 症状:答案包含源文档中不存在的事实。
- 原因:LLM 依赖预训练知识而非上下文。
- 影响:丧失信任,事实错误。
-
答案相关性鸿沟:答案可能忠实于原文,但未能切中用户意图。
- 症状:技术正确但无用的答案。
- 原因:查询理解偏差,检索不完整。
- 影响:用户不满意,系统被弃用。
6.1.2 生产 vs 开发
RAG 系统的性能会随时间推移而下降。在开发阶段表现良好的系统到了生产环境往往会失败,原因包括:
| 因素 | 开发阶段 | 生产环境 | 影响 |
|---|---|---|---|
| 查询分布 | 精选的测试查询 | 随机、不可预测的查询 | 未知的边缘案例 |
| 数据新鲜度 | 静态文档集 | 持续更新 | Embedding 过时 |
| 负载 | 低并发 | 高并发 | 延迟与质量的权衡 |
| 用户反馈 | 手动测试 | 真实用户行为 | 意想不到的使用模式 |
6.2 RAG 三元组 (核心框架)
6.2.1 上下文相关性 (Context Relevance)
定义:检索到的分块对于回答用户查询是否真的有用?
评估逻辑(0-1 量程):
# 逻辑:利用 LLM 作为裁判提取相关句子
# 1. 提示词:提取上下文中对回答查询有用的句子。
# 2. 相关分数 = 相关句子数量 / 总句子数量
6.2.2 忠实度 (Faithfulness)
定义:生成的答案是否基于检索到的上下文,还是产生了幻觉?
评分逻辑(0-1 量程):
# 逻辑:原子断言提取 + 验证
# 1. 从答案中提取原子化的事实断言。
# 2. 针对每一个断言,在上下文中验证其是否有据可依。
# 3. 忠实度分数 = 验证通过的断言数 / 总断言数
2025 洞察:忠实度是核心 研究表明,忠实度是用户对 RAG 系统信任度的最强预判指标。用户宁愿听到“我不知道”,也不愿听到自信的幻觉。
6.2.3 答案相关性 (Answer Relevance)
定义:生成的答案是否真正解决了用户的问题?
评分逻辑:通常利用强模型(如 GPT-4o)根据 1-5 分的标准进行评分,并要求提供评分理由。
6.3 检索指标 (Retrieval Metrics)
6.3.1 命中率 (Hit Rate / Recall@K)
定义:在检索到的前 K 个文档中,是否出现了至少一个相关文档?
公式: