跳转至

第二部分 · 后训练、对齐与推理能力

预训练语言模型(第一部分的主角)是一个极其出色的文档续写器。给它一篇维基百科文章的开头,它会接着往下写;给它一个问题,它可能会回答,也可能再吐出三个问题,因为互联网上的文本往往就是这个样子。后训练(post-training)指的是预训练之后的一切工作,目的是把这个原始的续写器变成我们想要的样子:能遵循指令的助手、回答前会认真推理的模型、会调用工具的智能体(agent),以及会拒绝有害请求的系统。

本部分从第一性原理出发,讲解完成这些工作的算法。我们从最朴素的监督微调(SFT)开始,逐步搭起大模型领域使用的强化学习工具箱(策略梯度、PPO、KL 惩罚),再用它推导出 RLHF、DPO 和 GRPO。沿途还会讲到:推理模型如何在测试时花费额外算力;为什么"可验证奖励的强化学习"(RLVR)在 2025 年成为主流配方;如何借助蒸馏和 LoRA 把这一切变得负担得起;以及智能体和安全训练如何叠加在这些之上。

为什么重要:你接触到的几乎每个模型都是经过后训练的模型,而且在 2025–2026 年,前沿实验室投入后训练的算力和研究精力占比越来越高,甚至超过预训练。只要理解每个阶段在优化什么目标,你就能预测它会改变模型的什么、不会改变什么,也能把任何一篇新的后训练论文读成"对某个我已经熟悉的东西的小改动"。

先修知识与时间

  • 数学:线性代数、概率(期望、条件概率、对数似然)、基础微积分(梯度、链式法则)。
  • 代码:Python 和基础 PyTorch(张量、nn.Module、自动求导、优化器训练循环)。
  • 来自第一部分:什么是仅解码器(decoder-only)Transformer,下一个 token 的交叉熵训练如何工作,以及 token 和 logits 是什么(第一部分)。
  • 不要求有强化学习基础;第 2.3 章会从零讲起。

预计时间:阅读和练习约 25–35 小时;如果做动手项目,再加 10–30 小时(小模型用一块消费级或云端 GPU 就够了)。

章节地图

# 章节 一句话简介
2.1 为什么要后训练? 基座模型 vs 助手模型、各阶段分别带来什么、对话模板、如何评估后训练
2.2 监督微调 SFT 目标函数、损失掩码、序列打包、超参数、数据来源、完整训练循环
2.3 大模型的强化学习基础 把生成看作 MDP、策略梯度、REINFORCE、基线、PPO、GAE、KL 惩罚
2.4 RLHF 偏好数据、Bradley–Terry 奖励模型、四模型 PPO 循环、奖励投机、RLAIF
2.5 直接偏好优化 从 RLHF 目标推导 DPO、其损失的代码实现、β、变体、离线 vs 在线
2.6 推理与测试时算力 思维链、自洽性、best-of-N、过程奖励 vs 结果奖励、思考预算
2.7 可验证奖励的强化学习 基于规则的奖励、GRPO、DeepSeek-R1 配方、DAPO/Dr. GRPO/GSPO/CISPO 的改进、RL 基础设施
2.8 蒸馏与高效微调 知识蒸馏、在线策略蒸馏、从零实现 LoRA、QLoRA、DoRA
2.9 智能体、工具使用与安全 函数调用、ReAct、智能体强化学习、MCP、智能体基准、拒答与安全训练

心智模型

现代后训练流水线由一系列阶段组成,每个阶段在不同的数据上优化不同的目标:

                    ┌────────────────────────────────────────────────────────────────┐
                    │                 (安全 / 对齐数据贯穿各阶段混入)                │
                    └────────────────────────────────────────────────────────────────┘
 ┌────────────┐   ┌──────────────┐   ┌─────────────────────┐   ┌────────────────────┐
 │  基座模型  │──►│     SFT      │──►│    偏好调优         │──►│ RLVR(数学、代码、 │──► 助手 /
 │ (第一部分)│   │  第 2.2 章   │   │ RLHF 第 2.4 章 / DPO│   │  工具、智能体)    │    推理 /
 │ 下一个token│   │ 对回答做交叉熵│   │ 第 2.5 章           │   │  GRPO 第 2.7 章    │    智能体模型
 └────────────┘   └──────────────┘   │ "哪个回答更好?"    │   │ "答案能否被检验为  │        │
                         ▲           └─────────────────────┘   │  正确?"           │        │
                         │                       ▲             └────────────────────┘        │
                         │                       └──── RL 工具箱 ─────┘                      │
                         │                             (第 2.3 章)                         │
                         │                                                                   ▼
                         └────────────── 蒸馏(第 2.8 章):大的后训练模型 ──────────────────┘
                                         为小的学生模型生成数据 / logits

  测试时算力(第 2.6 章)和工具使用(第 2.9 章)是后续阶段所要训练出来的行为。
阶段 数据 目标 带来什么
SFT (提示,理想回答)对,包括长思维链轨迹 对回答 token 的交叉熵 格式、指令遵循、推理的"冷启动"
偏好优化 (提示,被选中的回答,被拒绝的回答) RLHF(奖励模型 + PPO)或 DPO 系列损失 有用性、风格、无害性
RLVR 带可检验答案的提示(单元测试、数学答案、工具执行结果) 策略梯度(GRPO、DAPO、GSPO…) 推理、长思维链、智能体技能
蒸馏 教师模型的输出或 logits SFT 或在线策略 KD 廉价的小模型,继承大模型的能力

真实的训练配方会对这些阶段重新排序并重复(例如 DeepSeek-R1 交替进行了两轮 SFT 和 RL,见第 2.7 章),但每个阶段都是上面某个方框的一种。

如何学习本部分

  1. 按顺序读到 2.5。2.1–2.2 章很快;2.3 章是整个部分的数学核心,不要跳过:一旦熟悉了策略梯度和带 KL 正则的目标,RLHF、DPO 和 GRPO 都不过是一页代数。
  2. 2.6 和 2.7 章配合着读。2.6 解释为什么更多的思考 token 有帮助;2.7 解释 RL 如何教会模型产生它们。
  3. 2.8 和 2.9 章可以任意顺序阅读,也是最直接实用的两章。

建议的动手项目(每个对应一章):

  • (2.2) 用 TRL 的 SFTTrainer + LoRA,在指令数据集上对一个 0.5–1.5B 的模型(例如小号 Qwen)做 SFT。然后用 2.2 章的代码自己写训练循环。
  • (2.4/2.5) 在 UltraFeedback 上训练 DPO;与 SimPO 对比。
  • (2.7) 复现一个迷你版 R1-Zero:在 GSM8K 或 countdown 任务上用基于规则的奖励跑 GRPO(TRL GRPOTrainer 或 verl)。绘制训练过程中的奖励、回答长度和熵的曲线。
  • (2.7) 加入 DAPO 的 clip-higher 和动态采样,比较训练稳定性。
  • (2.8) 蒸馏:用一个更大的开源推理模型生成的推理轨迹对 1.5B 模型做 SFT;在数学基准上评估。
  • 以 Hugging Face Open-R1 项目和 Tülu 3 open-instruct 代码作为参考实现。

一本与本部分很搭的免费教材是 Nathan Lambert 的 RLHF Book。