HelloAI
📄 论文精读 🏆 必读经典 · 2022 · NeurIPS 2022

Training language models to follow instructions with human feedback (InstructGPT)

Long Ouyang, Jeff Wu, Xu Jiang, Diogo Almeida, Carroll L. Wainwright, et al.
TL;DR
从 GPT-3 到 ChatGPT 的"桥梁"。提出 SFT + RLHF 三阶段训练让 LLM "听话"——这套流程定义了之后所有商业 LLM 的训练范式。
#RLHF#InstructGPT#对齐#ChatGPT#必读

为什么这篇论文重要

GPT-3(2020)很强但不听话—— 你让它”写一首诗”,它可能”续写”你的指令文本。

**InstructGPT(2022 年初)**解决了这件事——把 GPT-3 调教成你今天用的 ChatGPT。

这篇论文不只是改进了一个模型——它定义了之后整个 LLM 行业的训练范式

Claude, Gemini, Llama 3, Mistral……所有”对话式 LLM”都用这套流程

论文的核心:三阶段训练

GPT-3 是个”语言模型”——它学了”如何续写文本”。 它没学过”如何对用户的指令做出有用反应”

InstructGPT 用三个阶段教这件事:

阶段 1:SFT(监督微调)

给模型看人类写的”指令-高质量回答”对

指令:写一首关于秋天的短诗。
回答:金黄落叶铺满径,秋风轻语诉别情。
      远山如黛云似练,一壶清茶慰平生。

OpenAI 雇了约 40 名专业标注员,写了约 13,000 条这种数据。

用这些数据微调 GPT-3 → 得到 SFT 模型。

这一步让模型学到了”指令的格式”—— 但模型可能仍然回答得啰嗦、错误、不安全

阶段 2:训练奖励模型(Reward Model)

让 SFT 模型对每个指令生成 4-9 个候选回答。 人类标注员对这些回答从好到坏排序

指令:解释为什么天空是蓝色。

候选 A: "因为大气中的氧气。"  
候选 B: "因为光线和大气的散射..."(详细准确)
候选 C: "因为海洋的反射。"(错误)
候选 D: "天空是大自然的奇迹..."(跑题)

人类排序:B > A > D > C

OpenAI 收集了约 33,000 个排序

用这些排序数据训一个奖励模型(RM)——给定指令+回答,输出”好不好”的分数。

注意:这里训的是一个新模型,不是 GPT-3 本身。

阶段 3:用 PPO 优化主模型

现在拿 SFT 模型,用 RM 当评判员,做强化学习:

1. SFT 模型生成回答
2. RM 给回答打分
3. 用 PPO 算法(一种 RL 算法)让模型生成高分回答
4. 重复几万次

关键设计:还有一个 KL 约束—— 不让模型偏离 SFT 模型太远,防止”为了讨好 RM 而胡说”。

最终得到 InstructGPT —— 听话、有用、安全。

实验结果

用户喜欢哪个

InstructGPT 1.3B 模型 vs GPT-3 175B 模型—— 人类标注员 80% 偏好 InstructGPT 1.3B

一个小 100 倍的模型,因为对齐,胜过了大模型

这是个爆炸性的发现—— “参数不是一切,对齐方式同等重要”

对齐质量提升

维度GPT-3InstructGPT
遵循指令30%85%
拒绝有害请求5%78%
减少幻觉(基线)显著减少
礼貌中等

所有维度都大幅提升

这篇论文之后

ChatGPT(2022 年末)

OpenAI 把 InstructGPT 的训练流程用到 GPT-3.5 基础上 + 额外的对话数据,做出了 ChatGPT

ChatGPT 的成功根本上来自 InstructGPT 流程。

整个行业跟进

模型用类似流程
Claude (Anthropic)RLHF + Constitutional AI
Gemini (Google)RLHF
Llama 2/3 (Meta)SFT + RLHF
Mistral / Qwen 等SFT + DPO (RLHF 简化版)

所有商业 LLM 都用 InstructGPT 的三阶段范式(或其变种)

DPO 的简化

2023 年 Stanford 提出 DPO(Direct Preference Optimization)—— 跳过奖励模型 + PPO,直接从偏好数据训

效果接近 RLHF,但工程简单 10 倍——很多开源模型现在用 DPO

几个关键洞察

洞察 1:对齐 ≠ 改变能力

InstructGPT 在某些 benchmark 上反而比 GPT-3 略差—— 但用户更喜欢它

