XRAG: eXamining the Core - Benchmarking Foundational Components in Advanced Retrieval-Augmented Gene
2026/8/30 3:08:21 网站建设 项目流程

一、研究背景与问题

  • RAG技术:通过结合外部知识检索与LLM生成能力,提升问答等任务的准确性和时效性。

  • 现有工具与局限

    • LangChain、LlamaIndex等框架灵活但复杂,难以适配新数据;

    • FastRAG、AutoRAG等虽支持模块化,但组件选择有限,复现和创新困难;

    • FlashRAG、RAGLAB等评估框架缺乏统一的实验设置(如随机种子、检索器、指令等),导致结果难以比较;

    • 核心缺失:缺乏对RAG各核心模块(预检索、检索、后检索、生成)在统一条件下的系统性评估和对比分析。

二、XRAG框架的提出

XRAG是一个开源、模块化的代码库,旨在全面评估高级RAG系统中基础组件的性能。其主要贡献包括四方面:

1. 模块化RAG架构与细粒度评估
  • 覆盖RAG四个核心阶段:预检索、检索、后检索、生成

  • 组件多样化:3种查询重写策略、6种检索单元、3种后处理技术、多种LLM生成器(OpenAI、Meta、DeepSeek等);

  • 对每个组件的独立和组合性能进行系统实验。

2. 代理式RAG流程与多编排器设计
  • 支持五种编排器(顺序、条件、迭代、并行、混合);

  • 可灵活组合组件,适应不同复杂度和数据类型的应用场景;

  • 实验比较了不同编排器在多跳(HotpotQA)和单跳(NaturalQA)任务上的效果和效率。

3. 统一基准数据集与双重评估
  • 将四个常用数据集(HotpotQA、DropQA、NaturalQA、FinanceBench)预处理为统一格式;

  • 同时支持检索生成的标准化评估,便于跨模块、跨编排器的公平比较。

4. 多维评估体系
  • 常规检索评估(ConR):F1、MRR、Hit@1/10、NDCG等;

  • 常规生成评估(ConG):ChrF、METEOR、ROUGE、WER/CER等;

  • 认知LLM评估(CogL):基于语义理解的指标(如事实准确性、忠实度、幻觉检测等),弥补了传统规则指标的局限。

三、主要实验发现

  1. 检索性能

    • DQA(需数值推理)和FQA(金融文档)难度最大;

    • 重排序(reranking)等后检索模块能显著提升检索效果;

    • Hit@1更适用于单目标任务,而多目标场景(如HotpotQA)需结合NDCG等综合判断。

  2. 生成性能

    • 直接提供“黄金上下文”并不总是最优,检索到的补充上下文有时更有助于推理;

    • 模型选择比单纯增加参数更重要:GPT-4o-mini、Llama-3.1-70B在维基百科类数据上表现好,但在数值/逻辑任务上优势更明显;

    • DeepSeek-R1系列在RAG场景中幻觉率偏高。

  3. 编排器效果

    • 迭代编排(如SIM-RAG)在多跳问题上效果最好,但耗时最长;

    • 顺序编排在简单任务上效率最高;

    • 条件/混合编排(如Self-RAG、Adapt-RAG)引入额外分类器或反思机制,开销较大,但对动态任务有一定优势。

  4. 影响因素分析

    • 更长的查询有利于提升检索和生成效果;

    • 增加检索数量对性能提升有限,关键在检索精度

    • 问题难度越大,检索和生成的难度同步上升,且严格的指标(如Hit@1、ChrF)对难度更敏感;

    • 好的检索≠好的生成:即使检索命中,仍可能出现低质量答案;

    • 迭代次数在达到上限前能有效提升多跳任务的答案质量,但超限后可能引入噪声。

四、研究意义与未来方向

  • 贡献

    • 提供首个面向高级RAG组件的系统性基准平台;

    • 通过统一数据、模块和评估体系,使不同RAG方案的可比性大幅提升;

    • 为实际应用选择检索、生成和编排策略提供数据支持。

  • 未来计划

    • 支持RAG组件训练能力;

    • 扩充更多基准数据集(如OpenQA、长文本QA、多选QA);

    • 增加对噪声、格式异常查询的鲁棒性评估;

    • 鼓励开源社区协作,完善框架功能。

