人工智能咨询培训老师叶梓 转载标明出处
传统的RAG框架存在一个显著的不平衡问题:检索器(负责从大量信息中检索相关文本)的负担过重,而阅读器(从检索到的文本中提取答案)的任务相对轻松。为了解决这一问题,加拿大滑铁卢大学的研究者提出了一种新的框架——LongRAG,旨在平衡检索器和阅读器的工作负载。
图1展示了传统 RAG 和 LongRAG 在处理检索单元时的不同。传统 RAG 操作在短检索单元上,检索器需要扫描大量单元以找到相关信息。而 LongRAG 操作在长检索单元上(长30倍),大大减轻了检索器的工作量,显著提高了召回率。
想要掌握如何将大模型的力量发挥到极致吗?叶老师带您深入了解 Llama Factory —— 一款革命性的大模型微调工具(限时免费)。
1小时实战课程,您将学习到如何轻松上手并有效利用 Llama Factory 来微调您的模型,以发挥其最大潜力。
CSDN教学平台录播地址:https://edu.csdn.net/course/detail/39987
LongRAG框架
LongRAG框架由两个主要组件构成:长检索器(Long Retriever)和长阅读器(Long Reader)。这两个组件的工作原理在图2中有所展示。
长检索器的核心思想是将传统的RAG框架中较小的检索单元转变为更大、更粗糙的检索单元,从而减轻检索器的负担,并将更多的工作转移到阅读器上,让阅读器从相关但不精确的上下文中提取确切的答案。
图 2 展示了LongRAG的一个例子。在左侧,可以看到长检索单元是通过维基百科文档中的超链接进行分组的。每个检索单元包含平均4K个令牌,对应多个相关文档。在右侧,展示了一个来自HotpotQA的多跳问答测试案例。最终结果可以通过仅使用几个检索单元实现,然后将这些单元输入到长阅读器中。
长检索器的工作分为三个步骤:
-
制定长检索单元:将整个文档或多个相关文档组合成长检索单元。在传统RAG中,检索单元通常是从文档中分割出来的短段落,包含数百个令牌。而在LongRAG中,检索单元可以是整个文档甚至多个文档的组合,从而形成更长的检索单元。这种设计有两个优势:首先,它确保了每个检索单元的语义完整性;其次,为需要从多个文档中获取信息的任务提供了更丰富的上下文。
-
相似性搜索:使用编码器EQ(·)将输入问题映射到d维向量,同时使用另一个编码器EC(·)将检索单元映射到d维向量。通过这两个向量的点积来定义问题和检索单元之间的相似度:
。在LongRAG设置中,由于g的长度问题,采用了近似方法:
。考虑了不同粒度级别的相似性,包括段落级别、文档级别和完整的组合文档。关于这种设置的经验研究结果在表 3中展示。
-
聚合检索结果:将最接近给定查询的前k个检索单元连接成长上下文作为检索结果,表示为
。根据检索单元的选择,较大的检索单元会导致使用较小的k值。例如,如果检索单元是段落,则k大约在100以上;如果是文档,则k大约在10左右;对于作为检索单元的组合文档,通常将k设置为4到8。
长阅读器的工作相对直接。将相关指令i、问题q和长检索结果CF输入到一个大模型中,使其能够在长上下文中进行推理并生成最终输出。重要的是,长阅读器中使用的大模型必须能够处理长上下文且不会表现出过度的位置偏差。选择了Gemini1.5-Pro和GPT-4o作为长阅读器,因为它们在处理长上下文输入方面有很强的能力。
对于短上下文和长上下文,采用了不同的方法。对于通常包含少于1K令牌的短上下文,指导阅读器直接从检索到的语料库上下文中提取答案。对于通常长于4K令牌的长上下文,发现使用类似于短上下文的提示,即模型直接从长上下文中提取最终答案,通常会降低性能。相反,最有效的方法是将大模型作为一个聊天模型来使用。最初,它输出一个长答案,通常跨越几个词到几句话。随后,提示它通过进一步从长答案中提取来生成短答案。
实验
数据集
Natural Questions 数据集旨在进行端到端的问答任务,问题来源于真实的谷歌搜索查询,答案则是维基百科文章中被标注者识别出的片段。该数据集包含3610个问题。
HotpotQA 数据集包含多个主题的两跳问题。研究集中在全维基设置中,需要两个维基百科段落来回答这些问题。由于测试集的金标准段落不可用,因此按照先前的工作在包含7405个问题的开发者集上进行评估。HotpotQA中有两种主要问题类型:(1) 比较问题通常需要对比两个实体;(2) 桥接问题可以通过连接一个文档到另一个文档的实体来回答。
维基百科(知识源):根据不同数据集的需求,使用了不同版本的英文维基百科。对于NQ,使用了2018年12月20日的维基百科转储,包含大约300万文档和2200万段落。对于HotpotQA,使用了2017年10月1日转储的摘要段落,包含约500万文档。对于每个页面,只提取纯文本,并从文档中剥离所有结构化数据部分,如列表、表格和图表。
检索性能
指标:检索性能使用答案召回率(Answer Recall, AR)和召回率(Recall, R)来衡量。对于NQ,仅使用答案召回率,而对于HotpotQA,则使用这两个指标。答案召回率是指在所有检索文档中答案字符串的召回情况。例如,如果检索单元在“段落”级别,并且检索单元数量为100,则答案召回率衡量这100个段落中是否存在答案字符串。对于HotpotQA,仅对具有跨度答案的问题计算AR,特别是“桥接”类型的问题,而忽略是非和比较问题。
实验设置:使用开源密集检索工具包Tevatron进行所有检索实验。使用的基线嵌入模型是bge-large-en-v1.5,这是一个通用嵌入模型,没有专门针对测试数据进行训练。
表 1 展示了NQ上的检索性能。使用长上下文检索器(每个检索单元的平均令牌数高达6K)可以将语料库大小压缩高达30倍(从2200万减少到60万),并将top-1答案召回率提高约20个百分点(从52.24提高到71.69)。此外,长上下文检索需要显著更少的检索单元(减少10倍)以达到可比结果。因此,集成长上下文检索显著减轻了检索器模型的负担。
表 2 展示了HotpotQA上的检索性能。与NQ上的发现类似,长上下文检索可以显著减轻整个RAG框架中检索器组件的负担。
表 3 (方法部分)展示了在长检索器中对长检索单元的不同编码方法。使用通用嵌入模型并通过最大化查询和检索单元内所有块之间的相似度分数进行近似,比直接使用长嵌入模型编码整个上下文更有效。
完整问答性能
在LongRAG框架中,使用Gemini-1.5-Pro和GPT-4o作为阅读器。使用的提示在表 6中提供。还细化了标准精确匹配率定义,以更公平地评估LongRAG的性能。
与几组强基线模型进行比较。第一组是“闭卷”(Closed-Book),这些基线意味着没有使用检索组件;相反,直接使用最先进的大模型来直接获得最终结果。在Gemini-1.5-pro、Claude-3-Opus和GPT-4-Turbo上评估结果。所有模型都在16个样本的上下文学习中通过直接提示进行评估;第二组是“全监督RAG”,这些基线涉及在训练数据上进行全面监督微调。第三组是“无微调RAG”,这些基线不涉及在训练数据上进行任何监督微调。
表 4 展示了NQ数据集上的问答结果。LongRAG在NQ数据集上实现了62.7%的精确匹配率,与最强的微调RAG模型如Atlas相当。在HotpotQA数据集上,LongRAG实现了64.3%的精确匹配率,也接近最先进的全监督RAG框架。
消融研究
进行了几项深入的消融研究,以了解LongRAG系统中的重要影响因素,包括“单元大小”和“阅读器变体”。
图 3 和 图 4 比较了LongRAG的不同设置。这些表格利用测试集中的200个随机测试案例,帮助比较不同的检索单元粒度选择和用于阅读器的最佳检索单元数量。在NQ数据集上,有两个观察结果:首先,无论选择哪种检索单元,都会有一个转折点,超过这个点将更多的检索单元输入到阅读器中会变得不利。这是因为阅读器的负担过重,阻碍了其从长上下文中有效理解和提取相关信息。对于段落级别的检索单元,转折点在100到200之间;对于文档级别的检索单元,转折点在5到10之间;对于组合文档级别的检索单元,转折点在4到8之间。
总的来说,输入到阅读器的上下文长度最适合在30K令牌左右。其次,语义完整性在比较段落级别检索单元与文档或组合文档级别检索单元的性能时很重要,突出了使用更长、更完整检索单元的优势。
图 5 展示了不同检索单元粒度选择下,检索召回率与最终性能之间的关系。观察到,使用较少的检索单元和较长的检索单元设计减少了在给定长度预算下引入干扰因素或难以处理的负例。因此,最终性能并不随着召回率的增加而单调增加。未来,随着长嵌入模型的进步和长检索单元的检索召回率的提高,可以期待更好的最终性能。
图 6 比较了LongRAG在NQ数据集上的六种不同阅读器的性能。结果表明,GPT-4o在NQ数据集的200个测试问题上实现了最高的精确匹配分数。这表明GPT-4o在LongRAG框架中的长阅读器角色最为有效。GPT-4o的增强性能可以归因于其卓越的处理和理解长上下文的能力,确保了关键信息的准确提取。因此,主要报告了GPT-4o的结果。此外,Gemini-1.5-pro、GPT-4-Turbo、Claude-3-Opus和Claude-3.5-Sonnet也取得了非常相似的结果。这些最先进的黑盒大模型也是LongRAG框架中的有效阅读器。Deepseek-V2-Chat是最佳的开源大模型之一,但其性能与前五个黑盒大模型相比显著下降。上述实验表明,当前框架依赖于大模型的长上下文理解能力,并且在框架内利用开源大模型还有很长的路要走。
LongRAG框架通过处理长文本上下文的LLMs,为现代RAG系统设计提供了新的方向。尽管LongRAG框架在实验中表现出色,但它仍然存在一些局限性,包括对长上下文嵌入模型的依赖,以及对黑盒LLM作为阅读器的使用。未来的研究可以在这些领域进行改进,以进一步提升LongRAG的性能。