尽管RAG模型在许多应用中表现出色,但它们在实际使用中也可能面临回答不准确的问题,那么如何有效地诊断和解决这些问题就显得尤为重要。亚马逊发布了一个全新的开源工具——
RAGChecker
,旨在帮助开发者和研究人员对RAG系统进行全面、可靠、细粒度诊断,着重解决AI回答不准的问题,并为进一步提升性能,提供可操作的方向。这个工具就像是给RAG系统开了一剂"药方",帮助它"康复",为我们的开发者打造更智能、更可靠的RAG系统。
论文:https://arxiv.org/pdf/2408.08067
项目:https://github.com/amazon-science/RAGChecker
一、了解现有 RAG 系统评估框架
RAG评估方向 | 评估框架及链接 | 描述 |
生成器基本能力评估 | RGB | |
手动构建测试集,评估生成器的噪声鲁棒性、负拒绝、信息整合和反事实鲁棒性 | ||
生成器基本能力评估 | RECALL | |
引入手动编辑的反事实上下文到QA和文本生成数据集,评估LLMs的反事实鲁棒性 | ||
生成器基本能力评估 | NoMIRACL | |
通过人工判断相关和非相关数据集,评估LLMs对检索错误的鲁棒性 | ||
生成器基本能力评估 | 通过引入不同水平的扰动来量化LLMs的忠实度与内部先验间的平衡 | |
生成器基本能力评估 | FAAF | |
提出细粒度的事实验证方法,用于评估生成器的真实性 | ||
RAG系统端到端评估 | TruLens | |
https://www.trulens.org/trulens_eval/core_concepts_rag_triad/ | 引入RAG三元组概念,评估上下文相关性、基础性和答案相关性 | |
RAG系统端到端评估 | RAGAS | |
https://arxiv.org/pdf/2309.15217 和 ARES | ||
跟随RAG三元组概念,在不同数据集上优化分数预测方法 | ||
RAG系统端到端评估 | CRUD-RAG | |
涉及CRUD操作,开发特定的RAG系统数据集和评估标准 | ||
其他端到端评估 | Findings of the Association for Computational Linguistics: EMNLP 2023, pages 7001–7025 | 进行人类评估,考察生成搜索引擎的流畅性、感知效用和可验证性 |
其他端到端评估 | MEDRAG | |
构建医学RAG基准,用QA准确性评估医学RAG系统 | ||
其他端到端评估 | MultiHop-RAG | |
从新闻文章生成多跳查询,评估RAG系统的QA准确性 | ||
其他端到端评估 | CDQA | |
提出一种生成动态QA问题的新方法,要求使用最新信息回答 |
然而,上述评估框架中使用的评估指标要么依赖于人类评估,要么依赖于简单的文本准确性,这使得它们无法应对需要长答案评估的复杂RAG场景。因此,我们没有真正将它们纳入元(meta)评估。下面我们进入本文将要介绍的一种先进的自动评估框架:RAGChecker。
二、RAGChecker 框架核心内容
RAGChecker 是一种先进的自动评估框架,它提供了一套全面的指标和工具,用于深入分析 RAG 性能。它的功能主要有:
- 基于声明的细粒度评估:RAGChecker基于(claim-level entailment)声明级别的细粒度评估,而不是响应级别的评估。从响应和真实答案中提取声明并与其他文本进行对比,这种方法能够对系统性能进行更加详细和微妙的分析,提供深入的洞察。
RAGChecker的指标示意图:上面的文氏图展示了模型响应与真实答案之间的比较,显示了可能的正确(O)、不正确(x)和缺失的声明(△)。检索到的片段根据它们包含的声明类型被分类为两类。
- 整体指标:为了提供一个全面的系统性能视图,RAGChecker计算每个模型生成响应与其配对的真实答案之间的声明级别的精度和召回率。
Precision 精度
是响应中正确声明的比例,Recall 召回率
是真实答案中正确声明的比例。精度和召回率的调和平均值作为整体性能指标F1
分数。 - 检索器指标:理想情况下,完美的检索器会返回生成真实答案所需的所有声明。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。
- 元(meta)评估:为了验证RAGChecker的有效性,进行了元(meta)评估,比较了RAGChecker与现有的基线RAG评估框架(如TruLens、RAGAS和ARES)。元(meta)评估数据集由8个基线RAG系统生成的响应组成,每个实例是两个基线RAG系统给出的响应对。
四、结果分析
10个不同领域数据集上8个RAG系统与人类评估正确性、完整性和总体评估的相关性结果。
- 元(meta)评估结果:RAGChecker在正确性、完整性和整体评估方面与人类偏好有最强的相关性。具体结果如下:
- 正确性:RAGChecker的相关系数为[49.66],优于其他基线指标。
- 完整性:RAGChecker的相关系数为[60.67],优于其他基线指标。
- 整体评估:RAGChecker的相关系数为[61.93],优于其他基线指标。
- 主要结果:在10个领域的数据集上对8个RAG系统进行了平均评估。
- 检索器的重要性:检索器的质量对整体性能有显著影响。E5-Mistral检索器与GPT-4生成器结合的系统在所有指标上表现最佳。
- 生成器模型大小的影响:与相同的检索器结合,Llama3-70B生成器在所有指标上表现优于Llama3-8B。
- 上下文利用率的稳定性:上下文利用率与整体F1分数强相关,且在不同检索器之间相对稳定。
- 信息丰富的上下文提高忠实度和减少幻觉:E5-Mistral检索器使生成器能够更好地识别和利用信息,从而提高了忠实度和减少了幻觉。
- 检索器召回率与生成器噪声敏感性的权衡:随着检索器召回率的增加,生成器对所有类型的噪声变得更加敏感。
- 开源模型在区分准确信息和噪声方面的不足:GPT-4在上下文利用率和噪声敏感性方面表现优于其他开源模型,但倾向于盲目信任上下文。
五、总结
本文提出了RAGChecker,一种新的RAG评估框架,为检索器和生成器组件提供了细粒度的评估。通过元(meta)评估验证了RAGChecker与人类判断的高度相关性。广泛的实验评估揭示了RAG系统设计中的有价值的见解,如检索改进与噪声引入之间的权衡,以及忠实开源模型对上下文的盲目信任倾向。RAGChecker不仅加深了对RAG系统架构的理解,还为未来的RAG应用提供了关键指导。
优点
- 提出了RAGChecker框架:RAGChecker是一个新颖的RAG系统评估框架,提供了对检索器和生成器组件的细粒度评估,引入了新的诊断指标以提供可操作的错误来源洞察。
- 元(meta)评估验证:通过元(meta)评估验证了RAGChecker与人类判断的相关性显著优于其他评估指标。
- 广泛的实验:在10个领域的基准上对8个最先进的RAG系统进行了全面的实验评估,揭示了RAG系统设计选择中的有价值的见解,如检索改进与噪声引入之间的权衡,以及忠实开源模型对上下文的盲目信任倾向。
- 细粒度的错误分析:基于声明级别的细粒度的评估,RAGChecker能够进行细粒度的错误分析,而不仅仅是响应级别的评估。