XRAG是一个系统性、模块化、多维度的RAG组件评估平台,通过统一的数据、流程和指标体系,揭示了不同检索、生成和编排策略对RAG效果的影响规律,为构建更高效、更适配场景的RAG系统提供了实证基础与工具支持。这里是自己的论文阅读记录,感兴趣的话可以参考一下,如果需要阅读原文的话可以看这里,如下所示:

项目地址在这里,如下所示:

摘要——检索增强生成(RAG)将相关数据库的检索与大型语言模型(LLM)的生成能力相结合,确保生成的输出不仅与上下文相关,而且准确且具有时效性。我们介绍了XRAG,一个开源、模块化的代码库,旨在对高级RAG模块的基础组件的性能进行详尽评估。这些组件被分为四个核心阶段:预检索、检索、后检索和生成。我们在重新配置的数据集上对它们进行了系统分析,为其有效性提供了全面的基准测试。这些组件可以通过编排器以不同方式组合,编排器共有五种类型:顺序型、条件型、迭代型、并行型和混合型。我们的工作全面评估了RAG系统中高级核心组件的性能,为在数据集驱动的AI应用中优化RAG架构提供了可行的见解。

索引词——数据库、检索增强生成、评估、基准测试、数据管理

I. 引言

检索增强生成(RAG)[1]–[8]代表了问答(Q&A)任务中的一种关键策略,与仅依赖大型语言模型(LLM)相比,它通过提供更具信息量和更准确的答案,展现出增强的性能。基础RAG系统[9], [10]的有效性取决于四个核心组件的无缝协作:预检索、检索、后检索和生成。预检索阶段对语料库进行索引并重构查询以实现高效检索。检索阶段专注于识别和提取与给定查询相关的文档。后检索阶段对信息进行精炼、总结或压缩,以确保上下文清晰。最后,生成阶段使用LLM生成响应。在基础RAG系统中,这些阶段按顺序执行。然而,在处理复杂的检索场景时,基础RAG通常存在效率低下和检索不完整的问题。因此,高级RAG系统优化了检索过程,不再局限于顺序执行。RAG流程有如下五种:顺序型、条件型、迭代型、并行型和混合型。这些阶段和流程对输出质量有着至关重要的影响,突显了RAG框架的相互依赖性。

在以复杂数据集结构为特征的现实世界应用中,现有的RAG框架表现出明显的局限性。像LangChain [12]和LlamaIndex [13]这样的模块化RAG工具包通常很复杂,使得适应新数据具有挑战性,并且验证或优化创新方法不方便。像FastRAG [14]、RALLE [15]、AutoRAG [17]和LocalRQA [16]这样的高效RAG框架要求用户独立复现已发表的算法,并且提供的组件选项有限,尽管采用了模块化设计,但限制了RAG系统的灵活性。在模块评估任务中,FlashRAG [18]在基础评估组件(如随机种子、生成器、检索器和指令)方面缺乏统一性,这阻碍了结果的可比性。RAGLAB [11]虽然提供了公平的实验设置,但缺乏评估单个RAG组件的全面评估策略。尽管持续的努力通过模块化RAG流程(例如,检索引擎和生成代理)来应对这些挑战,但在整个RAG工作流程中,对这些高级RAG模块的比较性能评估仍然存在一个隐含的空白。这些模块的全面评估明显缺失,使得研究人员难以在一致的实验条件下评估他们的方法。

为了解决上述问题,我们专注于高级RAG模块的核心组件以及代理式RAG的编排器,并进行了全面的实验。我们介绍了XRAG ¹,一个开源、模块化的代码库,旨在全面评估高级RAG模块的基础组件。XRAG提供四个主要能力:

模块化RAG架构:细粒度比较分析。我们对预检索、检索、后检索和生成四个阶段的高级RAG模块进行了广泛的实验。核心组件涵盖了三种查询重写策略、六个检索单元、三种后处理技术,以及来自不同供应商(OpenAI、Meta和DeepSeek)的LLM生成器。XRAG提供了对RAG组件能力的深入理解。

代理式RAG流程:多编排器集成与工作流设计。XRAG架构包含了五种编排器:顺序型、条件型、迭代型、并行型和混合型。它提供了一个简化的框架,可以灵活地编排代理式RAG流程并集成高级RAG模块。此外,为了指导RAG系统在各种场景和数据类型下的开发,XRAG对其编排器进行了性能评估。

统一基准数据集:检索与生成的双重评估。为了增强RAG研究中数据集的统一性,XRAG编译并格式化了四个流行的基准数据集,并将其预处理为统一格式。这种标准化使得能够同时评估检索和生成,从而简化了跨RAG模块和编排器的比较评估。

