视频加载失败

《AI Agents in Depth》学习笔记(七):模型后训练

15969 字
80 分钟
《AI Agents in Depth》学习笔记(七):模型后训练

本书核心公式是 Agent = LLM + 上下文 + 工具,本章聚焦优化”LLM 大脑”本身:通过**后训练(Post-training)**真正改动模型权重,把能力沉淀进参数,让模型更好地利用上下文与工具。它建立在第六章的两块基石之上——评估环境为训练提供练习场,评估指标为训练定义目标——并面向零 RL 背景的读者,讲清模型能力在哪些阶段形成、每一步在做什么、各阶段如何组合、顺序何时可以不同,以及自己的项目该在哪一步下功夫。本章是全书最长的章节之一,也是工程经验最密集的一章:Agent 应用开发者可跳过两节”可选阅读”,重点看 SFT/RL 的决策框架;训练工程师则应顺序通读。

贯穿全章的两条主线
  1. 主线一:“SFT 记忆,RL 泛化”。 在 GeneralPoints 与 V-IRL 的同任务、同模型、同预算对照中,SFT 对训练答案过拟合,RL 在分布变化下学到可迁移策略。这是特定实验条件下的结果而非普遍属性:数据足够多样时 SFT 也能泛化,奖励或环境有偏时 RL 也会过拟合。
  2. 主线二:数据和环境,比算法更重要。 现成 RL 算法(PPO、GRPO 等)会用、能选对就够,真正决定成败的是仿真环境的保真度与训练数据的质量。很多场景下只要 SFT 数据质量到位,根本不需要做 RL。

7.1 预训练、SFT、RL:三阶段全景#

三阶段的直觉类比:预训练是”读万卷书”(积累知识),SFT 是”老师手把手教标准解法”(模仿示范),RL 是”自己下场做题、根据对错反复打磨”(试错提升)。“预训练 → SFT → RL”是常见配方但非唯一顺序:强基础模型可直接做 RL,只需稳定格式的任务可能只做 SFT。

表 7-1 模型能力炼成的三个阶段:

阶段用什么数据优化目标学到什么典型代价
预训练海量原始互联网文本预测下一个词语言规律、世界知识、基本推理极高(数百万~数千万美元)
SFT几千~几万条”输入—输出”示范对预测下一个词(只在回答上算损失)指令遵循、输出格式、风格、流程协议低(几小时~几天)
RL任务、环境 + 奖励信号(参考答案可选)最大化期望奖励可迁移的决策策略、探索出的新解法高(常是 SFT 的几十~上百倍)

7.1.1 预训练在做什么:预测下一个词#

现代大模型的全部”智能”都建立在**预测下一个词(Next Token Prediction, NTP)**上:给模型看前文、猜下一个 token,预测与真实的差距即损失(Loss),在几万亿 token 上反复调整参数。要持续猜对,没有捷径,只能真正”消化”语法、事实与逻辑。

一个贯穿全章的关键点:模型的输出本质上是一个概率分布。所谓训练,归根结底就是调整这个分布——让想要的 token 概率更高。三个阶段的区别只在”想要什么”,以及”用什么信号定义想要”。预训练后的模型博学却不好用:问它问题它可能续写出更多问题——它还没学会”被提问时应该回答”这个协议。

7.1.2 SFT 的本质:换了数据的”预测下一个词”#

SFT 与预训练是同一个损失

SFT 在数学上与预训练是同一任务——预测下一个词、最小化同一损失函数。差别只有两点:① 数据不同:换成人工准备的”用户提问 → 理想回答”示范对;② 损失屏蔽(loss masking):只对回答部分的 token 回传梯度,问题部分不算损失——这是 SFT 在工程上与预训练唯一实质性的区别。

由此能看出 SFT 的记忆倾向从何而来:它的优化目标是让标注回答里每个 token 概率尽可能高,即复现示范。一句话概括其本质:用极高的样本效率,把一套稳定的”输入→输出”映射与协议固化进参数。 它固化的是”格式、风格、流程”这类协议性知识(该怎么说、怎么做),而非大量事实性知识(知道什么)——后者要靠预训练或 RAG。

LoRA:贯穿后训练的工程默认项

LoRA(Low-Rank Adaptation,低秩适配)冻结原始大权重,只在旁边训练一个低秩”补丁”,参数量仅为原始的 1%–5%,效果接近全参微调,且对基座能力扰动更小、灾难性遗忘风险更低。经过验证的实践经验:必须把 LoRA 应用到所有主要权重矩阵(尤其参数占比最大的 MLP 层),只加注意力层会掉点;最优学习率约是全参微调的 10 倍(SFT、RL 都成立);SFT 用中高 rank(64–256),RL 每轮信息量小、用小 rank(8–32 甚至 rank=1)即可。

7.1.3 什么时候需要先 SFT 后 RL:“先形后神”#

RL 不直接模仿参考回答,而是用奖励评估模型自己生成的回答;可要打分,首先得能把输出解析出来。若任务要求 JSON 或工具调用而模型吐出一团乱文本,奖励函数连成败都判定不了,RL 无从学起。所以 SFT 先扮演”把话说利索”的角色:立住””(格式、结构),RL 再追求””(策略、泛化)——先形后神,这是业界稳健的”先 SFT 后 RL”两阶段范式。

“必须先 SFT”是有边界的结论

它成立于”较小基础模型 + 严格结构化输出”的设定(实验 7-11 中 Llama-3.2-Vision-11B 不经 SFT 直接 RL 完全失败)。DeepSeek-R1-Zero 证明足够强的基模可以跳过 SFT 直接 RL 成功,自行涌现反思与长链思考——但代价是输出可读性差、中英文混杂,所以 DeepSeek 最终仍在 R1 中加回”冷启动 SFT”把”形”重新立稳。R1 从 Zero 到冷启动的往返,正是”先形后神”的最好注脚。

7.1.4 SFT 与 RL 的本质区别(本章最重要的一张表)#

两者倾向差异的根源在优化目标:SFT 用极大似然最大化标注回答的概率(示范缺乏多样性时会对表面模式过拟合,如 GeneralPoints 把 J/Q/K 都当 10);RL 最大化期望奖励(奖励忠实、探索充分时可能发现示范中没有的可迁移策略,如”重新执行计算而非套用固定值”)。

表 7-2 SFT 与 RL 的本质对比:

维度SFT(监督微调)RL(强化学习)
优化目标最大化标注答案的概率(极大似然),逐 token 监督最大化期望奖励(结果级或步骤级标量)
分布漂移下取决于示范覆盖与正则化;本章有限示范实验出现过拟合取决于奖励、环境和探索;本章实验中迁移更好
样本效率高(几千条见效)低(常是 SFT 的几十~上百倍)
训练稳定性高、收敛快低、易震荡,需要小心调
最适合固化格式/风格/流程、有高质量示范、环境稳定需泛化到新场景、探索最优策略、标注成本过高

更深一层的机制是 mode-seeking(寻峰):极大似然 SFT 可能表现出 **mass-covering(覆盖式)**倾向,把概率分配给示范中的多个模式;反向 KL 约束的策略优化则可能把概率集中到少数高奖励模式。具体行为取决于数据、奖励、KL 方向与系数,不是两者不变的固有属性。

后训练还塑造模型”何时行动”。 GPT 系与 Claude 系 Coding 模型常表现出不同的默认行动阈值(先多读仓库 vs 先实现再靠测试修正)——不是拟人化,而是参数中的策略在估计”多读一个文件 vs 提交补丁验证”的预期价值:SFT 示范反复包含广泛调查的轨迹就学出高行动阈值,RL 持续奖励尽早进入可验证循环则向较早行动集中(第六章实验 6-7 在中性 Harness 中换模实测到该差异)。

