长文本环境下检索增强型生成模型LongRAG

人工智能咨询培训老师叶梓 转载标明出处

大模型讲师叶梓分享长文本环境下检索增强型生成模型LongRAG

传统的RAG框架通常使用较短的检索单元,例如100个单词的维基百科段落。这种设计要求检索器在庞大的语料库中搜索相关信息单元,而阅读器则从这些短的检索单元中提取答案。这种“重检索器、轻阅读器”的设计可能导致性能不佳。为了缓解这种不平衡,加拿大滑铁卢大学的研究人员提出了一个新的框架——LongRAG,该框架包含一个“长检索器”和一个“长阅读器”。

图1为传统的RAG框架与提出的LongRAG框架之间的对比。在传统的RAG中,检索器(retriever)需要在大量的单元中寻找相关的短文本单元,而读者(reader)则从这些短文本单元中提取答案。LongRAG则使用更长的检索单元(30倍长),减少了检索器的工作量,并显著提高了召回率。

想要掌握如何将大模型的力量发挥到极致吗?叶老师带您深入了解 Llama Factory —— 一款革命性的大模型微调工具(限时免费)。

1小时实战课程,您将学习到如何轻松上手并有效利用 Llama Factory 来微调您的模型,以发挥其最大潜力。

CSDN教学平台录播地址:https://edu.csdn.net/course/detail/39987

LongRAG框架

框架主要由两部分组成:长检索器(Long Retriever)和长阅读器(Long Reader)。

长检索器

长检索器的核心思想是将传统的短检索单元转变为更长的检索单元,从而减少检索器的工作负担,并将更多的工作转移到阅读器上。在LongRAG框架中,传统的RAG框架使用较小的检索单元,而LongRAG则更注重召回,目的是检索相关但不一定精确的上下文信息。

形成长检索单元:通过将整个文档或多个相关文档组合成长检索单元,每个检索单元包含超过4K个令牌,这样的设计可以显著减少语料库的大小,并确保每个检索单元的语义完整性。算法1(Algorithm 1 Group Documents Algorithm)展示了如何基于文档之间的关系,使用每个文档中嵌入的超链接来对文档进行分组。输出的组是一系列相关的文档列表。通过使用更长的检索单元,有两个优势:首先,它确保了每个检索单元的语义完整性;其次,它为需要从多个文档中获取信息的任务提供了更丰富的上下文。

相似性搜索:使用编码器EQ(·)将输入问题映射到d维向量,同时使用不同的编码器EC(·)将检索单元映射到d维向量。通过这两个向量的点积来定义问题和检索单元之间的相似度:。在LongRAG设置中,由于g的长度,采用近似方法,通过最大化检索单元g内所有块g′的分数来近似计算相似度。

聚合检索结果:将最相关的k个检索单元连接成长上下文作为检索结果,表示为。较大的检索单元会导致k值较小,例如,如果是段落级别的检索单元,k可能在100以上;如果是文档级别,k大约在10左右;对于作为检索单元的组合文档,通常将k设置为4到8。

图2为LongRAG的一个例子。左侧展示了如何通过Wikipedia文档中的超链接将长检索单元进行分组,每个检索单元包含平均4K个令牌,对应多个相关文档。右侧展示了一个来自HotpotQA的多跳问题回答测试案例。最终结果可以通过仅使用几个检索单元实现,然后将这些单元输入到长阅读器中。

长阅读器

长阅读器的操作相对直接。将相关指令i、问题q和长检索结果CF输入到一个大模型中,使其能够在长上下文中进行推理并生成最终输出。重要的是,长阅读器使用的大模型能够处理长上下文且不会表现出过度的位置偏差。我们选择了Gemini1.5-Pro和GPT-4o作为长阅读器,因为它们在处理长上下文输入方面有很强的能力。

对于短上下文(通常包含少于1K个令牌),指导阅读器直接从检索到的上下文中提取答案。对于长上下文(通常长于4K个令牌),使用类似于短上下文的提示,即模型直接从长上下文中提取最终答案,通常会降低性能。相反,最有效的方法是将大模型作为一个聊天模型来使用。最初,它输出一个较长的答案,通常跨越几个词到几句话。随后提示它通过进一步从长答案中提取来生成一个简短的答案。

实验

数据集

数据集选择:

  • Natural Questions (NQ):这个数据集是为了端到端的问题回答而设计的,包含3610个问题,这些问题来自真实的谷歌搜索查询,答案则是维基百科文章中被注释者识别的片段。
  • HotpotQA:这个数据集包含多个主题的两跳问题。研究者们关注的是全维基设置,需要两个维基百科段落来回答这些问题。由于测试集的金标准段落不可用,他们遵循先前的工作,在包含7405个问题的发育集上进行评估。

知识源(Wikipedia):

  • 对于NQ,他们使用了2018年12月20日的维基百科转储,包含大约300万文档和2200万段落。
  • 对于HotpotQA,他们使用了2017年10月1日转储的摘要段落,包含约500万文档。

检索性能

性能指标:

  • Answer Recall (AR):衡量检索到的文档中答案字符串的召回率。
  • Recall (R):对于HotpotQA,衡量两个金标准文档是否都出现在检索结果中。

实验设置:

  • 使用开源的密集检索工具包Tevatron进行所有检索实验。
  • 使用的基础嵌入模型是bge-large-en-v1.5,这是一个通用的嵌入模型,没有专门针对测试数据进行训练。

检索单元和语料库大小:

表格1展示了在NQ数据集上的检索性能。使用长上下文检索器(每个检索单元平均令牌数高达6K)可以将语料库大小压缩30倍(从2200万减少到60万),并将top-1答案召回率提高约20个百分点(从52.24%提高到71.69%)。此外,长上下文检索需要显著更少的检索单元(减少10倍)以达到可比的结果。

编码长检索单元:

由于直接对长检索单元g进行编码非常具有挑战性,他们采用了近似方法。表格3显示,通过最大化查询和检索单元内所有块之间的相似度分数的近似方法,比直接编码整个长上下文更有效。

完整的问题回答性能

大模型作为阅读器:

使用Gemini-1.5-Pro和GPT-4o作为LongRAG框架中的阅读器,因为它们能够处理长上下文且不会表现出过度的位置偏差。

结果比较:

表格4和表格5分别展示了NQ和HotpotQA开发集上的QA结果。LongRAG在NQ数据集上达到了62.7%的精确匹配率,在HotpotQA数据集上达到了64.3%的精确匹配率,接近最强的完全训练的RAG框架。

消融研究

检索单元选择:

图3和图4比较了LongRAG在NQ和HotpotQA数据集上的不同设置。这些图表利用测试集中的200个随机测试案例来帮助比较不同的检索单元粒度选择和输入阅读器的最优检索单元数量。

召回率与EM的关系:

图5展示了不同检索单元粒度的最终性能与召回率的关系。可以看出,随着召回率的增加,最终性能并不单调增加。

不同阅读器的性能:

图6比较了LongRAG在NQ数据集上使用的不同阅读器的性能。结果表明,GPT-4o在200个测试问题上达到了最高的精确匹配率,表明GPT-4o在LongRAG框架中作为长阅读器最为有效。

这些实验结果表明,LongRAG框架依赖于大模型的长上下文理解能力,并且在利用开源大模型方面还有很长的路要走。

大模型讲师叶梓分享长文本环境下检索增强型生成模型LongRAG

https://arxiv.org/pdf/2406.15319v2

https://github.com/QingFei1/LongRAG

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

人工智能大模型讲师培训咨询叶梓

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值