全面的测试方法论:多维评估框架。为了克服RAG组件缺乏整体评估体系的问题,XRAG引入了一个包含三个视角的评估基准,用于对检索和生成进行全面评估。它包括用于检索单元匹配的常规检索评估、基于生成令牌匹配的常规生成评估,以及基于语义理解的认知LLM评估。

II. 相关工作

A. 用于代理式数据管理的RAG

在数据管理中,基准测试通过提供超越端到端指标的、关于RAG系统中查询优化器和检索模型等组件的详细见解,来确保公平的性能评估。虽然RAG系统通常被视为自然语言处理的范畴,但其有效性从根本上取决于底层知识语料库的质量、组织和可访问性——这是一个经典的数据管理问题[19]。现有用于AI的数据库系统方法,如SAGE [20]、ARAG [21]和scRAG [22],通常缺乏标准化的数据集和指标来专门诊断检索组件。我们的工作通过引入一个基准测试框架来弥补这一差距,该框架将数据管理严格的评估原则应用于RAG流程,从而能够系统评估数据整理、索引和检索策略最终如何影响生成答案的质量。在某些数据库系统中,例如HTAP数据库[23], [24]和DB-GPT [25],XRAG可以处理非结构化数据,并利用RAG技术进行检索和评估,使这些数据库系统能够应用于生成和推理等场景。

B. RAG系统或工具包

检索增强生成[1]–[8]已被广泛采用,作为一种有效的技术,用于缓解大型语言模型在各种复杂生成和推理任务中的幻觉问题。这些任务通常需要从大规模数据库中检索关键信息,以确保准确的结果和逻辑上合理的推理过程。像LangChain [12]和LlamaIndex [13]这样的工具包将RAG流程模块化,增加了适应性并拓宽了其应用范围。FastRAG [14]和RALLE [15]允许用户使用核心组件组装RAG系统,促进更灵活的实现。AutoRAG [17]通过帮助用户识别其自定义数据的最佳RAG流程,进一步支持用户构建定制的RAG系统。LocalRQA [16]和RAGLAB [11]专注于RAG训练,为各种组件的训练提供脚本。FlashRAG [18]和RAGLAB [11]通过将众多算法集成到统一框架中,推动了RAG系统的算法可复现性,支持高效复现现有方法并促进算法开发的创新。尽管存在可扩展性受限、评估协议不完善、缺乏代理式RAG分析以及指标非标准化等问题,模块化RAG框架仍普遍存在于当前的工程实践中。与此同时,研究人员正逐步将RAG工作流模块化,以满足大型语言模型生成任务中的数据集检索需求。

受这些模块化RAG框架的启发,我们引入XRAG来全面评估高级RAG模块的基础组件。

III. XRAG

图1描绘了XRAG框架的集成模块和架构示意图。该框架分为数据集与语料库、高级组件、编排器和评估器,通过XRAG的控制板和配置钩子²进行集成。整体结构从基础组件过渡到面向应用的组件。XRAG采用模块化架构设计,使用户能够完成:准备标准化的RAG数据集(第III-C节)、组装RAG组件(第III-A节)、编排RAG工作流(第III-B节)以及评估RAG系统的核心组件(第III-D节)。

A. 基础与高级RAG组件

预检索(Pre-retrieval):在检索之前,预检索组件利用LLM来优化用户查询,提高信息检索过程的质量和相关性。关键方法包括:

  • 后退提示(Step-back Prompting, SBPT [26]):拓宽查询范围,以丰富答案生成的上下文基础,增强答案生成的上下文基础。

  • 假设性文档嵌入(Hypothetical Document Embedding, HyDE [27]):将原始查询转换为更符合索引文档的形式,提高检索对齐度和有效性。

检索器(Retriever):我们使用两种基础检索模型作为基准:BGE-Large和JINA-Large,以及它们的开源且嵌入一致的模型。对于高级检索策略,我们集成了LlamaIndex以方便使用标准的高级方法。

  • 互惠排序融合检索器(Reciprocal Rerank Fusion Retriever, RRFusion [28]):将索引与基于BM25的检索器融合,同时捕获语义关系和关键词相关性。两个检索器均分配分数,通过互惠排序对节点进行排序,无需额外模型或过多计算。

  • 句子窗口检索器(SentenceWindow Retriever, StParser):将文档解析为每个节点一个句子,并包含周围句子以增加上下文。

