2025年4月18日

检索增强评测

RAG 评测是对检索增强生成系统的**检索质量**和**生成质量**进行量化评估,核心目标是回答"检索到的内容是否相关"和"生成的回答是否忠实于检索内容且切题"。

知识库大模型检索增强ragevaluation

检索增强评测

先说结论

RAG 评测是对检索增强生成系统的检索质量生成质量进行量化评估,核心目标是回答"检索到的内容是否相关"和"生成的回答是否忠实于检索内容且切题"。

QUESTION 面试高频:RAG 系统应该评测哪些维度? RAG 评测需要覆盖检索和生成两个环节的至少四个核心维度:上下文精确度(Context Precision,检索结果中相关内容的排名)、上下文召回率(Context Recall,检索是否覆盖了回答所需信息)、答案忠实度(Faithfulness,回答是否忠实于检索上下文)、答案相关性(Answer Relevancy,回答是否切题)。

RAG 评测框架对比

框架 核心特点 评测方式 开源
RAGAS 最流行的 RAG 评测框架 LLM 辅助 + 自动指标
TruLens RAG Triad 三维度评估 LLM 辅助 + 可视化
DeepEval 多维度 LLM 评估框架 LLM-as-a-Judge
ARES 自动化 RAG 评测 预测驱动 + 少量标注
MLflow LLM Evaluate 集成在 MLflow 中 多维度评估

核心评测指标

RAGAS 框架指标体系

QUESTION 面试高频:RAGAS 的四个核心指标分别是什么?

指标 衡量内容 计算方式 范围
Faithfulness(忠实度) 回答是否忠实于检索上下文 被上下文支持的声明数 / 总声明数 [0, 1]
Answer Relevancy(答案相关性) 回答是否切题 回答与问题的语义相关性 [0, 1]
Context Precision(上下文精确度) 检索内容中相关部分排名是否靠前 相关 chunk 在检索结果中的位置 [0, 1]
Context Recall(上下文召回率) 检索内容是否覆盖了回答所需信息 回答中的信息在上下文中的覆盖比例 [0, 1]

Faithfulness 计算详解

QUESTION 面试高频:Faithfulness 是如何计算的?

  1. 声明分解(Claim Decomposition):将模型生成的回答拆分为一组原子声明

    • 例如:"张三毕业于清华大学计算机系,2020年入职" 拆分为:
      • "张三毕业于清华大学"
      • "张三的专业是计算机"
      • "张三2020年入职"
  2. 逐条验证(Claim Verification):对每个原子声明,检查是否可以从检索上下文中推断出来

  3. 计算得分

Faithfulness=被上下文支持的声明数总声明数\text{Faithfulness} = \frac{\text{被上下文支持的声明数}}{\text{总声明数}}

Context Precision 计算详解

Context Precision@k=i=1k(precision@i×reli)相关文档总数\text{Context Precision}@k = \frac{\sum_{i=1}^{k} (\text{precision}@i \times \text{rel}_i)}{\text{相关文档总数}}

衡量相关文档是否排名靠前——理想的检索系统应该将最相关的文档排在最前面。

Answer Relevancy 计算详解

通过用 LLM 从回答中"反向生成"问题,然后计算生成问题与原始问题的语义相似度:

Answer Relevancy=1ni=1ncos(E(gi),E(o))\text{Answer Relevancy} = \frac{1}{n} \sum_{i=1}^{n} \cos(E(g_i), E(o))

其中 EE 是嵌入函数,gig_i 是从回答生成的第 ii 个问题,oo 是原始问题。

TruLens RAG Triad

TruLens 提出三个核心评估维度(Triad):

维度 检查内容 对应失败模式
Context Relevance 检索到的上下文是否与问题相关 检索了不相关的内容
Groundedness 回答中的每个声明是否有上下文支持 幻觉(编造上下文外的内容)
Answer Relevance 最终回答是否真正回答了用户问题 答非所问

检索环节评测

检索质量指标

