Ch11 模型微调

RAFT(深挖)

一句话理解

RAFT(Retrieval Augmented Fine-Tuning,检索增强微调)是 2024 年提出的微调策略:在微调阶段就把检索文档混入训练数据,让模型学会”查阅资料再回答”,而不是像传统 RAG 那样只在推理时做检索。RAFT 训练出的模型在推理时配合检索,效果优于纯 RAG 和纯微调。

背景:RAG 和微调的各自局限

RAG 的问题:检索到的文档不总是相关的。如果检索返回了无关文档,模型可能被误导,生成错误答案。传统 RAG 的模型本身没有经过”如何利用检索结果”的训练。

纯微调的问题:模型只记住了训练数据中的知识,无法利用外部知识库。遇到训练数据中没有的信息,只能”编造”。

RAFT 的洞察:如果能训练模型学会”先看资料,再回答”,并且教会它”忽略无关资料,只信相关资料”,那么模型在推理时配合 RAG 检索,效果会大幅提升。

核心机制:训练数据中混入检索文档

RAFT 的关键创新在于训练数据的构造方式。对于每个训练样本(问题 + 答案),RAFT 构造如下:

训练 Prompt:
<问题文本>

相关文档:
<从知识库中检索到的 1-2 篇相关文档>

无关文档:
<随机选取的 1-2 篇无关文档(干扰项)>

请根据相关文档回答上述问题。

关键设计:

  • 每个训练样本中都混入了”distractor documents”(干扰文档/无关文档)
  • 模型必须学会区分相关文档和无关文档
  • 模型的答案必须基于相关文档,忽略无关文档
  • 对于无法通过文档回答的问题,模型学会说”不知道”而不是编造

RAFT 训练流程

┌─────────────────────────────────────────────────────┐
│                  RAFT 训练流程                        │
├─────────────────────────────────────────────────────┤
│  1. 准备知识库和 QA 数据集                            │
│     ↓                                               │
│  2. 对每个 QA 对,用检索器检索 top-k 文档              │
│     ↓                                               │
│  3. 取前 1-2 篇作为"相关文档"                         │
│     ↓                                               │
│  4. 随机抽取 1-2 篇不相关文档作为"干扰文档"            │
│     ↓                                               │
│  5. 拼装训练 Prompt: P + D+ + D- → 答案               │
│     ↓                                               │
│  6. 用标准监督微调(SFT)训练模型                      │
│     ↓                                               │
│  7. 推理时:标准 RAG 流程(检索 → 拼入 Prompt → 生成)  │
└─────────────────────────────────────────────────────┘

RAFT vs RAG vs 纯微调 对比

维度纯 RAG纯微调 (SFT)RAFT
训练阶段不训练模型用 QA 数据微调用 QA + 检索文档 + 干扰文档微调
推理阶段检索 + 生成直接生成检索 + 生成
外部知识依赖检索质量不使用外部知识依赖检索且模型会区分文档质量
对无关文档的鲁棒性差(容易被误导)不存在此问题强(训练中特意加入了干扰)
知识更新更新知识库即可需重新微调更新知识库即可
幻觉控制中等差(容易编造)好(学会说”不知道”)
训练成本无中等中等(略高于纯微调)
适用场景知识库频繁更新封闭域知识问答开放域 + 需要精确引用
2026 年定位基础方案基础方案进阶方案

技术细节

干扰文档的策略

干扰文档的数量和比例是关键超参。RAFT 论文建议:

  • 干扰文档比例:30%-50% 的训练样本中包含干扰文档
  • 干扰文档数量:1-2 篇
  • 干扰文档的选择:从训练集中随机抽取,确保与问题无关

如果干扰文档太少,模型学不会”忽略无关信息”;如果太多,模型可能变得过于保守,连相关文档也不信任。

Chain-of-Thought 推理

RAFT 论文还建议在训练时让模型输出 Chain-of-Thought(思维链)推理过程:

输入: 问题 + 相关文档 + 干扰文档
输出: 
  Step 1: 分析哪些文档与问题相关
  Step 2: 从相关文档中提取关键信息
  Step 3: 基于关键信息生成答案

这样训练出的模型在推理时更透明,可以追溯答案的来源。

2026 年定位

  1. 企业知识库问答:RAFT 适合需要精确引用来源的场景(法律、医疗、金融)
  2. 与 Agent 结合:Agent 在调用工具时,可以用 RAFT 训练过的模型判断返回结果是否相关
  3. 长上下文时代的演化:随着上下文窗口增长(1M+ tokens),RAFT 可以塞入更多检索文档,让模型在更大范围内做”查阅-回答”
  4. 与 GRPO 结合:2025-2026 年的新趋势是用 GRPO 替代 RAFT 的 SFT 阶段,在可验证的 QA 任务上进一步优化

相关笔记

来源

关联4

知识图谱

局部图谱 · 点节点跳转