资料摘要:InstructGPT

OpenAI 提出 RLHF(Reinforcement Learning from Human Feedback)方法的开创性论文,证明了用人类反馈微调可以让 1.3B 模型在指令遵循上超越 175B 的 GPT-3。 InstructGPT - Training language models to follow instructions with human feedback

核心要点

  • 问题:更大的语言模型并不会天然更好地遵循用户意图,反而可能产生不真实、有害或无用的输出
  • 方法:分三步 —— SFT(监督微调)+ RM(奖励模型训练)+ PPO(强化学习优化)
  • 结果:1.3B 的 InstructGPT 在人类评估中优于 175B 的 GPT-3,真实性提升、有害输出减少、公开 NLP 基准性能几乎无损
  • 影响:这篇论文是 ChatGPT 和后续所有 RLHF 对齐工作的理论基石

详细笔记

背景与动机

语言模型通常通过预测下一个 token 训练,目标函数与”遵循用户意图”并不一致。更大的模型可能更擅长生成流畅文本,但不一定更有用、更真实、更无害。

三步方法

Step 1 — Supervised Fine-Tuning (SFT)

收集标注员书写的 prompt 和对应的高质量回答,对 GPT-3 进行监督微调。

  • 训练 16 个 epoch,使用余弦学习率衰减,残差 dropout = 0.2
  • 第 1 个 epoch 后验证集 loss 就过拟合了,但继续训练反而提升 RM 得分和人类偏好评分
  • 最终模型选择基于验证集上的 RM 得分

SFT / RLHF 初始化模型训练细节(Appendix C.1, C.3):

超参数1.3B6B175B
学习率5e-61.04e-52.45e-6
Batch size32328
预训练 mix 比例10%10%10%
Epochs(RLHF 初始化)222
  • 学习率通过 log-linear sweep 选取(1.3B/6B 比 5 个值,175B 比 3 个值),选演示集和预训练集上 loss 都低的
  • RLHF 初始化使用 2 epoch SFT + 10% pretraining mix(实验表明这对 PPO 有帮助)

Step 2 — Reward Model (RM) Training

对同一个 prompt 生成多个回答,让标注员排序,训练奖励模型预测人类偏好(Appendix C.2)。

  • 从 SFT 模型移除最后的 unembedding 层,改为输出标量奖励
  • 只使用 6B RM(175B RM 训练不稳定,不适合作为 RL 中的 value function;6B RM 在各种 LR 下都稳定)
  • LR = 9e-6,cosine 衰减到初始值 10%,batch size = 64(prompt 数),仅训练 1 个 epoch
  • 每个 prompt 生成 K=4 到 K=9 个回答,产生 C(K,2) 个比较对。每个 batch 最多 64 × C(K,2) ≤ 2,304 个比较对
  • 比较对按 prompt 分组为单个 batch element(若随机打散则单 epoch 即过拟合)
  • 交叉熵损失:loss(θ) = -1/C(K,2) · E[log σ(rθ(x, y_w) - rθ(x, y_l))]
  • RM 实际从在 9 个公开 NLP 数据集(ARC, BoolQ, CoQA, DROP, MultiNLI, OpenBookQA, QuAC, RACE, Winogrande)上微调过的 6B GPT-3 初始化(主要是历史原因),从 GPT-3 或 SFT 初始化结果类似
  • LR 不敏感:±50% 变化结果相近;但对 epoch 数敏感,多 epoch 迅速过拟合
  • 训练后将标注员演示数据均值奖励归一化为 0(因为 RM loss 对奖励平移不变)

Step 3 — PPO Reinforcement Learning

用 RM 作为奖励信号,通过 PPO 算法进一步优化 SFT 模型。

  • 环境为 bandit 环境:随机给出 prompt,模型生成回答,RM 打分即结束
  • 添加 per-token KL 散度惩罚项(参考 SFT 模型),防止策略偏离太远、过拟合 RM
  • PPO-ptx 变体:在 PPO 更新中混入预训练数据(pretraining mix),减少公开 NLP 基准上的性能退化
  • 实验中 PPO-ptx 和纯 PPO 在人类偏好上差异不大,但 PPO-ptx 在公开基准上表现更好

PPO 超参数表(Appendix C.4):