在线反馈给了模型探索示范之外策略的三个机会:① 评估固定示范之外的候选(实验 7-13 的”推切”动作从未出现在人类示范中,但奖励识别不了的质量学不到);② 利用”验证比生成容易”的任务——SFT 需先写出正确答案,RL 只需可靠判断质量(数学可对照、代码可测试),这种不对称是 RLVR 的优势,但验证器不完整时会导致奖励黑客;③ 在当前策略实际访问的状态上训练——离线模仿存在协变量漂移(covariate shift),策略走进示范外状态后缺少恢复信号,特定设置下误差最坏随轨迹长度按 T² 累积,在线数据聚合可降到约 T。

比喻:SFT 细致学习已有地图,RL 拿着奖励这枚指南针探索地图外的候选路线——地图或指南针不准都会迷路。

7.2 从经典 RL Agent 到现代 Agent [可选阅读]#

7.2.1 Agent 与环境的交互#

强化学习(Reinforcement Learning, RL)的核心是学习根据情境选择动作以最大化累积奖励(Cumulative Reward):Agent 每步观察状态、输出动作,环境给出奖励并转移到新状态(图 7-1 的标准 RL 循环),交互产生轨迹价值函数(Value Function)估计”从这个状态按当前策略走下去总共能拿多少奖励”。边界原则:凡是 Agent 无法任意改变的,都属于环境。RL 区别于监督/无监督学习的两个特征是试错搜索延迟奖励,由此带来探索与利用权衡(Exploration-Exploitation Tradeoff);五个核心要素:动作空间、策略、奖励信号(目标是长期而非即时奖励)、价值函数、环境模型(可选,区分基于模型/无模型方法)。

表 7-3 对比各类 Agent 系统(小羚羊、扫地机器人、棋手、客服/代码 Agent)的关键洞察在动作空间:棋类/Atari 用预定义有限离散动作,机器人用有界连续动作,而 LLM Agent 用有限 token 与工具调用组合出变长组合式动作序列——难以枚举,且可以利用”内部思考”提升行动质量。

7.2.2 两种动作表示:经典 RL 设置与 LLM 的变长策略#

MDP(Markov Decision Process,马尔可夫决策过程)是 RL 的数学框架,核心假设是马尔可夫性质:未来只取决于当前状态,而状态必须包含决策所需的全部历史信息。最基础的算法 Q-learning 为每个”状态-动作”维护价值估计,其核心递归关系即贝尔曼方程(Bellman equation):一个动作的真实价值 = 即时奖励 r + 折扣因子 γ × 下一状态的最大未来价值(γ 越接近 1 越重视长期回报);“用一步实际结果修正旧估计”的范式叫时序差分学习(TD learning);Q-learning 属于**离轨策略(Off-Policy)**方法。

实验 7-1(Q-learning 寻宝游戏):隐藏机制 + 多步依赖 + 稀疏奖励,ε-贪婪探索下 7000–8000 episodes 胜率才从 34% 升到 96%,10000 episodes 达 100% 并找到 11 步最优解。训练总耗时不到 10 秒,却需近万次完整试错——仿真里代价微乎其微,真实世界完全不可接受;且表格值不可迁移、新任务从零探索。

基于预训练 LLM 策略的 Agent:最关键的实用创新是把思考 token 作为特殊动作纳入策略输出空间。变长组合式动作搜索空间巨大,没有先验几乎无法从零学起;LLM 从预训练学到的人类问题解决模式构成策略的先验分布(prior),显著压缩搜索空间——即使没有 RL 也能生成基本的思维链(Chain of Thought, CoT),RL 后训练再用真实任务奖励重新调整各条路径的概率。

OpenAI 的探索之路(姚顺雨《The Second Half》)三阶段:算法中心主义(2015–2016)→ 环境的重要性(2016–2018,Gym/Universe/Dota 2)→ 先验的觉醒(2018 至今,GPT-2/3、WebGPT、ChatGPT)。最重要的发现:先验知识可以通过与 RL 完全无关的方式获得——几十年 RL 研究的优先级可能完全颠倒,真实排序是先验 > 环境 > 算法

实验 7-2(对比研究):同一寻宝游戏,LLM Agent(Kimi K3)第一局就在 18 步内通关——语义理解与符号统计的根本差异。Q-learning 跑 10000 局仅 10 秒、LLM 一局 1–2 分钟,但现实任务中交互成本远超计算成本,且规则变化时 Q-learning 需完全重训、LLM 可推理直接适应。设计原则:仿真便宜可大量重复 → 传统 RL 仍有价值;交互贵、需快速适应 → LLM Agent 更实际。

7.3 模型预训练基础 [可选阅读]#

语言模型训练遵循”tokenization — 预训练 — 后训练”三阶段流程。后训练本质是在预训练建立的表征空间内优化——预训练奠定的知识结构决定后训练的天花板。三个辅助实验:

  • 实验 7-3(从头训练 LLM):MiniMind 2(一亿参数)在消费级 GPU 上完成完整训练,引入 QK Norm 与 Muon 优化器后收敛提速 3 倍;总训练约 14 小时、成本约 34 美元。启示:固定小预算下,算法改进比单纯堆规模更具性价比
  • 实验 7-4(自己训练 VLM):架构 = 视觉编码器(CLIP,冻结)+ 投影层(唯一从头训练的”翻译官”)+ 语言模型。先冻结 LLM 只训投影层做跨模态对齐(避免灾难性遗忘,Catastrophic Forgetting),再解冻 LLM 用高质量图文对做 SFT。该骨架再向前一步让模型输出动作,就是第九章的 VLA 模型。
  • 实验 7-5(继续预训练学新语言):Mistral 7B v0.3 + 韩语维基百科继续预训练,关键工程点是混合数据(约 80% 韩语 + 20% 英语)缓解灾难性遗忘,最后用韩语指令数据 SFT。结论供后文引用:让模型记住大量新领域知识,靠继续预训练而非 SFT

共同规律:预训练赋予的是描述性知识与语言建模能力,缺乏结构化指令遵循与任务导向行为——这正是 SFT 要填补的空白。

7.4 SFT(监督微调):四个实验看”固化协议”#

SFT 的核心价值不在注入新知识,而在固化协议:把映射关系、交互格式、风格规范写入参数,使推理时无需冗长提示即可产出合规输出。通常数千到数万条高质量样例即可见效。

