跳到主要内容
SecondHome

稳定更新:旧样本的比值会爆,六家怎么裁

17 分钟前沿6aL11 p.18-35 ↗录像 ↗支撑材料 6 篇

REINFORCE 与 GRPO 的账本都默认「轨迹采自当前策略」,而真实系统里生成远慢于更新——样本一进队就变旧,直接算梯度会把策略拽飞。本篇沿 L11 p.18-35 走通稳定更新整条线:同步批处理 GPU 甘特图上 generate/update/等待交替(p.19),异步 AReaL 让 rollout 与 learner 并行、代价是 staleness(p.20,Fu et al. 2026),数值例里行为策略与 learner 策略三动作概率 0.40→0.70 错位(p.22);重要性采样一行恒等式救偏、权重 1.75 与 0.50 当场可算(p.23),整条比值连乘 1.05 的 100 步 ≈ 132 当场爆炸(p.24,CTPO),累积比值散布随 token 位置增大(p.25)、早期动作错的历史 token 级比值根本看不见(p.26);于是六家各裁一段——PPO/GRPO 当前动作、CTPO 截至当前、GSPO 整条长度归一化(p.27),clip 界 0.8/1.2 与 PPO/CISPO 两目标并排(p.30-31),PPO 曲线不对称的悲观更新(p.32);收在参考模型 KL 与熵奖励两道护栏(p.33-34)与六方法×四维总结表(p.35),延伸至 GSPO 序列似然级与 DAPO 四件套,末桥接 HF 博客的实现细节。

上一讲的账本里有一条默认成立的前提:轨迹采自当前策略。真把它放进训练集群,前提立刻松动:生成一条带工具调用的长 rollout,远慢于 learner 的一次更新,样本还在队列里,策略已经又往前走了。旧样本直接拿来算梯度,策略会被拽飞。这一篇讲的,就是怎么救。

一、异步的账:样本是怎么「变旧」的

两种训练循环的差别,L11 p.19 画成了 GPU 甘特图。同步(synchronous)要整批轨迹全部完成才能更新:图上 generate、update 与等待三段交替,生成时训练卡闲置,更新时推理卡闲置,一条慢轨迹拖住全批。

异步(asynchronous)走另一条路,p.20 的代表是 AReaL(Fu et al. 2026,§3.2/§4.1)。rollout worker 持续生成,learner 拿已完成轨迹就更新,两头不再互相等。

代价写在合同小字里:部分轨迹来自更旧的策略版本。这个版本差就是 staleness(陈旧度)。

陈旧不是抽象名词,p.22 把它算成了数。场景是一个 bug 修复任务,三个候选动作。行为策略 μ 是生成轨迹的那个版本,learner 手里的 πθ 是更新时的版本,两边概率已经错位:

动作μ(生成时)πθ(更新时)
Check None explicitly0.400.70
Use get(…,3)0.400.20
Keep original code0.200.10

拿 μ 采出的动作直接进 πθ 的策略梯度,等于按新价签记旧账。更新会系统性地偏向 πθ 已经不那么想做的动作,把它们继续当主力交付。

user: 修复这个空指针 bug—— 任务进入队列,worker 手里是 v5assistant: 按 μ=v5 采样出「Check None explicitly」,此刻它值 0.40Observation: 轨迹尚未生成完,learner 已用别的轨迹更新到 v7Thought: 轨迹送达时 πθ=v7 给该动作 0.70—— 同一动作,两个价格Observation: 直接算梯度 = 把 v5 的采样当 v7 的样本用,off-policy 偏差入账

二、救偏一行式,与长轨迹上的爆炸

补救来自概率论里最老的一行恒等式,重要性采样(importance sampling,p.23)。想算 πθ 下的期望不必重采,把 μ 的样本按两个策略的概率比值重新加权即可:

Ea∼πθ[R(a)]=Ea∼μ[πθ(a∣h)μ(a∣h)⋅R(a)]\mathbb{E}_{a\sim\pi_\theta}[R(a)]=\mathbb{E}_{a\sim\mu}\left[\frac{\pi_\theta(a|h)}{\mu(a|h)}\cdot R(a)\right]

比值用第一节的表当场算得出。「Check None explicitly」0.70/0.40=1.75,πθ 比生成时更想做,证据增值;「Use get (…,3)」0.20/0.40=0.50,πθ 已没那么想做,证据打折。旧样本就这样从不能用变成加权用,这就是救偏。

但换算到整条轨迹,这个权重是连乘的,p.24 的式子是:

w(τ∣x)=∏tπθ(at∣ht)μ(at∣ht)w(\tau|x)=\prod_t\frac{\pi_\theta(a_t|h_t)}{\mu(a_t|h_t)}

