[论文笔记]RAFT: Adapting Language Model to Domain Specific RAG

news2024/11/16 16:33:01

引言

今天带来一篇结合RAG和微调的论文:RAFT: Adapting Language Model to Domain Specific RAG。

为了简单,下文中以翻译的口吻记录,比如替换"作者"为"我们"。

本文介绍了检索增强微调(Retrieval Augmented Fine Tuning , RAFT)训练方法,可以提高模型在“开卷”领域内问答的能力。在训练RAFT时,给定一个问题和一组检索到的文档,我们训练模型忽略那些在回答问题时无用的文档,即干扰文档。RAFT通过逐字引用相关文档中的正确序列来帮助回答问题,同时结合RAFT的思维链式响应,帮助提高模型的推理能力。

1. 总体介绍

LLM越来越多地被用于专业领域,在这些场景中,通用知识推理的作用较小,主要目标是基于给定的文档集最大化准确性。本文研究了以下问题:如何将预训练的LLMs适应于专业领域中的检索增强生成?

在将LLMs适应于专业领域时,我们考虑了以下两个方案:通过检索增强生成进行的上下文学习和监督微调。基于RAG的方法允许LLM在回答问题时引用文档。然而,基于RAG的上下文学习方法未能利用固定领域设置。另一种选择是监督微调,这提供了学习文档中更一般模式的机会,并更好地与最终任务和用户偏好对齐。然而,现有的基于微调的方法要么未能在测试时利用文档(没有融入RAG),要么未能在训练过程中考虑检索过程中的不完美之处。

Refer to caption

图1: 如何最好地准备考试?(a)基于微调的方法通过直接记忆输入文档或回答练习问答而不引用文档来实现“学习”。(b)另一方面,上下文检索方法未能利用固定领域所提供的学习机会,相当于在没有学习的情况下参加开卷考试。相比之下,RAFT通过在模拟的不完美检索环境中参考文档,并结合问题-答案对进行微调——从而有效地为开卷考试做好准备。

可以类比于开卷考试。现有的上下文检索方法就像是在没有学习的情况下参加开卷考试。另一方面,现有的基于微调的方法通过直接“记住”输入文档或回答练习问题来实现“学习”,但不引用文档。虽然这些方法利用了领域内的学习,但未能为开卷考试的特性做好准备。

本文研究了如何将指令微调(IFT)与检索增强生成(RAG)相结合。提出了一种新颖的适应策略——检索增强微调(RAFT)。RAFT专门解决了将LLMs微调以融入领域知识的挑战,同时提高领域内RAG的表现。RAFT不仅使模型能够通过微调学习领域特定的知识,还确保对干扰性检索信息的鲁棒性。实现这一目标的方法是训练模型理解问题(prompt)、检索到的领域特定文档和正确答案之间的动态关系。回到开卷考试的类比,我们的方法类似于通过识别相关和无关的检索文档来准备开卷考试。

在RAFT中,我们训练模型在存在干扰文档( D k D_k Dk)的情况下从文档( D ∗ D^* D)中回答问题( Q Q Q),生成答案( A ∗ A^* A),其中 A ∗ A^* A包括思维链推理。

代码发布在 https://github.com/ShishirPatil/gorilla 。

2. LLM用于开卷考试

这里用开卷和闭卷考试来进行类比。

闭卷考试 通常指的是LLMs在考试期间无法访问任何额外文档或参考资料来回答问题的情况。例如,在这个场景中,LLM作为聊天机器人使用,从预训练和监督微调中获得的知识来回应用户的提示。

开卷考试 相对而言,我们将开卷考试的设置比作LLM可以参考外部信息源(例如网站或书籍章节)的场景。在这种情况下,LLM通常与检索器配对,检索器获取k份文档(或文档的特定部分),并将其附加到用户的提示中。LLM通过这些检索到的文档获得领域特定信息。因此,在这些设置中,LLM作为通用LLM的表现在很大程度上依赖于检索器的质量以及检索器准确识别最相关信息的能力。