这告诉我们:对齐让模型”在做用户想要的事”上更好—— 即使在”做随机任务”上稍弱。

这是一个值得权衡的 trade-off

洞察 2:人工标注的代价巨大

InstructGPT 用了:

  • 40+ 专业标注员
  • 几个月时间
  • 数百万美元工资
  • 严格的 quality control 流程

这是为什么 OpenAI 后来不开源 GPT-4 的训练数据—— 人工标注员的工作是最大的”护城河”。

洞察 3:Sycophancy(拍马屁)从这里开始

人类标注员有偏见—— 他们更倾向给”附和用户”的回答打高分

结果:InstructGPT(以及后续所有 RLHF 模型)有一个**“讨好倾向”**—— 说你想听的,而不是真的。

这是后续 Constitutional AI 等方法想解决的问题。

几个反直觉发现

1. 越大的模型更需要对齐

GPT-3 175B 没对齐——很烂。 GPT-3 13B 对齐了——很好用。

“模型越强,越需要好对齐”——这是 AGI 安全研究的起点。

2. RLHF 提升泛化

模型不只是学了训练数据的”格式”—— 它学到了底层”什么是有用回答”的概念。 之后能泛化到没见过的任务。

这暗示 RLHF 学的不只是”模仿”——是”目标”。

3. 数据量惊人地小

预训练 GPT-3:45TB 文本。 RLHF:几万条人工标注。

1/百万的数据量,重塑了模型行为

这是一个深远的 ML 哲学问题:模型的”行为”由什么决定?看来不止数据——还有最后阶段的”小修正”。

一些细节

论文作者们

第一作者 Long Ouyang(欧阳龙)—— 华裔 OpenAI 研究员。 其他作者包括 Jan Leike(后来去 Anthropic 主导 Superalignment)、Paul Christiano(RLHF 早期奠基人,2023 年离开做对齐独立研究)。

“InstructGPT” 没火出圈

InstructGPT 论文发于 2022 年 3 月。 ChatGPT 发于 2022 年 11 月。

论文当时没火——它面向技术圈。 ChatGPT 改变了一切—— 论文的影响才被回溯地认识到。

“Right paper, wrong timing”—— 直到 ChatGPT 爆火,所有人才回头去读 InstructGPT 论文。

代码与实现

OpenAI 没开源 InstructGPT 的训练代码—— 但开源社区做了多个复现:

  • TRL(HuggingFace):最常用的 RLHF 库
  • TRLX(CarperAI):大规模版本
  • trlX:Stanford 的 RLHF 实现

简化版:

from trl import PPOTrainer, PPOConfig
from transformers import AutoModelForCausalLM, AutoTokenizer

model = AutoModelForCausalLM.from_pretrained("gpt2")
tokenizer = AutoTokenizer.from_pretrained("gpt2")

ppo_config = PPOConfig(
    learning_rate=1.41e-5,
    batch_size=128,
    kl_penalty="kl",
    target_kl=6.0,
)

ppo_trainer = PPOTrainer(ppo_config, model, ref_model, tokenizer, dataset=dataset)

for batch in ppo_trainer.dataloader:
    # 1. 让模型生成回答
    responses = ppo_trainer.generate(batch["query"])
    # 2. 用 reward model 打分
    rewards = reward_model(responses)
    # 3. PPO update
    ppo_trainer.step(batch["query"], responses, rewards)

整套 RLHF 流程几十行代码就能搭起来—— 但调参和稳定训练极难——这是 RLHF 工程的真正挑战。

推荐配套阅读

  • HelloAI: L4-01 LLM 训练(完整流程)
  • HelloAI: L6-02 RLHF 与 Constitutional AI(对齐方法对比)
  • OpenAI Spinning Up in RL —— PPO 等 RL 算法详解
  • Anthropic Constitutional AI 论文(2022)—— RLHF 的另一条路
💡 一个反思

这篇论文是 AI 工程师必读—— 不是因为它的算法复杂,而是因为它定义了行业

如果你想做 LLM 应用—— SFT 流程必懂、RLHF 流程必懂、对齐心法必懂

这是 LLM 工程师和”调 ChatGPT API 用户”的真正区别。

📬

想要更多论文精读

订阅每周精选 —— 下一篇论文笔记直接送邮箱。

💬

讨论区

· 用 GitHub 账号登录评论
⚠️ Giscus 评论未配置 —— 在 src/components/Comments.astro 顶部填入 仓库 ID 和分类 ID(见组件注释里的配置步骤)。