优化大型语言模型:检索增强微调技术RAFT

2024年03月26日 由 daydream 发表 102 0

在使用大型语言模型(LLM)进行特定领域的应用时,通常需要使用检索增强生成(RAG)或对模型进行微调以适应特定目的。然而,RAG和微调都存在局限性,这导致LLM无法实现最佳性能。


微信截图_20240326134308


在加州大学伯克利分校的最新论文中,研究人员介绍了一种新技术——检索增强微调(RAFT),该技术优化了LLM在特定领域知识上的RAG。RAFT使用简单但有效的指令和提示技术来微调语言模型,这样模型不仅能在特定领域获取知识,还能更好地从上下文文档中提取信息。


RAFT对需要定制LLM以处理其专有数据的企业来说非常有用。


微调和RAG的局限性


“RAFT的灵感来源于LLM的一个局限性——它们无法对训练领域之外的查询做出响应,比如企业的私有文档、时效性强的新闻或最近更新的软件包。这一局限性一直是阻碍LLM在各种现实场景中应用的重大障碍。”加州大学伯克利分校的博士生田俊章(Tianjun Zhang)和什什尔·帕蒂尔(Shishir Patil)作为论文的合著者,在接受采访时表示。


基础LLM是在庞大的知识库上进行训练的,涵盖的话题范围广泛。然而,在特定领域的设置和应用中,通用知识的重要性较低。相反,模型必须在一系列狭窄的主题和文档上具备最大的准确性,如最新新闻或企业私有文档等。


RAG管道使用检索机制为LLM提供与提示相关的文档和数据。然而,RAG并没有对LLM进行该应用所需基础知识的训练,这可能导致模型错过检索到的文档中的重要信息。


“我们的调查发现,许多开源模型在[RAG]方面存在困难,特别是以下问题:a) 处理不准确的检索器;b) 回答风格不匹配;c) 从检索到的上下文中提取错误的信息。”张和帕蒂尔表示。


另一方面,对特定领域数据进行微调可以提高LLM的知识水平。然而,它仍然将模型的知识局限在训练数据集中包含的数据。同时,将微调后的模型与RAG结合使用也存在局限性。例如,它可能会错过检索到的文档中的相关信息,或者无法考虑检索机制的不完善之处。


微信截图_20240326134455


在他们的论文中,研究人员将RAG方法比作“没有学习过的开卷考试”,将微调比作“闭卷考试”,其中模型已经记住了信息或可以在不参考文档的情况下回答问题。相比之下,经过RAFT训练的模型就像是一个已经学习过主题并参加开卷考试的学生。学生将对该主题有充足的知识,并且也知道如何从现有文档中获取更精确的信息。


检索增强微调(RAFT)


检索增强微调(RAFT)将监督微调(SFT)与RAG相结合,以便在LLM中融入领域知识,同时提高其使用上下文文档的能力。


“RAFT旨在不仅通过微调使模型学习特定领域的知识,还要确保模型对不准确的检索具有鲁棒性。”论文指出。“我们的方法与为开卷考试做准备类似,需要识别出相关和不相关的检索文档。”


在RAFT中,每个训练示例都包含一个问题、一组文档以及从其中一个文档生成的相应思维链(Chain-of-thought,CoT)答案。RAFT数据集有几个有趣的特点:


首先,训练示例包含“oracle”和“干扰”文档。Oracle文档包含与提示相关的信息,而干扰文档则与问题无关。通过同时对oracle和干扰文档进行训练,微调后的模型在检索模块返回不相关文档时也能有更好的表现。


其次,在一些训练示例中,会移除oracle文档但保留正确答案。这迫使模型从检索到的文档中独立学习领域知识。“在某些情况下,通过移除oracle文档,我们迫使模型记忆答案,而不是从上下文中推导出来。”研究人员写道。


第三,添加CoT部分增强了模型从上下文中引用来源并解释其答案的能力。RAFT代码默认设计为使用GPT-4为训练示例生成CoT推理步骤。


微信截图_20240326134510


“RAFT通过训练模型不仅理解上下文文档,而且忽略不相关内容,解决了[经典RAG的问题]。”张和帕蒂尔表示。“我们的训练方法涉及在提示中同时包含相关(gold)文档和干扰文档,并在必要时以特定格式制定答案。”


RAFT的实际应用


研究人员使用RAFT对包括维基百科、编码/API文档以及医学文档问答在内的多个领域的70亿参数版本的Llama-2进行了微调。然后,他们将其与基线版本进行了比较,包括LlaMA2-7B-chat、带有RAG的LlaMA2-7B-chat模型(Llama2 + RAG)、具有零样本提示的领域特定微调(DSF)以及带有RAG的领域特定微调(DSF + RAG)。


他们的研究结果表明,RAFT在所有基准测试中均一致且显著优于基线模型。有趣的是,经过RAFT训练的Llama-2 7B模型在大多数基准测试中甚至超过了带有RAG的GPT-3.5。


微信截图_20240326134526


从研究结果中发现的一个有趣现象是,在某些基准测试中,DSF模型与RAG结合使用时性能下降。“这可能表明模型在上下文处理和从中提取有用信息方面缺乏训练。”研究人员在论文中写道。相比之下,RAFT不仅训练模型以匹配所需的答案风格,还提高其文档处理能力。


“如果你正在做RAG——你也应该做RAFT。”张和帕蒂尔表示。“RAFT功能多样,能够支持如面向文档的QA聊天机器人或LLM的API调用等功能。”


研究人员目前正在开发一个名为Gorilla-Openfunctions-v2的开源函数调用模型,该模型使用了RAFT算法。


研究人员在GitHub上发布了RAFT的源代码以及使用说明。未来,他们将继续研究改进LLM训练和微调RAG相关任务的方法,特别是加强处理长上下文文档的能力。

文章来源:https://bdtechtalks.com/2024/03/25/raft-llm-fine-tuning-for-rag/
欢迎关注ATYUN官方公众号
商务合作及内容投稿请联系邮箱:bd@atyun.com
评论 登录
热门职位
Maluuba
20000~40000/月
Cisco
25000~30000/月 深圳市
PilotAILabs
30000~60000/年 深圳市
写评论取消
回复取消