跳到主要内容

大纲 — Post-Training AI 拆解切分

原书 Early Release 只有 2 个正章(第 1 章导论 3.9 万字符、第 2 章从零实现 3.6 万字符)。 按推理链切成 7 章:概念与实现放在一起讲,避免「概念章说完、实现章再说一遍」。

全书主旨(原书 ch2 Note,05-ch02:22-24):两个训练循环只差一处——训练信号从哪来。 SFT 复制你给的信号;RL 从你定义的奖励里发现信号。

文件推理链原书位置
0101-what-is-post-training.md只会续写的机器 → 第二次训练塑形 → 但塑形改不了底子ch1 §1.1
0202-why-post-train-your-own.md什么时候值得自己训:经济账、控制权、提示词的税、开源浪潮与三份配方ch1 §1.2.1–1.2.3、§1.2.2
0303-sft-from-scratch.mdSFT:把「续写」改成「应答」的机制,训练信号怎么只落在回答上ch1 §1.3.1 + ch2 SFT 半章
0404-preference-learning.mdSFT 教不了「更好」→ 人的偏好当信号:RLHF/PPO 的重与 DPO 的轻ch1 §1.3.2
0505-grpo-verifiable-rewards.md没有示范时:可验证的对错当信号;GRPO 组内基线;推理的涌现ch1 §1.3.3 + ch2 RL 半章
0606-agents-and-environments.md单轮到多步:agent 训练要一个环境;信用分配与奖励分解ch1 §1.2.4 + §1.3.4
0707-imitation-vs-optimization.md收束:模仿 vs 优化的总图、成本不对称、最短流水线、工装与硬件ch2 末三节 + ch1 §1.3.5、§1.4

每章节级大纲(进来时以为 → 出去时知道)

01 后训练是什么

  1. 现象:问基础模型一个问题,它可能答、可能续写五个新问题 → 今天能用的模型都经过第二次训练;它不是「更大的预训练」
  2. 预训练做了什么 → 万亿 token 上练「预测下一个词」;几千张 GPU、几十 TB;学到语言规律+杂知识,但只会续写
  3. 后训练做什么 → 几千到几百万条策展数据做小规模定向训练;教的是「怎么用知识」;从零用策展数据训反而更差、跳过后训练=有知识没纪律
  4. 三段配方各教一样东西 → SFT 教格式(模仿示范);偏好学习教好坏(人评的成对比较);可验证奖励 RL 教推理(任务自己对错);不是每个模型都要全上
  5. 后训练改不了什么(五条边界)→ 加不了权重里没有的知识(医疗例);补不了能力缺口;根除不了深埋行为(越狱为什么存在);替代不了数据质量;解决不了对齐
  6. 主走查落点:同一句「用两句话讲 TCP 和 UDP 的区别」分别进 base model 和后训练模型(输出串为演示编的)

02 为什么现在轮到自己训

  1. 现象:用户越多账单越贵 → API 按量计费线性涨,百万分之一的对话和第一通一样贵(需求侧没有规模经济)
  2. 自有模型的账 → 前期一次 + 推理单价是 API 的零头;盈亏平衡点比预期早
  3. 控制权 → API 是改得了行为的依赖(定价/版本/条款);权重看不见;提示词相对训练是钝器
  4. 提示词的税(主走查:2000 token 系统提示 × 每月百万次请求)→ 提示每次重发重读、遵循度浮动;RAG 管知识不管行为;微调把行为装进权重;三层组合(后训练管稳定、提示管变化、RAG 管动态)
  5. 条件成熟:开源浪潮 → 瓶颈曾是 base model(数百万美元);2023–2025 Llama/Gemma/Qwen/DeepSeek 释出
  6. 三份公开配方(证据)→ Llama 3:拒绝采样+SFT+DPO 五轮迭代;Qwen 2.5:SFT+DPO+GRPO 百万样本 Apache 2.0;DeepSeek-R1:GRPO、R1-Zero 纯 RL 涌现思维链、对齐 o1;剩下的工作是工程