领域特定开卷考试 在本文中,我们关注比一般开卷考试更狭窄但日益流行的领域,即我们称之为领域特定开卷考试。在这种情况下,我们事先知道LLM将被测试的领域。LLM可以使用在该特定领域上进行微调的任何信息来回应用户的提示。领域特定的例子包括企业文档、组织的代码库等。在所有这些场景中,LLM将用于回答可以在文档集合中找到答案的问题。检索技术本身对机制的影响很小。本文研究了领域特定开卷考试的设置以及如何将预训练的LLM适应于该特定领域,包括如何使其对不同数量的检索文档和干扰项更加鲁棒。

3. RAFT

Refer to caption

图2: RAFT方法的概述。左上图展示了将LLMs适应于从一组正面和干扰文档中提取答案的方法,与标准RAG设置相比,后者基于检索器的输出进行训练,这是一种记忆与阅读的混合方式。在测试时,所有方法都遵循标准RAG设置,提供了上下文中的前k个检索文档。

监督微调

考虑一个用于问答数据集的监督微调(SFT设置。该设置包括从数据集( D D D)中提取或已有的一组问题( Q Q Q)及其对应的答案( Q Q Q)对。在经典的SFT设置中,模型被训练以提高其基于知识回答问题的能力。经过这样的训练,模型也可以在测试时与检索增强生成RAG设置一起使用,在此情况下,额外的文档可以被引入提示中,以帮助模型回答问题。可以表示如下:
{ 训练: Q → A } , { 0 − s h o t 推理: Q → A } , { R A G 推理: Q + D → A } \{训练:Q → A\},\{0-shot推理:Q → A\},\{RAG推理:Q + D → A\} {训练:QA}{0shot推理:QA}{RAG推理:Q+DA}
RAFT: 检索增强微调(RAFT) 提供了一种新颖的方法来准备微调数据,以使模型适应领域特定的开卷考试设置,相当于领域内RAG。在RAFT中,我们准备训练数据,使每个数据点包含一个问题( Q Q Q)、一组文档( D k D_k Dk)以及从其中一个文档( D ∗ D^* D)生成的思维链风格答案( A ∗ A^* A)。我们区分两类文档:golden文档( D ∗ D* D),即可以从中推导出问题答案的文档,以及干扰文档( D i D_i Di),即不包含答案信息的文档。作为实现细节,golden文档不必是单一文档,而可以是多个文档。对于数据集中P比例的问题( q i q_i qi),保留黄金文档( d i ∗ d_i^* di和干扰文档( d k − 1 d_{k-1} dk1)。对于(1-P)比例的问题( q i ) q_i) qi),不包括黄金文档,只包括干扰文档( d k d_k dk)。然后,我们使用标准的监督训练(SFT)技术对语言模型进行微调,训练模型从提供的文档和问题中生成答案。图2展示了RAFT的高级设计原则。

RAG方法使模型在其训练的文档集上表现更好,即在领域内。通过在某些情况下移除黄金文档,促使模型记忆答案而不是从上下文中推导答案。RAFT的训练数据如下,示例训练数据见图3。
P % of data : Q + D ∗ + D 1 + D 2 + . . . + D k → A ∗ (1 − P) % of data : Q + D 1 + D 2 + . . . + D k → A ∗ \text{P \% of data}: Q + D^∗ + D_1 + D_2 + . . . + D_k → A∗ \\ \text{(1 − P) \% of data}: Q + D_1 + D_2 + . . . + D_k → A∗ P % of data:Q+D+D1+D2+...+DkA(1 − P) % of data:Q+D1+D2+...+DkA
image-20240903072105160

随后,在测试场景中,模型会接收到问题 Q Q Q以及RAG流水线检索到的前k个文档。注意RAFT与所使用的检索器无关。

提高训练质量的一个关键因素是生成推理过程,例如思维链,以解释提供的答案。RAFT方法类似:创建完整的推理链,并明确引用来源,可以提高模型在回答问题时的准确性。在图3中,以这种方式生成训练数据涉及向模型提供问题、上下文和经过验证的答案,然后要求模型形成一个适当引用原始上下文的推理链。

