InstructGPT 论文阅读笔记:从 GPT-3 到 RLHF 指令对齐

论文:Training language models to follow instructions with human feedback
作者:Long Ouyang, Jeff Wu, Xu Jiang 等
关键词:InstructGPT、RLHF、SFT、Reward Model、PPO、Alignment、大语言模型


摘要

这篇论文可以看作是从 GPT-3 这类“会续写文本的大语言模型”,走向 ChatGPT 这类“能听懂指令并尽量按用户意图回答的助手模型”的关键一步。

论文的核心问题是:模型参数变大,并不等于模型更会听人话。
GPT-3 这类大语言模型的预训练目标是“预测下一个 token”,它学到的是互联网上文本的统计规律,但用户真正想要的是模型能够按照指令完成任务,并且尽量做到有帮助、真实、无害。

为了解决这个问题,作者提出了 InstructGPT。它不是重新从零训练一个更大的模型,而是在 GPT-3 的基础上,通过人类反馈进行微调。整体流程分为三步:

  1. 用人工示范数据做监督微调,也就是 SFT;
  2. 用人工排序数据训练奖励模型,也就是 Reward Model;
  3. 用 PPO 强化学习方法,让模型生成更符合人类偏好的回答。

论文最重要的结论是:1.3B 参数的 InstructGPT,在人工偏好评测中甚至优于 175B 参数的 GPT-3。
这说明在“是否符合用户意图”这件事上,模型对齐方法有时比单纯扩大模型规模更关键。


1. 这篇论文到底解决了什么问题?

在读这篇论文之前,我原本容易把“大模型能力强”和“大模型好用”混在一起理解。
但是论文一开始就指出了一个非常关键的问题:

大语言模型变大之后,确实可以完成更多任务,但它不一定真正按照用户意图做事。

GPT-3 的训练目标是预测互联网文本中的下一个 token。这个目标可以让模型学到大量语言知识和世界知识,但它和用户真正想要的目标并不完全一致。

用户希望模型做到:

  • 听懂并遵守指令;
  • 不胡编乱造;
  • 不输出有害、歧视、攻击性或危险内容;
  • 在不知道时不要装作知道;
  • 回答方式符合“助手”的使用场景。

论文把这些目标概括为三个词:

  1. Helpful:有帮助,能解决用户问题;
  2. Honest:诚实,不故意误导或编造;
  3. Harmless:无害,尽量避免造成现实风险。

所以这篇论文解决的核心问题不是“怎么让模型更大”,而是:

如何让已经很强的大语言模型,更符合人类用户的真实意图?


2. InstructGPT 的核心思想

InstructGPT 的核心思想可以用一句话概括:

不只让模型学习互联网文本,还要让模型学习“人类更喜欢什么样的回答”。

普通 GPT-3 主要是在做文本续写。比如用户输入一个问题,GPT-3 可能只是根据上下文继续生成看起来合理的文本,而不一定真的把它当成一个“需要回答的问题”。

InstructGPT 则希望模型学会一种新的行为模式:

  • 用户给出指令;
  • 模型理解任务;
  • 模型生成符合指令、质量更高、更安全的回答。

这就引出了论文的关键训练路线:RLHF,也就是 Reinforcement Learning from Human Feedback,人类反馈强化学习。


3. 整体训练流程:SFT → RM → PPO

论文中的方法可以分为三步。这个三步流程是理解 InstructGPT 最重要的部分。

3.1 第一步:SFT,让模型先学会“怎么回答”

SFT 的全称是 Supervised Fine-Tuning,也就是监督微调。

这一步中,研究人员先收集一些 prompt,然后让人工标注员写出理想回答。
这些“prompt + 人工回答”组成示范数据集,再用它来微调 GPT-3。

我的理解是:

SFT 相当于先给模型看标准答案,让它知道面对用户指令时,大概应该怎样回答。

例如:

用户:请总结下面这段话。
人工示范:这段话主要讲了……

模型通过这种方式,从“只会续写”变成“开始像助手一样回答”。

