🎛️ 《深入理解 AI Agent》第 8 章

模型后训练 · 从预训练到 RL 的四个阶段
11 个动画场景 · 覆盖 8.1–8.15 · 含 GRPO、奖励设计与在轨蒸馏
📌 数据和环境,比算法更重要

🎯 一张图看懂第 8 章

预训练给知识,SFT 给格式,RL 给泛化
📚
四阶段
预训练 / Mid / SFT / RL
→
📐
SFT 本质
换了数据的「预测下一个词」
→
🎯
RL 算法
16 次 rollout 一次更新
→
⚖️
奖励设计
结果 + 路径 + 诊断
💡 一句话总纲: 后训练不是「教模型知识」,而是把已有的能力调到该用的位置。因此数据和环境的选择,比算法细节更决定成败。

场景 1 · 四阶段像读四种书 8.1

预训练博学、SFT 规整、RL 会做题
四个阶段 · 逐级上升📚预训练预测下一个词数千万美元级🧱Mid-training补知识与基础能力🎓SFT几千~几万条示范学格式与流程🏆RL自己下场试错学泛化与决策
直觉类比:通识教育 → 专业研修 → 老师示范答题 → 自己刷题通关
成本阶梯: 预训练数千万美元级、SFT 几千到几万条示范、RL 一次 step 可能几十分钟。所以「何时该往上一层」是要算账的。

场景 2 · SFT 只是换了教材 8.1.3 重点

SFT 和预训练是同一个任务,只在「回答」上算损失
同一个任务,换个损失口径预训练SFT✓✓✓✓✓✓✓✓✓✓××××✓✓✓✓✓✓被 mask,不算梯度这段产生梯度📐SFT 真正学到格式 · 风格 · 流程 —— 不是事实
SFT 和预训练是同一个任务,只是换了数据、改了损失口径
直接推论: 训练时问题段的 token 被 mask 掉、不产生梯度,只有回答段参与。所以想让模型记住新事实,SFT 不是好工具 —— 那是知识库和检索该干的活。

场景 3 · 给模型贴个小补丁 8.1.3

LoRA 只训 1%–5% 参数,像旁挂适配器
🔒📕原始模型 · 冻住参数量 100%旁挂适配器🗒️LoRA1%–5%1% – 5%只训这么点参数≈ 10×学习率要放大rank 64–256SFT 常档;RL 用 8–32
一台服务器可以同时挂载多个 LoRA —— 多租户微调就是这么做的
为什么便宜: 原模型冻住不变,只学一个小矩阵。代价是「能学到的新东西」也受低秩限制。

场景 4 · 概率太小就推一把 8.1.4

pass@k 测出能力上限,RL 把低概率成功推高
单次尝试 · pass@1 低k 次尝试 · pass@k 高成功率低正确但概率小至少成一次k 次里抽中一次pass@1低pass@k随 k 上升RL 擅长:把低概率成功推高RL 不擅长:凭空造新知识
pass@1 低、但 pass@k 随 k 上升 → 说明正确策略早就在分布里了,只是概率太小
判断该不该上 RL 的方法: 先看 pass@k —— k 次里总有一次对,说明正确策略早就在分布里,RL 值得试,能把这条低概率的路推高、推稳;一次都不对,先补知识。

场景 5 · 换张牌就露馅 8.8 / 8.11 重点

SFT 死记 J=10,RL 会现场重算
🧠 SFT · 背下来♠J= 10记住答案111213✗✗✗换数字 → 直接傻眼🏆 RL · 现场重算🧮现场算111213✓✓✓换数字照样对11.5% → 3.4%规则 OOD 下降(−8.1%)11.5% → 15.0%规则 OOD 上升(+3.5%)
「SFT 记忆,RL 泛化」—— 这是受控实验里的观察,不是普适规律
这就是为什么 Agent 要 RL: SFT 见过 J / Q / K = 10,就把「10」记死;真实世界的输入永远在变,死记的规则一定会遇到没见过的牌。RL 在视觉 OOD 上甚至提升 +17.6%。

