亚马逊开源 RAGChecker:诊断与提升 RAG 模型准确性工具
尽管检索增强生成(RAG)模型在许多应用中表现出色,但它们在实际使用中也可能面临回答不准确的问题。如何有效地诊断和解决这些问题显得尤为重要。亚马逊发布了一个全新的开源工具——RAGChecker,旨在帮助开发者和研究人员对 RAG 系统进行全面、可靠、细粒度诊断,着重解决 AI 回答不准的问题,并为进一步提升性能提供可操作的方向。
了解现有 RAG 系统评估框架
在引入 RAGChecker 之前,我们需要了解现有的 RAG 系统评估框架及其局限性。
| RAG 评估方向 | 评估框架及链接 | 描述 |
|---|---|---|
| 生成器基本能力评估 | RGB | 手动构建测试集,评估生成器的噪声鲁棒性、负拒绝、信息整合和反事实鲁棒性 |
| 生成器基本能力评估 | RECALL | 引入手动编辑的反事实上下文到 QA 和文本生成数据集,评估 LLMs 的反事实鲁棒性 |
| 生成器基本能力评估 | NoMIRACL | 通过人工判断相关和非相关数据集,评估 LLMs 对检索错误的鲁棒性 |
| 生成器基本能力评估 | 2024.10198 | 通过引入不同水平的扰动来量化 LLMs 的忠实度与内部先验间的平衡 |
| 生成器基本能力评估 | FAAF | 提出细粒度的事实验证方法,用于评估生成器的真实性 |
| RAG 系统端到端评估 | TruLens | 引入 RAG 三元组概念,评估上下文相关性、基础性和答案相关性 |
| RAG 系统端到端评估 | RAGAS / ARES | 跟随 RAG 三元组概念,在不同数据集上优化分数预测方法 |
| RAG 系统端到端评估 | CRUD-RAG | 涉及 CRUD 操作,开发特定的 RAG 系统数据集和评估标准 |
| 其他端到端评估 | EMNLP 2023 | 进行人类评估,考察生成搜索引擎的流畅性、感知效用和可验证性 |
| 其他端到端评估 | MEDRAG | 构建医学 RAG 基准,用 QA 准确性评估医学 RAG 系统 |
| 其他端到端评估 | MultiHop-RAG | 从新闻文章生成多跳查询,评估 RAG 系统的 QA 准确性 |
| 其他端到端评估 | CDQA | 提出一种生成动态 QA 问题的新方法,要求使用最新信息回答 |

然而,上述评估框架中使用的评估指标要么依赖于人类评估,成本高昂且难以扩展;要么依赖于简单的文本准确性,这使得它们无法应对需要长答案评估的复杂 RAG 场景。因此,我们需要一种更先进的自动评估框架:RAGChecker。
RAGChecker 框架核心内容
RAGChecker 是一种先进的自动评估框架,它提供了一套全面的指标和工具,用于深入分析 RAG 性能。其核心在于基于声明(Claim)级别的细粒度评估,而非传统的响应级别评估。
基于声明的细粒度评估
RAGChecker 基于 (claim-level entailment) 声明级别的细粒度评估。从响应和真实答案中提取声明并与其他文本进行对比,这种方法能够对系统性能进行更加详细和微妙的分析,提供深入的洞察。

