论文导读 I RAFT:使语言模型适应特定领域的RAG
论文导读 I RAFT:使语言模型适应特定领域的RAG
随着大语言模型(LLMs)的发展,这些模型在广泛的任务中展现出了卓越的性能。然而,当这些模型应用于特定领域时,如何有效融入新信息仍然是一个未解决的问题。本文提出了检索增强微调(RAFT),这是一种新的训练方法,旨在提高模型在特定领域内的“开卷”环境中回答问题的能力。RAFT 通过训练模型忽略无关文档,并逐字引用相关文档中的正确序列来回答问题,结合思维链式响应,显著提升了模型的推理能力。实验结果显示,RAFT 在 PubMed、HotpotQA 和 Gorilla 数据集上均表现出色,提供了一种有效的训练后配方,以改进预训练的大语言模型以适应特定领域的 RAG。
引言
大语言模型(LLMs)在大规模公共数据上进行训练后,已经在广泛的常识推理任务中取得了显著进展。然而,这些模型越来越多地被应用于特定领域,如代码补全、法律或医疗文档的问答等任务。在这些应用场景中,模型的主要目标是根据给定的文档集合最大化准确性,而非依赖常识推理。因此,如何使大语言模型适应特定领域,特别是在检索增强生成(RAG)任务中,成为了一个重要的研究方向。
背景与动机
在特定领域中应用大语言模型时,通常有两种方法:一是通过检索增强生成(RAG)进行上下文学习,二是通过监督微调进行领域适应。基于 RAG 的方法允许模型在生成答案时参考文档,但这种方法未能充分利用固定领域设置下的学习机会。而基于微调的方法则可以学习文档中的普遍模式,但未能充分利用测试时的文档信息。本文的目标是结合这两种方法的优势,提出一种新的训练策略——RAFT。
图1:如何为考试做最佳准备?
(a)基于微调的方法通过直接“记忆”输入文档或在不参考文档的情况下回答练习问答来实现“学习"(b)或者,上下文检索方法未能利用固定领域所提供的学习机会,相当于在不做准备的情况下参加开卷考试。相比之下,我们的方法(c)RAFT在模拟的不完美检索环境中利用微调与问答对,同时参考文档--从而有效地为开卷考试环境做准备。
方法
检索增强微调(RAFT)
RAFT的核心思想是在训练过程中引入干扰文档,以提高模型在面对无关信息时的鲁棒性。具体而言,对于每个问题和一组检索到的文档,模型不仅要学会回答问题,还要学会忽略那些对回答问题无帮助的文档。这一过程通过以下步骤实现:
数据准备:构建一个包含问题、检索到的文档和正确答案的数据集。在训练数据中,每条记录包含一个问题、一组检索到的文档(包括黄金文档和干扰文档)以及正确的答案。
模型训练:使用上述数据集对模型进行微调。在训练过程中,模型不仅要学会从黄金文档中提取相关信息,还要学会忽略干扰文档。
思维链式响应:为了让模型更好地理解和推理,训练时采用思维链式响应的方式,即模型在生成答案时不仅要引用相关文档中的正确序列,还要逐步展示其推理过程。
图2:我们的RAFT方法的概述
左上角的图展示了我们让大语言模型适应从一组正例和干扰文档中读取解决方案的方法,这与标准的 RAG 设置形成对比,在标准的 RAG 设置中,模型是基于检索器的输出进行训练的,这是记忆和阅读的混合。在测试时,所有方法都遵循标准的 RAG 设置,并提供了上下文中的前k篇检索文档。
干扰文档的作用
为了使模型在面对无关信息时更加鲁棒,RAFT 在训练过程中引入了干扰文档。这些干扰文档与问题无关,但可能出现在实际检索结果中。通过训练模型忽略这些干扰文档,可以提高模型在真实环境中的表现。实验结果显示,使用干扰文档进行训练的模型在测试时的表现明显优于仅使用黄金文档训练的模型。
实验设计
数据集
本文使用了三个数据集进行实验:
PubMed:包含医学领域的摘要和文章。
HotpotQA:包含多跳问答任务的数据集。
Gorilla:包含 API 文档的数据集。
实验设置
实验设置了不同的训练条件,包括不同数量的干扰文档(0 到 4 个)和不同数量的黄金文档(1 个)。通过这些实验,研究了模型在不同训练条件下的表现。
结果分析
实验结果显示,使用干扰文档进行训练的模型在所有数据集上都表现出更好的性能。具体而言:
在 PubMed 数据集中,使用 4 个干扰文档进行训练的模型表现最佳。
在 HotpotQA 数据集中,使用 2 个干扰文档进行训练的模型表现最佳。
在 Gorilla 数据集中,使用 3 个干扰文档进行训练的模型表现最佳。
此外,实验还研究了模型在测试时面对不同数量文档时的鲁棒性。结果显示,经过干扰文档训练的模型在测试时面对不同数量文档时仍能保持稳定的性能,进一步验证了 RAFT 方法的有效性。
相关工作
检索增强语言模型
检索增强语言模型(RALMs)通过集成一个从外部知识库获取相关信息的检索模块,显著提高了模型在各种自然语言处理任务中的性能。例如:
Atlas:使用检索器对 T5 模型进行微调,将文档视为潜在变量。
RETRO:修改仅解码器架构以包含检索到的文本,并从头开始进行预训练。
kNN-LM:在推理过程中对语言模型的下一个令牌分布和从检索到的令牌计算出的分布进行插值。
记忆与泛化
大型神经语言模型的一个关键问题是它们是否真正“理解”文本,还是仅仅依赖于表面模式的记忆。近年来,研究者开发了多种方法来量化模型的记忆程度,并探讨了记忆如何影响模型的泛化能力。例如:
The Secret Sharer:评估和测试神经网络中的无意记忆。
Extracting Training Data:从大语言模型中提取训练数据。
Quantifying Memorization:量化跨神经语言模型的记忆程度。
讨论
模型鲁棒性的提升
通过引入干扰文档,RAFT 有效提升了模型在面对无关信息时的鲁棒性。这一方法不仅使模型能够在训练过程中学会忽略无关文档,还在测试时表现出更强的适应能力。实验结果表明,经过干扰文档训练的模型在不同数量文档的测试条件下仍能保持稳定的性能,进一步验证了方法的有效性。
思维链式响应的作用
思维链式响应在训练过程中起到了关键作用。通过逐步展示模型的推理过程,不仅提高了模型的理解能力,还增强了模型的解释性。实验结果显示,采用思维链式响应的模型在复杂任务中表现更为出色,尤其是在需要多步推理的问答任务中。
总结
本文提出的 RAFT 方法为特定领域中的 RAG 任务提供了一种有效的解决方案。通过引入干扰文档和思维链式响应,RAFT 不仅提高了模型的鲁棒性和推理能力,还在多个数据集上展现了出色的性能。未来的研究可以进一步探索 RAFT 在其他领域和任务中的应用,以推动大语言模型在特定领域的实际应用。