在实验中,对于所有数据集,使用上述技术生成答案。Gorilla APIBench数据集已经包含了答案中的推理过程。我们在图3中提供了生成步骤的示例,详细的推理答案包括来自原始上下文的引用,位于##begin_quote####end_quote##之间,以及如何基于这些引用得出结论的详细解释。添加详细的推理段落可以帮助提升模型在实验中的表现。

4. 评估

我们设计实验以研究RAFT与各种基线方法的表现。我们发现,RAFT-7B模型(LlaMA-2的微调版本)在从领域特定文档中读取和提取信息的能力上优于领域特定微调模型和带有RAG的通用模型。作为消融实验,我们还展示了模型学习思维链响应的重要性。

数据集

使用以下数据集来评估我们的模型和所有基线。

  • Natural Questions(NQ)
  • Trivia QA
  • HotpotQA
  • HuggingFace
  • Torch Hub
  • TensorFlow Hub
  • PubMed QA

NQ、Trivia QA和HotpotQA是相对通用领域的数据集,而其他则是领域特定文档的数据集。

基线

在实验中考虑了以下基线方法:

  • LlaMA2-7B-chat模型,0-shot提示:这是常用的用于问答任务的指令微调模型,我们提供清晰的书面指令,但没有参考文档。
  • LlaMA2-7B-chat模型与RAG(Llama2 + RAG):与之前的设置类似,不同的是这里包括了参考文档。这是在处理领域特定问答任务时的一个流行技术。
  • 领域特定微调与0-shot提示(DSF):标准监督微调,没有上下文中的文档。我们发现它主要用于调整模型的回答风格以及熟悉领域背景。
  • 领域特定微调与RAG(DSF + RAG):使用RAG为领域特定微调的模型提供外部知识。因此,对于模型不知道的知识,它仍然可以参考上下文。

4.1 结果

image-20240903073301954

使用上述数据集和基线,评估了RAFT模型,并在表1中展示了RAFT的有效性。我们发现RAFT在提取信息和对抗干扰项方面始终显著优于基线。与基础Llama-2指令微调模型相比,带有RAG的RAFT在信息提取和对干扰项的鲁棒性方面表现更好。

与特定数据集上的DSF相比,我们的模型在依赖提供的上下文解决问题方面表现更佳。

总体而言,LLaMA-7B模型,无论是否使用RAG,其表现都较差,因为其回答风格与实际情况不符。通过应用领域特定微调,我们显著提升了其性能。这一过程使模型能够学习和采用适当的回答风格。然而,将RAG引入领域特定微调(DSF)模型并不总是能带来更好的结果。这可能表明模型在上下文处理和信息提取方面的训练不足。通过采用我们的RAFT方法,我们不仅使模型的回答风格匹配要求,还改善了其文档处理能力。因此,我们的方法优于所有其他方法。

4.2 CoT的效果

image-20240903073629230

还评估了思维链方法在提升模型性能方面的有效性。如表2所示,仅仅提供答案可能并不总是足够的。这种方法可能导致损失快速下降,从而使模型开始过拟合。引入一个推理链,不仅引导模型得到答案,还能丰富模型的理解,可以提高整体准确性并防止过拟合简短答案。在我们的实验中,整合思维链显著提高了训练的鲁棒性。我们使用GPT-4-1106生成思维链提示,并在图3中包括了我们使用的提示示例。

4.3 质量分析

image-20240903073836549

为了说明RAFT相对于领域特定微调(DSF)方法的潜在优势,我们在图4中展示了一个对比示例。这个示例定性地展示了一个场景,其中DSF模型在回答一个要求识别编剧身份的问题时变得困惑。它错误地引用了编剧写的电影之一,而没有提供正确的名字。相比之下,RAFT模型准确回答了问题。这一差异表明,仅用问答对训练模型可能会削弱其从提供的文档中提取相关上下文的能力。这个对比突显了在训练数据集中整合标准的指令微调和上下文理解的重要性,以保持和提升模型处理文本的能力。

4.4 是否应该始终使用Golden上下文来训练LLM以进行RAG?

image-20240903074112154

