# 训练管线全景：pretrain → SFT → RLHF / DPO 每一步在塞什么

> AI 系列第 9 篇。ChatGPT 不是一次训出来的。它要经过预训练 → 监督微调 → 奖励建模 → 强化学习四个阶段，每一阶段塞进去的"灵魂"完全不同。这一篇把完整管线拆开讲，最后聊聊 2024 之后 DPO 怎么把 RLHF 给简化掉了。

- URL: https://tenggouwa.com/posts/training-pipeline/
- 发布: 2026-05-30
- 标签: ai, training, rlhf, sft, dpo, ai-series

> AI 系列第 9 篇。这一篇把 ChatGPT 是怎么"训出来"的完整管线拆开讲——你会发现每一步都在塞不同的东西进模型，少一步它就不会聊天。

## 0. ChatGPT 不是一次训出来的

很多人以为大模型就是"喂海量文本，自动学会一切"。这是一个**严重的误解**。

实际上，把一个原始的 GPT-3 变成 ChatGPT 这种好用的产品，至少要经历 **4 个阶段**：

```
┌────────────────────────────────────────────────────────┐
│  Stage 1: Pretrain       塞进"世界知识"                 │
│  Stage 2: SFT            塞进"指令格式"                 │
│  Stage 3: Reward Model   塞进"人类偏好"                 │
│  Stage 4: RL (PPO/DPO)   塞进"行为优化"                 │
└────────────────────────────────────────────────────────┘
```

少一步，模型就是个不同的物种：

- 只做 Stage 1 = GPT-3（强，但不会聊天）
- 做到 Stage 2 = 还行的指令模型
- 做到 Stage 3-4 = ChatGPT、Claude 这种产品级助手

这一篇把每一步讲清楚。

---

## 1. Stage 1：Pretrain（预训练）——塞进"世界知识"

**目标**：让模型掌握语言的统计结构 + 海量世界知识。

**任务**：next-token prediction。给一段文本，预测下一个 token。

```
"今天天气真"  → 模型预测下一个 token: "好" (95%) / "差" (3%) / 其他 (2%)
```

**数据**：万亿级 token 的网页 + 书 + 代码 + 论文 + 对话记录。

**算力**：上千 GPU 跑几个月。GPT-4 大概 25000 块 A100 跑 3-4 个月。

### Pretrain 之后模型会什么？

- ✅ 知识渊博（能"记住"大量事实）
- ✅ 语言流畅（能写出语法正确的文本）
- ✅ 多语言（如果数据里有）
- ✅ 写代码（如果代码数据足够）

但**它不会**：

- ❌ 听指令（"请帮我总结这段话" → 它会续写"请帮我总结这段话。请帮我..."）
- ❌ 拒绝不当请求
- ❌ 保持对话格式
- ❌ 知道自己是 AI

> **Pretrain 出来的模型是个"知识猛兽"，但不是"助手"**。它只会续写，不会"对话"。

---

## 2. Stage 2：SFT（Supervised Fine-Tuning）——教它"听话"

**目标**：让模型学会"用户问 → 助手答"的格式。

**任务**：在精心写好的 "指令-回答" 对子上做监督学习。

```
用户: "请用三句话总结相对论。"
助手: "相对论是爱因斯坦在 1905-1915 年提出的物理理论。它包含狭义和广义两部分，分别处理高速运动和重力。它颠覆了牛顿力学对时空的理解。"

用户: "把这段代码改成 Python。"
助手: "..."
```

**数据**：通常 1万 – 10万 条人工标注的高质量例子。

**算力**：相对小，几天就能跑完。

### SFT 之后模型会什么？

```
你: "请帮我写一首关于春天的诗。"
SFT 后模型: "[春天来了，万物复苏，..."]  ◀── 直接给诗，不再续写指令
```

模型学会了：
- 指令 → 回答的格式
- 用礼貌语言开头
- 不胡说（学会了"我不知道"这种回答）

但还有个大问题——**SFT 模型只学了"模仿"，没学"判断好坏"**。如果训练数据里某种风格更多，它就会偏向那种风格；遇到模糊问题（"这个回答 vs 那个回答哪个更好"）它不知道。

要让模型有"判断力"，需要下一步。

---

## 3. Stage 3：Reward Model（奖励模型）——把"人类偏好"训成一个打分函数

**目标**：让 AI 学会"什么样的回答会被人类喜欢"。

**任务**：训一个独立的小模型，输入"指令 + 回答"，输出一个分数。

### 数据怎么收集？

人类标注员看到：

```
指令: "帮我写一首关于春天的诗"

回答 A:
  春风拂面暖
  花开满枝头
  ...

回答 B:
  春天来了 真好啊
  花花草草都开了
  我很开心
```

标注员**排序**：A > B（A 更有诗意）。

收集几万条这种排序数据，训一个奖励模型 RM，让它学会"对人类喜欢的回答给高分"。

### 为什么不直接打分？

历史上试过让人类直接打分（1-10）。结果发现：

- 不同标注员尺度不一致（A 打 7 分，B 打 5 分）
- 同一标注员前后矛盾
- 数据噪声大

而**两两比较**（A vs B 哪个好）的可靠性高很多。这是行为经济学的经典发现——人类擅长比较，不擅长绝对评分。

> 一句你可以拿去吹的话：
> **奖励模型是大模型时代最有趣的发明之一——它把"人类的审美"训成了一个可计算的函数。**

---

## 4. Stage 4：RLHF（强化学习人类反馈）——把模型"调教"到 RM 偏好上

**目标**：让 SFT 模型生成的回答，被 RM 打高分。

**任务**：用 **PPO（Proximal Policy Optimization）** 算法做强化学习。

### 工作流程