一步只差一点点 ——1.75 与 0.50 都在 1 的量级,加权后的估计还站得住。

每步温和高估 1.05,连乘 100 步 ≈ 132:方差爆炸,少数样本独占梯度,其余几乎白采(L11 p.24)。

爆炸不是算术巧合。CTPO(Zhang et al. 2026,§3.2)在工具调用数学 rollout 上做了实测,p.25 的 Fig.1 显示:token 级累积比值 ρtcum\rho_t^{\mathrm{cum}} 的散布随 token 位置后移持续增大,轨迹前段还贴着 1,后段铺成失控的扇形。

更深一层在 p.26,CTPO §3.1 叫它结构性失明:早期动作改变了后续历史。就算下一个动作的条件比值恰好等于 1,也就是这一步两个策略给同一动作同样的概率,到达这个历史本身的概率也只有 0.10/0.40=0.25。

token 级比值天生看不见「我为什么会在这里」。长轨迹的账,越往后越没法直算。

三、六家裁剪:谁用哪段动作、怎么夹

整条不可用,于是各家裁两刀。第一刀,比值取哪一段动作,CTPO Table 1 在 p.27 排成一张表:

方法比值用哪段动作
PPO / GRPO只用当前动作
DAPO / CISPO亦用当前动作,但 clipping 规则不同
CTPO截至当前 token 的全部动作
Full ratio整条响应全部动作
GSPO全部动作,再做长度归一化

第二刀,取完怎么夹。p.30 的 token 级比值与裁剪:

ρt=πθ(ut∣u<t)μ(ut∣u<t),ct=clip(ρt, ℓ, u)\rho_t=\frac{\pi_\theta(u_t|u_{<t})}{\mu(u_t|u_{<t})},\qquad c_t=\mathrm{clip}(\rho_t,\ \ell,\ u)

示例界 0.8 与 1.2:比值一出界就被按在边界上。夹完怎么进目标函数,p.31 上 PPO 与 CISPO 给出两种答案:

JPPO=E[min⁡(ρtA^t, ctA^t)]J_{\text{PPO}}=\mathbb{E}\big[\min(\rho_t\hat{A}_t,\ c_t\hat{A}_t)\big]

JCISPO=E[sg(ct) A^t⋅log⁡πθ(ut∣u<t)]J_{\text{CISPO}}=\mathbb{E}\big[\mathrm{sg}(c_t)\,\hat{A}_t\cdot\log\pi_\theta(u_t|u_{<t})\big]

原始项与夹取项取小 —— 比值出界时自动落到更保守的那份更新上,损失里仍带着比值。

sg 停梯度,夹过的 c_t 只当权重;损失回到 log πθ 的形状,比值不再被优化推着跑(出自 MiniMax-M1,arXiv 2506.13585)。

再看 PPO 那条裁剪曲线的不对称,p.32 的示意取 ε=0.2,改编自 PPO Fig.1。优势为 +1 时,比值超过 1+ε 后目标不再涨,好样本的影响封顶;优势为 −1 时,比值低于 1−ε 后目标不再跌,坏样本的惩罚封底。

两头都不再变,策略就不会被少数爆比值的样本拖着跑。clip 管的不是更新多大,而是单条样本最多能影响多大。

四、两道护栏与一张总结表

clip 管住单步步长;更长期的漂移,p.33-34 交给两道护栏。其一是参考模型 KL(reference KL):

max⁡θ Jpolicy−β⋅DKL(πθ ∥ πref)\max_\theta\ J_{\mathrm{policy}}-\beta\cdot D_{KL}(\pi_\theta\,\|\,\pi_{\mathrm{ref}})

π_ref 是冻结的 SFT 起点,一根固定锚;GRPO 目标里的那一项就是它(DeepSeekMath)。

分工清楚:clip 防这一步迈太大,KL 防离出发点走太远。

其二是熵奖励(entropy bonus):max J + αH (πθ),把分布撑宽,鼓励尝试低概率动作。课上有句保留,出处 PPO §5:更宽不保证更有用,买的是探索机会,收益没有保证。两道护栏,训练配方里常常同时在场。

全景收在一张六方法 × 四维度的总结表里,表在 p.35。「组比较」指减组均值再除以组内奖励散布:

方法优势估计比值裁剪
REINFORCEreward-to-go,无 critic无无
PPOGAE critic当前 token原始与夹取项取 min
GRPO组比较,无 critic当前 token同 PPO
CISPO组比较当前 token夹后作固定权重
GSPO组比较整条响应,长度归一化响应级比值上取 PPO min
DAPO组比较当前 tokenPPO min,但上限更高

