论文信息: Ouyang et al., OpenAI, 2022 (arXiv: 2203.02155v1)


一、研究动机

大语言模型(LLM)的训练目标是"预测互联网文本中的下一个token",这与用户真正想要的——"有帮助地、安全地遵循指令"——之间存在根本性的错位(misalignment)。具体表现为模型可能编造事实、生成有偏见或有害的内容、或者根本不遵循用户指令。作者将这种现象称为语言建模目标的 目标错位(misaligned)

核心目标是让模型具备三个特质(借鉴 Askell et al., 2021 的框架):有帮助(helpful)诚实(honest)无害(harmless)


二、方法概述:三阶段训练流程

InstructGPT 的训练基于 GPT-3 架构,分为三个阶段:

阶段一:监督微调(SFT)

从提示数据集中采样提示(prompt),由标注员撰写理想的输出示范(demonstration),然后用这些数据对预训练的 GPT-3 进行监督学习微调。SFT 数据集约含 13k 条训练提示

关键细节:训练 16 个 epoch,使用余弦学习率衰减和 0.2 的残差 dropout。虽然验证损失在 1 个 epoch 后就开始过拟合,但继续训练更多 epoch 反而提升了奖励模型评分和人类偏好评分。

阶段二:奖励模型训练(RM)

收集模型输出的排序数据——对同一提示展示 K=4~9 个输出,让标注员从优到劣排序。用这些排序数据训练一个 6B 参数的奖励模型,输入提示和回复,输出标量奖励值。RM 数据集约含 33k 条训练提示

损失函数为 pairwise ranking loss:

$$\mathcal{L}(\theta) = -\frac{1}{\binom{K}{2}} \mathbb{E}{(x, y_w, y_l) \sim D} [\log(\sigma(r\theta(x, y_w) - r_\theta(x, y_l)))]$$

技术亮点:将同一提示的所有 $\binom{K}{2}$ 对比较作为一个 batch 元素训练,而非拆散后随机打乱。这样每个回复只需一次前向传播(而非 $\binom{K}{2}$ 次),计算效率大幅提高,同时避免了过拟合问题。

阶段三:PPO 强化学习微调

以 SFT 模型为初始策略,以奖励模型的输出为奖励信号,使用 PPO(近端策略优化) 算法进行强化学习。PPO 数据集约含 31k 条训练提示

为防止策略过度优化奖励模型,引入了对 SFT 模型的 逐 token KL 散度惩罚

PPO-ptx 变体的目标函数:

$$\text{objective}(\phi) = \mathbb{E}{(x,y)\sim D{\pi_\phi^{RL}}} [r_\theta(x,y) - \beta \log \frac{\pi_\phi^{RL}(y|x)}{\pi^{SFT}(y|x)}] + \gamma \mathbb{E}{x\sim D{\text{pretrain}}} [\log \pi_\phi^{RL}(x)]$$

其中第二项是 预训练梯度混合,用于缓解在公共 NLP 数据集上的性能退化("对齐税")。


三、数据集构建

提示来源

  • 标注员撰写的提示(用于启动项目初期):分为 Plain(任意任务)、Few-shot(指令+示例对)、User-based(基于 API 申请中的用例)三类。
  • API 用户提交的提示(主体):来自 OpenAI API Playground 的早期 InstructGPT 用户,按用户 ID 划分训练/验证/测试集,过滤了个人身份信息(PII)。

任务分布

类别 占比
生成(Generation) 45.6%
开放式问答(Open QA) 12.4%
头脑风暴(Brainstorming) 11.2%
对话(Chat) 8.4%
改写(Rewrite) 6.6%
摘要(Summarization) 4.2%
分类(Classification) 3.5%
其他 3.5%
封闭式问答(Closed QA) 2.6%
提取(Extract) 1.9%

数据集超过 96% 为英语。


四、核心实验结果

4.1 人类偏好评估(API 提示分布)

核心发现:1.3B InstructGPT 的输出优于 175B GPT-3 的输出。 尽管参数量相差超过 100 倍,标注员更偏好小型 InstructGPT 的回答。175B InstructGPT 在直接对比中以 85±3% 的胜率击败 175B GPT-3,以 71±4% 的胜率击败 few-shot 175B GPT-3。

改进梯度:GPT-3(最差)→ GPT-3 prompted → SFT → PPO ≈ PPO-ptx(最优)

元数据层面的改进:InstructGPT 在以下指标上均优于 GPT-3——更好地遵循指令、满足显式约束、减少幻觉、输出更适合客服场景。

4.2 真实性(TruthfulQA)

InstructGPT 生成真实且有信息量的回答的频率约为 GPT-3 的 两倍。在封闭域任务中,InstructGPT 的幻觉率为 21%,而 GPT-3 为 41%

4.3 毒性(RealToxicityPrompts)