但是 SFT 有一个问题:人工示范数据数量有限,而且它只能告诉模型“一个可接受答案长什么样”,不能很好地区分多个答案之间哪个更好。
所以论文继续引入第二步:奖励模型。


3.2 第二步:RM,让模型学习“人类更喜欢哪个回答”

RM 的全称是 Reward Model,也就是奖励模型。

这一步不再让标注员直接写答案,而是给同一个 prompt 生成多个模型回答,让人工标注员对这些回答进行排序。

比如同一个问题有 A、B、C、D 四个回答,标注员需要判断:

B 最好,A 第二,D 第三,C 最差

然后用这些排序结果训练一个奖励模型。
奖励模型的输入是:

prompt + response

输出是一个标量分数:

reward score

这个分数表示:这个回答有多符合人类偏好。

论文中使用的奖励模型损失,本质上是在鼓励:

人类更喜欢的回答,奖励分数应该高于人类不喜欢的回答。

可以简单理解成:

r(prompt, 好回答) > r(prompt, 差回答)

我的理解是,RM 其实就是在学习一个“人类偏好打分器”。
它不一定知道绝对真理,但它能根据已有人工排序,估计哪个回答更像人类想要的回答。


3.3 第三步:PPO,用强化学习继续优化模型

有了奖励模型之后,第三步就是用强化学习优化语言模型。论文使用的是 PPO,也就是 Proximal Policy Optimization。

这一步可以这样理解:

  1. 当前模型根据 prompt 生成回答;
  2. 奖励模型给这个回答打分;
  3. 如果回答分数高,就鼓励模型以后更倾向于生成类似回答;
  4. 如果回答分数低,就减少这种回答出现的概率。

这里的关键是:
奖励不是人工每次实时打分,而是由前一步训练好的 Reward Model 自动给出。

论文中还加入了 KL 惩罚,防止模型为了骗过奖励模型而偏离原来的语言模型太远。
这点很重要,因为如果只追求奖励模型分数,模型可能会出现“奖励黑客”现象,也就是生成一些表面上高分但实际不自然、不可靠的回答。

所以 PPO 阶段的目标不是让模型无限追求奖励,而是在以下两者之间做平衡:

  • 更符合人类偏好;
  • 不要偏离原始语言模型太远。

4. PPO-ptx:减少对通用能力的损伤

论文中还提到一个重要现象:
经过 RLHF 微调后,模型在某些传统 NLP 数据集上的表现可能下降。

这被称为 alignment tax,可以理解为“对齐税”:

模型变得更符合人类偏好,但可能损失一部分原本的通用任务能力。

为了解决这个问题,作者提出 PPO-ptx。
它在 PPO 训练时混入一部分预训练数据的语言建模目标,让模型在学习人类偏好的同时,不要忘掉原来预训练阶段获得的通用能力。

我的理解是:

PPO 负责把模型往“更听指令、更像助手”的方向推,ptx 负责把模型拉回通用语言能力附近,避免走偏。

这也是为什么论文默认把 InstructGPT 指 PPO-ptx 模型。


5. 数据集和人工反馈是怎么来的?

论文的数据主要来自两类:

  1. 标注员自己写的 prompts;
  2. OpenAI API Playground 中用户提交给早期 InstructGPT 模型的 prompts。

这些 prompt 覆盖了很多任务类型,包括:

  • 文本生成;
  • 开放问答;
  • 头脑风暴;
  • 聊天;
  • 改写;
  • 总结;
  • 分类;
  • 信息抽取等。

论文中提到,大部分数据是英文。作者也特意过滤了训练集中的个人身份信息,避免模型学习到敏感用户数据。

数据集大致包括:

  • SFT 数据:约 13k prompts;
  • RM 数据:约 33k prompts;
  • PPO 数据:约 31k prompts。

同时,论文聘请了大约 40 名标注员来完成示范、排序和评测工作。
这说明 InstructGPT 的核心并不是只靠算法,而是把“人类反馈”正式引入了训练闭环。


6. 实验结果:InstructGPT 到底提升了什么?

6.1 人类更喜欢 InstructGPT 的回答

论文最有冲击力的结果是:

1.3B 参数的 InstructGPT 输出,在人工评测中优于 175B 参数的 GPT-3 输出。

这说明:
在“是否听指令、是否像助手、是否符合用户意图”这类任务上,单纯增大模型参数不是唯一答案。
一个经过人类反馈对齐的小模型,可能比一个没有对齐的大模型更好用。

论文还提到,175B InstructGPT 相比 175B GPT-3,有 85% 左右的回答更受标注员偏好;相比经过 few-shot prompt 提示的 GPT-3,也有明显优势。


6.2 InstructGPT 更容易遵守指令

论文中的评测显示,InstructGPT 在以下方面明显优于 GPT-3:

  • 更能尝试完成正确任务;
  • 更能遵守指令中的显式约束;
  • 更适合作为用户助手;
  • 在封闭域任务中更少编造信息。

这里我觉得很关键。
因为真实使用大语言模型时,用户不是只看模型会不会写出流畅文本,而是看它是否真的按照要求完成任务。

比如用户说:

请用三句话总结这段内容。

普通 GPT-3 可能总结得不错,但不一定严格控制在三句话。
InstructGPT 则更倾向于把“用三句话”也当成任务的一部分。


6.3 真实性有所提升,但还不完美

论文在 TruthfulQA 数据集上测试模型真实性。结果显示,InstructGPT 比 GPT-3 更容易生成真实且有信息量的回答。

在封闭域任务中,比如摘要或基于给定文本的问答,InstructGPT 的幻觉率也低于 GPT-3。论文中给出的一个结果是:

InstructGPT 幻觉率约 21%
GPT-3 幻觉率约 41%

这说明 RLHF 对减少胡编乱造有帮助。

但这并不意味着 InstructGPT 完全不会幻觉。
它只是更倾向于生成符合人类偏好的、更可靠的回答,但不能保证每一句话都真实。


6.4 毒性有所下降,但偏见问题没有明显解决

论文还评估了 toxicity 和 bias。

结果大致是:

  • 如果提示模型要 respectful,InstructGPT 生成有毒内容的概率低于 GPT-3;
  • 但是在 bias 数据集上,InstructGPT 没有明显优于 GPT-3。

这说明 RLHF 可以改善一部分安全性问题,但不是万能的。
模型偏见来自预训练数据、社会语料分布、标注偏好等多种因素,仅靠一轮 RLHF 很难彻底解决。


7. 我对 RLHF 的理解

读完这篇论文后,我对 RLHF 的理解更清楚了。

以前我容易把 RLHF 理解成“用强化学习让模型变聪明”。
但现在我觉得这个理解不准确。

更准确的说法应该是:

RLHF 不是主要增加模型知识,而是改变模型输出行为,让模型更符合人类偏好。

也就是说,GPT-3 预训练阶段已经学到了大量知识。
InstructGPT 的重点不是重新学知识,而是学习:

  • 什么样的回答更像助手;
  • 什么样的回答更符合指令;
  • 什么样的表达更安全;
  • 什么情况下应该谨慎;
  • 什么情况下不应该胡编。

所以 RLHF 更像是给模型加了一层“行为校准”。


8. 这篇论文最值得记住的几个点

8.1 参数规模不是唯一决定因素

论文最直接的启发是:

大模型不等于好助手。

模型规模提升可以增强语言能力和知识容量,但如果训练目标不对齐,模型仍然可能不听指令、胡编、输出有害内容。

InstructGPT 的结果说明,对齐训练可以显著提升模型可用性。


8.2 SFT、RM、PPO 是一个递进关系

这三个阶段不是孤立的,而是逐步递进:

SFT:先让模型学会像人一样回答
RM:再让模型学会判断什么回答更好
PPO:最后让模型朝着高奖励回答优化

我的理解是:

  • SFT 解决“会不会答”;
  • RM 解决“什么答法更好”;
  • PPO 解决“如何让模型更常生成好回答”。

8.3 奖励模型是 RLHF 的关键

在 PPO 阶段,真正提供训练信号的是 Reward Model。
如果奖励模型学得不好,后面的强化学习就可能把模型带偏。

