Training language models to follow instructions with human feedback
RLHF&LLM的开山之作?
启发DeepSeek R1 的算法(GRPO),但其进行了针对推理任务的重大简化;其「仅结果奖励」的训练范式成功验证了模型可以通过纯强化学习自主涌现推理能力。
5.6提到的泛化性其实是强化学习带来的增益,这也是强化学习现在如此流行的原因。Qwen3.7刷榜主要也是靠RL算法的优化与应用。
| 作者团队 | Long Ouyang, Jeff Wu, Xu Jiang, Diogo Almeida 等(OpenAI) |
|---|---|
| 发表会议 | NeurIPS 2022 |
| arXiv 链接 | arXiv:2203.02155 [cs.CL] |
| 模型名称 | InstructGPT |
| 基座模型 | GPT-3(1.3B / 6B / 175B 三种规模) |
| 核心方法 | RLHF(Reinforcement Learning from Human Feedback) |
| 数据规模 | SFT 约 13K 条;RM 约 33K 条排序对;PPO 约 31K 条 prompt |
总览
本文提出 InstructGPT ,通过**人类反馈强化学习(RLHF)**的三阶段 pipeline(SFT → RM → PPO),将大语言模型的训练目标从"预测下一个词"调整为"遵循人类指令",使得 1.3B 参数的 InstructGPT 在人类偏好评测上战胜了 175B 的原始 GPT-3,同时提升了真实性和安全性。
目录
1. 研究背景与动机
1.1 问题陈述
大型语言模型(LLM)通过在巨量互联网语料上进行预训练,展现出了强大的文本生成和少样本学习能力。然而,这些模型存在根本性的对齐问题:
- 训练目标:最小化下一词预测的损失函数
- 用户期望:有帮助地、诚实地、无害地遵循用户指令
这种错位导致大模型表现出多种不良行为:生成虚假信息、生成有害内容、不遵循指令、误导性回答。
1.2 核心洞察
"Making language models bigger does not inherently make them better at following a user's intent."
--- 单纯扩大模型规模并不能让模型更好地遵循用户意图。
OpenAI 团队的核心假设是:与其继续扩大模型规模,不如通过人类反馈来微调模型,使其行为与真实用户意图对齐。 这一思路的灵感来源于此前在摘要任务上成功的 RLHF 工作(Stiennon et al., 2020),本文将其扩展到了更通用的指令遵循场景。
关键假设:通过收集人类对模型输出的偏好反馈,训练一个奖励模型来预测人类偏好,再用强化学习优化语言模型以最大化该奖励,可以系统性地改善模型的对齐程度。
2. 方法论:RLHF 三阶段 Pipeline
InstructGPT 的训练流程分为三个核心阶段,整体 pipeline 如下:
预训练 GPT-3 → SFT(监督微调) → RM(奖励模型) → PPO(强化学习) → InstructGPT
2.1 阶段一:监督微调(Supervised Fine-Tuning, SFT)
目标:使用人类编写的高质量指令-回答对,对 GPT-3 进行监督学习,使模型初步具备"听懂指令"的能力。
数据收集:
- 数据来源:(a) 标注者手写的 prompts;(b) OpenAI API 用户提交的 prompts
- 标注任务:40 名标注员根据 prompt 编写理想的回答(demonstrations)
- 数据规模:约 13,000 条 prompt-demonstration 对
训练细节:
- 基于预训练的 GPT-3(1.3B / 6B / 175B)进行微调
- 训练 epochs:16(后续发现过拟合,但即便如此仍优于 baseline)
- 优化目标:最大化 demonstration 的条件对数似然
公式(SFT 损失):
L SFT = − E ( x , y ) ∼ D [ log P π S F T ( y ∣ x ) ] (1) \mathcal{L}{\text{SFT}} = -\mathbb{E}{(x,y) \sim \mathcal{D}} \left[ \log P_{\pi^{SFT}}(y \mid x) \right] \tag{1} LSFT=−E(x,y)∼D[logPπSFT(y∣x)](1)
其中 x x x 为 prompt, y y y 为人类编写的 demonstration, π S F T \pi^{SFT} πSFT 为监督微调后的策略模型。
2.2 阶段二:奖励模型训练(Reward Model, RM)
目标:训练一个奖励模型来预测人类对模型输出的偏好,替代昂贵的人工标注,为后续 RL 提供可自动计算的奖励信号。
数据收集:
- 对同一 prompt,使用 SFT 模型生成多个输出(通常为 4-9 个)
- 标注员将这些输出按质量从最好到最差排序
- 数据规模:约 33,000 条 排序对
- 评估维度:有用性、真实性、无害性
奖励模型架构:
- 将 SFT 模型顶层的 softmax 替换为标量输出头 ,输出一个奖励值 r ϕ ( x , y ) r_\phi(x, y) rϕ(x,y)
- 采用 6B 参数的 GPT-3 架构(发现 175B 的 RM 训练不稳定)
训练目标(Bradley-Terry 模型) :对于一对输出 y w y_w yw(优胜)和 y l y_l yl(落败),最小化交叉熵损失:
L R ( r ϕ , D ) = − E ( x , y w , y l ) ∼ D [ log σ ( r ϕ ( x , y w ) − r ϕ ( x , y l ) ) ] (2) \mathcal{L}R(r\phi, \mathcal{D}) = -\mathbb{E}{(x, y_w, y_l) \sim \mathcal{D}} \left[ \log \sigma\left(r\phi(x, y_w) - r_\phi(x, y_l)\right) \right] \tag{2} LR(rϕ,D)=−E(x,yw,yl)∼D[logσ(rϕ(x,yw)−rϕ(x,yl))](2)
其中 σ \sigma σ 为 sigmoid 函数。该损失函数鼓励奖励模型给人类偏好的输出更高的分数。
2.3 阶段三:RL 微调(Proximal Policy Optimization, PPO)
目标:以奖励模型的输出作为奖励信号,使用 PPO 强化学习算法进一步优化 SFT 模型,使其输出更贴近人类偏好。
RL 环境定义:
- 状态(State):当前 prompt 及已生成的前缀
- 动作(Action):生成下一个 token
- 策略(Policy) :语言模型 π θ ( y ∣ x ) \pi_\theta(y \mid x) πθ(y∣x)
- 奖励(Reward):由奖励模型打分,并加入 KL 散度惩罚
奖励函数构成:
r ( x , y ) = r ϕ ( x , y ) − β ⋅ KL [ π θ R L ( y ∣ x ) ∥ π S F T ( y ∣ x ) ] (3) r(x, y) = r_\phi(x, y) - \beta \cdot \text{KL}\left[\pi_\theta^{RL}(y \mid x) \,\|\, \pi^{SFT}(y \mid x)\right] \tag{3} r(x,y)=rϕ(x,y)−β⋅KL[πθRL(y∣x)∥πSFT(y∣x)](3)
其中:
- r ϕ ( x , y ) r_\phi(x, y) rϕ(x,y):奖励模型的打分(偏好奖励)
- β \beta β:KL 惩罚系数,控制策略偏离 SFT 模型的程度
- KL 项防止模型过度优化(over-optimization)导致输出偏离自然语言分布
PPO 优化目标:
max π θ E x ∼ D , y ∼ π θ ( y ∣ x ) [ r ( x , y ) ] (4) \max_{\pi_\theta} \; \mathbb{E}{x \sim \mathcal{D}, \, y \sim \pi\theta(y \mid x)} \left[ r(x, y) \right] \tag{4} πθmaxEx∼D,y∼πθ(y∣x)[r(x,y)](4)
PPO 是一种策略梯度方法,通过裁剪(clip)机制限制每次策略更新的幅度,保证训练稳定性。价值函数(value function)从 RM 初始化。
2.4 PPO-ptx:缓解对齐税(Alignment Tax)
研究者发现,纯 PPO 训练会导致模型在公开 NLP 数据集上的性能下降,这种现象被称为**"对齐税"(Alignment Tax)**------为了获得更好的对齐表现,牺牲了模型的通用能力。
PPO-ptx 的解决方案:在 PPO 训练阶段,混合预训练数据(pretraining data)并加入预训练任务的负对数似然(NLL)损失,公式如下:
L PPO-ptx = L PPO − γ ⋅ E x ∼ D pretrain [ log P π θ ( x ) ] (5) \mathcal{L}{\text{PPO-ptx}} = \mathcal{L}{\text{PPO}} - \gamma \cdot \mathbb{E}{x \sim \mathcal{D}{\text{pretrain}}} \left[ \log P_{\pi_\theta}(x) \right] \tag{5} LPPO-ptx=LPPO−γ⋅Ex∼Dpretrain[logPπθ(x)](5)
其中 γ \gamma γ 控制预训练损失的权重。这样既保留了模型从 RLHF 中学到的对齐行为,又避免遗忘预训练阶段学到的通用语言能力。
三种训练方法对比:
| 方法 | 训练数据 | 优化目标 | 特点 |
|---|---|---|---|
| SFT | 人类 demonstrations | 最大似然 | 基础指令跟随能力 |
| PPO | 新 prompts + RM 奖励 | RL 最大化奖励 | 对齐优化,但有对齐税 |
| PPO-ptx | 上述 + 预训练数据 | RL + NLL 混合 | 缓解对齐税(本文推荐) |
3. 数据集构建
InstructGPT 的数据集构建是整个 pipeline 的关键环节,论文对此进行了详细描述。
3.1 Prompt 数据来源
| 来源 | 说明 | 占比 |
|---|---|---|
| 标注者手写 (Labeler-written) | 标注员根据场景自行设计的指令,涵盖多种任务类型 | ~20% |
| OpenAI API (Instruct 用户) | 使用 OpenAI API 的用户提交的 prompts,经隐私处理后使用 | ~40% |
| OpenAI API (GPT-3 用户) | 原始 GPT-3 API 用户的 prompts,用于对比分析 | ~40% |
3.2 数据集规模与划分
| 数据集 | 训练阶段 | 规模 | 内容 |
|---|---|---|---|
| SFT 训练集 | 阶段一 SFT | ~11,700 条 | prompt + demonstration |
| SFT 验证集 | 阶段一 SFT | ~1,300 条 | 用于超参选择和 early stopping |
| RM 训练集 | 阶段二 RM | ~33,000 对 | prompt + 输出排序对 |
| RM 验证集 | 阶段二 RM | ~3,000 对 | 用于 RM 训练和选择 |
| PPO 训练集 | 阶段三 PPO | ~31,000 条 | 新 prompt(无标注输出) |
4. 实验结果与分析
4.1 API 分布上的评估
论文的核心评估方式是人类偏好评测:让标注员盲测对比两个模型的输出,选择更优者。
核心发现:1.3B 的 InstructGPT 在人类偏好评估中优于 175B 的 GPT-3,尽管参数量相差超过 100 倍。
人类偏好胜率(相对 GPT-3 few-shot):
| 模型 | 参数量 | 相对 GPT-3 胜率 |
|---|---|---|
| GPT-3 | 175B | 50% (baseline) |
| GPT-3 prompt-selected | 175B | ~55% |
| SFT | 1.3B / 6B / 175B | ~60-65% |
| PPO | 1.3B / 6B / 175B | ~65-70% |
| PPO-ptx | 1.3B / 6B / 175B | ~70-85% |
其中 175B 的 PPO-ptx 模型在 85% 的情况下优于同规模 GPT-3,在 71% 的情况下优于 few-shot GPT-3。
4.2 公开 NLP 数据集评估
论文在多个公开 NLP 基准上评估了模型的通用能力,以验证"对齐税"的程度:
| 数据集 | 任务类型 | PPO-ptx 相对 GPT-3 |
|---|---|---|
| SQuADv2 | 阅读理解 | 轻微下降(~1-2%) |
| DROP | 数值推理 | 轻微下降 |
| HellaSwag | 常识推理 | 基本持平 |
| WinoGrande | 代词消解 | 基本持平 |
| PIQA | 物理常识 | 基本持平 |
| LAMBADA | 语言建模 | 轻微下降 |
结果显示 PPO-ptx 方法有效缓解了"对齐税",在大多数任务上性能退化很小。相比之下,纯 PPO 在某些任务上退化更明显。
4.3 真实性与毒性评估
| 评估维度 | 数据集/方法 | InstructGPT 相对 GPT-3 |
|---|---|---|
| 真实性 | TruthfulQA | 显著提升(准确率从 ~30% 提升至 ~45%) |
| 幻觉率 | API 分布人工评估 | 从 41% 降至 21% |
| 毒性生成 | RealToxicityPrompts | 毒性输出减少约 25% |
| 偏见 | CrowS-Pairs, Winogender | 改善有限,无显著差异 |
值得注意的是,偏见问题改善有限,说明仅靠 RLHF 难以完全消除模型中的社会偏见。
5. 关键发现与洞察
5.1 规模不是一切,对齐更重要
1.3B 参数的 InstructGPT 在人类评估中优于 175B 的 GPT-3,证明了通过人类反馈进行微调比单纯扩大模型规模更能提升用户体验。这一发现对 LLM 发展方向具有深远影响。
5.2 三阶段 Pipeline 的有效性
SFT → RM → PPO 的三阶段 pipeline 被证明是系统性提升模型对齐程度的有效框架。这一流程成为后续 ChatGPT、Claude、Gemini 等几乎所有现代对话 AI 系统的标准训练范式。
5.3 PPO-ptx 缓解对齐税
在 PPO 训练中混合预训练数据和 NLL 损失,可以在不损害人类偏好评分的前提下,显著减少模型在公开 NLP 任务上的性能退化。
5.4 泛化能力验证
让未参与训练数据标注的标注员评测模型,其评分偏好与原始标注员一致,说明 InstructGPT 的改进具有跨人群的泛化能力,而非仅仅迎合特定标注群体。
5.5 公开 NLP 数据集与实际使用场景存在差距
InstructGPT 在 API prompt 分布上的表现优于基于 FLAN 和 T0 数据集微调的模型,说明现有的公开 NLP 数据集并不能很好地反映模型在实际使用中的场景需求。
5.6 指令遵循的泛化性
对于微调数据集中未出现过的指令类型,InstructGPT 仍表现出较好的遵循能力,而 GPT-3 需要更精心设计的 prompt 才能达到类似效果。
6. 局限性与开放问题
论文坦诚地讨论了多项局限性,体现了研究团队的科学严谨态度:
6.1 标注者偏差(Labeler Bias)
- 标注者的偏好并不能完全代表全人类用户的偏好
- 标注者群体存在文化和价值观上的同质性
- 模型实际上对齐的是"标注者认为用户想要的",而非用户的真实意图
6.2 奖励黑客(Reward Hacking)
- 模型可能找到"欺骗"奖励模型的方式,即生成在奖励模型上得分高但人类并不真正满意的内容
- KL 散度惩罚只是缓解手段,无法从根本上解决
- 奖励模型本身可能存在盲点
6.3 简单错误依然存在
- 模型仍会犯一些简单的、人类不会犯的错误
- 有时会无法遵循明确的指令
- 对某些简单问题的过度回避(over-refusal)
6.4 偏见改善有限
- 在 CrowS-Pairs 和 Winogender 等偏见评测上,InstructGPT 与 GPT-3 无显著差异
- 说明 RLHF 主要优化的是显式行为,难以触及深层的、隐性的社会偏见
6.5 对齐目标本身的困难
- "Helpful, Honest, Harmless" 三大目标之间可能存在冲突
- 不同文化、不同场景下对"好回答"的定义不同
- 将人类价值观编码为可优化的目标函数本身是一个深刻的开放问题
7. 影响与意义
7.1 学术与技术影响
| 层面 | 具体影响 |
|---|---|
| 方法范式 | 确立了 RLHF 作为大语言模型对齐的标准方法,SFT→RM→PPO 的三阶段 pipeline 成为业界标配 |
| 后续模型 | 直接催生了 ChatGPT(2022.11)、GPT-4(2023.3),并为 Claude、Gemini 等提供了方法论基础 |
| 研究方向 | 激发了大量 RLHF 变体研究,如 DPO(Direct Preference Optimization)、KTO、RLAIF 等简化方案 |
| AI 安全 | 推动"AI 对齐"从抽象概念转化为可工程化的训练流程,为 AI 安全研究提供了实践基础 |
| 产业应用 | 证明了小规模对齐模型可以胜过大规模基础模型,降低了部署对齐 AI 的算力门槛 |
7.2 对 AI 发展的启示
从"更大"到"更对齐"的范式转变:InstructGPT 证明了单纯的规模扩张并非提升模型实用性的唯一路径。通过人类反馈进行对齐微调,可以用更小的计算成本获得更好的用户体验。这一洞见深刻影响了后续 LLM 的发展策略------预训练后继续投入大量资源进行对齐优化(post-training)。
7.3 更广泛的思考
本文标题中的"follow instructions with human feedback"精确概括了其核心贡献:它不仅是一篇技术论文,更是将"对齐"理念工程化的里程碑。它所引入的问题------如何让 AI 系统真正理解和遵循人类意图------至今仍是 AI 领域最重要、最具挑战性的研究方向之一。
8. 核心公式汇总
| 公式 | 名称 | 说明 |
|---|---|---|
| L SFT = − E [ log P ( y ∣ x ) ] \mathcal{L}_{\text{SFT}} = -\mathbb{E}[\log P(y \mid x)] LSFT=−E[logP(y∣x)] | SFT 损失 | 最大化 demonstration 的条件对数似然 |
| L R = − E [ log σ ( r ϕ ( y w ) − r ϕ ( y l ) ) ] \mathcal{L}R = -\mathbb{E}[\log \sigma(r\phi(y_w) - r_\phi(y_l))] LR=−E[logσ(rϕ(yw)−rϕ(yl))] | RM 损失 | Bradley-Terry 偏好模型,鼓励给优选输出更高分 |
| r ( x , y ) = r ϕ ( x , y ) − β ⋅ KL [ π θ ∣ π S F T ] r(x,y) = r_\phi(x,y) - \beta \cdot \text{KL}[\pi_\theta | \pi^{SFT}] r(x,y)=rϕ(x,y)−β⋅KL[πθ∣πSFT] | RL 奖励函数 | 偏好奖励 + KL 散度惩罚项 |
| max π θ E [ r ( x , y ) ] \max_{\pi_\theta} \mathbb{E}[r(x,y)] maxπθE[r(x,y)] | PPO 目标 | 使用 PPO 算法最大化期望奖励 |
| L PPO-ptx = L PPO − γ ⋅ E [ log P ( x ) ] \mathcal{L}{\text{PPO-ptx}} = \mathcal{L}{\text{PPO}} - \gamma \cdot \mathbb{E}[\log P(x)] LPPO-ptx=LPPO−γ⋅E[logP(x)] | PPO-ptx 损失 | 混合预训练 NLL 损失以缓解对齐税 |