03 SFT:从零写第一个训练循环

  1. 现象:loss 在降,但模型学没学对?→ 训练信号是什么、怎么验证模型真的变了
  2. 监督信号:下一词预测 → token/logit/softmax/概率分布;交叉熵=正确 token 的负对数概率;自信且对≈0、自信且错大;SFT 与预训练机制相同只换数据
  3. 为什么高效:teacher forcing → 每个位置拿真实前缀训练;10 个 token 的回答=10 个监督信号
  4. 只训回答:掩码 → prompt+completion 拼一条;label 数组把 prompt 位置写成 -100(交叉熵跳过);chat template 标角色边界(错模板→畸形输出)
  5. 循环五步(主走查:「用一词总结:回答永远保持简洁」→「Concise.」)→ 前向→错位对齐→交叉熵→反向传播→AdamW 步进;30 步、lr 1e-5
  6. 前后探针 → 探针①示范损失下降;探针②贪婪解码文本变化;固定输入前后各测、看输出不只看损失——抓「在跑但学错」的习惯
  7. SFT 的边界 → 数据质量压倒数量(千条好过十万条噪声);只会模仿,不会自评

04 偏好学习:教模型「好坏」

  1. 现象:格式对了,但答案平庸 → SFT 没有「好 vs 平庸」的信号;偏好学习补这一块
  2. RLHF 三段(OpenAI, InstructGPT 2022)→ ①SFT ②标注员比较成对输出训奖励模型 ③PPO 优化且贴近 SFT 起点
  3. InstructGPT 的证据 → 13 亿参数+RLHF 被人评为胜过裸 1750 亿 GPT-3;小的赢在「对知识的使用判断」
  4. PPO 为什么重 → 同时养四个模型(policy/reference/reward/value);奖励模型失准、KL 惩罚两难(太强不学、太弱放任作弊)
  5. DPO 为什么轻(主走查:一条偏好对进 DPO 会发生什么)→ 数学洞见:最优策略有闭式解 → 直接在偏好对上监督式训练;两个模型(策略+冻结参考);IPO/KTO/ORPO 变体;开源默认
  6. 边界 → 依赖标注质量:标注员分歧或奖励表面特征(长度/格式)就学错

05 可验证奖励与 GRPO:从零写第二个循环

  1. 现象:没有标准答案可抄的任务怎么办 → SFT 要人写好每条 completion;RL 只要一个给任意补全打分的函数
  2. 三个词 → policy=模型;reward=补全→数;rollout=采样一次尝试;RL 从模型自己写的答案里学,按好坏加权
  3. 为什么 RL 能超越示范 → 强化「采样时偶然撞到的好答案」;两个前提:撞得到、奖励认得出
  4. 最小环境:可验证的格式任务(主走查:G=8 组采样「说出一种原色」)→ 奖励函数 0/1/3 分级;<answer>42 1 分、<answer>42</answer> 3 分、裸 42 零分;打分必须有区分度
  5. GRPO:组就是基线 → advantage=(r−组均值)/(组标准差);高于均值强化、低于压制;损失 −(A×logprob)=REINFORCE+组基线;vs PPO:不要 critic 网络,代价是多采样
  6. 跑起来会发生什么 → 几百步奖励爬升;早期靠撞;全组同分=白走一步(GRPO 卡住最常见原因);奖励太易/太难都没方差
  7. 复用 rollout:裁剪代理 → 每次生成走一步太浪费;借 PPO clip 限制新旧概率比值;单步时退化回纯策略梯度
  8. RLVR 的分量 → R1-Zero 纯 RL 涌现思维链;完整 R1=SFT+GRPO 对齐 o1;基建最重:生成是瓶颈,vLLM 伴跑