后处理器(Post-processor):为了提高检索准确性和效率,XRAG使用后处理器(如重排序器)在返回节点前对其进行精炼。我们集成了:

  • BGE重排序器(BGE-RRK):使用交叉编码器模型计算相似度分数。

  • JINA-Reranker-V2(JINA-RRK):支持高精度的多语言文档重排序。

生成器(Generator):XRAG框架集成了多种LLM生成器,包括来自HuggingFace Transformers³的模型,确保与开源LLM的兼容性。它还集成了Ollama框架,支持本地使用LLM。除了开源模型,XRAG的生成器模块还包括对闭源LLM API的支持。因此,用户可以在保留使用专有模型选项的同时,访问多样化的能力。

B. 基础与高级RAG编排器

随着RAG技术的进步,现代代理式RAG框架不再局限于线性管道结构。相反,它们采用更复杂的编排方法来安排基础RAG组件,以提高性能并适应多样化的应用场景。我们使用编排器模块来组织和管理RAG组件的执行逻辑和工作流。如图3所示,XRAG框架包括五种类型的编排器:顺序型、条件型、迭代型、并行型和混合型。

顺序型(Sequential):顺序编排器通过高级组件的顺序编排来执行检索,适用于简单的应用场景。XRAG的顺序编排器超越了基础RAG,利用高级模块优化检索性能,同时管理计算成本。使用此编排器时,XRAG框架的工作流严格遵循“预检索—检索—后处理—生成”的线性步骤序列,逐步执行以检索内容和生成答案。

条件型(Conditional):在XRAG框架中,我们采用条件编排器来实现需要条件分支的RAG方法。此编排器根据查询类型选择检索方法,并基于特定条件或规则动态调整RAG组件的执行顺序和逻辑。我们集成了Self-RAG [29]作为条件编排器的典型应用,它使用自我反思来判断是否需要检索。此外,Open-RAG [30](首先对查询进行分类以执行有针对性的检索)也可以作为此条件编排方法的示例。

迭代型(Iterative):XRAG框架支持使用迭代编排器来实现需要多次迭代的RAG方法。此编排器使RAG组件能够跨轮次重复执行,逐步精炼检索结果和生成内容,直到满足标准。作为一种高级迭代编排器,SIM-RAG [31]能够在迭代过程中执行多个检索步骤并优化提示,已被集成到XRAG框架中。我们还集成了RFM-RAG [32]作为迭代编排器的另一种实现。RFM-RAG通过迭代检索动态构建证据池,并制定有针对性的查询,直到终止。

并行型(Parallel):为了实现需要并行逻辑的RAG方法,XRAG框架支持使用并行编排器。此编排器允许多个RAG组件逻辑上并行操作,与依赖于选择逻辑的条件编排器不同。作为一种经典的并行编排RAG技术,互惠排序融合检索器(RRFusion [28])的检索逻辑已被作为编排器集成到XRAG框架中。RRFusion中的两个检索器并行分配分数,通过互惠排序对节点进行排序,无需额外模型或过多计算。SeaKR [33]方法(执行多个组的并行检索,并为生成选择最优检索结果)也已集成到XRAG框架中。

混合型(Hybrid):XRAG框架支持使用混合编排器来应对单个编排器不足以应对的复杂RAG场景。混合编排器可以组合多种编排逻辑,以适应复杂的RAG需求。该框架集成了Adapt-RAG [34]方法作为此混合编排器的一个实例。Adapt-RAG结合了条件编排逻辑和迭代编排逻辑,根据查询的复杂性在直接检索和迭代检索之间动态切换,以实现灵活高效的检索过程。

C. 统一基准数据集与语料库

我们为XRAG框架收集并预处理了四个基准数据集,重点对RAG系统进行严格的实验验证。我们开发了一个统一的数据集结构,以促进检索和生成模块的性能测试,并采用标准化格式:

XRAG为检索和问答数据集提供了一个统一的架构,具体包括HotpotQA [35]、DropQA [36]、NaturalQA [37]和FinanceBench [8]。用于索引的语料库来源于这些数据集的训练集、验证集和测试集的元数据。此方法与前人工作[38]一致,并支持向量数据库的高效部署。表II显示,HotpotQA语料库包含的文档数量最多,其次是NaturalQA,表明检索难度随着每个查询所需文档数量的增加而增加。FinanceBench [8], [39]数据集包含37,885份涵盖40家美国上市公司的财务文档。此外,这些数据集处理复杂的RAG问答场景,包括多跳查询、约束查询、数值推理和逻辑推理任务。多跳问题依赖于迭代检索的文档及其相互关系来推断答案。约束型问答在生成每个答案的同时,会附带相应的约束或条件,而非仅提供独立回答。数值推理涉及执行加法、减法、排序和计数等算术运算。集合逻辑推理处理涉及检索块之间关系的复杂逻辑问题。