```
loop:
    1. SFT 模型对一个 prompt 生成回答
    2. RM 给这个回答打分
    3. 用 PPO 更新 SFT 模型: 让"高分回答"的概率提升，"低分回答"的概率降低
    4. 同时加 KL penalty: 别离原 SFT 模型太远（防止崩坏）
```

经过 RLHF，模型的回答质量会明显提升——但是是**沿着 RM 定义的方向**提升。

### RLHF 的几个微妙之处

#### 微妙 1：Reward hacking（奖励黑客）

模型很聪明。如果 RM 喜欢长回答，它就会写得越来越啰嗦。如果 RM 喜欢肯定句，它就会避免说"不知道"。这就是 reward hacking——**模型学会的不是"做得更好"，而是"骗过 RM"**。

#### 微妙 2：Alignment tax（对齐税）

RLHF 会让模型在标准评测上略微变差。例如 InstructGPT 在 GPT-3 的某些 benchmark 上反而退步了几个百分点。这是"被驯化"的代价——为了听话，它牺牲了一些原始能力。

#### 微妙 3：RLHF 极难调

PPO 的超参数有十几个，稍微调错训练就崩。OpenAI / Anthropic 内部有专门的 RL 团队，行业内能稳定跑 RLHF 的团队不超过 50 个。

---

## 5. 2023+ 简化路线：RLAIF & DPO

RLHF 又贵又难调。2023 之后行业开始找简化路线。

### RLAIF（RL from AI Feedback）

把人类标注员换成 AI。Anthropic 的 Constitutional AI 就是这路——

```
1. 准备一份"宪法"（写明 AI 应该遵守的原则）。
2. 让 AI 自己根据宪法给自己的回答打分。
3. 用 AI 自评的分数训 RM。
4. 之后流程和 RLHF 一样。
```

成本骤降。但有个隐忧：**AI 评 AI 容易陷入回声室**——一个 AI 认可的风格，未必是真正人类喜欢的。

### DPO（Direct Preference Optimization）——2023 年最重要的简化

**2023 年 5 月**，Stanford 团队提出 **DPO**。它的核心洞察：

> "RLHF 有 RM 和 PPO 两步。其实可以合并成一步——**直接用偏好数据微调模型**，不要 RM 也不要 PPO。"

DPO 的数学推导很巧——它证明了"训 RM + PPO 微调"在某种近似下等价于一个直接的 loss 函数：

```
loss = -log(sigmoid(β × log(π(y_w | x) / π_ref(y_w | x))
                     - β × log(π(y_l | x) / π_ref(y_l | x))))

y_w: 人类选中的回答
y_l: 人类没选的回答
π: 当前模型
π_ref: SFT 模型（参考）
```

不用真训 RM，不用搞 PPO 强化学习。**就是个普通的监督训练**，加了一个对比 loss。

**简单、稳定、效果接近 RLHF**。Llama-3、Mistral、Qwen 后期都用 DPO。

### 现在主流配方（2026）

```
Stage 1: Pretrain
Stage 2: SFT
Stage 3: DPO（或 RLHF，看团队偏好）
Stage 4: (可选) RL for reasoning（o1 那种）
```

PPO 现在主要用在"训练 reasoning 模型"那条路上（第 22 篇会讲）。日常的对齐工作 DPO 占主流。

> 一句你可以拿去吹的话：
> **DPO 把 RLHF 从"博士论文级工程"简化成了"研究生作业级工程"。这是开源生态能追上闭源前沿的关键技术之一。**

---

## 6. 把整个管线串起来

```
原始网页/书/代码（数万亿 token）
   │
   ▼  Stage 1: Pretrain（几个月，几千万 $）
原始 LLM（知识渊博，但不会聊天）
   │
   ▼  Stage 2: SFT（几天，10 万条人工数据）
指令模型（会听话，但风格平庸）
   │
   ▼  Stage 3-4: RLHF 或 DPO（几天，几万条偏好数据）
对齐模型（ChatGPT、Claude 这种）
   │
   ▼  Stage 5 可选: RL for reasoning（几周，海量自生成数据）
推理模型（o1、Claude with thinking 这种）
```

每一步塞进去的东西：

| 阶段 | 数据来源 | 塞进的是 | 大概代价 |
|---|---|---|---|
| Pretrain | 互联网 | 世界知识 + 语言能力 | 99% 的总成本 |
| SFT | 人工标注 | 指令格式 + 基础风格 | 0.1% |
| RM | 人工排序 | 人类审美 | 0.1% |
| RLHF/DPO | RM/偏好数据 | 行为对齐 | 0.5% |
| RL reasoning | 自生成 | 推理能力 | 0.3% (但持续增长) |

注意：**预训练吃了 99% 的钱，但决定模型 80% 性格的是后面几步**。这就是为什么开源圈能用很少的预算做出不错的对齐——只要拿到一个好的预训练模型作底子。

---

## 7. 给你的小作业

1. **预训练模型 vs SFT 模型 vs RLHF 模型，给同一个问题会有什么不同回答？** 举一个具体例子。
2. **解释 reward hacking。给一个你能想到的例子。**
3. **DPO 和 RLHF 数学上几乎等价，但工程上简单很多。这告诉你一个工程哲学的什么道理？**

> **下一篇钩子**：到这里我们看了模型架构、scaling、训练管线。
> 下一篇钻进**模型眼里的世界**——
> 一个看似简单的问题：模型读到 "strawberry" 这个词时，它看到的是字符 'r','y','b','e','r','r','a','w','t','s' 吗？
> 不。它看到的是几个**token**。
> 这是为什么 LLM 偶尔会数错字母数量。下一篇我们讲 tokenizer 和 context window——大模型最被忽视的两个基础设施。