RAGChecker 的指标示意图展示了模型响应与真实答案之间的比较,显示了可能的正确(O)、不正确(x)和缺失的声明(△)。检索到的片段根据它们包含的声明类型被分类为两类。
整体指标
为了提供一个全面的系统性能视图,RAGChecker 计算每个模型生成响应与其配对的真实答案之间的声明级别的精度和召回率。
- Precision 精度:响应中正确声明的比例。
- Recall 召回率:真实答案中正确声明的比例。
- F1 分数:精度和召回率的调和平均值,作为整体性能指标。
检索器指标
理想情况下,完美的检索器会返回生成真实答案所需的所有声明。RAGChecker 定义了以下检索器指标:
- 声明召回率:真实答案中的声明在检索到的文本块中被覆盖的比例。
- 上下文精度:检索到的文本块中包含任何真实答案声明的比例。
生成器指标
给定检索到的文本块,生成器可能会生成正确、错误或缺失的声明。RAGChecker 定义了以下生成器指标:
- 忠实度:生成器生成的声明与提供的上下文一致的比例。
- 相关噪声敏感性:生成器在相关文本块中包含错误声明的比例。
- 无关噪声敏感性:生成器在无关文本块中包含错误声明的比例。
- 幻觉:生成器生成的声明不在任何检索到的文本块中的比例。
- 自我知识:生成器基于自身知识生成的正确声明的比例。
- 上下文利用率:生成器使用的真实答案声明在检索到的文本块中的比例。
这些指标共同构成了一个多维度的评估体系,帮助开发者定位是检索环节出了问题,还是生成环节出现了幻觉或忠实度不足。
实验设计
为了验证 RAGChecker 的有效性,研究团队进行了广泛的实验设计。
数据集准备
RAGChecker 使用一个包含 4162 个查询的基准数据集,涵盖 10 个领域(Wikipedia、AI Science、Novel、Biomedical、Finance、Lifestyle、Recreation、Science、Technology 和 Writing)。数据集是从公共数据集中重新整理而来的,短答案被转换为长答案以匹配当前的 RAG 系统需求,确保评估场景的复杂性。
基线 RAG 系统
实验应用 RAGChecker 于 8 个定制的 RAG 系统,这些系统结合了 2 个检索器和 4 个生成器。具体配置如下:
- 检索器:BM25 和 E5-Mistral。
- 生成器:GPT-4、Mixtral-8x7B、Llama3-8B 和 Llama3-70B。
这种组合覆盖了传统统计检索、稠密向量检索以及不同规模的大语言模型,具有广泛的代表性。
元评估
为了验证 RAGChecker 的有效性,进行了元评估,比较了 RAGChecker 与现有的基线 RAG 评估框架(如 TruLens、RAGAS 和 ARES)。元评估数据集由 8 个基线 RAG 系统生成的响应组成,每个实例是两个基线 RAG 系统给出的响应对。通过这种方式,可以量化新指标与人类偏好的一致性。
结果分析
实验结果揭示了 RAG 系统设计中的关键洞察。

元评估结果
RAGChecker 在正确性、完整性和整体评估方面与人类偏好有最强的相关性。具体结果如下:
- 正确性:RAGChecker 的相关系数为 49.66,优于其他基线指标。
- 完整性:RAGChecker 的相关系数为 60.67,优于其他基线指标。
- 整体评估:RAGChecker 的相关系数为 61.93,优于其他基线指标。
这表明 RAGChecker 能够更准确地反映人类对回答质量的真实感受。
主要结果
在 10 个领域的数据集上对 8 个 RAG 系统进行了平均评估。