在我们探索大型语言模型是否应该始终使用Golden上下文进行检索增强生成时,我们提出了一个关键问题:训练数据中应该包含多少比例( p % p\% p%)的黄金文档?直观上,可能会假设,为了有效地训练阅读和从上下文中提取信息,Golden文档应在训练过程中始终包含( P = 100 % P = 100\% P=100%)。然而,我们的发现挑战了这一假设:在上下文中包含部分没有黄金文档的训练数据( P = 80 % P = 80\% P=80%)似乎能够提升模型在RAG任务上的表现。

图5展示了我们对超参数 P % P\% P%的调查, P % P\% P%表示应包含黄金文档的训练实例的百分比。我们发现,最佳比例因数据集而异, P % P\% P%范围从40%、60%到100%不等。这表明,在训练LLM时,有时不包含正确的上下文可能对下游任务(如回答与文档相关的问题)有益。在我们的训练设置中,我们在Golden文档旁边包含了四个干扰文档,并且在测试时,我们保持这种格式,提供了黄金文档和四个干扰文档。我们的发现表明,对于领域特定的RAG任务,将一定比例的训练数据中不包含Golden文档的上下文被证明是有利的

5. RAFT 在 Top-K RAG 上的泛化能力

在使用 Top-K RAG 结果进行评估时,RAFT 中干扰文档的数量如何影响模型的性能?之前的研究已经突出了 LLM 对无关文本的脆弱性。这个问题对于 LLMs + RAG 特别重要,因为在测试时经常使用 Top-K RAG 以确保高召回率。这种情况下,模型需要具备辨别和忽略无关内容的能力,专注于相关信息。

5.1 提高模型对 Top-K RAG 的鲁棒性

为了解决提升 LLM 在检索管道中筛选无关文本的能力的挑战,我们的分析显示,单独使用Golden(高度相关)文档进行训练可能会不自觉地削弱模型辨别和忽略无关信息的能力。为此,我们的算法 RAFT 采用了一种将Golden文档与一部分无关文档混合的策略。这种方法促使我们研究在整个训练过程中应纳入多少干扰(无关)文档,以及这种训练方法如何适应测试阶段 RAG 遇到的不同文档量。我们的目标是优化相关和无关信息之间的平衡,以增强模型识别和利用相关内容的效率。

image-20240903074624267

使用干扰文档进行训练

为了提高 LLM 对检索文档中无关文本的鲁棒性,我们采用了一种包含黄金(Golden,高度相关)文档和干扰(无关)文档的微调方法。模型在包含不同数量的干扰文档的情况下进行训练,但始终使用从检索器获得的 Top-3 文档进行评估——这与 p 不同。我们的发现(如图6所示)表明,仅使用黄金文档的微调方法通常会导致性能低于包含更多干扰文档的配置。图中显示,自然问题(Natural Questions)使用 D ∗ + 3 D D^∗ + 3D D+3D 的训练效果较好,而 Hotpot QA 使用 D ∗ + 1 D D^∗ + 1D D+1D 的文档效果更佳。在实验中,始终采用一份黄金文档和四份干扰文档的训练设置。

对测试时不同文档数量的泛化

考察了不同数量的测试文档对模型性能的影响。具体来说,我们的实验关注于评估模型在训练时使用不同数量的干扰文档如何响应测试时文档数量的变化。结果(如图6所示)确认,训练过程中包含干扰文档确实使模型对测试时文档数量波动更具弹性。这种在测试时文档数量变化下维持一致性能的能力进一步验证了我们方法 RAFT 的鲁棒性。这一发现强调了一个良好校准的训练环境对于准备模型应对现实世界中可能遇到的各种场景的重要性。

6. 相关工作

检索增强语言模型 检索增强语言模型(RALMs) 通过集成检索模块,从外部知识库中提取相关信息,从而显著提升了各种自然语言处理任务的性能,包括语言建模和开放域问答。

记忆 关于大型神经语言模型的一个关键问题是它们是否真正“理解”文本,还是仅仅依赖于表面模式的记忆。Feldman,Carlini开发了量化神经模型记忆化程度的方法。Brown,Power,Liu进一步探讨了记忆如何影响模型的泛化能力。

