人工智能咨询培训老师叶梓 转载标明出处
大模型在处理特定领域或知识密集型任务时,往往需要依赖外部信息来提高其回答的准确性和可靠性。检索增强生成技术应运而生,它通过检索器提供的外部文档来增强LLMs的能力。尽管如此,检索器和LLMs之间存在语义鸿沟,因为它们在训练目标和架构上的差异导致LLMs往往被动地接受检索器提供的信息,而无法充分理解这些信息。
为了解决这一问题,来自华南师范大学和香港科技大学(广州)的研究人员提出了一种名为R2AG(Retrieval Information into Retrieval Augmented Generation)的新型增强RAG框架。R2AG通过整合检索信息到检索增强生成过程中,有效地弥合了检索器和LLMs之间的语义鸿沟。图1展示了RAG(检索增强生成)和R2AG(增强的检索增强生成)框架之间的对比。
想要掌握如何将大模型的力量发挥到极致吗?2024年10月26日叶老师带您深入了解 Llama Factory —— 一款革命性的大模型微调工具。
留言“参加”即可来叶老师的直播间互动,1小时讲解让您轻松上手,学习如何使用 Llama Factory 微调模型。互动交流,畅谈工作中遇到的实际问题。
R2AG框架
R2AG框架的核心思想是通过将检索信息整合到检索增强生成过程中,来增强大模型对检索文档的理解。具体来说,给定一个查询q和由检索器fR根据偏好顺序排列的文档列表D={d1, d2, ..., dk},期望大模型fG能够生成输出y。在R2AG中,首先将检索器建模的表示转化为统一格式的特征,然后设计了R2-Former来捕获对大模型有用的检索信息。通过检索感知提示策略,将检索信息插入到大模型的输入嵌入空间中,而不会造成信息丢失或增加太多复杂性。此外,R2AG能够灵活地应用于大模型被冻结的低资源场景中。
Figure 2 展示了R2AG的整体框架。最初,给定一个查询和检索到的文档,R2AG处理由检索器建模的表示成为统一格式的特征。这些列表式特征考虑了查询和文档之间以及文档本身的微妙关系。然后,设计了R2-Former来捕获对大模型有用的检索信息。R2-Former允许统一特征通过自注意力机制相互交互,使其能够理解复杂的依赖关系。为了将检索信息整合到大模型的生成过程中,R2AG采用了检索感知提示策略,将检索信息插入到大模型的输入嵌入空间中,而不会造成信息丢失或增加太多复杂性。
在Figure 2中,可以看到R2AG框架中包含了几个关键组件:
- 检索器:负责根据查询检索文档。
- R2-Former:一个可插拔的基于Transformer的模型,用于处理列表式特征并输出检索信息。
- 检索感知提示策略:将检索信息注入到大模型的生成过程中,帮助模型更好地利用检索到的信息。
检索特征提取: 在生成之前,获取高质量的检索特征是必要的。在R2AG中,首先从检索器fR获取语义表示,将查询q和文档d分别编码为表示xq=fR(q)和xd=fR(d)。然后,通过计算相关性、先行相似性和邻居相似性分数,将这些表示转化为统一格式的检索特征。这些分数通过点积或余弦相似性等相似性函数计算得出。最终,将这三个特征连接作为输入:inputi={ri, γi, ζi},分别代表相关性、先行相似性和邻居相似性。然后,将特征列表{inputi}k i=1输入到R2-Former中,以进一步利用检索信息。
R2-Former: R2-Former是R2AG中提出的可训练模块,它作为检索器和大模型之间的桥梁。R2-Former是一个可插拔的基于Transformer的模型,它接受列表式特征作为输入,并输出检索信息。为了更好地理解检索器的列表式特征,R2-Former使用输入嵌入层将输入特征线性转换到更高维度的空间,并在注意力编码前添加位置嵌入以保持序列意识。然后,使用Transformer编码器来处理输入序列,该编码器使用自注意力掩码,允许每个位置的特征关注其他位置。对于输入列表{inputi}k i=1,该过程可以表示为:H = fatt hf→h1 {inputi}k i=1 + p ,其中fatt是具有h1隐藏维度的Transformer编码器,f→h1是线性映射层,p ∈ Rk×h1表示可训练的位置嵌入。输出嵌入H ∈ Rk×h1包含了更深层次的检索信息,并将被传递给大模型的生成过程。
检索感知提示: 在生成过程中,大模型有效地利用检索信息是至关重要的。R2AG引入了一种检索感知提示策略,将R2-Former提取的检索信息注入到大模型的生成过程中。首先,使用一个投影层将检索信息线性转换为与大模型的令牌嵌入层相同的维度。然后,使用大模型的分词器对查询和文档进行分词,并将其转换为嵌入。例如,文档d被分词为td={tdj}nd j=1,其中tdj是文档中的第j个令牌,nd是文档d中的令牌数量。令牌嵌入可以通过查找令牌嵌入层进行转换。对于每个文档,相应的检索信息嵌入被添加到文档嵌入的前面。它们是外部知识,并作为锚点,指导大模型专注于有用的文档。最终的输入嵌入可以这样排列:E = [eq1, ···, eqnq| {z }query, eR1, ed11, ···, ed1nd1| {z }document1, ···, eRk, edk1, ···, edkndk| {z }documentk],其中eRi表示第i个文档的检索信息嵌入。通过这种方式,相应文档的检索信息可以很好地混合,减少了大模型处理所有文档的负担。最后,可以通过yˆ = fG(E)得到响应,其中yˆ代表大模型生成的结果。
训练策略: 由于检索和生成的相互依赖性,R2AG将R2-Former训练和大模型对齐集成到一个阶段。联合训练允许R2-Former更好地理解来自检索器的列表式特征,确保检索信息可以被大模型深入解释。对于R2-Former训练,执行一个查询-文档匹配(QDM)任务,强制R2-Former学习列表式特征中的相关性关系。具体来说,这是一个二元分类任务,要求模型对每个文档与查询的相关性进行建模。预测的公式如下:sˆ = f→1(H) = {sˆi}k i=1,其中f→1是一个二元分类头,输出相关性预测sˆ。支持s={si}k i=1是文档的ground-truth标签,使用交叉熵作为损失函数,定义为:LQDM(s, ˆs) = −Xki=1si log(sˆi)+(1−si) log(1−sˆi)。对于大模型对齐,利用语言建模(LM)任务,涉及学习基于前文和检索信息生成后续令牌。语言建模损失LLM旨在最大化令牌的对数似然,奖励大模型正确预测后续单词。联合训练涉及指令微调,结合QDM和LM任务的线性组合。最终损失表示为:L = LQDM +LLM。值得注意的是,R2AG提供了仅训练R2-Former的灵活性,同时冻结大模型,或同时训练两者以更深入地理解检索信息。这一决定代表了计算成本较低和现实世界场景中更高准确性之间的权衡。
实验
R2AG 框架的评估涉及五个数据集,包括 Natural Questions (NQ)、HotpotQA、MuSiQue、2WikiMultiHopQA (2Wiki) 和 DuReader。这些数据集的选择旨在全面测试 R2AG 的性能和鲁棒性。对于 NQ 数据集,使用了 NQ-10、NQ-20 和 NQ-30 三个变体,分别包含 10、20 和 30 个文档。DuReader 是一个多文档问答版本,适用于中文数据集。Table 4 中提供了每个数据集的查询数量、训练/测试集的划分、令牌数量和相关文档的数量。
评估指标包括准确率(Acc)和 F1 分数,适用于不同的数据集。对于 NQ 数据集,采用准确率作为主要评估指标,而对于 HotpotQA、MuSiQue 和 2Wiki 数据集,则同时使用准确率和 F1 分数。DuReader 数据集的性能则通过 F1 分数和 Rouge 分数进行评估。
为了全面评估 R2AG,研究者比较了两种方法:标准 RAG 和增强 RAG。标准 RAG 使用不同的大模型生成响应,给定查询和检索到的文档。对于英文数据集,使用了多个开源大模型,如 LLaMA27B、LLaMA213B、LLaMA38B 和 LongChat1.57B。此外,还使用了闭源大模型 ChatGPT 和 GPT4 作为基线。对于中文数据集,使用了 Qwen1.50.5B、Qwen1.51.8B 和 InternLM21.8B。
Table 1 展示了 R2AG 在四个英文数据集上的主要结果,包括准确率和 F1 分数。这些数据集包括 NQ-10、NQ-20、NQ-30、HotpotQA、MuSiQue 和 2Wiki。在 NQ-10 和 NQ-20 数据集上,R2AG 的准确率分别达到了 0.6930 和 0.7062,显示出在这些数据集上 R2AG 的卓越性能。与其他增强型 RAG 方法相比,R2AG 在大多数数据集上都取得了更好的结果,特别是在处理需要复杂推理的查询时。
在 DuReader 数据集上,R2AG 在处理长达 16k 令牌的长文本输出时仍然保持了良好的性能,其 F1 分数为 0.1510,Rouge 分数为 0.1663。这一结果证明了 R2AG 在广泛文本处理中的鲁棒性和效率,尤其是在必须处理和理解大量文本的场景中。总的来说,R2AG 通过整合检索信息,显著提升了大模型在复杂任务中的表现,使其能够更好地理解和利用检索到的文档信息。
Table 2 显示了在 DuReader 数据集上的性能比较,R2AG 的 F1 分数为 0.1510,优于其他基线模型。通过与标准 RAG 的比较,R2AG 的优势得以体现,尤其是在处理复杂的多文档查询时。
为验证 R2AG 的有效性,研究者进行了消融研究,移除了三个检索特征 r、γ、ζ,结果显示,缺少任何一个特征都会导致性能下降,强调了这些特征的重要性。Table 3 列出了 NQ-10 和 NQ-20 数据集的消融研究结果,表明移除检索特征会显著影响模型的表现。
Figure 3 展示了在 NQ-10 数据集上,使用可学习令牌的性能表现。结果表明,当检索结果大部分相关且冗余文档较少时,可学习令牌对大模型的生成没有帮助,反而可能成为冗余信息。然而,随着文档数量的增加,性能自然会下降,且可学习令牌显著提升了大模型的性能。
研究者强调了检索器性能对大模型在 RAG 中表现的重要性。Figure 4 显示了 R2AG 与其他检索器的性能比较,结果表明更强的检索器能显著提高模型的性能。Figure 5 则展示了 R2AG7B 和 R2AG13B 的性能差异,表明更强的大模型和有效的检索器能共同提升性能。
Figure 6 通过热图可视化了自注意力分布,展示了检索信息如何在不同层中获得更高的注意力分数,进一步证明了检索信息在生成过程中的重要性。通过这些实验结果和分析,R2AG 框架的有效性和鲁棒性得到了充分验证。