SFT 数据从哪来? 工业界基本三条路:人工专家示范(质量天花板最高,贵且慢,适合做定义格式风格的种子数据)、教师模型生成(合成数据,强模型批量产出后过滤蒸馏)、模型自举(自己采样多条候选、验证器筛出正确样本再训自己,即拒绝采样微调)。三条路常组合:人工种子立格式 → 教师放大规模 → 拒绝采样拉齐质量。量级不必贪多——与其堆十万条脏数据,不如精修一万条干净数据:数据里的每一处噪声,SFT 都会忠实写进参数

  • 实验 7-6(语音 SFT):Orpheus 拼接同一说话者参考音频实现 voice cloning,Sesame 把笑声、叹气抽象为 <laugh><sigh>副语言标记——固化的是风格控制协议。失败模式:说话者过少”千人一腔”、标记过拟合(Overfitting)产生”机械笑”。
  • 实验 7-7(多语言思考):对 gpt-oss-20b 做 SFT,系统指令加 reasoning language: X,用英/西/法等语言的思考样例训练。训练数据完全没有中文,但设为 Chinese 后模型能用中文完整思考——零样本跨语言泛化。注意这并非 SFT 本身的泛化能力:多语言预训练已建立跨语言共享表征,SFT 只是激活它。
  • 实验 7-8(Prompt 蒸馏):把”长提示 + 思考型教师”的行为压缩进”短提示/无提示 + 非思考学生”,训练数据只留用户输入与最终结论。两个蒸馏维度可叠加:“大到小”与”思考到非思考”(后者可获 20–30 倍响应速度)。代价:继承教师边界、硬编码长尾错误、失去教师依赖工具的鲁棒性。适用于产品形态稳定、成本敏感的阶段;探索期仍应保留显式思考与可编辑提示。
  • 实验 7-9(CoT 蒸馏):把强教师的完整思考轨迹转移给学生,同参数量下可恢复教师 70%–80% 能力——求自主可控团队的最务实跟随策略(DeepSeek-R1 同步开源的蒸馏小模型即此路线)。因”思维围墙”(闭源思考模型对外隐藏/改写原始 CoT)而选公开完整思维链的开源教师;实操判断:教师只需”明显高于学生”,不需要”全球第一”,后训练 200B 以下模型用开源 SOTA 教师完全够。流程:采集轨迹并用规则验证器过滤掉答案错误者——这种”生成候选—验证过滤—只留正确”即拒绝采样(Rejection Sampling),用其构造数据做 SFT 即拒绝采样微调(RFT),介于 SFT 与 RL 之间、可验证任务上性价比极高——再以”问题 → <think> 轨迹 + 答案”做 SFT 并对比评估。插曲:Codex 与 Claude Code 都拒绝编写蒸馏实验代码(蒸馏在厂商安全策略中是敏感类别),最终用 Kimi K3 完成。

共同特征:语音 SFT 固化风格协议、多语言 SFT 固化思考组织模板、蒸馏 SFT 固化输入到输出的直接映射——目标越明确、格式越清晰、评估越稳定,SFT 样本效率越高

7.5 何时选择 SFT,何时选择 RL#

SFT 适用:格式固化、拥有高质量专家示范、训练与部署环境高度一致。可考虑 RL:部署分布与训练分布存在系统性差异且能构造可靠奖励、需要探索最优策略(专家示范未必最优)、标注成本高到无法为每条路径提供示范。

实际决策顺序:

  1. 先问:需要后训练吗? Harness 工程(prompt、工具设计、上下文管理)能解决就不训模型——大多数 Agent 应用落在这里。
  2. 需要训练:先试 SFT。 固化输出格式、协议性知识、统一风格;但 SFT 不适合注入大量事实性知识——那需要继续预训练或 RAG。成本低、见效快。
  3. SFT 不够时:加 RL。 需泛化到新场景、探索最优策略、标注过贵。输出格式不稳时先用 SFT 或约束解码稳定格式再上 RL;强基模已满足格式要求也可直接 RL。

7.6 单轮强化学习:记忆与泛化的对照#

“单轮”指一次交互完成任务,提供了聚焦学习机制差异的干净对照条件。先建立 RL 算法最小直觉:本章 RL 大多基于策略梯度——同一问题多生成几条回答,奖励高的提高概率、低的降低。PPO 在概率比超出区间时裁掉代理目标的额外收益以抑制大幅更新(配价值网络估计基线);GRPO 不训价值网络,用”同一问题多条回答互相比较”判断相对好坏。

实验 7-10(AdaptThink:学会”何时不思考”):思考模型对所有问题都生成冗长思维链,但 NoThinking 模式<think></think> 直接跳过)在简单题上性能相当甚至更好。AdaptThink 用 RL 训练模型自适应选择模式,两个组件:约束优化目标(保证整体性能不降的前提下鼓励 NoThinking)+ 重要性采样(加权纠正采样分布偏斜,解决初期几乎只出 Thinking 的冷启动问题)。8×H100 训练 step 0→300:MATH500 +0.80pp、响应长度 -67.9%;GSM8K +2.20pp、-53.4%;AIME mean@16 -0.42pp、-47.2%;NoThinking 比例 83.8%/84.2%/56.3%——数据集层面存在与难度一致的路由信号(该运行 step 410 后 crashed、原计划未完成,本书如实记录)。与 Prompt 蒸馏互补形成”快-慢双系统”。

实验 7-11(GeneralPoints:单轮”记忆与泛化”对照):出自 Chu 等人 2025《SFT Memorizes, RL Generalizes》。类”24 点”卡牌任务,纯文本 GP-L 与视觉 GP-VL 两变体;规则变体训练时 J/Q/K=10、测试时 =11/12/13,视觉变体训练黑花色、测试红花色。基于 Llama-3.2-Vision-11B,先 SFT 初始化,再在相同预算下分别扩展 SFT 与 RL(带价值网络的 PPO)。结果:规则 OOD 下 GP-L 上 RL +3.5%(11.5%→15.0%)、SFT 下降 8.1%(→3.4%),GP-VL 上 RL +3.0%、SFT -5.6%;视觉 OOD 下 GP-VL 上 RL +17.6%(23.6%→41.2%)、SFT -9.9%。机制追踪:RL 的结果导向优化改善了底层视觉编码器,SFT 过拟合思考 token 模式、视觉识别反而下降。另两个发现:未经 SFT 直接 RL 完全失败(无结构化输出、奖励无法计算);验证迭代越多泛化越好(10 次 +5.99% vs 1 次 +0.48%,测试时计算量是重要因素)。解释:有限 SFT 数据固化”J/Q/K 当 10 用”;RL 强化”重新计算直到正确”,J 变 11 时仍适用。

7.7 RLHF:从人类偏好到奖励模型#

前面实验的前提是任务可验证;而部署的对话模型”像一个得体、安全的助手”,靠的是 RLHF(Reinforcement Learning from Human Feedback,基于人类反馈的强化学习)。InstructGPT 三段式管线

  1. SFT:人工示范微调,建立指令遵循。
  2. 训练奖励模型(Reward Model, RM):同一提示生成多个回答,标注员两两比较(比较比绝对打分可靠得多),用 Bradley-Terry 目标训练打分模型——损失 −log σ(r(x, y_w) − r(x, y_l)),即让 RM 给被偏好回答 y_w 打分高于被拒回答 y_l。
  3. 用 RM 打分做 PPO:让模型学会生成 RM 认为”人类会更喜欢”的回答。

“奖励模型”是本章一条暗线——它的各种变体(ORM、PRM、生成式 RM,以及退化成确定性代码的规则验证器)回答的都是同一个问题:奖励从哪来

KL 惩罚:别离出发点太远。 RLHF 实际优化的奖励通常是:

r=rRMβKL(πθπref)r = r_{RM} - \beta \cdot \mathrm{KL}\big(\pi_\theta \,\|\, \pi_{ref}\big)

要点四则:① KL 散度(Kullback-Leibler Divergence)衡量两个分布的差异(相同为 0),这里比较当前策略 π_θ 与参考策略 π_ref(训练起点,通常是 SFT 模型),β 即 kl_coef,实际在每个采样 token 上算对数概率比并从奖励中扣除;② 方向是当前策略在前的反向 KL(reverse KL),直接抑制追逐奖励的策略跑离起点,也可能带来 mode-seeking 倾向(实际多样性取决于 RM、KL 系数、采样等多因素);③ 不加会怎样——RM 只在参考策略附近的分布上可信,被优化到没见过的分布后高分不再等于高质量;④ 因此 KL 同时防 reward hacking(钻奖励漏洞刷分)与分布崩塌(输出退化成重复/乱码),即便 RLVR 中也常被保留。