- 检索器的重要性:检索器的质量对整体性能有显著影响。E5-Mistral 检索器与 GPT-4 生成器结合的系统在所有指标上表现最佳。这强调了高质量检索上下文对于减少生成器幻觉的关键作用。
- 生成器模型大小的影响:与相同的检索器结合,Llama3-70B 生成器在所有指标上表现优于 Llama3-8B。这表明在资源允许的情况下,更大的模型通常能提供更准确的答案。
- 上下文利用率的稳定性:上下文利用率与整体 F1 分数强相关,且在不同检索器之间相对稳定。这是一个重要的发现,意味着优化上下文利用率可以直接提升最终效果。
- 信息丰富的上下文提高忠实度和减少幻觉:E5-Mistral 检索器使生成器能够更好地识别和利用信息,从而提高了忠实度和减少了幻觉。
- 检索器召回率与生成器噪声敏感性的权衡:随着检索器召回率的增加,生成器对所有类型的噪声变得更加敏感。这意味着单纯追求高召回率可能会引入更多干扰信息,需要在召回率和精确率之间找到平衡。
- 开源模型的局限性:GPT-4 在上下文利用率和噪声敏感性方面表现优于其他开源模型,但倾向于盲目信任上下文。开源模型在区分准确信息和噪声方面的能力仍有待提升。
总结
本文提出了 RAGChecker,一种新的 RAG 评估框架,为检索器和生成器组件提供了细粒度的评估。通过元评估验证了 RAGChecker 与人类判断的高度相关性。广泛的实验评估揭示了 RAG 系统设计中的有价值的见解,如检索改进与噪声引入之间的权衡,以及忠实开源模型对上下文的盲目信任倾向。
优点
- 提出了 RAGChecker 框架:RAGChecker 是一个新颖的 RAG 系统评估框架,提供了对检索器和生成器组件的细粒度评估,引入了新的诊断指标以提供可操作的错误来源洞察。
- 元评估验证:通过元评估验证了 RAGChecker 与人类判断的相关性显著优于其他评估指标。
- 广泛的实验:在 10 个领域的基准上对 8 个最先进的 RAG 系统进行了全面的实验评估,揭示了 RAG 系统设计选择中的有价值的见解。
- 细粒度的错误分析:基于声明级别的细粒度的评估,RAGChecker 能够进行细粒度的错误分析,而不仅仅是响应级别的评估。
问答环境回顾
问题 1:RAGChecker 框架中的 claim-level 事实检查是如何实现的?
RAGChecker 框架通过 claim-level 的事实检查来实现细粒度的评估。具体步骤如下:
- 文本到 Claim 提取:首先,使用一个文本到 claim 提取器将给定的文本(包括响应和真实答案)分解为一组独立的声明(Claims)。这一步通常利用大语言模型将复杂的句子拆解为原子化的事实陈述。
- Claim-level 的事实检查:然后,使用一个 claim-level 的事实检查器来确定提取的 claim 是否在参考文本(可以是响应、真实答案或其他相关文本)中得到支持。如果一个 claim 在参考文本中得到支持,则认为该 claim 是成立的(entailed);如果矛盾,则为不成立(contradiction);如果无法判断,则为中立(neutral)。
- 评估指标计算:根据 claim-level 的事实检查结果,计算各种评估指标,如精度、召回率、F1 分数、claim 召回率、上下文精度、忠实度、相关噪声敏感性、无关噪声敏感性、幻觉、自我知识和上下文利用率。这种细粒度的评估方法不仅关注响应的正确性,还关注其完整性和上下文相关性,从而提供更全面的系统性能评估。
问题 2:RAGChecker 框架在元评估中表现如何,与其他评估框架相比有何优势?
RAGChecker 框架在元评估中表现出色,具体优势如下:
- 高相关性:RAGChecker 在正确性、完整性和整体评估方面与人类偏好有最强的相关性。与现有基准评估框架(如 TruLens、RAGAS 和 ARES)相比,RAGChecker 在这些方面表现最佳,说明它能更好地模拟人类的判断逻辑。
- 全面性:RAGChecker 提供了细粒度的评估,不仅关注响应的正确性,还关注其完整性和上下文相关性,从而提供更全面的系统性能评估。它能够区分是检索错了还是生成错了,这是许多黑盒评估工具无法做到的。
- 可靠性验证:通过构建一个包含 8 个基线 RAG 系统生成响应的元评估数据集,RAGChecker 验证了其有效性和可靠性,确保其在现实世界场景中的实用性。
综上所述,RAGChecker 框架不仅在评估的全面性和细粒度上优于现有方法,还在与人类判断的相关性上表现出色,为 RAG 系统的评估提供了新的思路和工具。开发者可以利用这一工具快速定位 RAG 流水线中的瓶颈,从而针对性地优化检索策略或调整生成参数,最终提升用户体验。