我们使用原始数据集的元数据构建了可检索文档,将检索对象标准化为用于测试的文档ID。如果检索到的块节点对应于标注的文档ID,则检索成功。此方法确保了检索标签的一致性,并消除了由不同文档分块策略引起的差异。对于测试集,我们限制了样本数量,以减轻RAG和LLM评估带来的高令牌成本。在HQA、NQA和DQA中,我们没有评估整个测试集,而是应用了基于采样的平均方法,在保持可靠性的同时减少了令牌使用。对于测试集较小的FQA,我们使用所有测试数据进行评估。

XRAG针对HQA、DQA、NQA和FQA数据集的相应提示如下。

适用于HotpotQA和FinanceBench数据集的XRAG提示

上下文信息如下。 [Context_str] 请根据上下文信息,且不依赖先前知识,回答问题:[query_str] 我们有机会使用以下更多上下文来优化(仅在需要时)原始答案。 [Context_msg] 根据新上下文,优化原始答案以更好地回答问题:[query_str] 如果上下文不合适,则再次输出原始答案。 原始答案:[existing_answer]

适用于DropQA和NaturalQA数据集的XRAG提示

上下文信息如下。 [Context_str] 请根据上下文信息,且不依赖先前知识,为以下问题提供一个简要、尽可能短(最好是一个词)的答案: 问题:Oasis和Coldplay谁卖出了更多唱片? 预期答案:Oasis 我们有机会使用以下更多上下文来优化(仅在需要时)原始答案。 [Context_msg] 根据新上下文,优化原始答案以更好地回答问题:[query_str] 如果上下文不合适,则再次输出原始答案。 原始答案:[existing_answer]

D. 评估方法

为了评估RAG组件的质量,我们将Jury [40](一个用于NLG系统评估的综合包)与RAG社区的评估工具(如UpTrain和DeepEval)集成在一起。XRAG评估器在确定检索和生成组件的有效性方面起着关键作用。它们分为三组:常规检索评估、常规生成评估和认知LLM评估。

常规检索评估(ConR评估器)。它支持六个主要指标:F1、平均倒数排名(MRR)和平均精度均值(MAP),以及Hit@1和Hit@10。此外,它还包括DCG系列指标,通过评估排序结果(即检索到的上下文ID列表)的质量来评估排序模型的有效性。该系列包括折扣累积增益(DCG)、归一化折扣累积增益(NDCG)和理想折扣累积增益(IDCG)。IDCG是在结果按理想方式排序(即按它们的相关性(即黄金上下文ID列表)降序排列)时可以获得的最大DCG。

常规生成评估(ConG评估器)。这些生成式令牌匹配指标可分为三大类。

  • N-gram相似性指标:ChrF [41]、ChrF++ [42]、METEOR [43]、ROUGE F1 [44](R1、R2、RL)关注生成文本(实际响应)与参考文本(预期答案)之间n-gram的重叠。

  • 基于差异的指标:MAUVE [45]、困惑度(Perplexity)[46]通过比较生成文本与参考文本的分布来衡量内容质量、多样性和模型学习情况。

  • 基于错误的准确性指标:词错误率(WER)[47]、字符错误率(CER)[47]通过计算实际响应与预期答案相比的差异或错误来评估其准确性。

认知LLM评估(CogL评估器)。它分为三类:面向检索、面向生成以及检索与生成组合。源自UpTrain(前缀为“Up”)和DeepEval(前缀为“Dp”)的认知LLM评估指标,根据我们XRAG框架统一的参数进行分类。

  • 面向响应的指标:包括来自DeepEval的响应相关性(Dp-ARel)、响应完整性(Up-RCmp),以及来自UpTrain的响应简洁性(Up-RCnc)、响应相关性(Up-RRel)、响应有效性(Up-RVal)和响应匹配度(Up-RMch)。

  • 面向检索的指标:这些指标不包含响应相关参数,但包含检索相关参数,用于评估上下文质量,包括来自UpTrain的上下文相关性(Up-CRel)和上下文简洁性(Up-CCns)。

  • 组合指标:评估检索对最终响应的影响,包括上下文精确度(Dp-CPre)、上下文召回率(Dp-CRec)、上下文相关性(Dp-CRel)、响应一致性(Up-RCNs)、上下文利用率(Up-CUti)、事实准确性(Up-FAcc)、忠实度(Dp-Faith)和幻觉(Dp-Hall)。CogL评估的详细使用模式如图4所示。

