适用读者:要判断"该靠提示词还是靠训练"、要读厂商"我们的模型后训练过"的说法、要设计微调/RL 项目的人。
前置:S21-J14(评估)、J12(完成标准)。
覆盖旧文:A-4574(模型后训练,第 8 章,61,377 字符)→ 40 小节 / 约 6.1 万字符。
扩展点:E-S21-047(四阶段各自的数据与优化目标)、E-S21-048(SFT 记忆 / RL 泛化的机制解释)、E-S21-049(数据与环境比算法更重要)。
上一篇:S21-J14 · Agent 的评估:解剖一条任务,分清 Pass@k 与 Pass^k
下一篇:S21-J16 · Agent 的持续进化(待写)。
1. 一句话结论
掌握 PPO/GRPO 的用法只是入门;真正决定成败的是三件事:Mid-training 语料补齐了底座没有、示范数据建立了行为协议没有、仿真环境与奖励能不能提供可靠反馈。 很多场景下,前两件做到位,你根本不需要做 RL。
出处:《AI Agent 深入理解》第 8 章(
A-4574)。
2. 四阶段:数据、目标、代价(E-S21-047)
| 阶段 | 数据 | 优化目标 | 代价 | 一句话 |
|---|---|---|---|---|
| 预训练 | 海量互联网文本 | 预测下一个词 | 极贵(数千万美元级) | 读完整座图书馆:博学但不听指令 |
| Mid-training / CPT / DAPT / TAPT | 目标语言、领域文档、代码、长上下文、能力数据 | 仍是语言建模 | 中 | 补通用预训练没覆盖好的"教材章节" |
| SFT | 几千到几万条"输入—标准输出" | 极大似然(模仿示范) | 便宜、快、稳 | 老师示范答题与表达规范 |
| RL | 任务 + 环境 + 奖励(参考答案可选) | 最大化期望奖励 | 样本效率低(SFT 的几十到上百倍) | 自己下场做题,按结果打磨 |
判据:"补知识"用 Mid-training,"定格式/流程"用 SFT,"要泛化到新情况"才轮到 RL。 顺序错了,后面都白做。
3. SFT 记忆、RL 泛化:机制解释(E-S21-048)
| 维度 | SFT | RL |
|---|---|---|
| 优化目标 | 最大化标注答案概率 | 最大化期望奖励 |
| 训练信号 | 逐 token 监督 | 轨迹 + 结果级/步骤级标量奖励 |
| 分布形态 | mass-covering(覆盖多个示范模式) | mode-seeking(集中到高奖励峰) |
| 分布漂移下 | 取决于示范覆盖与正则化 | 取决于奖励、环境、探索 |
| 样本效率 | 高(几千条见效) | 低 |
| 稳定性 | 高、收敛快 | 低、易震荡 |
| 最适合 | 固化格式/风格/流程 | 泛化到新场景、探索最优策略 |
原文对照实验的结论(属特定条件下的观测,不是普遍属性):GeneralPoints、V-IRL 同任务同预算下,SFT 对训练答案过拟合(把 J/Q/K 都当 10),RL 更易学到可迁移策略(重新执行计算过程)。数据足够多样、正则化得当时 SFT 也能泛化;奖励或环境有偏时 RL 也会过拟合。
判据:"SFT 记忆、RL 泛化"是倾向,不是定律。 讲这句话时必须带条件。
3.1 后训练还在塑造"何时行动"
Coding 模型常见差异:有的先广泛读仓库再动手,有的少数文件定位完就提交补丁。这不是"性格",是参数里的策略在估计"再读一个文件的预期价值"是否还高于"现在就改并验证"。
SFT 示范反复包含"先调查后编辑" → 行动阈值被推高
RL 的过程/结果奖励持续认可"快速定位、尽早进入验证循环" → 阈值被拉低
重要含义:同一个中性 Harness 换模型,行为阈值会变(原文实验 7-9 测到)。所以"模型不听话"有时根本不是提示词问题——它带着自己的策略。
4. 数据与环境比算法更重要(E-S21-049)
| 该做的事 | 判断标准 | 常见错 |
|---|---|---|
| Mid-training 语料 | 底座是否真的"见过"你的领域与语言 | 直接上 SFT,模型连术语都不认识 |
| 示范数据 | 是否建立了行为协议(格式、流程、停止条件) | 只挑"正确答案",不示范过程 |
| 仿真环境 + 奖励 | 能否提供可靠、便宜、可重复的试错反馈 | 奖励可被钻空子 |
奖励设计的四个问题:
| 问题 | 选项 | 风险 |
|---|---|---|
| 奖励从哪来 | 规则 / 人类偏好 / 模型评判 | 模型评判可被"讨好评委"利用 |
| 何时给 | 结果级 / 步骤级 | 结果级稀疏,步骤级要信用分配 |
| 给多少信息 | 标量 / 向量 / 生成式诊断 | 标量信息少,诊断信息多但贵 |
| 只要结果对吗 | 加路径约束(RLVP) | 只看结果 → 学到危险捷径(如删库通过测试) |
判据:"结果正确还不够"——编码 Agent 若靠删掉测试通过,奖励设计就是失败的。
5. 从单轮到多轮:信用分配
| 挑战 | 说明 | 手段 |
|---|---|---|
| 稀疏奖励 | 一条长轨迹只有一个最终分 | 步骤级奖励、过程奖励模型 |
| 信用分配 | 哪一步该负责 | 从轨迹定位首个错误(接 J14 §5) |
| 环境不可造 | 真实环境太贵/不可控 | 让模型扮演环境(LLM-as-Environment) |
| 评估隔离 | 训练集与评估集混淆 | 环境、任务分布、评估集三者分开管理 |
为什么 LLM RL 常优先 On-Policy:模型要探索自己的动作分布;Off-Policy 数据分布偏差大,长序列上尤其难纠正。
6. 蒸馏:提升样本效率
| 方式 | 做法 | 适用 |
|---|---|---|
| 在轨蒸馏 | 强教师对学生的 rollout 逐步给分布监督,一次 rollout 产生密集信号 | 有更强教师 |
| On-Policy 自蒸馏 | 没有更强教师时,用自身多次采样的好轨迹当监督 | 只有同款模型 |
判据:蒸馏是把"稀疏奖励"变"密集监督"的手段,本质仍是样本效率问题。
7. 三个真实案例(原文「从问题案例到后训练」)
| 案例 | 现象 | 处方 |
|---|---|---|
| Coding Agent 过早结束 | 还没验证就报完成 | 奖励里加"验证通过",或 SFT 示范"必须跑测试" |
| 中文引号 | 编辑工具静默转换导致匹配失败(接 J11 §6) | 先修工具,别急着训练 |
| 编辑文件经常失败 | old_string 不精确 |
工具返回"最接近匹配",或示范精确编辑 |
判据:遇到问题先问"是 Harness 问题还是模型问题"。 工具缺陷用训练去补,是最贵的错。
8. 反例与排障
| 现象 | 根因 | 处理 |
|---|---|---|
| SFT 后只会背答案 | 示范太窄、正则不足 | 加多样性、早停、混入通用数据 |
| RL 后行为退化、语言崩 | KL 约束弱 / 奖励过拟合 | 加 KL、熵正则、检查奖励漏洞 |
| 训练很久没提升 | 底座缺知识 | 回头做 Mid-training |
| 线上表现与训练不一致 | 环境/工具与训练时不同 | 对齐工具与观察格式 |
| 成本失控 | 用 RL 解决格式问题 | 格式用 SFT,别上 RL |
9. 自测
- 四阶段各自解决什么问题?顺序能否颠倒?
- mass-covering 与 mode-seeking 分别对应哪种方法?为什么?
- "SFT 记忆、RL 泛化"成立的条件是什么?
- 遇到中文引号那类失败,第一步该做什么?
答案
- 预训练给通用能力、Mid-training 补领域底座、SFT 定协议、RL 求泛化;顺序基本不能颠倒(底座缺知识时 SFT/RL 都事倍功半)。
- SFT→覆盖式(极大似然覆盖多个示范模式);RL→寻峰式(按奖励集中到高奖励峰)。
- 数据足够多样/正则得当时 SFT 也能泛化;奖励或环境有偏时 RL 也会过拟合。
- 先修工具的参数保真,不要用训练去补工具缺陷。
10. 下一篇
S21-J16 · Agent 的持续进化(待写)—— 从运行轨迹里读学习信号、经验沉淀的四种形态(知识/指令/程序/参数)、睡眠学习与能力保鲜、进化的安全边界(章 9)。
本篇属于系列《S21 · Agent 工程与 MCP》。旧文来源:A-4574(第 8 章);扩展点 E-S21-047/048/049。「SFT 记忆、RL 泛化」为原文特定实验条件下的观测,非普遍属性。