奖励模型会被”过度优化”:RM 终究是人类偏好的代理指标。Goodhart 定律——指标一旦成为优化目标就不再是好指标。OpenAI 实测:随 RL 推进,代理奖励(RM 分数)单调上升而真实质量(人类评估)先升后降——模型学会的不是”更好地回答”而是”让 RM 打高分”(冗长、讨好、貌似严谨的空话)。缓解手段:KL 惩罚 + 早停。

DPO(Direct Preference Optimization,直接偏好优化):既然”RM + PPO”的最终效果是”提高被偏好回答概率、压低被拒绝回答概率、不离参考模型太远”,不如跳过显式 RM,把偏好对直接变成带隐式奖励的分类损失(数学上等价于带 KL 约束的离线偏好优化)。训练像 SFT 一样简单:无需在线采样、价值网络、独立 RM。代价:完全离线,无法探索偏好数据之外的行为,天花板由偏好数据质量与覆盖决定。

RLHF 与 RLVR 的关系:差别在奖励从哪来——RLHF 来自学习到的 RM(背后是人类偏好),RLVR(Reinforcement Learning with Verifiable Rewards,可验证奖励强化学习)来自规则验证器。两者不是取舍而是叠加:RLHF 负责对话质量与安全对齐,RLVR 负责推理与 Agent 能力。

7.8 强化学习算法比较#

先说最重要的话:这些算法早已封装进 veRL、TRL 等成熟框架,调用通常只是改几行配置——本节目标不是会推导,而是建立”什么场景用什么算法”的选择地图。

volcengine
/
verl
Repository details unavailable
Unavailable

严格术语:**在轨策略(On-Policy)**只用当前策略自己新采样的数据更新自己;**离轨策略(Off-Policy)**可用其他(或旧版本)策略的数据学习。对齐本章方法:SFT 是离轨的模仿学习;PPO、GRPO 用于 LLM 训练的标准形式是在轨的(每轮用当前模型新采样的 rollout 更新);DPO 是离线偏好优化。

大多算法建立在策略梯度(Policy Gradient)上:朝”能提高期望回报的方向”调整策略参数。最基本形式 REINFORCE 直接用整条轨迹的回报 G 给 log 概率梯度加权——无偏但方差大,于是引入基线 b,改用优势(Advantage) Â=G−b(这个动作比平均水平好多少)来降方差。PPO 与 GRPO 本质上是”如何稳定地估计并使用优势”的两类改进。

PPO 用裁剪抑制大的策略变化(不是硬约束):

LCLIP(θ)=E[min(ρA^, clip(ρ,1ϵ,1+ϵ)A^)],ρ=πθ(as)πθold(as)L^{CLIP}(\theta) = \mathbb{E}\Big[\min\big(\rho\,\hat{A},\ \mathrm{clip}(\rho,\, 1-\epsilon,\, 1+\epsilon)\,\hat{A}\big)\Big],\quad \rho = \frac{\pi_\theta(a\mid s)}{\pi_{\theta_{old}}(a\mid s)}

GRPO 省去价值网络,对同一问题采样 N 条轨迹,用组内相对表现作优势(实际训练通常还要加 per-token KL 惩罚):

A^i=rimean(r1,,rN)std(r1,,rN)\hat{A}_i = \frac{r_i - \mathrm{mean}(r_1,\dots,r_N)}{\mathrm{std}(r_1,\dots,r_N)}

表 7-4 后训练与推理时优化方法对比:

方法类型核心思路优势劣势适用场景
REINFORCE在线 RL用整条轨迹最终奖励更新策略实现简单方差大、不稳定理论基准;带基线变体(RLOO 等)是主流之一,GRPO 即带组内基线的 REINFORCE
PPO在线 RL裁剪概率比区间外的代理目标收益稳定,价值网络提供更细粒度信用分配需额外训练/存储价值网络,超参敏感多轮 Agent、长轨迹信用分配
GRPO在线 RL同一问题采样多条,组内相对比较无需价值网络,成本低优势按整条回复均摊,信用分配粗糙单轮/短轨迹、奖励区分度好的场景
DPO离线偏好优化偏好对直接变成带隐式奖励的分类损失极简高效,不需在线采样无法探索新策略,受限于偏好数据已有高质量偏好数据
KTO离线偏好优化仅需单样本”好/坏”标签标注成本极低信号粗糙标注资源极有限
Best-of-N推理时方法生成 N 个输出选最优不改模型,实施简单推理成本成倍增加,能力不沉淀进参数早期快速提升,为 RL 提供收益上界估计

阅读时注意区分两件常被混淆的事:奖励从哪来(规则验证器/奖励模型/人类偏好)与用什么算法优化——PPO、GRPO 对奖励来源并不挑剔,真正差异在优势估计方式(价值网络 vs 组内相对基线)。本章实验算法对照:GeneralPoints 与 V-IRL 用带价值网络的 PPO;AdaptThink 用自定义约束优化 + 重要性采样;ReTool 用基于 veRL 改造的 PPO;SimpleVLA-RL 与 RLVP 基于 GRPO。选择路径:可靠奖励 + 算力 → GRPO(简洁)或 PPO(长轨迹更细);高质量偏好数据 → DPO/KTO;早期探索 → Best-of-N。

7.9 数据与环境:比算法更重要的事#

本章主线二的正面陈述:算法的重要性远不及三个更基础的要素——仿真环境的保真度、训练数据的质量、基础模型的能力。呼应 OpenAI 的认知反转:先验(基础模型)> 环境 > 算法。

7.9.1 环境:模型练习的场地#

  • 环境失真,策略必废:仿真里客服总按固定套路回话、错误信息与生产对不上,模型学到的就是只在仿真里管用的”应试策略”——RL 项目最常见的翻车方式不是算法不行,是练习场跟考场不是一回事。
  • 构建高保真环境常比训练本身更贵更难:真实 API 有速率限制、会封号、有副作用,没法直接拿来训练,必须先造稳定可控可重放的”影子世界”(AWorld 的 MCP 沙盒、ReTool 的代码解释器沙盒)。
  • 环境的另一半是奖励函数:环境既要模拟”世界怎么变”,还要能判定”做得好不好”。

7.9.2 造不出环境怎么办:让模型扮演环境#

很多场景高保真环境不是贵而是根本造不出来。主流思路:用 LLM 扮演环境,两个层次:

  1. 模型合成工具返回值:ZeroSearch 用 LLM 扮演搜索引擎,配课程式设计——初期返回高质量强相关文档,逐步掺入噪声,逼学生学会在不完美返回中提取信息;全程没见过真实搜索引擎,直接对接真实搜索依然表现良好。
  2. 模型仿真整个环境动态:DreamGym 把环境动态蒸馏进推理式”经验模型”,给定状态与动作逐步推理出状态转移与反馈,批量合成 rollout 做在线 RL。客服/销售 Agent 训练普遍用 LLM 扮演用户(用户模拟器),τ-bench 系列评测同理——同一个模拟器既当考场也当练习场。
模拟器的偏差就是训练的天花板

模拟器的世界知识就是训练的上限,其系统性偏差会被策略照单全收:模拟客服比真实用户更有耐心、模拟搜索从不返回垃圾,学生学到的就只在”模型扮演的世界”里成立。更糟的是 RL 会主动寻找并利用模拟器漏洞做 reward hacking。工程上的稳妥做法是混合:模型模拟承担大部分交互量,辅以真实环境交互并定期校准模拟器偏差。