超参数
KL 惩罚系数 β0.02
预训练混合系数 γ27.8(PPO-ptx),0(纯 PPO)
训练 episode 数256k(去重后 ~31k prompt)
Batch size512(随机分 8 个 minibatch,单 inner epoch)
Minibatch size64
PPO clip ratio0.2
采样温度(rollout)1
GAE discount γ0(无折扣)
权重 EMA 衰减率0.992
学习率 warmup前 10 iteration,从峰值 1/10 开始,constant LR
Value function LR9e-6(1.3B/6B 策略),5e-6(175B 策略)
价值函数6B RM 初始化(所有模型大小统一)
预训练数据比例 RL episode 数

目标函数(Equation 2):

objective(φ) = E(x,y)~D_πRL [rθ(x,y) − β·log(πRL/πSFT)] + γ·E_x~D_pretrain [log(πRL(x))]
  • 第一项:RM 奖励 + KL 惩罚
  • 第二项:预训练 log-likelihood(PPO-ptx 专属,纯 PPO 时 γ=0)
  • 梯度累积:每个 minibatch 先算 PPO 梯度,再算预训练梯度,两者累加

计算开销对比:

  • 175B SFT:4.9 petaflops/s-days
  • 175B PPO-ptx:60 petaflops/s-days
  • GPT-3 预训练:3,640 petaflops/s-days
  • 对齐总成本仅约预训练的 1.6%

数据集详情

三阶段数据量(Table 6):

阶段来源训练集验证集
SFT标注员书写11,2951,550
SFTAPI 用户1,430103
RM标注员书写6,6233,488
RMAPI 用户26,58414,399
PPOAPI 用户31,14416,185
  • SFT ~13k 总计,RM ~33k 总计,PPO ~31k 总计
  • RM 阶段每个 prompt 标注员对 K=4~9 个回答排序,实际比较对数量是 prompt 数的量级倍数
  • API 提示类别分布(RM 训练集,Table 1):Generation 45.6% / Open QA 12.4% / Brainstorming 11.2% / Chat 8.4% / Rewrite 6.6% / Summarization 4.2% / Classification 3.5% / Other 3.5% / Closed QA 2.6% / Extract 1.9%
  • 来源:OpenAI API Playground 用户提交给早期 InstructGPT 的 prompt(Playground 使用时会弹窗告知数据可能用于训练)
  • 标注员自写 prompt:3 类 —— plain(自由发挥)、few-shot(给示例)、user-based(模拟 API 申请中的用户需求)
  • 划分:按 user ID 划分 train/val/test,防止数据泄漏;基于长公共前缀去重;每用户 ≤200 条
  • 训练集过滤 PII;>96% 英语

标注员信息

  • 约 40 名承包商(Upwork + ScaleAI)
  • 筛选测试包含 4 项:敏感言论标注一致性、排序与研究员一致性、敏感 prompt 演示写作(1-7 Likert)、自我评估识别敏感内容的群体范围
  • 软门槛:敏感言论标注一致性和排序一致性 ≥75%,演示写作 ≥6/7
  • 训练期间优先 helpfulness(帮助性),最终评估时优先 truthfulness + harmlessness
  • 预留了一组未参与训练的独立标注员(同一供应商但未做筛选测试),用于泛化评估

标注员间一致性(Section 3.4):

  • 训练标注员互相一致性:72.6 ± 1.5%
  • 预留(held-out)标注员互相一致性:77.3 ± 1.3%
  • 对比:Stiennon et al. (2020) 研究员互相一致性 73 ± 4%
  • 预留标注员对 InstructGPT 的偏好率与训练标注员相同,表明模型未过拟合到特定标注员

RM 跨标注员泛化(5-fold 交叉验证,Appendix E.2):

  • 将标注员分 5 组,每组 3 个不同 seed 训练 6B RM
  • 组内准确率(预测训练标注员偏好):72.4 ± 0.4%
  • 组间准确率(预测未见过标注员偏好):69.6 ± 0.9%
  • 表明 RM 对未见过标注员有泛化能力,虽然有小幅下降

标注员人口统计(该群体显然不具广泛代表性):

  • 东南亚裔 52.6%,白人 31.6%,拉丁裔 15.8%,非裔 10.5%,东亚裔 5.3%
  • 18-34 岁 73.7%
  • 本科 52.6%,硕士 36.8%
  • 主要英语使用者

