Text RL · Algorithm Primer
先按「要不要 value 网络」分成两大家族,再在 critic-free 里按 baseline 怎么估继续细分。 本轮 2B/4B 训练只跑了右侧五族;PPO 因需另训 critic、显存与时间翻倍,未纳入对比。 曲线见 2B 训练 / 4B 训练。
三条谱系:actor-critic → 组相对 → 其它无 critic 基线
Family A · Actor-Critic
用 learned critic(常配 GAE)估 advantage;策略更新仍可套 PPO clip。多一份前向与显存。
本轮未跑(2 卡预算下 critic 成本过高)
Family B · Group-Relative
同一 prompt 采样多条,用组内统计当 baseline,省掉 critic。GRPO 是基座;DAPO / Dr.GRPO 是其上工程与偏置修正。
共享 adv_estimator=grpo,差在归一化 / KL / 采样与 reward 机制
Family C · Other Critic-Free
同样不训 value,但不走「组内均值 ± std」这条路:留一法,或全 batch 白化。
RLOO 仍用组内采样;REINFORCE++ 不依赖同题分组
每个算法在做什么 · 核心机制一句话
强化学习里最常用的 actor-critic 算法。策略(actor)与价值(critic)一起训:critic 估状态价值,再用 GAE 得到 advantage;actor 用 importance ratio 做裁剪更新,防止一步走太远。
核心:learned V(s) + clip(π/π_old) · 本轮因需另训 critic 未跑
DeepSeek-R1 等后训练常用的 critic-free 方法。对同一题采样 G 条回答,用组内 reward 均值(再除以组内 std)当 advantage,只更新策略、不训 value。本轮对照实验的共同基线。
核心:组内相对打分 · 常配 low_var_kl · adv_estimator=grpo
在 GRPO 骨架上补齐工程机制:非对称 clip(Clip-Higher)保住探索;Dynamic Sampling 丢掉全对/全错的无用组;Overlong 软惩罚超长回答;并关掉 KL,让策略 freer。
核心:GRPO + 四件套 · reward manager = dapo
针对 GRPO 两个隐性问题的最小修正:不再除以组内 std(减轻「简单题梯度被放大」的难度偏置);loss 用固定分母聚合(减轻长度偏置)。通常同时关 KL。
核心:norm_adv_by_std=False + seq-mean-token-sum-norm
同样对同题采 G 条,但每条的 baseline 是「去掉自己后」其余 G−1 条的均值(leave-one-out)。相对含自身的组均值偏差更小,但估基线方差更大。若关注难度偏置(简单/困难 prompt 梯度权重失衡)或多步 off-policy 稳定性,RLOO(或带 shrinkage 的变体)往往比除以组内 std 的 GRPO 更干净。仍属 critic-free,常配 KL。
核心:LOO · 减偏差、增方差;偏置/off-policy 更干净 · adv_estimator=rloo
不做「同题组内相对」:对折扣 return 在整个 batch 上做均值方差白化,再当 advantage。实现最接近经典 REINFORCE,不依赖 G>1 的组结构;KL 常用 mse 形式。
核心:全 batch 白化 · adv_estimator=reinforce_plus_plus
五条轴线:从 PPO 对照到 DAPO 工程
PPO:另训 value 网络,用 GAE(或类似)估 advantage,策略侧再做 ratio clip。其余五种:不训 critic,用采样统计当 baseline,显存与实现都更轻,也是本轮对比的主线。
PPO:value 预测的 V(s)。GRPO / DAPO / Dr.GRPO:同题 G 条的组内平均 reward。RLOO:留一法——每条 baseline 是同组其余 G−1 条均值,相对组均值减小偏差、增大方差。REINFORCE++:不做组内 baseline,对全 batch 折扣 return 做白化。
难度偏置:除以组内 std,越「确定」的题梯度被放大。Dr.GRPO 去掉(norm_adv_by_std=False)。长度偏置:token-mean 分母随长度漂移;Dr.GRPO 用 seq-mean-token-sum-norm(固定分母)。DAPO 沿用 GRPO 这两项未改。PPO / RLOO / REINFORCE++ 不在这条偏置轴上。
开 KL(PPO 常有、以及 GRPO / RLOO / REINFORCE++):更稳,但多一次 ref 前向。GRPO / RLOO 常用 low_var_kl,REINFORCE++ 常用 mse。关 KL(DAPO / Dr.GRPO):更自由、更快。
Clip-Higher 非对称裁剪 · Dynamic Sampling 丢掉全对/全错组 · Overlong Reward Shaping 软惩罚超长回答 · 关 KL。
按族分组 · 算法层面的一般权衡,非单次实验结论
Actor-Critic
经典稳;GAE + clip 理论与工程成熟;单条样本也能估 advantage,不强制同题多样本。
要训 critic,显存与时间明显更高;value 估偏会拖策略;LLM 长序列下 critic 更难训稳。
Group-Relative
实现简单、无需 value;组内均值 baseline 稳;社区验证最充分,其余变体的共同基座。
长度/难度两个隐藏偏置;开 KL 更慢;无超长与全对/全错组的专门处理。
Clip-Higher 保探索;Dynamic Sampling 保证有效梯度;Overlong 抑长度;关 KL 更自由。
机制与超参多;重复采样成本高;仍带 GRPO 两偏置;压长度或伤长推理题。
最小改动修掉长度+难度偏置;理论更干净;梯度方差通常更小。
早期信号可能偏弱;无长度抑制时回答可能变长;固定分母实现若取 padding 可能漂移。
Other Critic-Free
LOO baseline 与当前样本解耦,偏差更小。若更关心难度偏置(简单/困难 prompt 的梯度权重失衡)或多步 off-policy 稳定性,RLOO(或带 shrinkage 的变体)通常比除以组内 std 的 GRPO 更干净。
每条只用 G−1 估基线,方差更大;依赖 G>1;开 KL 仍有 ref 开销;对 reward 异常值更敏感。
不依赖组内分组;全 batch 白化尺度稳;实现最直接。
不同难度题被耦合归一;无组内 baseline 方差可能更高;开 KL 仍有 ref 开销。
对照表 · PPO 列为概念对照;本轮脚本只覆盖右侧五列
| PPO | GRPO | DAPO | Dr.GRPO | RLOO | REINFORCE++ | |
|---|---|---|---|---|---|---|
| 族 | Actor-Critic | Group-Relative | Other Critic-Free | |||
| adv_estimator | gae | grpo | grpo | grpo | rloo | reinforce_plus_plus |
| Critic / Value | 要训 | 否 | 否 | 否 | 否 | 否 |
| baseline | V(s) + GAE | 组内均值 | 组内均值 | 组内均值 | LOO(减偏差、增方差) | 全 batch 白化 |
| 除以组内 std | — | 是 | 是 | 否 | 是 | — |
| loss_agg_mode | token-mean | token-mean | token-mean | seq-mean-token-sum-norm | token-mean | token-mean |
| KL loss | 常开 | 开 low_var_kl | 关 | 关 | 开 low_var_kl | 开 mse |
| clip | 对称 | 对称 | 非对称 | 对称 | 对称 | 对称 |
| Dynamic Sampling | — | — | 有 | — | — | — |
| Overlong 惩罚 | — | — | 有 | — | — | — |
| reward manager | naive | naive | dapo | naive | naive | naive |
| 本轮是否训练 | 否 | 是 | 是 | 是 | 是 | 是 |
按族带走六句