针对 RAG 的微调 最近,几篇论文探讨了将预训练的 LLM 微调以更好地处理 RAG 任务的想法(Lin; Wang; Xu;liu)。这些工作关注于构建 RAG 微调数据集,并训练模型在这些任务上表现良好。特别是,在他们的设置中,测试时的领域或文档可能与训练时不同;而我们论文则研究了一个略微相反的情境,即只关心在相同文档集上测试 LLM。

7. 结论

RAFT 是一种旨在提升模型在特定领域的开卷环境中回答问题性能的训练策略。我们强调了几个关键设计决策,比如在训练中加入干扰文档、组织数据集以使一部分数据没有黄金文档的背景,并以思维链的方式生成答案,直接引用相关文本。

总结

⭐ 本篇工作提出了一种检索增强微调方法RAFT,可以提高模型在开卷领域内问答的能力。在训练RAFT时,给定一个问题和一组检索到的文档,训练模型忽略那些在回答问题时无用的干扰文档。RAFT通过逐字引用相关文档中的正确序列来帮助回答问题,同时结合RAFT的思维链式响应,帮助提高模型的推理能力。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2104538.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CNN-LSTM用于时间序列预测,发二区5分+没问题!

为了进一步提高时序预测的性能,研究者们组合了CNN和LSTM的特点,提出了CNN-LSTM混合架构。 这种架构因为独特的结构设计,能同时处理时空数据、提取丰富的特征、并有效解决过拟合问题,实现对时间序列数据的高效、准确预测&#xff…

跨平台RTSP播放器之VLC Media Player还是SmartPlayer?

好多开发者纠结,RTSP流播放,到底是用开源的VLC Media Player还是大牛直播SDK的SmartPlayer?针对此,本文做个简单的技术探讨,方便开发者根据实际需要,做适合自己场景的选择: VLC Media Player …

oracle 数据库 day0823

ok了家人们,今天学习了orcle的基本用法,一日不见,如隔三秋啊, 一.多表联合查询 和之前学习的MySQL数据库一样的用法, 1.1 笛卡尔积查询 SELECT * FROM A表,B表 查询员工表和部门表 select * from emp e, dept d; e…

虚拟系统VS

定义 虚拟系统VS(Virtual System)是指将一台物理设备PS(Physical System)虚拟成多个相互隔离的逻辑系统。每个VS独立工作,在业务功能上等同于一台独立的传统物理设备,如图2-1所示。 目的 随着网络规模的不…

PNAS亮点文章!浙江大学/东北林业大学/深圳华大生命科学研究院等联合揭示大熊猫种群演化历史,提出物种保护新见解!

本文首发于“生态学者”微信公众号!作者投稿系列 全新世以来,尤其是工业革命以来,资源的过度开发利用和环境污染等人类活动,导致野生动物栖息地严重破碎化,甚至丧失,形成了大量隔离小种群,致使…

TESSY导入导出测试用例

TESSY支持测试用例的导入和导出,下面我们以tessy5.1为例,给大家展示。 1、导入测试用例 因为导入测试用例,需要先创建测试集,这部分不熟悉的,可以参考一下: https://blog.csdn.net/u012568663/article/det…

网络编程(学习)2024.8.30

目录 IO多路复用 select、poll、epoll IO多路复用机制 一.select 1.函数 2.流程 3.案例使用select创建全双工客户端 4.并发服务器 5.案例使用select创建全双工服务端 二.poll 1.函数 2.流程 3.案例使用poll创建全双工客户端 4.案例使用poll创建全双工服务端 三、…

国产统信UOS桌面操作系统安装网络打印机

国产统信UOS桌面操作系统安装网络打印机比较麻烦,本文件记录了一些打印机的安装方法。 厂商机型驱动方式打印情况柯尼卡美能达KONICA MINOLTA bizhub c360i加装驱动正常惠普HP Color LaserJet Pro MFP M479fdw默认驱动正常东芝TOSHIBA e-STUDIO2020AC CSHM14177加装…

九、制作卡牌预制体

文章目录 制作预制体Physic 2D Raycaster 射线检测 Physic 2D Raycaster 一、制作预制体 使用两个空物体作为父子级,分别挂UI 设置图层front、从上到下为1-6 父物体挂在一个Sorting组件,因为卡牌可以制作成为一个整体, 所以在父物体上挂载…