表外两条延伸值得追。Qwen 团队 2025 年的 GSPO 把比值抬到序列似然(sequence likelihood)级,整条回答作为一个整体被加权,对应总结表里那一格:整条响应,长度归一化。

ByteDance Seed 2025 年的 DAPO 打包四件套:Clip-Higher、动态采样、token 级损失、超长奖励整形。其中 Clip-Higher 动的是上文那道不对称上限,把 1+ε 抬高,低概率 token 的上升通道不再被封死。

Qwen2.5-32B 在 AIME’24 拿 50 分,超 DeepSeek-R1-Zero-Qwen-32B 的 47,且只用一半步数。

从纸面到落码还隔一层实现细节。HF 博客 2023 年的 The N Implementation Details of RLHF with PPO 逐行复现 lm-human-preferences,把 padding、reward 归一化、KL、Adam 的数值差这些论文不写、跑了才知道的坑一一登记在册。

clip 是悲观更新,不是无偏更新

min (ρ_tÂ_t, c_tÂ_t) 在出界时系统性地选更保守的那份,用一点偏差换有界的步长。第二节那行恒等式无偏但会爆;clip 反过来,有界排在无偏前面。

与本讲的连接

全线从 p.19-22 的两种循环与 staleness 起步,经 p.23-26 的救偏与长轨迹爆炸、p.27-32 的六家两刀,收在 p.33-35 的两道护栏与总结表。谱系枢纽是那笔 1.05 的连乘账。单步温和,连乘爆炸,第三节六家的两刀由它逼出。

本节论文与规范

本节资料

  • 2026 前沿。用工具调用数学 rollout 实测:累积比值随 token 位置后移散布增大(Fig.1)、早期动作改变后续历史(到达概率 0.10/0.40=0.25);Table 1 系统对比 PPO/GRPO/CTPO/Full/GSPO/DAPO/CISPO 各用哪段动作进权重——L11 p24-27 整段素材来源。核心主张:比值取截至当前 token 的累积动作——已执行前缀全部乘入,作无偏的前缀修正,长轨迹上不再失明于「怎么会走到这个历史」。

  • 2025 前沿。Clip-Higher、动态采样(跳过等奖励组)、token 级损失、超长奖励整形四件套;Qwen2.5-32B AIME'24 达 50 分超 DeepSeek-R1-Zero-Qwen-32B(47)且只用一半步数。L11 p35 表与 p44 动态采样均引此。四招各对一个病灶:clip 上界压熵、全等组浪费算力、样本级损失偏长回复、截断误判零分,消融逐项拆开。

  • 2025 前沿。把重要性比率从 token 级改到序列似然级(整条响应长度归一化),裁剪与优化都在序列粒度;正面回答 L11 p25-27「长轨迹上 token 级比值发散怎么办」。序列比值数值范围紧、对 MoE 路由抖动也不敏感,已用于 Qwen3 系列训练。本站 lecture-05 另有同文条目,可对照两讲视角。

  • 2023 工程经典(2024 增补)。逐行复现 OpenAI 2019 lm-human-preferences,整理 padding、reward 归一化/白化、KL 惩罚等 N 条实现细节,还发现 PyTorch 与 TF 的 Adam 数值差异会放大早期梯度。每条细节都附消融曲线,展示「论文不写的东西如何决定成败」。把 L11 的 PPO 公式落成可跑代码前,先过一遍这份清单。

  • 2025 前沿。首个开源大规模 hybrid-attention 推理模型,RL 阶段用 CISPO——clip 后的比值 sg 停梯度作固定权重、乘 log 概率;L11 p31 把 PPO 与 CISPO 目标函数并排对照,完整消融见此报告。报告还给出 CISPO 与 PPO-clip 的稳定性、效率对照与百万 token 上下文的工具调用评测。看「算法换形式→系统省资源」的完整链条,读它。

  • 经典·高引(2017)。clip surrogate objective 换来多次 minibatch 复用样本的稳定更新;L11 p30-32 逐帧拆的 0.8/1.2 界与「超上界不加奖励、低于下界不加重惩罚」的不对称曲线即其 Fig.1。相对 TRPO 抛掉二阶近似,一阶优化器即可跑;clip、KL 惩罚、ACER 三变体同台对比。正文仅 8 页,是一切裁剪改进的原点。

AI 生成 · 仅供参考,与课程方无关。选中正文里的任何一段也能直接问我(解释一下 / 举个例子)。

本详解以 CMU 11-768 AI Agents (Fall 2026) 课程大纲为参考框架独立撰写,AI 辅助起草、人工抽审。 涉及的官方课件、论文与课程材料版权归原所有方,讲义为站内镜像、其余外链原文出处; 观点与文字(除标注引用外)为作者原创。