☰
RAG进阶-RAG评估方法
2026/9/28 4:36:59 网站建设 项目流程

RAG进阶-RAG评估方法

RAG 进阶:如何建立可优化的评估体系

核心结论:没有评估,就没有真正的优化。只凭几个示例判断 RAG “效果不错”,既无法定位问题,也无法证明一次改动确实带来了提升。

一、为什么 RAG 必须评估?

RAG 是一条由多个环节组成的工程链路:

用户问题 ↓ 查询理解 / 改写 ↓ 检索与排序 ↓ 上下文组织 ↓ 大模型生成 ↓ 最终答案

最终答案不理想时,原因可能完全不同:

  • 知识库中根本没有所需信息;
  • 文档存在,但检索器没有召回;
  • 相关内容被召回,却排在了 Top K 之外;
  • 上下文正确,但模型没有充分利用;
  • 模型加入了上下文中不存在的内容,产生幻觉。

因此,不能只评估最终答案,而要将 RAG 拆成检索、生成、端到端效果三层分别观察。


二、评估前先准备测试集

一条可用的评测样本,至少应包含:

字段作用
question用户问题
reference_answer参考答案 / 标准答案
reference_context应该被召回的证据文档或文本块
metadata问题类型、难度、来源、时间、业务标签等

推荐的数据结构:

{"question":"员工出差的住宿标准是多少?","reference_answer":"一线城市每晚不超过 600 元。","reference_context":["差旅管理制度-住宿标准-第 3 条"],"metadata":{"category":"制度问答","difficulty":"easy","version":"v3"}}

构建评测集时应覆盖:

  1. 简单事实型问题;
  2. 多文档综合问题;
  3. 需要时间、部门或权限过滤的问题;
  4. 同义表达、口语化表达和指代问题;
  5. 知识库中没有答案的问题;
  6. 容易混淆、包含冲突信息或旧版本信息的问题。

评测集不是一次性产物。线上出现的新失败案例,应持续回流为新的测试样本。


三、检索阶段评估:有没有找对资料?

1. Precision@K:召回结果有多“准”

在前 K 个检索结果中,相关文档所占的比例:

Precision@K=Top K 中的相关文档数K Precision@K=\frac{\text{Top K 中的相关文档数}}{K}Precision@K=KTop K中的相关文档数​

Precision@K 低,说明检索结果中噪声较多。常见原因包括:切分粒度不合适、Embedding 区分度不足、查询过于宽泛,或者缺少元数据过滤。

2. Recall@K:应该找到的内容找全了吗?

Recall@K=Top K 中的相关文档数全部相关文档数 Recall@K=\frac{\text{Top K 中的相关文档数}}{\text{全部相关文档数}}Recall@K=全部相关文档数Top K中的相关文档数​

Recall@K 低,说明关键证据被漏掉。可以尝试查询改写、多路召回、增大 K 值或优化文档切分。

3. F1:兼顾精确率与召回率

F1=2×Precision×RecallPrecision+Recall F1=2\times\frac{Precision\times Recall}{Precision+Recall}F1=2×Precision+RecallPrecision×Recall​

只追求高召回会引入大量噪声,只追求高精确率又可能遗漏重要信息。F1 用调和平均数反映两者的平衡。

4. Hit Rate@K:是否至少命中一条正确证据

如果 Top K 中至少包含一条相关文档,则该问题记为命中:

HitRate@K=Top K 至少命中一次的问题数问题总数 HitRate@K=\frac{\text{Top K 至少命中一次的问题数}}{\text{问题总数}}HitRate@K=问题总数Top K至少命中一次的问题数​

它简单直观,适合快速判断检索器是否具备基本可用性,但不能反映相关文档是否被完整召回。

5. MRR:正确答案排得是否足够靠前

MRR(Mean Reciprocal Rank)关注第一个相关结果出现的位置:

MRR=1N∑i=1N1ranki MRR=\frac{1}{N}\sum_{i=1}^{N}\frac{1}{rank_i}MRR=N1​i=1∑N​ranki​1​

其中,rankirank_iranki​是第iii个问题中第一个相关文档的名次。相关文档越靠前,MRR 越高。

第 1 名命中 → 得分 1 第 2 名命中 → 得分 1/2 第 5 名命中 → 得分 1/5 未命中 → 得分 0

检索评估的关键不是“相似度分数看起来很高”,而是正确证据是否真正进入了模型可见的 Top K。


四、生成阶段评估:模型有没有用好资料?

1. Faithfulness:答案是否忠于上下文

忠实度检查回答中的每个事实陈述,是否都能由检索到的上下文支持。

高忠实度:答案内容均能在参考资料中找到依据 低忠实度:答案加入了资料中不存在的数字、结论或因果关系

忠实度低通常意味着模型出现幻觉,需要优化生成 Prompt、降低自由发挥空间,或要求模型给出引用依据。

2. Answer Relevance:是否真正回答了问题

答案相关性关注回答与用户意图的匹配程度:

  • 是否正面回答问题;
  • 是否遗漏关键条件;
  • 是否包含大量无关内容;
  • 是否将问题理解成了另一个意思。

相关性低不一定是检索失败,也可能是查询改写改变了原意,或生成 Prompt 没有限制回答范围。

