【RAG 论文】RAFT:适用于 domain specific RAG 的 LLM

论文:RAFT: Adapting Language Model to Domain Specific RAG

⭐⭐⭐⭐

UC Berkeley, arXiv:2403.10131

Blog:gorilla.cs.berkeley.edu/blogs/9_raft.html

文章目录

    • 一、论文速读
    • 二、论文中一些讨论
      • [2.1 LLMs for Open-Book Exam](#2.1 LLMs for Open-Book Exam)
      • [2.2 RAG & SFT](#2.2 RAG & SFT)
    • [三、CoT 的使用](#三、CoT 的使用)
    • [四、RAFT 成功的总结](#四、RAFT 成功的总结)

一、论文速读

RAFT(Retrieval Aware Fine-Tuning)是一个经过监督微调(SFT)后的 LLM,在运行时通过检索特定领域的参考资料来回答用户的问题。

RAFT 的特点在于它的微调(SFT)过程。在 SFT 过程中,训练模型忽略任何检索到的、无助于回答特定问题的文档,从而让模型学会消除干扰。另外,RAFT 使用 chain-of-though 来进一步提高模型的推理能力。

RAFT 在 LLaMa2-7B 模型上经过 SFT 得到的,SFT 的思路如下

在每一个训练样本中,包含一个 question Q Q Q,一个文档集合 D k D_k Dk,一个针对 question 的 chain-of-though 风格的 answer A ∗ A* A∗,另外还有两类 documents:

  • oracle document D ∗ D* D∗:可以推导出问题答案的 doc,也就是对回答问题有用的 doc
  • distractor document D i D_i Di:干扰文档,对回答问题没有用的 doc

我们期望 RAFT 能够在看到输入 Q Q Q、 D ∗ D* D∗、 D i D_i Di 后,能够生成 A ∗ A* A∗,以此为目标对其进行监督微调。

但这里有一个关键 trick:对于 P P P% 的训练样本,我们给 RAFT 输入了 Q Q Q、oracle doc 和 distractor doc,但剩下的 ( 1 − P ) (1-P) (1−P)% 的训练样本,只给 RAFT 输入 Q Q Q 和 distractor doc,不再给他输入 oracle doc,如下所示:

这种在微调时特意混合相关文档和不相关文档的做法,可以有效提高模型忽略不相关信息的能力。这种思路是特意针对目前的 LLM 具有对不相关文本太脆弱的问题而设计的。

二、论文中一些讨论

2.1 LLMs for Open-Book Exam

论文用现实世界的"让 LLM 去准备一场考试"做了一个很形象的比喻,存在三类考试:

  1. Closed-Book Exam:即闭卷考试,在考试期间,LLM 不允许去参考任何其他文档资料,只能凭借自己的预训练期间得到的参数化知识来完成回答。
  2. Open Book Exam:即开卷考试,考试期间,LLM 可以去参考任何互联网资料,从而获取 "new knowledge" 来完成回答。
  3. Domain Specific Open-Book Exam:这是本文重点关注的方向。LLM 事先知道自己将要被测试的 domain,并会提前准备,考试时,可以参考该领域的所有文档资料来完成回答。

在我们的场景中,特定领域的文档资料就是企业的内部文档、最新的新闻或者企业私有的代码库等等。而所谓的"提前准备考试",就是使用特定领域的训练数据来对 LLM 进行 SFT。

下图展示了不同的考试类型:

2.2 RAG & SFT

  • RAG:Retriveal Augmented Generation
  • SFT:Supervised Fine-Tuning

论文对两者的特点和存在的缺点进行了讨论:

  • RAG only:基于 RAG 的方法,允许 LLM 在测试期间去参考相关文档,但没能利用模型在训练学习期间去适应这个 domain 的场景,也没有学习如何去利用可以参考的文档,相当于"不学习直接带着课本去考试"
  • SFT only:像最开始发布的 ChatGPT,在测试期间只能凭借自己的参数化记忆来完成用户回答,无法参考文档,相当于"努力学习了但没带课本去考试"

所以本文所研究的核心问题就是:How to adapt pre-trained LLMs for Retrieval Augmented Generation(RAG) in specialized domains?

RAFT 模型关注的就是如何让 SFT 和 RAG 进行结合,来达到更好的效果

三、CoT 的使用

前面第一节就介绍了 RAFT 的训练思路,这里着重介绍一下 chain-of-though 是如何用于提升 RAFT 的推理能力的。

用于对 RAFT 进行 SFT 的训练数据中,每个 question 的 answer 都是 CoT style 的,并且 answer 中还清晰地标注了引用来源。一个训练数据样本如下所示:

使用这个 CoT style 的 answer 作为训练样本对 RAFT 进行 SFT,是提高训练质量的关键因素之一

四、RAFT 成功的总结

总结一下 RAFT 模型能够表现好的原因:

  1. 对原生的 LLM 模型,使用 domain specific 的训练数据对其进行 SFT,让 LLM 能够提前熟悉这个 domain,并学会利用检索到的文档来生成回答。
  2. SFT 训练中,将 oracle doc 和 distractor doc 进行混合来对 LLM 做训练,提高了 RAFT 忽略不相关信息的能力。
  3. SFT 训练样本中,answer 采用 CoT style,提高了模型的推理能力。

RAFT 是一个巧妙融合了 SFT 和 RAG 的方法,它独立于 retriever 的选型,是一个很值得参考的工作。

相关推荐
动物园猫3 分钟前
狗行为目标检测数据集:6类别、近3,000张图像 | 目标检测
人工智能·目标检测·计算机视觉
知识燃料8 分钟前
企业技术决策者落地 AI Agent 体系,AWS 中国峰会有哪些战略与工程内容可看?
大数据·人工智能
一个王同学14 分钟前
从零到一 | CV转多模态大模型 | week22 | 实战项目-DocuMind-VL:基于 OCR 与 Qwen-VL 的文档多模态问答系统(二)
人工智能·深度学习·机器学习·计算机视觉·ocr
Canace17 分钟前
笔记本都合上了,Claude 为什么还能在手机上执行电脑上装的技能?
前端·人工智能·ai编程
u01030552717 分钟前
昇腾+AtomGit打造AI甘特图应用生产线
人工智能
美狐美颜SDK开放平台17 分钟前
第三方美颜SDK接入教程:直播APP实现实时美颜、滤镜与美型效果的方法
人工智能·深度学习·音视频·sdk·美颜sdk·视频美颜sdk·直播app开发
乱世刀疤18 分钟前
AI Weekly 8.3-8.9
人工智能
AI导出鸭18 分钟前
怎么让豆包做表格?AI导出鸭苹果版将豆包输出的管道表格智能解析为二维结构,一键导出为Excel或Word标准表格。
人工智能·chatgpt·word·excel·ai导出鸭
霸道流氓气质2 小时前
普通办公电脑基于 Ollama 的本地 AI 能力技术文档
人工智能·电脑
点云-激光雷达-Slam-三维牙齿2 小时前
速度起飞 笔记本电脑6G显卡llama运行Qwen3.6 35BA3B MTP 大模型
人工智能·python·电脑·llama