Featured image of post InstructGPT:用 RLHF 教会大模型「听话」

InstructGPT:用 RLHF 教会大模型「听话」

模型越大,不一定越懂你。OpenAI 用人类反馈强化学习(RLHF)三步走,让 1.3B 的 InstructGPT 比 175B 的 GPT-3 更受用户青睐。本文拆解 SFT、奖励建模、PPO 的每个环节。

引言:模型变大 ≠ 更懂你

2020 年 GPT-3 以 175B 参数震惊世界,但用户很快发现一个尴尬的事实:这个怪兽经常「好心办坏事」。你让它写一段代码注释,它给你生成一篇技术博客;你问它事实性问题,它一本正经地编造;你让它拒绝不当请求,它被诱导几句就说出有害内容。

换句话说,GPT-3 没对齐(misaligned)——它的语言建模目标(预测下一个 token)和用户的使用意图之间存在鸿沟。

2022 年 3 月,OpenAI 发表了一篇后来改变了整个行业走向的论文:Training Language Models to Follow Instructions with Human Feedback。这篇论文提出了一种叫 RLHF(Reinforcement Learning from Human Feedback,人类反馈强化学习) 的方法,分三步把 GPT-3 改造成了能更好理解用户意图的 InstructGPT。而 ChatGPT 的诞生,正是沿着这条路线走下去的结果。

本文将拆解 InstructGPT 的三个训练阶段、关键超参、定量效果,以及它留下的「对齐税」问题。

Step 1:监督微调(SFT)—— 让模型先学「好答案」

RLHF 的第一步是最直观的:找人来写好答案,然后让模型照猫画虎

OpenAI 雇佣了标注员,针对从 API 收集的 prompt(用户提问)写出高质量的回答。这些 prompt 覆盖了生成、问答、写作、总结、代码等九大类任务。标注员写的回答不追求完美,但要「有用」——回答 prompt 所问、不编造事实、不给有害建议。

最终收集了约 13k 条标注员演示数据(train 12,725 + valid 1,653),再加上一小部分(约 1.4k)真实用户提交的 prompt 作为补充。

在这些数据上,用监督学习微调 GPT-3 的预训练权重。1.3B 和 6B 模型训练 16 个 epoch,更大 batch size(32),学习率 9.65e-6;175B 用 batch size 8 和学习率 5.03e-6。所有模型使用 residual dropout 0.2 和余弦衰减学习率。对每个模型规模,选择验证集上 RM 分数最高的 checkpoint。

图 1:InstructGPT 的 RLHF 三步流程——SFT 学习人类的示范回答,奖励模型学习人类的偏好排序,PPO 用奖励信号优化策略

这一步产出一个「会回答」但还不极致对齐的模型 π_SFT。

Step 2:奖励模型(Reward Model)—— 让模型学会分辨好坏

SFT 只能让模型「会写」,但无法教它「哪种写法更好」。第二步要做的就是训练一个打分器,让它学会预测人类更喜欢哪个回答。

具体做法:对一批 prompt,用 SFT 模型采样 K = 4~9 个不同回答(不同的 temperature),然后标注员对这些回答排序(从最好到最差)。每个 prompt 的排序产生 C(K, 2) 个比较对(两个回答中哪个更好)。

这里有一个精妙的设计:用排序而非打分。让两个标注员各自给同一个回答打 1-5 分,一致性很差——每个人对「3 分」的标准不同。但如果只让他们比较「A 还是 B」更好,一致性就高得多。这也是 RLHF 方法论的基石思想之一。

奖励模型用这些对比数据训练。约 33k 个 prompt(训练集),每个产生多次采样。关键发现:只用 6B 参数做奖励模型——尝试 175B 会导致训练极不稳定。训练 1 个 epoch,学习率 9e-6,batch size 64(每 batch 可含 2,304 个比较对)。

损失函数很直觉:给定两个回答 y_w(更好)和 y_l(更差),最大化打分差异:

$$L(θ) = -log(σ(r_θ(x, y_w) - r_θ(x, y_l)))$$

这里的 σ 是 sigmoid。两个回答间奖励差越大,模型越有信心区分。最终奖励会加归一化 bias,使来自标注员的示范回答得分为 0——这样就为 PPO 阶段建立了参照系。

Step 3:PPO 强化学习 —— 用奖励信号驱动对齐

有了奖励模型,第三步就是用它来优化语言模型策略。

PPO(Proximal Policy Optimization)是一种可以稳定训练的策略优化算法。OpenAI 的 RLHF 实现直接使用了 Schulman et al. (2017) 的原始 PPO 算法。

每个 episode,从 prompt 集合中采样一个 prompt,用当前策略生成回答 y,然后:

  • 正向信号:奖励模型打分 r_θ(x, y),越高越好
  • 负向约束:KL 散度惩罚,如果策略偏离 SFT 模型太远

后者至关重要。没有 KL 惩罚,模型会迅速学会「取悦奖励模型」——它可能生成一些语法不通但你发现奖励模型给高分的话术(这叫 reward hacking)。KL 散度把策略锚定在 SFT 的分布附近,防止这种退化。

目标函数:

$$max_φ E[r_θ(x, y)] - β · KL(π_φ ‖ π_{SFT})$$

其中 KL 惩罚系数 β = 0.02。OpenAI 还实验了 PPO-ptx 变体——在 RL 目标中加入预训练梯度(系数 γ = 27.8),混合 10% 预训练数据。PPO-ptx 版本的「对齐税」更低:在保持对齐效果的同时,对 NLP benchmark 性能的负面影响更小。

