使用Ragas 评估RAG回答质量

177 阅读4分钟

在评估RAG 系统的性能时,Answer Relevancy(答案相关性)、Faithfulness(忠实性)、Context Precision(上下文精确率)、Context Recall(上下文召回率)和 Answer Correctness(答案正确性)  是五个关键的评估指标。

这五个指标构成了 RAG 系统评估的完整框架:

  • Context Precision/Recall 评估检索质量
  • Faithfulness/Relevancy 评估生成质量
  • Answer Correctness 是最终目标
指标关注对象核心问题依赖关系
Context Precision检索模块检索到的内容有多“准”?影响 Answer Relevancy 和 Faithfulness
Context Recall检索模块检索到的内容有多“全”?影响 Answer Correctness(信息不足则难答对)
Faithfulness生成模块答案是否“照本宣科”?依赖 Context Precision/Recall 的质量
Answer Relevancy生成模块答案是否“答非所问”?受检索质量和生成能力共同影响
Answer Correctness整体系统答案是否“事实正确”?是最终目标,依赖前四项

一、定义

1. Answer Relevancy(答案相关性)

  • 定义:评估生成的答案是否与用户问题相关。即答案是否回应了问题的核心意图。

  • 关注点:答案是否“跑题”。

  • 示例

    • 问:“巴黎是哪个国家的首都?”
    • 答:“法国是欧洲的一个国家,拥有丰富的文化遗产。”
    • → 答案部分相关,但没有直接回答“巴黎是法国的首都”,相关性较低。
  • 测量方式:通常通过人工评分或语义相似度模型(如 BERTScore)判断。


2. Faithfulness(忠实性 / 忠诚度)

  • 定义:生成的答案是否完全基于提供的上下文(检索到的文档片段),是否存在“幻觉”(hallucination)。

  • 关注点:答案是否“捏造”了上下文未包含的信息。

  • 示例

    • 上下文:“巴黎是法国的首都。”
    • 答:“巴黎是德国的首都。”
    • → 不忠实,因为与上下文矛盾。
    • 答:“巴黎是法国的首都,也是欧盟的首都。”
    • → 若上下文未提“欧盟首都”,则部分信息为幻觉,不忠实。
  • 测量方式:通过检查答案中的每个事实是否能在上下文中找到支持。

注意:忠实性不要求上下文本身正确,只要求答案不超出上下文。


3. Context Precision(上下文精确率)

  • 定义:检索到的上下文中,有多少信息是回答问题所真正需要的。即“检索结果中有多少是相关的”。

  • 关注点:检索的“精准度”,避免无关信息。

  • 公式类比:类似于信息检索中的 Precision。

  • 示例

    • 问题:“爱因斯坦哪年获得诺贝尔奖?”
    • 检索到的上下文包含爱因斯坦生平、相对论、获奖年份等。
    • 若只有一小段提到“1921年获奖”,其余无关 → 精确率低。
  • 高 Precision:意味着大部分检索到的内容都用于回答问题。


4. Context Recall(上下文召回率)

  • 定义:所有回答问题所需的信息中,有多少被成功检索到。即“是否漏掉了关键信息”。

  • 关注点:检索的“完整性”。

  • 公式类比:类似于信息检索中的 Recall。

  • 示例

    • 正确答案需要“1921年”和“光电效应”两个信息。
    • 检索到的上下文只有“1921年”,缺少“光电效应” → Recall 较低。
  • 高 Recall:表示关键信息基本都被检索到。

Precision vs Recall 权衡:高 Precision 可能牺牲 Recall(只拿最相关的,但可能漏掉),反之亦然。


5. Answer Correctness(答案正确性)

  • 定义:生成的答案在事实上是否正确,是否准确回答了问题。

  • 关注点:答案的“真实性”和“准确性”。

  • 示例

    • 问:“水的化学式是什么?”
    • 答:“H₂O” → 正确。
    • 答:“H₂O₂” → 错误。
  • 测量方式:通常需要人工标注或权威知识库验证。

二、调试建议

[问题]
   ↓
检索模块 → Context Precision & Recall(检索质量)
   ↓
上下文 → Faithfulness(生成是否忠实于上下文)
   ↓
生成答案 → Answer Relevancy(是否相关)
   ↓
Answer Correctness(最终是否正确)
  • 调试 RAG 系统时

    • 若 Correctness 低,先看 Recall 是否低(关键信息没检索到)。
    • 若答案“胡说八道”,检查 Faithfulness
    • 若答案“答非所问”,检查 Relevancy 和 Precision
  • 优化方向

    • 提升 Precision:优化检索器(如重排序、query 扩展)。
    • 提升 Recall:扩大检索范围、改进 embedding 模型。
    • 提升 Faithfulness:使用更严格的生成约束(如引用机制)。