7.9.3 数据:最关键的一环,且质量胜过一切#

数据质量胜过算法

SFT 会一字不差地把数据里的噪声与偏见固化进参数;RL 会朝有偏差的奖励拼命优化、把错误方向越走越远(reward hacking 的温床)。Garbage in, garbage out。更省钱的判断:很多场景下,只要 SFT 的数据质量到位,你根本不需要做 RL——RL 又贵又不稳定(常是 SFT 的几十到上百倍成本),真正不可替代的场景是有限的。先把 SFT 数据做好,再判断到底需不需要 RL。

行业例证:Anthropic 在 2025 年之前的后训练配方主要是海量高质量数据 SFT + RLAIF(Constitutional AI 中”基于 AI 反馈的强化学习”,用一部”宪法”引导模型自我打分对齐),并不怎么依赖 RLVR,但当时的 Coding 模型已非常出色——把两块数据质量做到极致即可。当然 2025 年以来其也明显加大 RL 投入:数据决定你能到哪,RL 决定你还能再高多少。

数据质量三维度:覆盖面(部署时的长尾与边界情况)、多样性(说话者、风格、解法,否则塌缩到单一模式)、标注准确性(错误的思考过程会被学生一并模仿)。

落到操作层面,拒绝采样是把”标注准确性”拉满的标准动作:每条提示采样 k 条候选(实践中 k 常取 4–16)→ 规则验证器/单元测试/参考答案判对错(无自动验证器则用奖励模型或强模型打分)→ 只留通过者,去重、限制同一提示保留条数防止向少数简单题塌缩 → 做一轮 SFT;模型变强后重新采样再筛,如此迭代——STaR、RFT 一类自举方法的核心循环。它不需要新算法,只需要一个可靠验证器和足够的采样预算。

更进一步可以让 Agent 改变题目分布本身:Autodata 的 Agentic Self-Instruct 让主 Agent 协调 challenger(出题)、弱/强求解器(尝试)、verifier(判质量并反馈出题),寻找”强模型能解决、弱模型仍困难、评价器可可靠判断”的任务,把推理算力转化为位于能力前沿的新训练数据。这与只改预算分配的动态采样不同——它改变任务分布;但仍属前沿探索,不是成熟通用配方。

7.9.4 那什么时候才轮到算法?#

合理用力顺序:先选强基础模型 → 再把环境和数据打磨到位 → 最后才在算法和超参上做边际优化。环境够真、数据够好、基模够强时,算法差异才会显现;反之先卷算法是南辕北辙。

7.10 从单轮到多轮:信用分配与奖励设计#

7.10.1 多轮任务的核心挑战#

从单轮到多轮是质的跃迁:延迟奖励下需要信用分配(Credit Assignment)——客服 Agent 用 10 轮对话拿到好评,该归功于第 2 轮的精准提问还是第 7 轮的耐心解释?还引入部分可观测性(须由历史观测构建隐含状态表征)与长距离依赖(早期的子目标设定、工具选择数十步后才显现影响)。多轮交互的物理形态正是 ReAct 循环——每轮一次”思考 → 行动 → 观察”。

7.10.2 奖励信号的密度与范式#

奖励设计两个维度:密度(多久给一次反馈:二元/稀疏/过程)与表示形式(标量/向量/生成式)。

评估环境可改造成训练环境,但训练数据与评估数据必须隔离:SWE-bench → SWE-Gym(问题为输入、patch 为监督、测试用例为奖励),但 OpenAI 人工筛选的 SWE-Bench Verified 500 题评估子集一旦混入训练集,评估就失去意义;τ²-bench 的完整轨迹(对话、工具调用、状态变化)可作模仿学习的正负样本;AndroidWorld 的参数化模板可批量生成变体,天然支持课程学习。

二元奖励(成功=1,失败=0)对有明确对错的任务(数学、SQL)足够好。稀疏奖励的困境在开放任务上暴露:Pine AI 打电话帮用户改 Xfinity 套餐,忘收账号、忘信用卡后四位、漏账单地址……上百次尝试才偶然成功。Silver 与 Sutton《Welcome to the Era of Experience》指出根源:当前 RL 只能从最终成败学习,无法从环境给出的丰富反馈中学习——客服明说”需要信用卡后四位”,人类一次记住,RL 只看到”失败”;10 步流程只错第 10 步,信号也只是”整个任务失败”。**过程奖励(Process Reward)**对每个关键步骤即时反馈,把评估从黑盒转向白盒,但标注成本高、可能过度约束创新,需与结果奖励协同。

奖励范式演进(标量 → 半标量 → 向量 → 生成式,用同一通话场景对比):标量给 7.2 分,无诊断能力;半标量先分析再打分,信息量仍有限;向量(本书补充的维度)像体检报告分维度打分(信息收集 6/10 → 应重点优化收集环节);生成式用自然语言给出带推理的评判,支持多次采样从不同角度分析。DeepSeek 的结论:生成式奖励模型可通过推理时扩展(多次采样评价再汇总)持续提升评判质量,在奖励模型基准上超越只扩规模的标量方案——其核心价值是把环境的丰富反馈转化为可学习的知识,让 Agent 从一次失败中学到改进方向

生成式奖励模型的训练(DeepSeek 三步法):模型为任务自动生成评价原则 → 按原则逐条评价执行过程 → 系统自动校验评价准确性并给正负反馈。优势:学到”定标准、做评价”的元能力、评价透明可审查偏见、可与策略模型协同进化。选择依据:可自动验证 → 二元;多个独立质量维度 → 向量;高度开放难拆维度 → 生成式。

7.10.3 过程奖励 vs 结果奖励#

**过程奖励模型(Process Reward Model, PRM)**给每个中间步骤打分(代表作 OpenAI《Let’s Verify Step by Step》:数学推理上逐步标注的 PRM 显著优于只看最终答案);**结果奖励模型(Outcome Reward Model, ORM)**只评估最终结果,RLVR 的规则验证器是 ORM 的特例。取舍:过程奖励降低信用分配难度但引入人工设计偏见、可能限制探索;结果奖励探索自由度最大但训练难、样本需求高。

工程上的信用分配机制:多轮 LLM RL 的折扣因子 γ 通常直接设 1(任务只有几十轮、目标就是最终成败);PPO 依赖 GAE(Generalized Advantage Estimation,广义优势估计,用价值网络逐步估计”这一步比预期好多少”);GRPO 把整条 response 视为单一动作、轨迹级优势均摊到所有 token——第 2 轮的精准提问和第 7 轮的无效寒暄拿到相同信用,单轮短任务没问题,长程多轮会稀释学习信号(这正是带价值网络的 PPO 在多轮场景仍有价值的原因);折中方案是 turn-level 分摊(以”轮”为单位算优势)。

实验 7-12(V-IRL 空间导航:过程奖励):真实街景导航(同为 Chu 等人 2025 研究,带价值网络 PPO),纽约 1000 条路线训练、九城市测试。规则 OOD(绝对方向→相对方向):V-IRL-L 上 RL +11.0%、SFT 下降 79.5%;视觉 OOD(跨城市):RL 从 16.7% 提升至 77.8%(+61.1%,开源模型超越依赖闭源模型提示工程的强基线),SFT 降至 11.1%。过程奖励设计:正确动作 +1、错误 -1、地标识别错误额外 -1.5,配 verify_iter=2 验证重试——第 5 步走错立即拿到负反馈,不必等第 20 步。RL 的结果导向信号反传到感知层、改善视觉编码器本身;SFT 在思考层过拟合。协同的微妙平衡:不经 SFT 初始化 RL 训不动,但 SFT 过度训练严重过拟合后 RL 也救不回 OOD 性能——SFT 应训到”格式稳定、能力初具”即止,不宜恋战