像精确匹配(EM)和ROUGE这样的常规基于规则的指标侧重于n-gram匹配,有时在捕捉语言表达的全面准确性方面有所不足;然而,它们仍然适用于需要明确且单一响应的任务。相比之下,基于认知LLM的指标评估生成语言的质量,当评估理解的复杂性超过基于规则的指标能力时,这尤其有益。

XRAG评估器具有明显的优势:

  • 一次性评估多个RAG指标:XRAG评估器允许用户同时评估各种RAG特定指标。此功能简化了评估过程,无需顺序评估即可进行全面的性能分析。

  • 标准化评估指标的结构:统一的数据格式简化了检索和生成中不同RAG组件之间的比较。

  • 字符与语义 × 检索与生成:它包含一个4维交叉分析,包括对检索和生成的字符级匹配测试和语义级理解测试。

IV. 实验设置

对于文档预处理,我们使用SentenceSplitter(块大小:128个令牌,重叠:20个令牌)将文档分割成块并构建向量索引。我们遵循LlamaIndex的配置用于其他RAG组件,包括用于响应合成的精炼模块。为确保兼容性和效率,XRAG集成了Huggingface Transformers。所有问答LLM的温度参数(Temperature)均设置为0,以确保实验一致性。因此,评估指标基于3个检索节点来衡量检索准确性,这完全涵盖了大多数数据集通常只考虑一个或两个黄金上下文节点的假设。生成器模型的上下文窗口——包括查询、提示、检索到的上下文和响应内容——配置为4096个令牌。

为确保在测试编排器时进行公平比较,我们在可行的情况下使用了相同的模块,详见表III。由于LLM(OpenAI)推理和评估期间令牌处理的高成本,认知LLM评估(CogL)指标仅作为一项初步研究被包含,以展示XRAG框架在语义评估方面的能力。涉及LLM生成的实验重复了三次,标准偏差在生成结果表中报告。

计算资源:由于固有设计和规模限制,每个模型的部署环境各不相同。对于DQA数据集,测试在单个NVIDIA V100 GPU(32GB)上进行;索引阶段(单线程)和搜索生成阶段(四线程)大约分别需要1小时和2小时,BGE-Large索引占用496 MB,JINA-Large索引占用391 MB磁盘空间。同样,在NQA数据集上使用相同的V100硬件,索引和搜索阶段分别耗时3小时和4小时,BGE-Large和JINA-Large的索引大小分别为5.4 GB和4.2 GB。对于HQA数据集,使用了NVIDIA L20 GPU(48GB);索引和搜索过程均以单线程方式执行,分别耗时4小时和8小时,而BGE-Large和JINA-Large索引分别使用了18 GB和14 GB的存储空间。最后,FQA数据集在NVIDIA RTX 4090 GPU(24GB)上进行了评估,单线程索引和搜索/生成均在一小时内完成,BGE-Large和JINA-Large索引分别需要8.8 GB和6.9 GB的磁盘空间。

V. 实验结果

A. 用于检索的模块性能

四个数据集的检索性能存在显著差异,在DQA和FQA上观察到的质量最差,如表IV所示。由于DQA需要高级离散推理[50],而FQA需要对金融文档进行段落理解,因此它们构成了更大的检索挑战。

i. 不同数据集应关注不同的测试指标。NDCG指标反映基础检索模型在HotpotQA和NaturalQA数据集上,在相关性和排序准确性方面表现尚可。忽略排序准确性,较高的Hit@10得分(> 0.8)表明检索到语义相关文档块的可能性很大。Hit@1指标衡量的是将正确答案作为排名第一的结果返回的能力,因此适用于具有单一检索目标的任务(例如,NaturalQA数据集中的单一黄金段落)。然而,对于需要多个同等重要的上下文目标(如HotpotQA数据集)的场景,它效果不佳。总体而言,检索系统在HotpotQA和NaturalQA上表现良好,但在DropQA上面临挑战,因为答案的复杂性(较低的Hit@1分数反映了检索最相关结果的难度)。

