InstructGPT 论文阅读笔记:从 GPT-3 到 RLHF 指令对齐
这篇论文介绍了InstructGPT,这是从GPT-3到ChatGPT演进的关键一步。核心问题是:大语言模型参数增加并不自动意味着更符合人类意图。作者提出通过人类反馈强化学习(RLHF)来优化模型,包括三个步骤:监督微调(SFT)让模型学会基本回答模式;训练奖励模型(RM)学习人类偏好;使用PPO强化学习进一步优化。实验显示,1.3B参数的InstructGPT在人类评估中优于175B的GPT-3
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 的基础上,通过人类反馈进行微调。整体流程分为三步:
- 用人工示范数据做监督微调,也就是 SFT;
- 用人工排序数据训练奖励模型,也就是 Reward Model;
- 用 PPO 强化学习方法,让模型生成更符合人类偏好的回答。
论文最重要的结论是:1.3B 参数的 InstructGPT,在人工偏好评测中甚至优于 175B 参数的 GPT-3。
这说明在“是否符合用户意图”这件事上,模型对齐方法有时比单纯扩大模型规模更关键。
1. 这篇论文到底解决了什么问题?
在读这篇论文之前,我原本容易把“大模型能力强”和“大模型好用”混在一起理解。
但是论文一开始就指出了一个非常关键的问题:
大语言模型变大之后,确实可以完成更多任务,但它不一定真正按照用户意图做事。
GPT-3 的训练目标是预测互联网文本中的下一个 token。这个目标可以让模型学到大量语言知识和世界知识,但它和用户真正想要的目标并不完全一致。
用户希望模型做到:
- 听懂并遵守指令;
- 不胡编乱造;
- 不输出有害、歧视、攻击性或危险内容;
- 在不知道时不要装作知道;
- 回答方式符合“助手”的使用场景。
论文把这些目标概括为三个词:
- Helpful:有帮助,能解决用户问题;
- Honest:诚实,不故意误导或编造;
- 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。
这一步可以这样理解:
- 当前模型根据 prompt 生成回答;
- 奖励模型给这个回答打分;
- 如果回答分数高,就鼓励模型以后更倾向于生成类似回答;
- 如果回答分数低,就减少这种回答出现的概率。
这里的关键是:
奖励不是人工每次实时打分,而是由前一步训练好的 Reward Model 自动给出。
论文中还加入了 KL 惩罚,防止模型为了骗过奖励模型而偏离原来的语言模型太远。
这点很重要,因为如果只追求奖励模型分数,模型可能会出现“奖励黑客”现象,也就是生成一些表面上高分但实际不自然、不可靠的回答。
所以 PPO 阶段的目标不是让模型无限追求奖励,而是在以下两者之间做平衡:
- 更符合人类偏好;
- 不要偏离原始语言模型太远。
4. PPO-ptx:减少对通用能力的损伤
论文中还提到一个重要现象:
经过 RLHF 微调后,模型在某些传统 NLP 数据集上的表现可能下降。
这被称为 alignment tax,可以理解为“对齐税”:
模型变得更符合人类偏好,但可能损失一部分原本的通用任务能力。
为了解决这个问题,作者提出 PPO-ptx。
它在 PPO 训练时混入一部分预训练数据的语言建模目标,让模型在学习人类偏好的同时,不要忘掉原来预训练阶段获得的通用能力。
我的理解是:
PPO 负责把模型往“更听指令、更像助手”的方向推,ptx 负责把模型拉回通用语言能力附近,避免走偏。
这也是为什么论文默认把 InstructGPT 指 PPO-ptx 模型。
5. 数据集和人工反馈是怎么来的?
论文的数据主要来自两类:
- 标注员自己写的 prompts;
- 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 相关研究。
更多推荐




所有评论(0)