所以 RLHF 的质量很依赖:

  • 标注员选择;
  • 标注说明;
  • prompt 分布;
  • 排序数据质量;
  • 奖励模型是否泛化。

这也解释了为什么论文后面会讨论“到底是在对齐谁的偏好”。


8.4 对齐不是绝对的人类价值

论文中一个很重要但容易被忽略的点是:
InstructGPT 对齐的不是抽象的“全人类价值”,而是特定标注员、研究人员和 API 用户共同形成的一组偏好。

这意味着模型行为会受到以下因素影响:

  • 标注员群体是谁;
  • 标注指南怎么写;
  • 哪些用户的 prompt 被收集进来;
  • 研究人员如何处理边界情况。

所以“alignment”不是一个完全客观的东西。
它背后一定有数据来源和价值选择。


9. 论文局限性

虽然 InstructGPT 效果很好,但论文也明确指出它仍然有不少问题。

9.1 仍然会犯简单错误

InstructGPT 仍然可能:

  • 不完全遵守指令;
  • 编造事实;
  • 对简单问题过度谨慎;
  • 接受问题中的错误前提;
  • 在多重约束任务上表现不稳定。

比如如果用户的问题本身包含错误前提,模型有时会顺着错误前提继续回答,而不是指出问题不成立。


9.2 奖励模型可能被过度优化

PPO 训练依赖奖励模型。
但奖励模型只是人类偏好的近似,不是真正的完美评价器。
如果优化过头,模型可能学会“迎合奖励模型”,而不是产生真正高质量的回答。

这也是论文加入 KL 惩罚的重要原因。


9.3 人类反馈本身有偏差

标注员不是全体用户,也不代表所有文化背景和价值观。
即使标注员认真工作,他们之间也可能对什么是“好回答”存在分歧。

所以模型最终学到的是某个特定群体的偏好,而不是绝对正确的偏好。


9.4 安全性问题没有彻底解决

InstructGPT 在真实性和毒性方面有所提升,但在 bias 上没有明显改善。
这说明 RLHF 是一个有效方向,但不能单独解决大语言模型的所有安全问题。


10. 和前两次学习内容的联系

我前面读 Transformer 时,主要理解的是大语言模型的基础结构:
Transformer 通过 self-attention 建模 token 之间的关系,让语言模型具备强大的并行计算和长距离依赖建模能力。

在 MiniMind 实践中,我主要理解了一个小型 GPT 的训练链路:

预训练 → SFT → 推理测试

而这篇 InstructGPT 则进一步补上了“大模型如何变成助手”的关键一环:

预训练 GPT → SFT → RM → PPO / RLHF → 更符合人类指令的助手模型

也就是说:

  • Transformer 解决了模型结构问题;
  • GPT 预训练解决了语言建模问题;
  • SFT 解决了基础指令响应问题;
  • RLHF 解决了人类偏好对齐问题。

这几篇内容连起来看,大致就是现代大语言模型助手的发展路径。


11. 总结

如果只用一句话总结这篇论文,我会写成:

InstructGPT 的核心价值,是用人类反馈把 GPT-3 从“文本续写模型”进一步训练成“更会遵守指令的助手模型”。

这篇论文最重要的地方,不只是提出了一个具体模型,而是明确展示了一条大语言模型对齐路线:

预训练语言模型
→ 人工示范监督微调
→ 人工偏好训练奖励模型
→ PPO 强化学习优化
→ 更符合用户意图的语言助手

读完这篇论文后,我最大的理解是:
现代大语言模型的能力不仅来自模型规模和预训练数据,也来自后期对齐训练。
如果没有 SFT 和 RLHF,模型可能“知道很多”,但不一定“好用”;而 InstructGPT 证明了,人类反馈可以显著改变模型行为,让它更接近真实用户想要的助手。


参考资料

  • Ouyang et al., Training language models to follow instructions with human feedback, 2022.
  • OpenAI, InstructGPT / RLHF 相关研究。
Logo

AtomGit AI 社区提供模型库、数据集、Agent、Token等资源

更多推荐