消融实验关键发现

预训练混合 vs KL 惩罚(Figure 33, 34, Appendix E.6):

  • 仅靠增大 KL 系数无法恢复性能退化:β 从 0.02 增大到 2.0(100 倍),SQuADv2 和 DROP 退化仍无法完全修复
  • 预训练混合(γ ≥ 20)可以完全恢复退化,且验证奖励下降很小
  • 结论:预训练数据分布对保持模型能力至关重要,仅约束策略偏离不够

KL 系数调优(Figure 36, Appendix E.7):

  • β = 0(无 KL)或 β = 2(KL 过大)都会导致性能差
  • 最优范围:0.01 ~ 0.02(默认 β = 0.02)

学习率扫描(Figure 38, Appendix E.9):

  • 1.3B/6B:log-linear 扫描 2.55e-6 到 2.55e-5
  • 无预训练混合时:LR > 8.05e-6 发散的模型分叉
  • 有预训练混合时:对 LR 变化明显不那么敏感
  • 175B:仅测试了 2.55e-6 和 3.74e-6,基于 Likert score 选择

Batch size / Minibatch size(Appendix E.11):

  • 测试 64/128/256/512/1024,512 最优(基于人类评估)
  • Minibatch:32 略优于 64,但最终选用 64(GPU 利用率更好)

预训练数据比例(Appendix E.11):

  • 比例 4:预训练 log-likelihood 持续上升(梯度估计质量差)
  • 比例 32:更好的 Likert score,但训练时间数倍增加
  • 比例 8:速度与质量的最佳平衡点(训练时间加倍)

训练时长(Figure 35, Appendix E.11):

  • 1.3B 模型训练 512k episode 不优于 256k,初始时超过 GPT-3 基线但后续退化略低于基线

PPO 初始化模型(Figure 37, Appendix E.8):

  • 测试 SFT 1 epoch / 2 epoch,搭配 0% / 10% / 50% pretraining mix
  • 10% pretraining mix 显著优于其他配置
  • PPO 性能对具体选择不敏感(除 10% mix 外)

关键实验结果

人类偏好(API prompt 分布)

  • 175B InstructGPT vs GPT-3:85 ± 3% 偏好 InstructGPT
  • 175B InstructGPT vs few-shot GPT-3:71 ± 4% 偏好 InstructGPT
  • 1.3B PPO-ptx 已显著优于 175B SFT 基线和 GPT-3 基线
  • 改进幅度:GPT-3 < GPT-3 (prompted) < SFT < PPO ≈ PPO-ptx

具体改进维度(vs GPT-3):

  • 更适合客服助手场景
  • 更好地遵循显式约束(如”用两段以内回答”)
  • 更少完全忽略指令
  • 封闭域任务中虚构事实(hallucination)更少

公开 NLP 基准

  • TruthfulQA:显著优于 GPT-3
  • RealToxicityPrompts:有害输出显著减少
  • MMLU、HellaSwag、SQuADv2、DROP、翻译、摘要:性能退化极小
  • PPO-ptx 变体在这些基准上优于纯 PPO

局限性

  1. 标注员偏差:约 40 人、主要是英语母语者、年龄和教育背景偏窄,不具广泛代表性
  2. 单次标注:为节省成本,大多数比较仅 1 人标注,无法衡量标注员间分歧
  3. 对齐矛盾:训练时优先 helpfulness,评估时优先 truthfulness+harmlessness,两者可能冲突
  4. 价值判断:对齐”人类偏好”本质上是将少数标注员的价值观嵌入模型
  5. 仍然犯错:InstructGPT 仍会犯简单错误,RLHF 不能完全消除问题
  6. 语言覆盖:>96% 英语,其他语言和编程任务表现未经充分评估

引用与数据

  • 模型规模:1.3B、6B、175B 参数(GPT-3 架构)
  • RM 仅使用 6B(175B RM 训练不稳定)
  • PPO 算法:基于 Schulman et al. 2017
  • 前序工作:Christiano et al. 2017(RLHF 起源)、Stiennon et al. 2020(摘要 RLHF)
  • 标注员:约 40 人

相关