场景 6 · 一万局 vs 第一局 8.2 重点

无先验的 Q-learning 要万次试错,LLM 第一局就通关
🎲 表格 Q-learning10000 局蒙眼撞墙 · 约 10 秒/局🗺️ LLM Agent第 1 局通关🏁先验 = 随身地图先验 > 环境 > 算法
悖论:现实交互很贵,所以 先验 > 环境 > 算法 —— 有先验就不必从零试错
经典 RL 与现代 Agent 的分水岭: 语言模型自带先验,所以「从零试错」这件事在很大程度上被绕过了。

场景 7 · 十六个平行沙箱 8.9 重点

GRPO 对同一任务跑 16 次,比组内好坏再更新
同一任务并行 16 次✓✓✓✓✗✗✗✗✗✗✗✗✗✗✗✗16同一任务并行跑4 过 12 败组内相对好坏2600 秒一次 step ≈ 43 分钟≈ 72 小时100 步的总耗时
GRPO:不看绝对分数,只看组内相对好坏 —— 所以不再需要额外的价值网络
为什么是 16: 太少则组内比较噪声大,太多则一次 step 的时间成本受不了。这是个纯工程权衡 —— 16 次里 4 条正优势、12 条负优势。

场景 8 · 同步了却偷偷漂移 8.9.1

训练-推理数值差把 on-policy 悄悄变成 off-policy
本该 ρ = 1 的 on-policy采样 · 旧参数训练 · 新参数缝隙里的误差虫🐛ρ ≠ 1⚠️10⁻³ 的小误差每个 token 的 log 概率偏差e⁴ ≈ 54.6轨迹比率累积到这么大
微小的 log 概率误差 → 概率比偏差 → 梯度崩溃
基础设施为什么重要: 采样与训练两个引擎的数值一致性,直接决定 RL 能不能训得动。4000 个 token 若每个都偏 10⁻³,轨迹比率会累积到 e⁴ ≈ 54.6。

场景 9 · 搭个影子世界练 8.10

造不出真环境?让模型扮演环境
🚧真实世界🎭演员模型📉加噪课程🧑‍🔧真人校准有副作用 · 有限速不能直接拿来训由模型发反馈顶替真实环境ZeroSearch逐步掺入噪声防止影子世界跑偏真人偶尔校准造不出环境,就让模型扮演环境
造不出环境就让模型扮演环境 —— DreamGym 把环境动态蒸馏成「经验模型」,τ-bench 用模型扮用户
呼应第 7 章: 评估环境和 RL 环境是同一套东西的两个用途 —— 先能评,才谈得上训。

场景 10 · +10 分该谢哪一步 8.11

多轮任务里,延迟奖励的信用分配很难
该谢哪一步?12345🏁+10步骤 1步骤 2步骤 3步骤 4步骤 5终点犯错纠正 ← 最关键17.3% → 91.7%只给终点奖励也能大涨
单轮奖励只告诉你「总共 +10」;多轮必须回答「该谢哪一步」 —— 这就是信用分配
多轮 RL 的核心难题: 奖励出现得越晚,越难归因到具体动作。这也是第 9 章「从轨迹中获得学习信号」的起点。

场景 11 · 走捷径也要扣分 8.12.4

RLVP 既奖励结果,也惩罚坏路径
✅O做对了没+🛤️Φ每步过程分=⚖️R总奖励R = O + βΦ3.71 → 0.66TerminalBench 违规率7.0 → 4.4达到 0.9 成功率所需迭代坏路径要扣分,别只看结果
「改测试文件让它通过」这类捷径,必须被路径信号扣掉 —— 结果正确还不够
奖励设计的通病: 你奖励什么,就会得到什么(包括你没想到的作弊方式)。所以结果分之外,还要给路径打分。