当被提示"请以尊重的方式回答"时,InstructGPT 比 GPT-3 减少约 25% 的有毒输出。但在无提示条件下,差异消失。值得注意的是,当被明确要求生成有毒内容时,InstructGPT 反而比 GPT-3 更"听话"地生成高毒性内容。

4.4 偏见

在 Winogender 和 CrowS-Pairs 数据集上,InstructGPT 未显著优于 GPT-3。

4.5 对齐税的缓解

PPO 训练会导致在 SQuAD、DROP、HellaSwag、WMT 翻译等公共 NLP 数据集上的性能退化。PPO-ptx(混合预训练梯度)能 大幅缓解 这些退化,且不损害人类偏好评分。实验表明,单纯增大 KL 惩罚系数无法达到相同效果,预训练数据分布本身是关键。

4.6 泛化能力

  • 对未参与训练的标注员的泛化:held-out 标注员的偏好与训练标注员一致,说明模型没有过拟合于特定标注员。
  • 对训练分布外指令的泛化:InstructGPT 能遵循非英语指令、回答代码问题等,尽管这些在训练数据中极为稀少,暗示模型学会了"遵循指令"这一泛化概念。

4.7 与 FLAN/T0 的对比

在 API 提示分布上,InstructGPT 大幅优于基于公共 NLP 数据集微调的 FLAN 和 T0。原因有二:公共 NLP 数据集以分类和问答为主(仅占 API 使用的约 18%),而 API 用户的主要需求是开放式生成和头脑风暴(约 57%);公共数据集的输入多样性不足。


五、InstructGPT 的局限性

  1. 假前提指令:当指令包含错误前提时,模型有时会接受该前提并生成错误回答(如"冥想后为什么要吃袜子?")。
  2. 过度对冲:对简单问题给出冗长、模棱两可的回答,而非直接作答。
  3. 多约束困难:当指令包含多个显式约束时,性能下降。
  4. 安全问题:模型在多数情况下仍会遵循用户指令,即使指令可能导致有害输出。被明确要求生成偏见内容时,InstructGPT 比同等大小的 GPT-3 更具毒性。

六、关于"对齐到谁"的讨论

论文坦诚指出 InstructGPT 的行为受多层因素影响,而非对齐到某种普遍的"人类价值观":

  1. 标注员:约 40 名承包商,主要为美国或东南亚的英语使用者,标注员间一致率约 73%。
  2. 研究者:设计标注指南、回答标注边界问题。
  3. API 客户:提示来自 OpenAI 的客户,他们不代表所有语言模型用户或受影响群体。
  4. 客户选择偏差:API 用户最初通过等待名单筛选,种子用户偏向 OpenAI 员工的社交网络。

作者明确表示:"不可能训练一个同时对齐到所有人偏好的系统。"


七、对对齐研究的启示

  1. 对齐成本远低于预训练成本:175B SFT 需要 4.9 petaflops/s-days,PPO-ptx 需要 60 petaflops/s-days,而 GPT-3 预训练需要 3,640 petaflops/s-days。RLHF 的效果优于 100 倍模型扩大带来的提升。
  2. 泛化到未监督领域:模型在非英语和代码任务上的表现表明"遵循指令"具有一定的泛化性。
  3. 低对齐税:PPO-ptx 能有效缓解性能退化,使 RLHF 成为一种实用的低成本对齐技术。
  4. 从实验到部署:该工作将对齐技术从理论和小规模实验推进到了真实产品的部署。

八、个人思考与评价

优点:

  • 首次系统性地在大规模、多样化的真实用户任务上应用 RLHF,并取得了显著的实际效果。
  • "小模型优于大模型"的结论(1.3B InstructGPT > 175B GPT-3)有力地说明了对齐训练的价值。
  • 对"对齐到谁"的问题进行了诚实而深入的讨论,没有回避其局限性。
  • PPO-ptx 混合预训练梯度的设计简单而有效,为后续工作提供了重要的工程经验。

局限与思考:

  • 标注员团队规模小(约 40 人)且多样性有限,可能引入系统性偏见。
  • 模型在被明确要求生成有害内容时表现得更加"有害",说明"遵循指令"和"安全"之间的张力尚未解决。
  • 评估主要依赖标注员偏好,缺乏对下游实际使用场景影响的度量。
  • 论文未讨论 RLHF 中的奖励黑客(reward hacking)问题,这在后续研究中被证明是关键挑战。

历史意义: 这篇论文是 ChatGPT 背后的核心技术基础之一,开创了"预训练 + SFT + RLHF"这一后来成为行业标准的大模型对齐范式。尽管后续工作(如 DPO、Constitutional AI 等)在方法上有所改进,InstructGPT 的核心洞察——用人类反馈引导模型行为比单纯增大模型规模更有效——依然是该领域最重要的发现之一。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