第十一章 使用 PPO 微调大语言模型
复刻 InstructGPT 的骨架。倒立摆里每一步奖励是 1;LLM 里每一步动作是吐一个 token,奖励模型却只给整段补全一个分。这一章的关键:怎么把整段分数和逐步 KL 拆成每个 token 的 Rt。
- 一三步:SFT → 奖励模型 → PPO。
- 二RM 看完整回答打一个分,不是每字 +1。
- 三eos 之前:Rt 主要是对参考模型的 KL 惩罚。
- 四最后一个 token:再加上 RM 的分。
书 §11.1–11.3 · p.159–179
11.1 InstructGPT 三步
Step 1 SFT。提示词配人工写的回复。这是创作,不是随便标猫狗。得到一个会按指令说话的模型。
Step 2 RM。把同一提示词丢给 SFT,生成 4–9 个回复,人排序。再两两取出,训练奖励模型:学会「哪段更好」。这就是 Human Feedback。图 11.4。
Step 3 PPO。策略就是 LLM。生成一段,RM 打分,用第五章的 clip 更新。更新时还要看每个 token 和 SFT 参考模型差多远,差太远就罚——防过度优化(只会讨好 RM、说胡话)。
书 §11.1 · 图 11.1 · p.159–160
点一步
三步顺序不能倒:没有 SFT,RM 看的回复太烂;没有 RM,PPO 没有「好不好」的标尺。
接下节。PPO 公式里的优势要用逐步奖励 Rt。LLM 里 Rt 从哪来?
11.2 即时奖励 Rt 怎么拼
动作 = 输出一个 token。图 11.2 问:针对这一个 token,给什么 Rt?图 11.3:RM 是看完整补全才吐一个标量,比如 0.9 分。
InstructGPT 的做法分两种位置:
到了 <eos> 那一步,把 RM 的整段分数加进去。于是:中间几步负责「别跑丢」,最后一步负责「这段话好不好」。图 11.5 用「这本书 / 真好看」做过演示。
书 §11.2 · 图 11.2–11.3、11.5 · 式 (11.2) · p.160–162、p.172
一串 token 上的 Rt
补全「真好看」。拖 β 和 RM 分。中间格只有 KL 惩罚,最后一格加上 RM。
教学用的逐步 KL 是假数,只为看清「惩罚在每一步、分数在最后一步」。真正计算用的是两个模型在该 token 上的 log 概率差。
下一章。不要 RM、不要 Critic:同一道题生成一组回答,用规则给分,GRPO / DAPO。
合上这一章
- 三步。SFT、RM、PPO。
- RM 看整段。不是倒立摆那种逐步 +1。
- Rt。中间 KL 惩罚,eos 加上 RM 分。β 控制别离 SFT 太远。
章末自测
讲完了。下面几题核对本讲刚说过的概念。点选立刻看对错;做错也不会锁下一章。