06 agent 与环境:训练会做事的模型

  1. 现象:聊天会答,做事不行 → agent=在环境里多步行动;规划/纠错/工具/自验证是学出来的,不是提示出来的
  2. 为什么 RL 匹配 agent → 行动结果常可验证(编译/测试/检索命中);trajectory=动作+观察的序列,按结局给奖励;与 R1 同一循环
  3. 三件新难事 → 回合更长→信用分配(十步后失败,哪步错?);动作空间更大(工具/代码/结构化);必须有个环境
  4. 环境协议(主走查:一个编码 agent 的一轮 episode)→ reset→action→observation(+奖励)→循环到结束;好环境三条件:信号真实、变化防背题、快到几千 episode
  5. 环境生态 → OpenEnv:标准协议+程序化生成+沙箱;网页/数据库/API 环境已有
  6. 多步奖励的分解 → 结局/效率/中间步质量/安全,加权是设计问题;也可以只拿环境做评测、不做完整 RL

07 模仿还是优化:选择与组装

  1. 现象:两条路都会用到了,什么时候用哪条 → 一张总图
  2. 两种失败方式(主走查:同一格式任务两种训法)→ SFT 推向精确示范串、RL 推向组均以上自产样本;梯度同形不同源;模仿被数据封顶、优化只和奖励一样诚实(reward hacking 归 ch6——原书未出,如实交代)
  3. 成本挪到哪 → SFT 贵在数据(日志/标注/强模型生成);RL 贵在奖励(防捷径+有方差);可验证域奖励免费→进展最快;这条不对称解释领域形状
  4. 各自擅长(Table 2-2)→ SFT:格式/风格/工具语法/冷启动,流水线几乎总从它开始;RL:数学/代码/多步 agent;SFT 铺地板、RL 抬天花板
  5. 组装:最短流水线 → 检查点串联;SFT 过评测就停;偏好/RL 都是可选;提示词解决很多、SFT 更少、RL 更更少
  6. 工装与硬件 → TRL/transformers/PEFT/Hub;全量微调 4B≈28GB;LoRA/QLoRA→单张 12GB;TRL 三个 trainer 对应三段
  7. 本书没写完的部分 → Early Release 只出 2/9 章;3–9 章预告(TRL 各阶段、生产流水线、推理 RLVR、安全评测);judgment:拿它当入门地图,不是完整手册

自查(两两对「出去时知道」)

  • 01§4 三段速览 vs 03/04/05 各自深入:速览只给「每段教一样东西+选用判断」,机制细节全部退到 03/04/05——不重复 ✓
  • 02§6 三配方 vs 05§8 R1:02 只给「谁、什么组合、什么效果」;05§8 只讲 R1-Zero 涌现与 GRPO 的角色,配方表格归 02 ✓
  • 02§4 提示词的税 vs 01§2 预训练:一个讲行为怎么装进权重,一个讲权重哪来 ✓
  • 03§5 SFT 循环 vs 05§5 GRPO 循环:同为「从零实现」但信号来源不同(书 Note 原旨),07§2 负责把两者并排 ✓
  • 06§4 环境协议 vs 05§4 最小环境:05 是「一行 reward 函数算环境」的特例,06 讲完整多步协议与三条件——06§1 明确回指 ✓
  • 07§6 工装 vs 02 各节:02 讲「为什么值得」,07§6 讲「跑在什么上」✓

每章主走查

  • 01:「TCP vs UDP」问句进 base vs 后训练模型(book 例子 L136 + L26 行为分类;输出串标「编的」)
  • 02:2000-token 系统提示 × 每月 100 万请求 = 20 亿 token(book 两数相乘,算式当场写)
  • 03:「Summarize in one word: always keep answers concise.」→「Concise.」30 步 AdamW(book 走查原例)
  • 04:一对偏好(好答案/差答案)在 DPO 里的概率移动(书给机制,数字标「编的」)
  • 05:G=8 采样「Name a primary color…」,奖励 [3,1,0,…],组均值基线(book 走查原例;具体奖励数组标「编的」)
  • 06:一个编码 agent 的 episode:写→跑→报错→修→过测试,奖励在终点(book L118/L124 场景;中间串标「编的」)
  • 07:同一格式任务 SFT vs GRPO 的梯度对比(book L361-363 原旨)