实验 7-13(SimpleVLA-RL:结果奖励):VLA(Vision-Language-Action)机器人操作,基于 veRL + GRPO,仅用二元结果奖励,三项探索增强——动态采样(过滤全成功/全失败组保证稳定梯度,且只保留成功率适中的任务、自然形成课程学习)、更高裁剪上界 [0.8, 1.28]、更高温度 1.6——组合在 300 步内提升约 30%。LIBERO 达 97.6%;冷启动实验:每任务仅 1 条轨迹 SFT(17.3%)+ RL 后达 91.7%(+74.4pp)。训练中涌现”推切(pushcut)“:人类演示都是”抓取→垂直抬起→水平移动→放下”,RL 自主发现”抓取→保持低位→水平推动”更快且对定位要求更低——RL 能超越模仿学习,发现人类未曾想到的更优策略;实时性靠动作分块(action chunking)。与 V-IRL 对照:中间步骤正确性易定义时过程奖励更高效,最优路径未知时结果奖励更有潜力。

7.10.4 奖励结果,约束过程:验证路径惩罚(RLVP)与部分奖励#

问题:现实 Agent 必须遵守一类与结果无关的约束(outcome-neutral constraints):不拨打已拒接用户、不跳过身份验证、不执行 rm -rf、不为过测试去改测试文件。麻烦在于违反这些约束往往让”表面成功率”更高(直接改测试文件当然比修 bug 快)——纯结果奖励不但学不会这些约束,反而主动激励违反。

核心洞察:真实环境是”不对称的验证器”——“某个动作是不是坏动作”容易验证(坏动作有明确确定的特征),“是否在朝目标取得有意义进展”很难验证(几乎与解决任务本身一样难)。因此环境能可靠提供的密集信号,本质上是”路径上的惩罚”而非”进展上的奖励”。

做法(RLVP,Reinforcement Learning with Verified Penalty,配方一句话:奖励结果,惩罚路径):

R=O+βΦR = O + \beta \cdot \Phi

O 是稀疏的结果奖励(仍是真正目标);Φ 是确定性规则引擎逐动作给出的路径信号(对”动作+动作前状态”的纯函数判断,不是学出来的裁判):每次可机器判定的违规动作扣 λ 分(惩罚),每次可验证的好动作(满足前置条件、达成子目标、通过测试数变多)加 μ 分(守规奖励/部分奖励 Partial Credit)。两路各自归一化再合并;不改优化算法,只重塑每一步的奖励。

为什么有效——组内方差(within-group variance):GRPO 的优势本质就是组内相对表现,一组 rollout 奖励完全一样 → 方差为零 → 优势全零 → 零梯度白跑。纯结果奖励在训练一头一尾必然出现零方差死局:全败组(早期任务太难,O 全 0)与全胜组(后期学会,O 全 1)。DAPO 的 dynamic sampling 是把零方差组丢掉;RLVP 换个问法——什么密集信号能补回缺失的方差?可验证的惩罚永远能补回(哪怕全败,“失败得规不规矩”各不相同——惩罚是”永远可达”的那半个解);可验证的进展奖励只在进展可达时能补(定理证明里待证目标数逐步下降、可达、有用;软件修复里一整批 rollout 常一个测试都过不了、不可达、没用)——关键变量是可达性而不是信号是否”密集”,训练前可用少量 base 模型 rollout 测组内方差诊断。

四条设计原则(各堵一个坑):① 只惩罚可验证的”动作”,绝不惩罚”没进展”——“不做任何动作”正是规避”没进展惩罚”最省事的办法,那会把 Agent 教成什么都不干;② 结果奖励始终是主驱动力,惩罚不能单独优化(见下方陷阱);③ 每个惩罚(−λ)配一个对应的守规奖励(+μ)——既扣”改测试文件”的分,也奖励”真修 bug 让测试自然通过”,给出路而不是只堵不疏;④ 合规路径必须可达、惩罚靶子必须无法钻空子——用少量脚本示范让 Agent 见过合规走法,判定违规用确定性检查而非学习型”合规度”评委(否则钻空子只是转移到评委身上)。

不作为陷阱(inaction trap)

只有惩罚、没有结果奖励时,最优策略就是”什么都不做”——零违规,但也零成功。消融实验显示:纯惩罚会让成功率在每一个随机种子上都塌到零。必须让结果奖励提供”把任务做完”的拉力,惩罚只负责”怎么做”。

与 RLVR 只差一个字母,恰好点出互补:RLVR 验证结果,RLVP 额外验证过程——叠加得到既盯”把事办成”又盯”办得规矩”的训练信号,这正是能安全上线的 Agent 所需要的。

实验 7-14(RLVP 验证):TerminalBench 上(Qwen3-4B,5 个随机种子)每局违规次数从 3.71 降到 0.66(约 6 倍),任务成功率在噪声范围内持平——“守规”几乎是免费拿到的,且 Agent 做了更多有效动作而非”少做少错”。miniF2F 代数题(进展可达):达 0.9 成功率所需迭代从 7.0 降到 4.4(4B),30B 上 8.5→5.4 且纯结果奖励在部分种子上直接发散。链式文件操作任务上”全败组”比例从 65% 降到 8%。反例:软件修复设定下进展不可达,密集进展奖励处处为零、不带来收益——印证可达性才是门槛。

7.11 RL 学习工具调用#

工具使用把能力边界从”模型自身推理”扩展到”调用外部系统协作”,RL 训练面临三层挑战:学会单一工具(规范、时机、错误处理)→ 多工具生态中做选择 → 工具链编排(依赖、互斥、成本效率)。两条活跃路线:检索增强(Search-R1:RL 训练模型在思考中自主决定何时搜索,而非固定 RAG 流程)与软件工程(SWE-Gym:真实代码库上多轮编辑、运行、修复)。共同挑战:长时序信用分配 + 环境工程。

一个绕不开的工程细节:对环境反馈 token 做损失屏蔽(loss masking)。轨迹里既有模型生成的 token(思考、调用参数),也有环境返回的 token(解释器输出、搜索结果)——后者不是策略生成的,若计入策略梯度,模型会被训练去”预测沙盒会输出什么”,既偏离目标又不稳定。ReTool 对 <interpreter> 内 token 屏蔽梯度、Search-R1 对检索 token 屏蔽,veRL、AWorld 等框架均内置此机制。

实验 7-15(ReTool:代码解释器增强数学解题):纯文本思考在精确计算中易累积误差,ReTool 把代码解释器的实时执行整合进 RL 思考循环。两阶段:SFT 预热(约 1 小时,建立基本工具调用模式)+ RL 训练(veRL 改造的 PPO,数据取自 DAPO-Math-17k,约 9 天 400 步),rollout 形如”文本 + <code> 代码 + <interpreter> 反馈 + … + 答案”的混合序列(每步 512 个响应 = 32 题 × 16 候选)。结果(Qwen2.5-32B-Instruct):AIME 2024 从约 25% → 110 步 52%(Best-of-30 达 85%)→ 400 步 67.0%,纯文本 RL 基线训 1080 步只有 40.0%。涌现能力:代码自我修正、工具调用从后期验证转为早期探索、思考长度减少 40% 而准确率不降反升。SFT 与 RL 时长差异的根源是信息密度:SFT 每个 token 都有监督信号,RL 每个 episode 只有一个成败信号;少数超长响应还会显著拖长训练周期。

