跳至主要内容

什么是 RAFT?结合 RAG 与微调,将大语言模型适配到专业领域

RAFT 结合检索增强生成(RAG)与微调,以提升大语言模型在专业领域中的表现
Ryan Ong
Ryan Ong

创建您的免费账户

实践并学习路径你的进步。

使用 Google 继续继续即表示您接受我们的 使用条款,我们的 隐私政策 ,并且您的数据存储在美国。

随着自然语言处理(NLP)的迅速发展,大语言模型(LLM)已成为功能强大的工具,能够处理日益增多的任务。然而,一个持续的挑战是如何将这些通用模型适配到高度专业化的领域,例如医学文献或软件文档。

这正是检索增强微调(RAFT)发挥作用的地方。这项新技术有望改变面向特定领域的 NLP。RAFT 结合了检索增强生成(RAG)的优势——一种将 LLM 与外部数据源结合的方法——以及微调,使模型不仅能学习领域知识,还能学习如何准确检索和理解外部上下文来完成任务。

在本文中,我们将探究 RAFT 的工作机制,了解其优势,并看看这项前沿技术如何重塑我们处理特定领域 NLP 任务的方式。作为起点,您可以先阅读一些关于 RAG 的资源,例如我们的 RAG 入门以及RAG 的实践应用。

什么是检索增强微调(RAFT)

检索增强微调(RAFT)是一种开创性的语言模型方法,它结合了 RAG 与微调的优势。该技术通过增强模型对领域知识的理解与运用能力,并确保在检索不准确时仍具鲁棒性,从而将语言模型定制到特定领域。

RAFT 专为解决将 LLM 适配到专业领域的挑战而设计。在这些场景中,一般性的知识推理不再那么关键,主要目标转向围绕一组预定义的领域文档,尽可能提高回答的准确性。

理解 RAG 与微调的区别

什么是 RAG?

检索增强生成(RAG)是一种通过集成检索模块,从外部知识库获取相关信息,从而增强语言模型的技术。

该检索模块会基于输入查询获取相关文档。语言模型随后利用这些额外上下文生成最终输出。

在“检索-阅读”的范式下,RAG 已在多种 NLP 任务中证明了其高效性,包括语言建模与开放域问答。

然而,这些语言模型并未经过训练去检索准确的领域文档,而只是通过预训练具备一般领域知识。

正如原论文所指出的,现有的上下文内检索方法,相当于在开卷考试中并不知道哪些文档对答题最相关。

如需进一步了解 RAG,请查看如何将 RAG 与 GPT 和 Milvus 结合进行问答。

什么是微调?

微调是一种广泛采用的方法,用于将预训练的 LLM 适配到下游任务。这个过程通过在特定任务数据上进一步训练模型,使其学习模式并对齐到期望的输出格式。

微调在诸如摘要、问答与对话生成等多种 NLP 应用中取得了成功。然而,传统微调方法可能难以有效利用外部的领域知识,或在推理时应对并不完美的检索结果。

沿用前面的类比,微调好比死记硬背文档,并在考试时不参考资料直接答题。这种方法的问题在于微调成本可能较高,且已微调的知识可能会过时。此外,这些微调方法的响应性不如基于 RAG 的方法。

想进一步了解微调,请参阅这篇LLM 微调入门指南。

为何不两者兼顾?用 RAFT 结合 RAG 与微调

RAFT 的直觉

RAFT 认识到现有方法的局限,旨在结合 RAG 与微调的优势。通过在微调过程中纳入领域文档,RAFT 使模型能够学习目标领域的特定模式,同时增强其对外部上下文的理解与有效利用能力。

从高层来看,在 RAFT 中,训练数据由问题、文档(包含相关与不相关)以及从相关文档生成的链式思维风格答案组成。模型被训练成基于所提供的文档回答问题,其中包含并不包含相关信息的干扰文档。这种方法教会模型识别并优先考虑相关信息,同时忽略无关内容。

RAFT 的关键组成

让我们更深入地了解检索增强微调的工作机制。RAFT 提出了一种新颖的方法来准备微调数据,以训练域内的 RAG 问答模型。在 RAFT 中,训练数据集中的每个数据点包含:

  1. 一个问题(Q)
  2. 一组文档(Dk),分为两类:
    1. “Oracle(标准答案)”文档——包含问题答案的文档。每个问题可以对应多个 Oracle 文档。
    2. “Distractor(干扰项)”文档——不包含回答该问题所需相关信息的文档。
  3. 链式思维风格的答案(A*):从 Oracle 文档生成,包含详细的推理过程。

在 RAFT 的微调训练数据集中,每个问题都会配对一组文档,其中有些包含答案,有些不包含,同时还附有链式思维风格的答案。这样的结构对于训练模型在作答时区分有用与无关信息特别有效。

