无价值模型的 GRPO / DAPO 靠「组内奖励均值」当基线,稳定但只能做轨迹级信用分配。论文认为价值模型能给出逐 token、更低方差的优势估计——前提是先修好三件事: 价值初始化偏差、固定 λ 的 GAE、稀疏的 0/1 奖励。VAPO 用七项改动逐一应对,在 Qwen2.5-32B 上把 AIME 2024 的 avg@32 从 Vanilla PPO 的 5 分推到 60 分(Table 1)。
价值模型的三个病。(1)价值网络常用奖励模型初始化,奖励模型只在 <EOS> 上打分,对不完整前缀给低分,于是每个位置的初值都系统性偏高;(2)λ=0.95 时,终止奖励回传到第 t 个 token 的系数是 0.95T−t,长序列里趋近 0,价值更新几乎全靠有偏的 bootstrapping;(3)验证器只给 0/1,长 CoT 让正样本更稀缺。
对症下药。前两病用 VC-PPO 的 Value-Pretraining(固定策略采样、用 Monte-Carlo return 预训价值网络到 explained variance 够高)和 Decoupled-GAE(价值更新 λ=1.0,策略更新另设 λ)。第三病对应 Clip-Higher、正样本 LM 损失、Group-Sampling(后者从 GRPO 借用)。
最值得记住的一点是 Length-Adaptive GAE:把 GAE 系数的总和固定为 αl,解出 λpolicy = 1 − 1/(αl),α=0.05。序列越长 λ 越接近 1,终止奖励的权重不再随长度指数衰减。消融显示这一项单独贡献 60 − 45 = 15 分(绝对点差)。
读完这节你应该知道:为什么在只有终局 0/1 奖励时,逐 token 的价值估计会整体失真。
论文把语言生成写成 token 级 MDP(§2.1):状态是「prompt + 已生成的全部 token」,动作是下一个 token,轨迹在 <EOS> 处结束。奖励只在终止 token 给出:
优势估计 Ât = Σl (γλ)l δt+l(Eq. 3)里的 δt = R(st, at) + γV(st+1) − V(st)。除了终点,每一步 R(st, at) 都是 0,所以每一步的优势几乎完全来自 V。价值网络稍微偏一点,整个信号就偏;价值网络偏得越久,GAE 的递归就把误差累得越大。
再加上推理模型的回复长度本身极不稳定,长、短序列对偏差–方差权衡的要求不同。论文的 §3 把这三个问题拆成三节,§4 对应用三组改动分别处理——这一一对应也是后面读方法时的线索。
读完这节你应该知道:VAPO 站在哪条路上、批判的对象是谁、以及它借了哪些前人的零件。
做法:用一组回复的奖励均值当基线,把轨迹级优势直接当成每个 token 的优势;不需要价值网络,省掉它的算力开销。
论文的评价:「value-model-free methods deliver an accurate and stable baseline」(§1)。但也指出它们难以做到精确的逐步信用分配(§1 引 [21][30])。
论文观点:价值模型若能训好,能提供逐 token 的信用分配和更低方差的估计,性能上限更高(§1)。
Vanilla PPO:价值网络用奖励模型初始化,样本级损失,λ=0.95。论文 Table 1 中只有 5 分,训练后期回复长度急剧收缩、直接作答。
VC-PPO:论文说「Value-Pretraining ... This phenomenon is first identified and addressed in VC-PPO」(§4.1)。对 Decoupled-GAE,§4.1 写 VAPO 只「adopt the core idea of decoupling GAE computation」:价值更新的 λ=1.0 与策略更新的「更小 λ」这条思路来自 VC-PPO,而 VC-PPO 的具体取值 λcritic=1.0、λpolicy=0.95 是 VC-PPO 自己的设定(「In VC-PPO, this is achieved by employing ... λcritic = 1.0 and λpolicy = 0.95」);VAPO 的策略 λ 改用 Eq. 5 按长度自适应。
ORZ:同样用价值模型,但以 Monte-Carlo 估计代替 GAE;论文称它「could just achieves a comparable performance to value-model-free method」(§6)。
所以 VAPO 的定位不是另起炉灶。§1 写它「draws inspiration from prior research works such as VC-PPO [30] and DAPO [29]」;七项改动里,Value-Pretraining 与 Decoupled-GAE 来自 VC-PPO,Clip-Higher 与 Token-Level Loss 来自 DAPO,正样本损失是 SIL 式的 self-imitation learning,Group-Sampling 来自 GRPO(§1 贡献第 3 条)。论文明说的新增点是 Length-Adaptive GAE(§1 贡献第 2 条);其余各项按 §1 贡献第 3 条归为对前人技术的系统整合,并用消融验证必要性。
§1 贡献第 1 条:「VAPO, the first value-model-based RL training framework to outperform value-model-free methods on long COT tasks significantly.」
§7 结论:「By introducing seven novel techniques atop PPO ...」(未说明哪几项为 VAPO 新提出)。
对比 §1 贡献第 3 条:「We systematically integrate techniques from prior work ...」并列出了 VC-PPO / DAPO / SIL / GRPO 的来源。本页不判断哪几项属于「novel」:§1 贡献第 2 条点名 Length-Adaptive GAE,贡献第 3 条把其余归为前人技术的整合,两处没有逐项对照。
读完这节你应该知道:每项改动针对 §3 的哪个问题,以及它在消融表里值多少分。
下表左侧是 §4 的分节与对应病症,右侧是该节引入的改动、出处,以及 Table 1 中「单独移除该项后」的分数(均为 Table 1 转录;点差由 python3 按 60 − x 计算,为绝对点差)。
| 病症(§3) | 改动(§4) | 论文给出的来源 | 移除后 AIME24 avg@32(Table 1) | 点差 vs 60 |
|---|---|---|---|---|
| 价值偏差 | Value-Pretraining | VC-PPO(§4.1) | 11 | −49 |
| 价值偏差 | Decoupled-GAE | VC-PPO(§4.1) | 33 | −27 |
| 异构长度 | Length-Adaptive GAE | Eq. 4–5(§4.2) | 45 | −15 |
| 异构长度 | Token-Level Loss | DAPO(§4.2, Eq. 7) | 53 | −7 |
| 奖励稀疏 | Clip-Higher | DAPO(§4.3, Eq. 8) | 46 | −14 |
| 奖励稀疏 | Positive Example LM Loss | SIL 式模仿学习(§1;Eq. 9–10) | 54 | −6 |
| 奖励稀疏 | Group-Sampling | GRPO(§4.3) | 55 | −5 |
§4.1 给了三步:用固定策略(例如 πsft)持续采样;用 Monte-Carlo return 更新价值网络,直到 value loss 与 explained variance 等指标足够低;保存 checkpoint 供后续实验加载。§5.1 的参数表写的是「a value network warmup for 50 steps based on the reward model (RM) before initiating policy training」。论文未写明:这 50 步预训练用的是哪一批采样、value loss / explained variance 的具体阈值是多少。本页不给推测值。
价值更新目标用 λ=1.0,论文称这带来「an unbiased gradient-descent optimization」(§4.1);策略更新则用更小的 λ 以约束计算与时间。§5.2 解释移除它的后果:「reward signals to exponentially decay during backpropagation」。注意原文的 27 点下降是相对完整版 60 的绝对点差(60 − 33)。
固定 λ=0.95 时,长序列(l>100)里 TD 误差上奖励对应的系数是 0.95100 ≈ 0.006(§4.2)。论文改为令系数之和正比于序列长度 l:
直观地说:序列越长,λ 越接近 1,单步 TD 误差的贡献衰减得越慢;而所有系数加起来始终是 αl,长序列里有更多步、每一步分摊到更多项。下面的交互可以按 Eq. 5 直接算 λ。
原损失(Eq. 6)先在序列内对 token 求平均、再对 batch 求平均,长序列的每个 token 权重被稀释;Eq. 7 改为在 batch 内所有 token 上统一平均。论文在 §5.2 称「Token-level loss implicitly increased the weight of long responses, contributing to a 7-point gain」。
Eq. 8 把裁剪区间拆成 εlow 与 εhigh,§5.1 取 εhigh=0.28、εlow=0.2。论文的理由是「leave more room for the increase of low-probability tokens」,而 εlow 保持较小,因为「increasing it will suppress the probability of these tokens to 0」。
对采样到的正确答案集合 T 追加 NLL 损失(Eq. 9),总目标为 L = LPPO + μ · LNLL(Eq. 10),§5.1 取 μ=0.1。§1 把它的来源标为 SIL [14]。
同样的计算预算下,论文对比「尽量多 prompt、每个采样一次」与「少 prompt、多次重复采样」,称后者「yields marginally better performance」(§4.3),消融中对应 60 − 55 = 5 点(绝对)。
拖动长度 l,看 λ 从 0 涨向 1、奖励权重的衰减变慢;Length-Adaptive GAE 对每一个序列长度给出多大的 λ,以及它替换掉的固定 λ=0.95 衰减得多快。
下图两条曲线的每个点分别是 λk 与 0.95k,k 为距离终点还有多少步(k = 0 是终点本身)。断点标记的是当前 l,滑块右侧是 l 处 0.95 曲线的高度。
横轴 k 固定为 0–100,两条曲线都只画到 k = l。
计算规则(逐字对应):λ 由 Eq. 5:λ = 1 − 1/(α·l);若 l < 1/α,式值为负(1 − 1/(αl) < 0),不满足 λ 的定义域,显示为 0;l = 1/α 时式值恰为 0。(推断:原文未规定这些情形,此处为显示用截断,不参与其它读数)。系数总和为 1/(1−λ)(Eq. 4 的左端,闭式求和)。固定 λ 衰减为 0.95l。图表横轴 k 从 0 到 100,纵轴取 λk,均按标准 IEEE 浮点幂计算,不涉及标准差。
组 1:l = 20,α = 0.05
0.0000000.35849(5 位有效数字)组 2:l = 100,α = 0.05
0.8000000.0059205(5 位有效数字;原文写作「≈ 0.006」,§4.2)在浏览器控制台分别执行 setVapo(20, 0.05) 与 setVapo(100, 0.05),三个读数依次为 0.000 1.00 0.35849 和 0.800 5.00 0.0059205,与上面逐位相同。
覆盖 / 未覆盖:覆盖 Eq. 5 的 λ 与 Eq. 4 的闭式系数和;未覆盖 Eq. 3 中真实的逐步 GAE 累加(那需要在训练轨迹上逐 token 计算 δ 与 (γλ)l,论文没有公布轨迹数据),本页不做该模拟。图表是曲线示意(SVG polyline),其像素位置不是精确读数,精确值以三个数字槽与手算为准。
读完这节你应该知道:论文给的训练配置、它没披露的工程细节,以及原文内部需要并列阅读的数字。
| 项目 | Vanilla PPO 基线(§5.1) | VAPO(§5.1 第 1–7 条) |
|---|---|---|
| 基础模型 | Qwen-32B(文中写作 Qwen-32B / Qwen2.5-32B) | 同左 |
| 优化器 / 学习率 | AdamW,actor 1×10−6,critic 2×10−6,warmup-constant | 未单列(沿用 PPO 基础配置) |
| batch | 8192 prompts,每个采样 1 次,mini-batch 512 | 512 prompts,每个采样 16 次,mini-batch 512 |
| 价值网络初始化 | reward model;λ=0.95;γ=1.0 | RM 上 50 步 warmup 后开始策略训练 |
| GAE λ | 0.95(统一) | 价值 λ=1.0;策略 λ = 1 − 1/(αl),α=0.05 |
| 损失粒度 | sample-level | token-level |
| 裁剪 ε | 0.2 | εhigh=0.28,εlow=0.2 |
| 正样本 LM 损失权重 | — | 0.1 |
γ 在 §2.3 写「it is a common practice to use discount factor γ = 1.0 in RLHF」,§5.1 写「γ set to 1.0」。评测参数:AIME24 每个 prompt 跑 32 次取平均通过率,top-p=0.7,temperature=1.0(§5.1 末段)。
论文没披露的工程面:§5.1 只给了配置,没有给各模块的并行方式、价值网络与策略网络的参数规模、总 GPU 时数或 tokens 数。唯一与开销相关的原文表述是 §1 说的无价值模型方法「eliminate the computational overhead of learning a value model」——VAPO 选择承担这笔开销,但论文没有量化它。本页因此不估算 VAPO 比 DAPO 慢多少。
读完这节你应该知道:在 PPO 的每一步里,预训练、采样、优势计算、损失与裁剪各对应哪项改动。
下面这张图是按 §4 的文字组织的示意,不是论文原图;论文没有给出流程示意图。
读完这节你应该知道:每个被移除的组件分别掉多少分(绝对点差),以及 Figure 2 里与「探索」叙事相反的那条曲线。
原文表头为「AIME24avg@32」;评测设置见 §5.1:32 次采样取平均通过率。所有数字来自 Table 1,未做四舍五入。点差列是本页用 python3 计算的绝对差。
| Model(Table 1) | AIME24 avg@32 | 相对 VAPO(60) 的点差 |
|---|---|---|
| VAPO | 60 | 0 |
| VAPO w/o Value-Pretraining | 11 | −49 |
| VAPO w/o Decoupled-GAE | 33 | −27 |
| VAPO w/o Length-adaptive GAE | 45 | −15 |
| VAPO w/o Clip-Higher | 46 | −14 |
| VAPO w/o Token-level Loss | 53 | −7 |
| VAPO w/o Positive Example LM Loss | 54 | −6 |
| VAPO w/o Group-Sampling | 55 | −5 |
| DAPO | 50 | −10 |
| DeepSeek-R1-Zero-Qwen-32B | 47 | −13 |
| Vanilla PPO | 5 | −55 |
Table 1 中 DAPO 与 DeepSeek-R1-Zero 是论文引用的他人报道值(§5.2:「DAPO reaches 50 points with 50% of the update steps」),并非 VAPO 复现;表格本身未对这两种方法做逐项注明。
| 原文主张 | 对应数字(Table 1) | 原文原句 |
|---|---|---|
| 七项改动合在一起比朴素 PPO 好得多 | 60 vs 5 | 「Our VAPO method finally achieves 60 points, which is a significant improvement.」(§5.2) |
| 价值预训练是防止崩溃的关键 | 11 | 「the model experiences the same collapse as Vanilla PPO during training, converging to a maximum of approximately 11 points.」(§5.2) |
| 解耦 GAE 防奖励衰减 | 33 | 「Removing the decoupled GAE causes reward signals to exponentially decay during backpropagation ... leading to a 27-point drop.」(§5.2) |
| 长度自适应 GAE 平衡长短序列 | 45 | 「Adaptive GAE balances optimization for both short and long responses, yielding a 15-point improvement.」(§5.2) |
| Clip-Higher 鼓励充分探索 | 46 | 「its removal limited the model's maximum convergence to 46 points.」(§5.2) |
| Token-level loss 加大长回复权重 | 53 | 「Token-level loss implicitly increased the weight of long responses, contributing to a 7-point gain.」(§5.2) |
| 正样本 LM 损失提升正样本利用 | 54 | 「Incorporating positive-example LM loss boosted the model by nearly 6 points.」(§5.2) |
| Group-Sampling 提供对比信号 | 55 | 「Using Group-Sampling to generate fewer prompts but with more repetitions also resulted in a 5-point improvement.」(§5.2) |
| 比无价值模型方法高 10 分以上 | 60.4 → +10.4 vs DAPO(50);+13.4 vs R1-Zero(47);原句称 >10 | 「VAPO outperforms the previously reported results of DeepSeek-R1-Zero-Qwen-32B and DAPO by more than 10 points.」(Abstract)——60.4 为 §5.2 / Figure 1 读数,Table 1 为 60(差值由 python3 计算,绝对点差) |
| 比 DAPO 更省步数 | 5,000 步 / DAPO 的 60% | 「VAPO matches this performance using only 60% of DAPO's steps」(§5.2,指追平 50 分) |
Figure 2c 的纵轴是 generation entropy,横轴是训练步(0–5000)。正文说 VAPO 熵更高(「VAPO maintains stable entropy—neither collapsing nor becoming excessively high」,§5.2),但紧接着的训练动态部分又写:
两点并列记录:(a) §5.2 的「neither collapsing nor becoming excessively high」与 §5.3 的「lower than DAPO's in the later stages」;(b) §5.2 训练动态描述中「更快的分数增长」与「更低的熵」同在 Figure 2 下,作者称「the lower entropy has minimal negative impact on performance」。§5.2 的「60.4 within 5,000 steps」与 Table 1 的 60 已在第 04 节「三处需要并列阅读的地方」列出。Figure 2 为曲线图,具体数值坐标未转录(论文只给折线,未列表值)。
原文在 Abstract、§1、§5.2 三处说多次运行结果相近、无训练崩溃(「across multiple independent runs, no training crashes occur」),§5.2 写「consistently achieves peak scores of 60-61 across three repeated experiments」。论文没有给出三次运行的逐次分数与方差。
读完这节你应该知道:哪些结论是实验直接支持的,哪些只是论文顺带提及、没有数据。
§5 全部数字来自 Qwen2.5-32B(正文也写作 Qwen-32B)在 AIME24 上的训练,且论文声明「no SFT data is introduced in any of the experiments」(§1)。Table 1 未列出其它模型规模或其它基准的结果。
§5.1 只写「These techniques are also effective for other reasoning tasks, such as code-related tasks」,本页范围内未获取到对应的实验表或数字。
§1 指出无价值模型方法「eliminate the computational overhead of learning a value model」,而 VAPO 额外引入价值网络、价值预训练与每步价值更新;论文没有报告参数量、显存或吞吐对比。
§5.1 写「the actor learning rate to 1 × 10−6 and the critic learning rate to 2 × 10−6, as the critic needs to update faster to keep pace with policy changes」,这是 PPO 基础配置,未说明 VAPO 是否沿用——论文在该段的 VAPO 参数表里没有重列学习率,本页按「沿用」阅读。推断(依据:VAPO 小节写的是「Compared to vanilla PPO, VAPO made the following parameter adjustments」,七条里无学习率)。