顺带介绍 DAPO(Yu 等人 2025,在 PPO 基础上四项改进,核心是防止过早收敛到单一策略):Clip-Higher(放宽正优势的裁剪上界,让低概率但有希望的动作被更大胆强化)、Token-Level Policy Gradient Loss(全 batch 所有 token 统一归一,长回答按长度获得相称梯度)、Dynamic Sampling(算力集中到成功率 20%–80% 的”可学习区间”题目)、Overlong Reward Shaping(对超长而无收益的响应软惩罚)。

实验 7-16(AWorld-train:沙盒中学工具):面向 GAIA(最难的 Agent 基准之一,大模型大规模训练也可能只约 32%)。AWorld 训练环境是 MCP 服务器沙盒:26 个服务器、126 个工具函数(Web、文档、多媒体、代码执行、Excel、知识检索)。多工具相比单工具引入组合爆炸与依赖管理(前置依赖、互斥约束、成本差异),策略需整体规划而非贪心。本实验用 Qwen3-4B 做开放式训练、不提供基线——价值在跑通”从实践中学习”的完整链路。

inclusionAI
/
AWorld
Search, understand, reproduce, and improve an idea with ease
MIT
Python

7.12 提升样本效率的前沿探索#

RL 的代价高昂:ReTool 的 RL 训练时间是 SFT 的 200 倍以上(9 天 vs 1 小时)。样本效率低的一个重要根源是主流策略梯度的 model-free(无模型)特性——不建模环境动态,也难以直接利用单次反馈里的丰富信息(客服明说”需要信用卡后四位”,model-free RL 只能拿到 0/1 成败信号)。两条互补出路:把被浪费的环境反馈变成可学习奖励(7.10 的 RLVP 部分奖励),以及本节的——让每一步训练信号更密集。

7.12.1 On-Policy Distillation:兼得 SFT 与 RL 之长#

先看两个短板。SFT 的短板:Learner-Sampler Mismatch(学习者与采样者不匹配)——训练数据由教师/专家(采样者)生成,学习者只被动模仿正确路径;自己上场犯错走进示范外的偏差状态时,从没见过怎么回到正轨,小错累积成大错。RL 的短板:信号太稀疏——学生自己走(解决了分布不匹配),但每条轨迹只有一个成败标量。

On-Policy Distillation = 在轨 + 稠密信号

On-Policy Distillation(在轨蒸馏)(Thinking Machines Lab,2025):让学生自己生成轨迹(On-Policy,解决分布不匹配),同时让更强的教师对学生走出的每一步给出”下一个 token 各选择该有多大概率”的完整分布,学生通过最小化与教师分布的 KL 散度逐 token 对齐(Dense Signal,解决信号稀疏)。三方法对照:SFT 是”离轨 + 稠密”、RL 是”在轨 + 稀疏”、On-Policy Distillation 是”在轨 + 稠密”——两个短板都补上。数学等任务上达到同等性能只需纯 RL 约 1/10 的训练步数。

它还顺带缓解过拟合:每次轨迹不同、教师针对具体轨迹反馈,学到的是通用策略而非特定答案,数据复用率大增。在多轮 Agent 场景价值尤大(末端稀疏滞后的成败信号 → 中间每步都有指引)。前提呼应本章主线:必须有足够真实的仿真环境让学生自由探索——否则学生走到教师也没见过的状态,教师打分同样不可靠。

一个干净的验证案例(把 Agent 的”时间感”写进 8B 小模型权重):DPO 与四种 RL 配方各踩中一种本章讨论过的失败模式——奖励太稀疏组内优势归零、代理指标与真实通过率错位、rollout 形状与评测不匹配、策略塌缩连 4 倍 KL 锚都拉不住——没有一种越过 SFT 天花板;换 On-Policy Distillation(冻结 Qwen3-32B 教师、在学生自己的多轮轨迹上逐 token 给分布)后平滑收敛,四种条件下通过率比同源 SFT 基线高 23–47 个百分点。结论:卡住后训练的,往往不是奖励设计不够巧,而是信号本身不够密。

7.12.2 没有更强的教师怎么办:On-Policy 自蒸馏#

On-Policy Distillation 的硬前提是有明显强于学生的教师——垂直领域常不成立。On-Policy Self-Distillation(OPSD,在轨自蒸馏)的破题思路:让同一个模型分饰教师和学生两角,区别只在上下文。教师版能看到特权信息(privileged information)——标准答案、已验证的正确解答——它不需要真会做题,只需拿着答案把学生走出的每一步合理化、给出逐 token 目标分布;学生版只看问题,在自己采样的轨迹上向教师版对齐。直觉:“对着答案讲题”远比”独立解题”容易——与 RLVR 的”验证—生成不对称”同构,只是这里的不对称被用来产生稠密监督而非稀疏成败标量。

相比 RLVR 的两个优势:不依赖可验证奖励(特权信息可以是答案、系统提示词、人工示范、领域文档——凡是”能让模型事后把正确行为讲清楚”的都行);监督信号密集得多(每个位置一个完整分布)。边界:收益取决于”特权信息能带来多少额外能力”——模型拿着答案也讲不清(如答案来自穷举搜索)就没有信号来源;已观察到的失败模式包括自蒸馏中逐渐丢失原有思考风格,需额外正则稳定。

7.13 后训练完整图景与实践要点#

协同范式:“先形后神”——结构化输出不稳时先用 SFT 建立格式与基本能力,再在有可靠奖励与环境时用 RL 探索策略;SFT 训练过度或 RL 优化过度,都可能对当前分布过拟合。

八条常见陷阱(识别它们往往比掌握技术细节更能避免资源浪费):

  1. 过度依赖后训练记忆事实——事实知识应交给 RAG(可更新、可追溯、不遗忘),后训练聚焦”如何使用知识”。
  2. 格式未稳定就引入 RL——奖励信号会稀疏或失真;先小规模评估设定格式稳定性门槛,必要时 SFT 或约束解码。
  3. 奖励函数设计不当导致奖励黑客——模型钻漏洞刷高分而非完成任务;应评估最终目标而非中间指标。
  4. 忽视仿真保真度——仿真过于简化则策略上线即失效;高保真环境构建成本可能高于训练本身。
  5. 过度训练导致泛化下降——训练损失降、验证性能恶化即在死记;SFT 尤其需要早停,RL 过度优化同样过拟合。
  6. 价值函数崩溃与探索不足——PPO 价值估计不准导致优势偏差、训练曲线剧烈震荡;温度过低陷入局部最优。
  7. 低估 RL 计算成本——SFT 转 RL 可能需 10–100 倍训练时间;测试分布与训练一致时 SFT 可能已足够。
  8. 训练数据质量低下——SFT 把噪声固化为参数;奖励模型有系统性偏差时 RL 朝错误方向优化。

核心原则:投入大规模资源前,先用小规模实验验证关键假设——少量数据测 SFT 能否稳定格式、简化环境验证 RL 能否收敛、小样本检查奖励是否反映真实目标。快速失败比大规模失败更可接受。

与 RAG/ICL 的协同:三者作用于不同位置——ICL 用示例与规则实现零参数即时适应(但上下文越长延迟费用越高);RAG 把事实与证据放在可更新、可追溯的外部知识中;后训练把高维感知、生成风格、隐式决策策略写入参数。选择依据不只是任务是否长期稳定,更是能力能否被外部符号充分表达:医疗影像识别、自然语气即使领域持续变化仍需参数更新;长期稳定的转账审批规则反而应由代码提供确定性保障。稳健系统的组合:RAG 管事实、ICL 快速试验可语言化的策略、程序固化确定性流程与硬约束、后训练写入难以显式表达且需广泛泛化的能力。