指标 公式 说明
Precision@K 相关文档数 in Top-KK\frac{\text{相关文档数 in Top-K}}{K} Top-K 中有多少是相关的
Recall@K 被找到的相关文档数总相关文档数\frac{\text{被找到的相关文档数}}{\text{总相关文档数}} 所有相关文档被找到了多少
MRR 1Qi=1Q1ranki\frac{1}{\|Q\|} \sum_{i=1}^{\|Q\|} \frac{1}{\text{rank}_i} 第一个相关文档的排名倒数均值
nDCG@K DCG@KIDCG@K\frac{\text{DCG@K}}{\text{IDCG@K}} 考虑位置的归一化增益
Hit Rate 有多少查询至少命中一个相关文档 简单但有价值

QUESTION 面试高频:如何评测检索质量? 构建标注数据集(query, relevant_docs),然后计算 Precision@K、Recall@K、MRR 和 nDCG@K。关键是标注成本——可以用 LLM 辅助标注,但必须人工抽检验证。实践中通常先构建 100-500 个 query 的标注集,再逐步扩大。

生成环节评测

生成质量指标

指标 说明 评估方式
Faithfulness 回答是否忠实于上下文 RAGAS 声明分解
Answer Correctness 回答是否事实正确(需参考答案) 与 golden answer 对比
Answer Relevancy 回答是否切题 语义相似度
无毒性 回答是否包含有害内容 分类器 + LLM 判断

幻觉检测方法

方法 原理 优缺点
SelfCheckGPT 多次采样检查一致性 无需外部知识,但漏检"自信的错误"
FactScore 拆分为原子事实逐条验证 粒度细,但依赖可靠知识源
NLI 判断 用蕴含模型判断上下文是否蕴含生成内容 速度快,但 NLI 模型精度有限
LLM-as-a-Judge 用强模型评估忠实度 灵活,但裁判模型可能引入偏差

端到端评测

评测数据集构建

数据来源 说明 成本
人工标注 专家编写 (query, context, answer) 三元组
LLM 合成 用 GPT-4 从文档生成问答对
真实日志 从线上用户查询中采样
基准数据集 MS MARCO, Natural Questions 等 免费

评测流程

1. 准备评测集:{query, golden_context, golden_answer}
2. 运行 RAG 管线:query → 检索 → 生成
3. 计算指标:
   - 检索指标:检索结果 vs golden_context
   - 生成指标:生成回答 vs golden_answer
   - 忠实度:生成回答 vs 实际检索上下文
4. 分析瓶颈:是检索问题还是生成问题?
5. 针对性优化

设计时真正要权衡什么

取舍 说明
自动评测 vs 人工评测 自动评测覆盖面广但精度有限,人工评测精确但成本高
合成数据 vs 真实数据 合成数据构建快但分布偏差,真实数据质量高但收集慢
LLM-as-a-Judge 偏差 裁判模型偏好更长、更格式化的回答
离线评测 vs 在线评测 离线评测可控但与真实场景有差距,在线评测真实但干扰多

如果要对外讲,可以怎么概括

"RAG 评测需要同时覆盖检索和生成两个环节。在检索端,我关注 Context Precision 和 Context Recall,前者衡量相关文档是否排名靠前,后者衡量检索是否覆盖了回答所需的所有信息。在生成端,Faithfulness 是最核心的指标——通过将回答分解为原子声明后逐条验证是否有上下文支持。实践中我使用 RAGAS 框架进行自动化评测,同时用 TruLens 的 RAG Triad(Context Relevance、Groundedness、Answer Relevance)进行交叉验证。关键是先定位瓶颈——如果 Context Recall 低说明检索不够,如果 Faithfulness 低说明生成在幻觉,然后针对性优化。"

最后记几条

  1. RAGAS 四指标:Faithfulness、Answer Relevancy、Context Precision、Context Recall
  2. Faithfulness = 被支持的声明数 / 总声明数——核心幻觉检测方法
  3. 评测先行:先建立评测管线,再做任何优化,否则是盲人摸象
  4. 定位瓶颈:检索问题 vs 生成问题,针对性优化
  5. LLM-as-a-Judge 有偏差:偏好更长更格式化的回答,需人工抽检

参考资料

  • Es, S. et al. "RAGAS: Automated Evaluation of Retrieval Augmented Generation" (AAAI 2024)
  • TruLens RAG Triad: https://www.trulens.org/
  • ARES: "Automated Evaluation of Retrieval-Augmented Generation" (2024)
  • Saad-Falcon, J. et al. "ARES: An Automated Evaluation Framework for RAG"

延伸阅读