ii. 为了提高检索性能,应优先考虑检索和后检索环节。将表IV中的基础检索器与表V中的高级检索器进行比较,突出显示的结果表明,采用集成额外匹配信息的高级检索模块可以提高检索效果。例如,RRFusion将稠密向量与关键词检索相结合,句子窗口则将块节点的上下文包含在检索对象中。特别地,可以观察到重排序方法可以显著提高性能,尤其是在DQA和FQA等具有挑战性的检索任务中。例如,BGE-RRK和JINA-RRK均优于基础检索器。这是因为重排序器可以评估检索数据的相关性,优先考虑最有可能提供准确和相关答案的内容。通过在答案生成期间让LLM专注于这些排名靠前的上下文,可以显著提高响应的准确性和质量。

B. 用于生成的模块性能

在检查问答(Q&A)组件时,有必要综合考虑表VI、VII、VIII和XI。表VI提供了当人工标注的检索输出直接输入大型模型进行问答时的测试结果。表VII和表VIII分别展示了当检索器使用JINA-Large和BGE-Large模型为大型模型识别相关句子时的结果。表IX和表X展示了使用BGE-Large检索器的XRAG系统生成的输出,进行认知LLM评估的结果。在表IX中,Dp-RMch指标得分低于0.5,而所有其他指标均超过0.8。这表明Dp-RMch不适用于大多数非关键场景,因为它可能会将语义正确的响应错误分类。表IX和表X中的概率得分Psc表明,LLM测试依赖于API请求,可能会因请求不稳定、处理时间长、超时限制或服务器端错误而导致数据包丢失。这反映了LLM测试的一个特定弱点,尽管平均请求成功率超过85%。

i. 当模型参数规模相对较小时,直接向大型模型提供黄金上下文可能无法为这些数据集带来最优结果。我们的分析显示,表VII和VIII中的实验结果通常优于表VI中的结果,但使用DeepSeek-R1-70B模型获得的结果除外。黄金上下文通常包含单个文本段落(DQA和NQA)或两个段落(HQA),这可能无法为大型模型提供足够的信息。此外,由于小型LLM的推理能力有限,它们可能难以从这些简洁的文本中分析结果,特别是对于需要数值计算和逻辑推理的问题。我们的检索模型将前k个(前3个)结果提供给LLM,通过过滤和排序上下文信息来提供更全面的数据。一些检索到的数据虽然因不是直接答案而未被标注为“黄金上下文”,但与查询高度相关,并对推理过程有积极贡献。这一观察结果表明,对于任何检索增强生成任务,仅评估检索结果可能无法准确代表整体的RAG性能;必须同时评估检索和大型模型问答生成。

ii. 为RAG任务选择合适类型的LLM可能比仅仅增加模型参数更有效。在与各种LLM进行比较时,观察到DeepSeek R1-7B和Deepseek R1-70B推理模型表现不佳。DeepSeek模型系列[51]的高幻觉率与RAG场景的严格准确性要求根本矛盾。在维基百科风格的数据集(如HQA和NQA)上,GPT-4o-mini和Llama-3.1-70B等模型表现出优异的性能。然而,在处理需要密集数值计算和逻辑推理的DQA和FQA数据集时,GPT-4o-mini和Llama-3.1-70B模型明显优于其他模型。这表明模型架构和训练数据的选择可能比单纯的参数规模更为关键。

C. 代理式RAG编排器的性能

我们研究了不同编排器在HQA和NQA数据集上的性能,由于资源限制,使用DeepSeek-R1-70B作为生成器,结果如表XI所示。迭代编排器(SIM-RAG)在HQA数据集上的生成质量指标(如ChrF、METEOR、R1)方面显著优于其他编排器。在HQA数据集上,顺序编排器(基础RAG)在大多数指标上优于条件编排器(Self-RAG)和混合编排器(Adapt-RAG)。在NQA数据集上,迭代编排器(SIM-RAG)在R1和R2等指标上优于顺序编排器,但在METEOR和 ChrF 指标上表现逊色。迭代编排器在HQA上的出色表现可以归因于其多轮检索能力,这对于回答多跳问题特别有效。相反,在主要包含单跳问题的NQA数据集上,迭代过程可能引入冗余或不相关的信息,从而降低特定指标的性能。

