作者:刘金涛、丁瑞雪
检索增强生成(Retrieval-Augmented Generation, RAG)致力于通过从外部知识源检索上下文来提升大型语言模型的表现,进而生成更加准确和可靠的答案,从而有效降低幻觉现象的发生。尽管该领域取得了一些进展,但评估这些系统仍然面临一些关键挑战:
数据多样性有限:知识库和查询类型的多样性不足,限制了RAG系统的广泛适用性; 问题定位困难:RAG系统包括切片、检索、排序、生成等一系列环节,当答案不及预期时,无法确切知道问题发生在链路的哪一环节,因此很难进行定向优化; 检索评估标注量大:传统检索评估方案依赖对于正确doc(在RAG场景里是chunk)的标注,但当切片策略变化时对应doc集合也会变化,需要进行重新标注。
针对以上问题,阿里巴巴通义实验室RAG团队提出了一个全链路综合评估框架CoFE-RAG。此框架将RAG链路划分为切片,检索,排序,生成四个模块。通过使用CoFE-RAG进行评估,可以发现RAG系统在每个模块的准确率,找出系统瓶颈定向优化;另外针对单个badcase,也可以快速定位到问题发生的模块,进行针对性修复。CoFE-RAG还可以被用于生产链路,作为全链路模块监测方案,实现细粒度模块异常检测。
针对CoFE-RAG评估框架所需的标注数据,我们在Git中提供了一套自动数据生产方法,只需要上传原始的文档(PDF、Word、markdown、txt等),即可一键生成与CoFE-RAG配套的评估数据。
此外,基于自动化数据生产方法配合人工质检,我们也发布了一份多样化数据场景的综合基准数据集,旨在全方位评估RAG系统的各个阶段。该数据集配备了涵盖广泛文档形式的知识库,覆盖多个领域,多种文档格式,以及丰富的查询类型,包括事实性、分析性、比较性和教程性查询。
实验结果表明,现有的检索模型在处理事实性查询方面表现优异,但在分析性、比较性和教程性查询方面表现不佳。此外,现有的大型语言模型在利用检索到的上下文生成更准确和可靠的响应方面也面临挑战。CoFE-RAG实现了对RAG系统的全链路评估,提供了优化RAG系统各阶段的关键思路。
文章链接:https://arxiv.org/abs/2410.12248
项目链接:https://github.com/Alibaba-NLP/CoFE-RAG

(1)CoFE-RAG可以处理多种类型的文件以及复杂Query;
(2)CoFE-RAG可以实现对RAG全链路评估;
(3)CoFE-RAG采用多粒度关键词评估切片,检索和排序阶段,而不依赖chunk标注。
我们的方法可以划分为数据构造和评估框架两部分

从多个开源网站搜集了各种格式的文档,涵盖了PDF、DOC、PPT和XLSX等类型。这些文档涉猎广泛,涉及金融、技术、医疗、商业和互联网等多个行业,内容丰富,包括行业报告、手册和统计数据。尤其值得一提的是,这些文档大多数都是近年来创建的,其中有相当部分是2024年的,这超出了许多现有大型语言模型的知识截止范围,从而为评估RAG系统提供了丰富且时效的信息源。
多类型查询:定义了四种类型的查询:事实性、分析性、比较性和教程性查询。每种查询类型的定义如下表所示。

我们精心设计了包括任务指令、示例和文档片段的Prompt。对于每个文档片段,我们使用GPT-4生成四种不同类型的查询。如果无法生成符合要求的某种查询类型,对应输出将为“无法生成”。生成的查询必须满足三个标准:清晰准确、符合查询类型定义、能够从文档片段中推断出来。然后,我们聘请标注人员评估每个查询的可接受性,只有完全符合标准的查询才被接受。
多粒度关键词:为了解决依赖切片评估检索性能的问题,我们创新性地为每个查询标注了多粒度关键词。这些关键词包括粗粒度和细粒度关键词。粗粒度关键词是从查询和片段中提取的最具代表性和相关性的词语,通常由一个或几个词组成;而细粒度关键词则被定义为一组列表,每个列表依次对应为解决当前查询从目标片段中总结的信息点,列表的元素为对应信息点的子句或文本片段。我们设计了包含任务指令、示例、查询和文档片段的Prompt并使用GPT-4生成这些关键词。生成的关键词经过标注人员评估,只有符合要求的关键词才被接受。
此外,我们还以类似的方式生成参考答案,以便准确评估RAG系统的回答效果。
经过三个生成步骤,每个样本包含查询、粗粒度关键词、细粒度关键词和参考答案。这些生成的数据历经严格的人工审核,以确保其质量。在合成的查询中,92.2%的查询被人工标注人员接受;在合成的多粒度关键词中,87.3%的关键词被人工标注人员接受;在生成的参考答案中,74.8%的答案被人工标注人员接受。总体接受率为60.2%。查询类型的分布和知识库中各文件类型的统计信息如下表所示:



CoFE-RAG框架旨在基于多粒度关键词而非chunk来评估切片、检索和排序的质量。对于得到的前K个chunk,我们将粗粒度关键词作为宽松约束,过滤掉不包含任何粗粒度关键词的结果。这一步确保了只有上下文相关的chunk被考虑用于进一步评估。过滤后,我们将剩余chunk组合起来,并使用细粒度关键词的召回率和准确率两个指标来评估检索结果。
我们使用多种指标来评估生成响应的质量,包括BLEU、Rouge-L、忠实度、相关性和正确性。其中,忠实度、相关性和正确性由LlamaIndex的内置评估器计算,该评估器使用GPT-4通过上下文学习自动评估。
我们采用不同的方法分别对检索,排序,生成,切片阶段的效果进行评估。

不同向量模型的实验结果如表所示。我们观察到,bge-large模型在召回率和准确率方面优于其他模型,无论是在所有类型的查询还是总体表现上。这表明该模型在捕捉查询与其上下文之间的语义关系方面具有较强的能力。在所有向量模型中,事实性查询的表现普遍优于分析性、比较性和教程性查询。这可能是因为事实性查询的相关上下文通常包含在单个块中,使得检索更为容易。相比之下,其他类型的查询更为复杂,其相关上下文可能分布在多个块中,使得检索更具挑战性。
我们对初始检索结果进行重新排序,并选择排名前4的块来评估重排序的性能。不同排序模型的实验结果如表所示。我们观察到,bge-reranker-large性能最佳。此外,使用重排序后的结果比利用所有检索结果的效果差。这表明当前的重新排序方法仍然表现不佳,可能会遗漏一些相关的块。在检索和重排序阶段之后,事实性查询的表现仍然优于其他三种查询,这进一步证明了我们的分析。
不同LLMs的生成性能如表所示。我们观察到,GPT-4在各种LLMs中取得了最佳结果,显著优于其他模型。具有较大参数的模型,如GPT-4和Claude-3,通常比参数较小的模型,如Qwen-7B、Llama-7B表现更好。这可能是因为参数较大的模型具有更强的推理和泛化能力,减少了幻觉的风险,并能够处理更复杂的任务。在Qwen2-7B、Llama2-7B和ChatGLM-6B中,Qwen2-7B表现最佳,展示了其在RAG系统中生成准确和可靠答案的能力。

我们可以观察到,事实性查询的性能通常优于其他查询类型。这一观察结果突显了分析性、比较性和教程性查询的复杂性和挑战性,建议需要进一步努力以提高在这些更复杂查询类型上的表现。
不同块大小的性能如图所示。我们可以观察到,使用512大小的块可以实现更好的检索、重新排序和生成性能。这表明较大的块更有效地保留了文档的原始信息,从而有助于系统处理复杂查询的能力。
在本文中,我们提出了CoFE-RAG框架,以对整个RAG链路进行全面评估。我们引入了多粒度关键词来评估检索到的上下文,而不是依赖于chunk的标注,这种方法可以有效评估分块、检索和排序的性能,特别是在分块策略发生变化时。此外,我们发布了一个全面的基准数据集,针对多样的数据场景,涵盖了广泛的文档格式和查询类型。实验结果表明,尽管已经取得了显著进展,当前的方法在处理复杂查询类型和多样化知识库方面仍有很大的改进空间。
内容中包含的图片若涉及版权问题,请及时与我们联系删除
评论
沙发等你来抢