关键超参:batch size 512、minibatch 64(只有 1 个 inner epoch)、PPO clip ratio 0.2、常数学习率、采样温度 1(无衰减)、权重 EMA 衰减率 0.992。value function 从奖励模型初始化,6B 参数。总计 256k 个 episode(约 31k 去重 prompt)。

惊人的效果对比

InstructGPT 最震撼的结果是在人工评估中:

对比 胜率
175B InstructGPT vs 175B GPT-3 85% ± 3% 用户更喜欢 InstructGPT
175B InstructGPT vs few-shot 175B GPT-3 71% ± 4%
1.3B InstructGPT vs 175B GPT-3 胜出(参数不到对方 1%)

最后一条特别说明问题:用户宁愿用一个 1.3B 的对齐模型,也不用 175B 的未对齐模型。对齐的价值大于规模。

在具体维度上:

  • 指令遵循:InstructGPT 更擅长完成用户的请求(「不忽略约束」「不说废话」)
  • 真实性:TruthfulQA 上 InstructGPT 产生真实答案的概率比 GPT-3 高约 1 倍;封闭域幻觉率从 GPT-3 的 41% 降至 21%
  • 有害性:当提示「保持礼貌」时,InstructGPT 的有害输出比 GPT-3 少约 25%
  • 偏见:Winogender 和 CrowS-Pairs 数据集上没有明显改善

但要注意,这些有害性改善是 modest 的——论文作者自己也坦诚地说,RLHF 不是安全的银弹。

对齐税:模型变得更聪明,但也在某些地方变慢了

RLHF 引入了「对齐税(alignment tax)」:对齐后模型在部分标准 NLP benchmark 上出现性能退化(如 DROP 问答集和翻译任务)。PPO-ptx 变体大大缓解了这个问题。

更重要的发现是:InstructGPT 能泛化到未见过的标注员偏好。训练数据之外的标注员同样更喜欢 InstructGPT 的输出,说明模型学到的不是迎合特定标注员,而是学到了更普遍的「有用性」标准。这种泛化也延伸到代码任务和非英文指令上。

图 2:InstructGPT vs GPT-3 关键指标对比——人类偏好胜率 85%、幻觉率从 41% 降至 21%、有害输出减少 25%

护栏视角

作为一名关注 AI 安全的工作者,我认为 InstructGPT 的技术路线在安全方面有两个重要启示:

正面

  • 人类的排序比打分更可靠。排序方案让标注员之间的一致性大幅提升,减少了训练数据中的噪声和歧义
  • KL 惩罚是一道天然的开发护栏。它让模型不会为了取悦奖励模型而放弃语言能力,这在架构层面防止了一种 reward hacking
  • PPO-ptx 证明了对齐和安全可以和解。混入预训练目标后,能力退化(alignment tax)大幅降低,说明安全优化不必然以牺牲性能为代价

挑战

  • 有害性改善有限。论文坦诚指出有害内容只减少了约 25%,在恶意 prompt 下模型仍可能越狱
  • 奖励模型自身的安全盲区。奖励模型只在「两段回答哪个更好」的数据上训练,它无法评估一段回答中的微妙歧视或间接有害性
  • 标注员偏见进入对齐目标。如果标注员群体本身存在文化偏见,排序数据就无法具有普适性。论文作者也承认这是他们面临的主要限制之一

我的判断:InstructGPT 定义了一个技术路线图,但它把一个关键问题留给了后来者——谁来定义「好」? RLHF 把这个问题外包给了标注员,而标注员的偏好并不是普遍价值的代理。这解释了为什么后来的 Anthropic Constitutional AI 和 DeepSeek-R1 的规则奖励都在试图回答同一个问题:对齐目标不应该是纯粹的统计偏好聚合。

总结

InstructGPT 的贡献不在于算法创新(PPO 和 RLHF 都出自更早的工作),而在于它第一次证明了:对齐比规模更重要

维度 核心发现
方法论 SFT → Reward Model → PPO 三步流水线,每步数据规模和超参都经过精心设计
关键取舍 KL 惩罚 β=0.02 平衡对齐与能力;PPO-ptx 降低对齐税
效果 1.3B 对齐模型优于 175B 原始模型,幻觉率减半
局限 有害性改善有限,偏见无显著改善,对齐受限于标注员偏好

回头看,这篇论文是 ChatGPT 和整个对齐 / 后训练时代的技术基石。后来的 RLHF 变体——InstructGPT → ChatGPT → Constitutional AI → DPO → R1 的 GRPO——都是在它开辟的框架内扩展。但它的核心洞察至今未变:把模型做小不难,把模型做对才是最值得做的事。

参考资料

  1. 原论文:Ouyang, L., Wu, J., Jiang, X. et al. Training Language Models to Follow Instructions with Human Feedback. NeurIPS 2022. https://arxiv.org/abs/2203.02155
  2. OpenAI 官方博客Aligning Language Models to Follow Instructions. https://openai.com/index/instruction-following/
  3. 技术解读:ArthurChiao. InstructGPT 论文精读. http://arthurchiao.art/blog/instructgpt-paper-zh/
  4. PPO 算法原论文:Schulman, J. et al. Proximal Policy Optimization Algorithms. 2017. https://arxiv.org/abs/1707.06347
  5. RLHF 基础:Christiano, P. et al. Deep Reinforcement Learning from Human Preferences. NeurIPS 2017. https://arxiv.org/abs/1706.03741
  6. 对齐框架:Askell, A. et al. A General Language Assistant as a Laboratory for Alignment. 2021. https://arxiv.org/abs/2112.00861