在效率方面(表XII),顺序编排器(基础RAG)因其简化的流程而成为最快的选择。条件编排器(Self-RAG)和混合编排器(Adapt-RAG)由于额外的分类或批评模型而产生了较大的开销。迭代编排器(SIM-RAG)消耗的时间最多,因为它需要多轮生成和检索。这些权衡突显了在部署RAG系统时,根据任务复杂性和延迟要求选择合适编排器的重要性。

VI. 附加讨论与分析

问题1:更长的查询是否会产生更大的影响?图示(如图5所示)表明查询长度与多个指标(特别是Hit@1和METEOR)的性能之间存在正相关关系,这些指标随查询长度增加呈现上升趋势。这种相关性意味着使用更长的查询可能会增强检索和问答系统的效能。这种提升可能是由于更长的查询提供了更丰富的信息,有助于更精确地解读查询。

问题2:更多的上下文是否会产生更大的影响?如图6所示,问答系统的性能随着检索上下文数量的增加保持相对稳定。这一观察结果表明,增加检索上下文的数量可能不会显著提升模型性能。分析平均值范围可知,例如,在ROUGE-1指标中,随着检索上下文的增加,平均值仅从0.31适度增加到0.41。这种微小的变化意味着增加上下文数量对性能提升的影响有限。此外,在多张图中观察到最大值达到1.0,这表明提升性能的关键可能在于提高检索的精确度,即找到与查询最相关的少数几个上下文,而不仅仅是增加检索到的上下文数量。ChrF++和METEOR指标在不同检索上下文数量下表现相对稳定。这表明这些指标对上下文数量的变化不是特别敏感。因此,这突显了在优化RAG系统的检索模块时,应专注于提高检索结果的相关性和精确度,而非增加检索上下文的数量。

问题3:问题的难度是否会在检索和生成过程中都带来挑战?如表XIII和XIV所示,与预期一致,检索模型和生成模型在简单数据集上的得分均高于在困难数据集上的得分。从评估角度来看,更严格的指标——如检索的F1和Hit@1,以及生成的ChrF和METEOR——对数据集的难度尤为敏感(例如,在Hit@1指标上,BGE-Large在简单数据集上得分为97.00,但在困难数据集上仅为70.00,下降了约28%)。这种敏感性是因为更严格的指标更能有效地检测出随着问题难度增加而固有的性能下降。

问题4:优越的检索结果是否一定能保证优越的生成?如图7所示,在困难数据集上,当模型在Hit@1上命中时,ChrF++指标的平均值(0.28)比未命中时的ChrF++(0.14)高出0.14。这表明成功的检索能显著提高困难问题的答案质量。在简单和中等数据集上,Hit@1命中和未命中之间的答案质量差距相对较小(简单为0.06,中等为0.04)。此外,当Hit@1命中时,仍有一小部分样本的答案质量较差(chrF < 0.1),这表明良好的检索结果并不一定能保证正确的答案。这解释了第V-B节中观察到的现象:“检索到的上下文优于黄金上下文”。

问题5:RAG编排器的更多迭代次数是否会导致更好的生成结果?如图8所示,在困难数据集上需要5次迭代的查询数量(52)高于简单数据集(34)和中等数据集(41),这表明更具挑战性的子集需要更多的迭代次数。当未达到迭代限制时(1 ≤ 迭代次数 ≤ 4),在HotpotQA数据集的三个子集上,答案结果的质量随迭代次数的增加而显著提高。这验证了迭代编排对于多跳问答任务的适用性。对于SIM-RAG难以回答的过难问题,在达到最大迭代限制后仍可能获得不令人满意的答案,这就是为什么一旦迭代次数达到5,性能会显著下降的原因。

VII. 结论

这项工作介绍了XRAG,一个用于对高级RAG系统进行基准测试的开源框架,它使研究人员能够更高效地从数据集构建RAG系统。它有助于根据数据特征选择合适的检索模块和逻辑,并允许评估检索性能。未来,我们计划在以下几个方面增强XRAG:
i. 支持RAG组件训练,以处理更复杂的数据场景。
ii. 集成更广泛的基准数据集进行评估,例如OpenQA [52], [53]、长格式问答[54], [55]和多项选择问答[56], [57]。
iii. 增加与脏查询和格式错误查询相关的鲁棒性评估。

我们鼓励开源社区贡献力量,以推动XRAG框架的发展。我们的目标是通过为RAG研究社区提供一个更高效、更可靠的平台,并配备全面的评估和开发工具,来不断完善XRAG框架。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询