Mac 数据恢复技巧:恢复 Mac 上已删除的文件

尝试过许多 Mac 数据恢复工具,但发现没有一款能达到宣传的效果?我们重点介绍最好的 Mac 数据恢复软件。 没有 Mac 用户愿意担心数据丢失,但您永远不知道什么时候会发生这种情况。无论是意外删除 Mac 上的重要文件、不小心弄湿了 Mac、感染病…

pdf转word格式乱了怎么调整?2024帮助你快速进行pdf格式调整的软件

pdf转word格式乱了怎么调整?2024帮助你快速进行pdf格式调整的软件 将PDF文件转换为Word格式时,可能会遇到格式混乱的问题。这通常是由于PDF文件的复杂排版、字体嵌入、图像和表格布局等因素造成的。不过,有一些软件可以帮助你更好地保持原有…

测开必备知识:线程安全和线程不安全

什么是线程安全 线程安全指的是在多线程环境下,一个对象或者数据结构能够保证在并发访问时依然能够维持其预期的行为,不会出现数据不一致或者其他意外情况。 反之就是线程不安全。 多线程环境下可能产生的问题 当多个线程同时访问共享的资源&#xf…

QT笔记 - QProcess读取外部程序(进程)消息

简要介绍 QProcess可用于在当前程序中启动独立的外部程序(进程),并进行通讯,通讯原理是通过程序的输入或输出流,即通过c中的printf()和或c的std::cout等。 函数 void QProcess::start(const QString & program, const QStringList &am…

直播美颜SDK开发方案详解:如何打造智能化主播美颜工具?

在竞争激烈的市场环境下,如何通过直播美颜SDK打造智能化的主播美颜工具,已成为技术开发者和产品经理们关注的焦点。本篇文章将从核心技术、开发流程和优化策略等方面,详细解析如何构建一款智能化的主播美颜工具。 一、核心技术解析 1.人脸识…

第10讲 后端2

主要目标:理解滑动窗口法、位姿图优化、带IMU紧耦合的优化、掌握g2o位姿图。 第9讲介绍了以为BA为主的图优化。BA能精确优化每个相机位姿与特征点位置。不过在更大的场景中,大量特征点的存在会严重降低计算效率,导致计算量越来越大&#xff0…

图纸安全管理措施有哪些?这九大措施全方位保护图纸安全

图纸安全管理措施是一个综合性的体系,旨在通过技术手段和管理措施确保图纸的机密性、完整性和可用性。以下是一些关键的图纸安全管理措施,以及软件安企神的应用。 一、保密协议与意识教育 签订保密协议:与所有接触图纸的员工签署保密协议&am…

计算方法——插值法程序实现二(牛顿法)

例题 给出的函数关系表,分别利用牛顿插值法计算的近似值。 0.10.20.30.40.51.1051711.2214031.3498591.4918251.648721 参考代码一:Python代码实现(自编码) import math """ :difference_quotient差商函数 &quo…

基于AppBuilder自定义组件开发大模型应用

AppBuilder简介: 如果大家不了解AppBuilder的话,可以先到这里了解一下: https://cloud.baidu.com/doc/AppBuilder/s/6lq7s8lli 一句话简介: 千帆AppBuilder(以下简称AppBuilder)是基于大模型搭建AI原生应…

MySQL进阶篇2

三、SQL优化 3.1 插入数据 批量插入推荐每次在 500 ~ 1000 条数据时进行使用。如果大于1000,可以考虑分批次进行插入。 大批量插入数据(100万、1000万) 主键顺序插入的性能比乱序要高 3.2 主键优化 数据组织方式 页分裂 主键顺序插入 主键乱序插入 页合并 (del…

计算机网络-VRRP工作原理

一、VRRP工作原理 前面我们大概了解了VRRP的一些基础概念,现在开始学习VRRP的技术原理。VRRP的选举及工作步骤: 确定网关地址 选举主备 主设备发送VRRP报文通知Backup设备 主设备响应终端ARP并维持在Master状态 终端正常发送报文到网关进行转发 因为我们…