本章小结#

  1. 三阶段地图:预训练打地基(NTP,最贵)、SFT 固化协议(便宜快稳)、RL 优化策略(贵但可能泛化);三者都在调整同一个输出概率分布,区别只在”用什么信号定义想要什么”。
  2. SFT 与预训练是同一损失,差别只在数据与 loss masking;本质是高样本效率固化协议性知识,不适合注入事实性知识(那靠继续预训练或 RAG)。
  3. “SFT 记忆、RL 泛化”是受控实验中的倾向而非普遍规律,根源在优化目标:极大似然复现示范 vs 最大化期望奖励。
  4. “先形后神”:结构化输出不稳时先 SFT 立”形”再 RL 求”神”;强基模可直接 RL(R1-Zero),但 R1 仍加回冷启动 SFT 换可读性。
  5. 优先级是先验(基础模型)> 环境 > 算法——OpenAI 的认知反转;LLM 先验让 Agent 摆脱表格 Q-learning 式的上万次盲目试错。
  6. LoRA 是工程默认项:应用到所有主要权重矩阵、学习率约全参 10 倍、SFT 高 rank(64–256)/RL 低 rank(8–32)。
  7. 算法地图:PPO(价值网络、长轨迹信用分配细)/GRPO(组内相对优势、便宜)/DPO、KTO(离线偏好)/Best-of-N(推理时);区分”奖励从哪来”与”用什么算法优化”。
  8. RLHF 三段式(SFT→RM→PPO)+ 反向 KL 防 reward hacking 与分布崩塌;RM 会被过度优化(Goodhart:代理奖励升、真实质量先升后降);RLHF 与 RLVR 叠加而非二选一。
  9. 数据质量胜过算法(覆盖面、多样性、标注准确性),拒绝采样是标准流水线,很多场景 SFT 数据到位就不需要 RL;造不出环境可让模型扮演环境,但模拟器偏差是训练天花板,需真实交互校准。
  10. 多轮核心是信用分配(γ 常设 1;GAE/GRPO 均摊/turn-level 折中);过程奖励加速收敛但限制探索,结果奖励自由度大(涌现”推切”);工具 RL 须对环境反馈 token 做损失屏蔽。
  11. RLVP”奖励结果、惩罚路径”:利用”检测坏动作易、判定进展难”的不对称;密集信号只在补回组内方差时有用——惩罚永远可达、进展奖励受可达性门控;警惕不作为陷阱。
  12. 样本效率是当前 RL 主要瓶颈:On-Policy Distillation(在轨+稠密,约 1/10 步数)与 OPSD(特权信息自蒸馏)最有希望——共同点是把被纯结果奖励浪费的信息重新变成模型能学的东西。上线守则:小规模实验先行、快速失败;后训练与 RAG/ICL/程序约束组合使用,标准是”能力能否被外部符号充分表达”。

思考题#

  1. ★★ 灾难性遗忘——一次针对特定任务的微调破坏了模型原有的通用能力(如通用工具调用)——在 Agent 场景下尤其棘手。相比全参微调,LoRA 冻结基座权重、遗忘风险更低,但并非免疫。有哪些策略可以进一步缓解微调带来的能力遗忘?
  2. ★★ 后训练将能力固化为模型权重(“肌肉记忆”),而上下文学习将知识放在推理时的输入中。但有些能力(如领域知识)既可以通过后训练学习,也可以通过 few-shot 示例提供。你会用什么标准来决定某项能力应该走哪条路径?
  3. ★★ 模型蒸馏让小模型学习大模型的行为。按能力层次,被蒸馏的模型大致可分为三级——Chat 模型(单轮对话、直接作答)、Reasoning 模型(带长链思考再作答)、Agentic 模型(多轮调用工具、与环境交互)。分别蒸馏这三类模型,难点有什么不同?
  4. ★★★ 在多轮 Agent 交互中,奖励的归因(credit assignment)问题比单轮更严重——一个最终的成功或失败很难归因到第 3 轮还是第 7 轮的决策。你会如何设计奖励分配策略?
  5. ★★★ 如果你有固定预算(比如 $10,000),要提升一个客服 Agent 的性能,你会如何在上下文与知识、Prompt/Skills、程序约束和参数训练之间分配预算?你的决策取决于哪些因素?
  6. ★★★ 在没有明确奖励函数、样本稀少的情况下,自主实现模型学习,被一些人认为是后训练的终极目标。当前的 RL 训练方法距离这个目标还有多远?你认为下一个突破最可能来自哪个方向?
  7. ★★ 本章指出 LoRA 微调的成本并不高。那么,是否有可能给每个用户(或每个客户公司)训练一个专属的 LoRA,将用户记忆或企业知识写入参数,而非像第三章那样存储在外部知识库中?在什么场景下,“记忆写入参数”比”记忆存入知识库”更有优势?又在什么场景下会适得其反?
  8. ★★★ On-Policy Distillation 依赖更强的教师模型来监督学生。但 OpenAI 的 Weak-to-Strong Generalization 研究提出了一个反直觉的发现:弱模型的监督信号有时能激发强模型本身潜在但未被激活的能力。如果将这一思路应用到 Agent 训练,是否可能实现”小模型教大模型”的逆向蒸馏?
  9. ★★ 过程奖励模型(PRM)评估每个思考步骤,而结果奖励模型(ORM)只看最终结果。但”正确的过程导致错误结果”和”错误的过程侥幸得到正确结果”哪个更值得奖励?在 Agent 的多步工具调用场景中,你会如何权衡?
  10. ★★★ 本章讨论的评估数据集(如 SWE-Bench Verified、τ²-bench、AndroidWorld)既可以用于评估也可以用于后训练。但如果将评估集用于训练,它就不再是独立的评估集——这是否违反了训练集与测试集必须分离的基本原则?如何在充分利用评估数据的训练价值与维护评估独立性之间找到平衡?
  11. ★★★ 本章提出”先形后神”的训练范式:SFT 到”格式稳定、能力初具”即止,然后切换到 RL。但实践中,如何判断 SFT 已经”足够”而应该切换?
  12. ★★★ ReTool 的训练动态显示,少数超长响应会显著拖长整个训练周期——一批 rollout 里绝大多数已经生成完毕,却要等那几条最长的响应收尾,其间集群的 GPU 利用率很低。如何提升这种长尾响应场景下训练集群的资源利用率?
  13. ★★★ 用 LLM 模拟环境(如模拟搜索引擎、模拟用户)训练 Agent 时,Agent 钻空子的对象从”真实环境的规则”变成了”模拟器本身的偏见与漏洞”。这类训练中可能出现哪些具体的 reward hacking 行为?又该如何防范?

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

《AI Agents in Depth》学习笔记(七):模型后训练
https://lingluoa.icu/posts/ai-agent-notes-07-post-training/
作者
lingluoa
发布于
2026-08-10
许可协议
CC BY-NC-SA 4.0

评论区

Profile Image of the Author
lingluoa
Hello, I'm lingluoa.
公告
欢迎来到我的博客!不定期更新中。
文章目录
标签
站点统计
文章
61
分类
9
标签
75
总字数
282,985
运行时长
0
最后活动
0 天前
站点信息
构建平台
ESA Pages
博客版本
Firefly v6.16.5
文章许可
CC BY-NC-SA 4.0