3. Answer Correctness:答案是否正确

将模型回答与参考答案进行比较,检查事实、数字、实体、时间和逻辑关系是否一致。

对于开放式答案,不能只依赖字面完全匹配,可以采用语义相似度、关键事实覆盖率或 LLM 评审。

4. Completeness:关键信息是否完整

回答可能没有明显错误,却只覆盖了标准答案的一部分。完整性关注参考答案中的关键事实是否都被回答覆盖。

5. Citation Accuracy:引用是否真的支持结论

如果系统支持文档引用,还应检查:

  • 引用的文档是否真实存在;
  • 引用位置是否准确;
  • 引用内容是否支持对应结论;
  • 是否引用了过期或无权限访问的版本。

五、RAG 三元评估框架

可以用三个问题快速检查整个系统:

问题 ──→ 检索上下文 ──→ 最终答案 │ │ │ └─ 上下文相关性 ─┘ │ └─ 忠实度 ─────┘ └──────── 答案相关性 ──────┘
维度核心问题对应故障
Context Relevance检索内容与问题相关吗?召回噪声、查询理解错误
Faithfulness / Groundedness答案能被上下文支持吗?幻觉、错误推断
Answer Relevance答案真正解决问题了吗?答非所问、遗漏条件

这三个指标分别连接“问题—上下文—答案”,能够帮助我们判断故障发生在哪一段。


六、常见评估方式

1. 人工评估

由领域专家按照统一评分标准评审准确性、完整性、相关性和表达质量。

优点是可信度高、能理解复杂业务语境;缺点是成本高、速度慢,而且不同评审者可能存在主观差异。

2. 基于规则或标准答案的自动评估

适用于答案结构稳定的场景,例如:

  • 关键词或关键字段匹配;
  • Exact Match;
  • Token 级 F1;
  • ROUGE、BLEU 等文本重合指标;
  • BERTScore 等语义相似度指标。

这类方法速度快、结果稳定,但表面相似不等于事实正确,不能单独承担全部评估任务。

3. LLM-as-a-Judge

让大模型根据明确的评分标准,对“问题、参考资料、参考答案、模型回答”进行评审。

输入:问题 + 检索上下文 + 参考答案 + 待评回答 输出:各维度分数 + 判定理由 + 失败类型

使用时应注意:

  • 固定评审 Prompt、模型版本和温度;
  • 给出明确的评分量表与示例;
  • 要求评审输出理由和证据;
  • 定期抽样进行人工复核;
  • 不要把不同评审模型产生的绝对分数直接横向比较。

实践中通常采用“自动评估负责规模,人工评估负责校准”的组合方式。


七、从指标反推优化方向

观察到的问题更可能的原因优先优化方向
Recall@K 低关键资料未进入候选集文档切分、Embedding、查询改写、多路召回
Precision@K 低无关文档过多元数据过滤、阈值、Rerank、缩小检索范围
MRR 低相关文档存在但排名靠后融合排序、Rerank、调整检索权重
上下文相关但忠实度低模型没有严格依据资料回答Prompt 约束、引用机制、降低生成自由度
忠实度高但完整性低上下文不全或回答过度压缩提高 Recall、扩大上下文、使用 Refine
答案相关性低问题理解或生成目标偏移查询改写、意图识别、Prompt 优化
离线分数高但用户不满意指标与业务目标不一致增加业务指标和真实用户反馈

八、建立“评估—优化”闭环

构建评测集 ↓ 记录基线指标 ↓ 定位最弱环节 ↓ 一次只修改一个变量 ↓ 重新运行同一评测集 ↓ 比较质量、延迟与成本 ↓ 通过后灰度上线,并持续收集失败案例

推荐同时记录三类指标:

类别示例
质量Recall@K、MRR、Faithfulness、Answer Relevance
性能P50 / P95 延迟、超时率、吞吐量
成本Token 消耗、Embedding 成本、Rerank 成本、单次请求费用

如果只看答案质量,可能得到一个非常慢、非常贵的系统;如果只追求速度和成本,又可能牺牲可靠性。因此生产级 RAG 需要在质量、延迟和成本之间做平衡。


九、落地建议

  1. 先定义业务目标,再选择指标:客服、法规检索和内部知识助手的重点并不相同。
  2. 固定评测集与运行环境:否则不同版本的结果没有可比性。
  3. 按问题类型分组统计:整体均值可能掩盖某一类问题的严重退化。
  4. 不要只看一个指标:高召回不代表答案正确,高忠实度也不代表回答完整。
  5. 同时保存中间结果:记录改写后的查询、召回文档、排序分数、Prompt 和最终答案。
  6. 把线上失败案例加入回归集:防止同类问题在后续版本中再次出现。

十、小结

RAG 评估的真正价值,不是得到一个漂亮的总分,而是把问题定位到可执行的工程环节:

  • 检索阶段关注找没找到、找得准不准、排序是否合理;
  • 生成阶段关注答案是否忠实、相关、正确且完整;
  • 端到端阶段还要关注用户体验、响应延迟与运行成本;
  • 通过固定评测集和持续回归,让每一次优化都有可验证的依据。

可观测、可量化、可复现,才是 RAG 从 Demo 走向生产系统的关键。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询