为进一步增强模型学习,RAFT 训练数据集中包含多种问题类型的混合:

  • 同时包含 Oracle 与 Distractor 文档的问题:有比例为 𝑃 的问题会同时包含 Oracle 与干扰文档,帮助模型学习识别并优先使用相关信息。
  • 仅包含 Distractor 文档的问题:剩余的 1−𝑃 的问题仅包含干扰文档。这类似传统微调,训练模型在不依赖外部文档的情况下处理问题。

最后,链式思维风格的答案会融合 Oracle 文档中的片段与详细的推理过程。此方法通过教会模型使用原始上下文中的相关片段构建推理链,来提升其回答问题的准确性。

用于生成链式思维风格答案的 RAFT 提示

图片来源:RAFT: Adapting Language Model to Domain Specific RAG

微调过程

当训练数据准备完成后,微调过程包括:

  • 训练模型:使用有监督学习,让模型从所提供的上下文(包括问题与成组文档)中生成链式思维风格的答案。
  • 目标:使模型学习从 Oracle 文档中识别并优先使用相关信息,同时忽略干扰文档。

推理

在推理阶段,我们的微调模型将接收一个问题以及由 RAG 流水线检索到的前 K 条文档。需要注意的是,检索模块独立于 RAFT 运行。

RAFT 的实验结果

为展示 RAFT 在从域内文档中抽取相关信息并回答问题方面的优势,原论文将 RAFT 与结合 RAG 的通用模型以及特定领域的微调模型进行了对比。具体而言,他们通过 RAFT 方法微调了 Llama-2,得到 RAFT 7B 模型,并与以下方法比较:

  1. 零样本提示的 Llama-2
  2. 结合 RAG 的 Llama-2
  3. 领域特定微调(DSF)的 Llama-2(标准有监督微调流程)
  4. DSF + RAG(结合 RAG 的领域特定微调 Llama-2)
  5. GPT-3.5 + RAG

这些模型在三类数据集上进行评估,以考察 RAFT 在不同领域的表现:

  1. 通用知识数据集——包括 Natural Questions、Trivia QA 与 HotpotQA,关注常识性问答。
  2. 软件文档(API)——包括 HuggingFace、Torch Hub 与 TensorFlow Hub,关注基于文档生成正确且可执行的 API 调用。
  3. 特定领域数据集——包括 PubMedQA,关注生物医学与生物学研究问题。

总体而言,结果显示 RAFT 在 PubMed、HotpotQA 及其他 API 数据集上,无论是否结合 RAG,均持续优于有监督微调方法。

与领域特定微调(DSF)相比,RAFT 的表现显著更好。有趣的是,DSF 结合 RAG 并未带来更优表现,反而更差。

这表明 DSF 缺乏从提供的文档中有效提取相关信息的能力。通过采用 RAFT,我们训练模型既能准确处理文档,也能提供合适的作答风格。

RAFT 的方法甚至优于体量更大的 GPT-3.5 + RAG,进一步证明了其有效性。

RAFT 与基线模型结果对比

图片来源:RAFT: Adapting Language Model to Domain Specific RAG

消融研究

除主要实验外,原论文还进行了多项消融研究,以理解各组件对 RAFT 性能的影响:

  1. 链式思维的影响——结果显示,在大多数情况下,带有链式思维(CoT)的 RAFT 优于不带 CoT 的 RAFT。
  2. Oracle 文档比例——训练数据中应包含多少比例的 Oracle 文档最合适?消融研究表明,最佳比例在不同数据集间有所差异,其中 80% 在各数据集上都能取得稳定的强劲表现。
  3. 干扰文档数量——研究发现,1 个 Oracle 文档配 4 个干扰文档的训练设置最为理想,既能训练模型进行优先级判定与相关信息选择,又不至于被无关文档淹没。

如何实践 RAFT

要实现 RAFT,研究者与从业者可遵循论文中给出的步骤。这包括从相关文档生成链式思维风格答案、在训练中加入干扰文档,以及使用有监督学习技术对模型进行微调。作者还开源了代码并提供了演示,以便进一步实验与采纳 RAFT。

进一步了解 RAG 与微调

RAFT 标志着领域特定语言建模的重大进步,为将 LLM 适配至专业领域提供了有力方案。通过结合 RAG 与微调的优势,RAFT 使语言模型能够有效利用领域知识,同时在检索不准确的情况下保持鲁棒性。

如果您希望更深入地学习 RAG 与微调,建议参考以下资源:

随着对领域特定语言模型的需求不断增长,像 RAFT 这样的技术将在各行业与领域中助力构建更准确、可靠的 NLP 应用,发挥关键作用。

Ryan Ong

作者

Ryan Ong

Ryan 是一名首席数据科学家,专注于使用大型语言模型构建 AI 应用。他是伦敦帝国理工学院自然语言处理与知识图谱方向的博士候选人,并在该校获得了计算机科学硕士学位。除数据科学之外,他还撰写每周的 Substack 时事通讯 The Limitless Playbook,分享来自全球顶尖思想家的一个可操作理念,并不时撰写关于核心 AI 概念的文章。

主题