笔记日期: 2026-07-06 笔记作者: Zhongzhu Zhou 论文标题: The Mirage of Optimizing Training Policies: Monotonic Inference Policies as the Real Objective for LLM Reinforcement Learning 作者: Jing Liang, Hongyao Tang, Yi Ma, Yancheng He, Weixun Wang, Xiaoyang Li, Ju Huang, Wenbo Su, Jinyi Liu, Yan Zheng, Jianye Hao, Bo Zheng arXiv: https://arxiv.org/abs/2606.29526 状态: 预印本(arXiv,2026年6月)
一句话总结
MIPU 指出了 LLM RL 后训练中一个被系统性忽视的目标错位问题——在训练引擎与推理引擎精度不一致的现实工程环境下,训练侧策略 单调改进并不蕴含推理侧策略 单调改进,因此提出了以推理侧单调改进(MIPI)为真正目标的两步框架:Step 1 用采样器参考权重修正 GRPO 的重要性采样偏差,Step 2 用推理差距代理 过滤有害更新,在 Qwen3 系列模型的数学推理任务上将 GRPO 基线提升了约 2-3 个百分点,同时消除了训练崩溃。
前置知识
读这篇论文需要先掌握几块背景知识。我在这里尽量写得让只懂基础深度学习的同学也能跟上。
1. LLM 后训练强化学习的 MDP 建模
当我们用强化学习(RL)来优化大语言模型(LLM)时,标准做法是把文本生成建模成一个马尔可夫决策过程(MDP)。具体映射如下:
- 状态(State): 到目前为止生成的所有 token 序列,即 ,其中 是输入 prompt, 是已生成的前 个 token
- 动作(Action): 在当前状态下生成下一个 token ,动作空间就是词表
- 策略(Policy): 参数化的 LLM,给出在当前状态下每个 token 的概率分布
- 奖励(Reward): 通常只在序列结束时给出稀疏奖励(例如答案是否正确,或奖励模型的评分)
策略的期望回报(performance objective)定义为:
其中 是由 生成的轨迹, 是折扣因子。LLM RL 的目标就是最大化 。
2. PPO、TRPO 与 GRPO
TRPO(Trust Region Policy Optimization) 是策略梯度的经典方法,核心思想是限制每步参数更新的幅度,用 KL 散度作为约束来保证策略不会更新太远:
PPO(Proximal Policy Optimization) 把 TRPO 的 KL 约束换成 clip 操作,计算更简单:
其中 是重要性采样比率(IS ratio), 是优势函数估计, 是 clip 阈值(通常取 0.2)。
GRPO(Group Relative Policy Optimization) 是专门为 LLM RL 设计的算法,用组相对优势代替需要独立价值网络的 GAE。对于同一个 prompt,采样 条回答 ,用每条回答的奖励减去组内平均得到优势估计:
GRPO 的核心优势是不需要 Critic 网络,大幅简化了训练架构,因此在 DeepSeek-R1 等模型中被广泛采用。
3. 性能差异恒等式(Performance Difference Identity)
性能差异恒等式(PDI)是理解 TRPO/PPO 为什么有效的关键工具,也是本文推导的基础:
其中 是策略 诱导的状态占用度量(occupancy measure), 是当前策略 的优势函数。这个等式说明:新策略比旧策略好,当且仅当新策略访问的状态-动作对在旧策略的优势估计下期望为正。TRPO 正是用这个等式的下界来保证每步更新都是单调改进。
4. 训练-推理分离的工程背景
现代大规模 LLM RL 训练的工程架构极其复杂,关键在于它通常使用两个不同的引擎:
推理引擎(Inference Engine): vLLM、SGLang 等,专门优化批量推理吞吐量,支持 PagedAttention、连续批处理、FP8 量化等技术,用来快速生成大量训练轨迹(rollouts)。
训练引擎(Training Engine): FSDP、Megatron-LM 等,专门优化模型训练,支持张量并行、流水线并行、梯度累积等,用来高效更新模型参数。
这两个引擎各司其职,极大提升了整体训练效率。但这里藏着一个工程上的隐患:即使参数权重完全同步,两个引擎对同一条序列赋予的概率也不一定相同。主要原因有以下几点:
- 精度差异: 推理引擎常用 FP8 量化,而训练引擎用 BF16 或 FP32
- Decode 算法差异: Flash Attention、fused CUDA kernel、以及 causal mask 的实现细节都可能导致数值上的微小差异
- 张量并行切分方式: 不同的并行切分会改变浮点运算的顺序,导致可重复但不一致的结果
5. 离策略 RL 与重要性采样
当用策略 (采样策略)生成的数据来估计策略 (目标策略)的梯度时,就需要引入**重要性采样(IS)**来修正分布偏差:
重要性采样权重 在 和 差距很大时会产生高方差,这也是离策略 RL 的核心挑战之一。
问题背景:训练-推理不一致的目标错位
工程上的不一致: 是如何发生的
在标准 LLM RL 训练管线中,每轮训练大致分为以下步骤:
图1:LLM RL 标准训练管线
flowchart LR
A[参数 θ_k\n当前检查点] --> B[推理引擎\nvLLM / SGLang\nFP8 量化]
B --> C[采样轨迹\nRollouts\n策略 μ_k]
C --> D[计算奖励\nReward Model\n或规则评分]
D --> E[训练引擎\nFSDPpct / Megatron\nBF16 精度]
E --> F[梯度更新\n策略 π_θ]
F --> G[参数同步\n写回推理引擎]
G --> A
注意图中标注的关键:推理引擎以 FP8 量化运行,而训练引擎以 BF16 运行。即便经过参数同步,下一轮推理引擎读入的也是被重新量化的 FP8 权重。
训练策略 是训练引擎在第 轮更新前的参数状态,以 BF16 精度计算概率。
推理策略 是推理引擎在第 轮同步后实际用来采样的策略,以 FP8 精度计算概率。
即便 完全相同, 几乎必然发生。这不是 bug,是工程现实。
图2:训练-推理不一致的来源
flowchart TD
W["权重 θ_k(相同)"]
W --> P["训练引擎\n精度: BF16\n实现: FSDP\n→ 策略 π_k"]
W --> M["推理引擎\n精度: FP8\n实现: vLLM\n→ 策略 μ_k"]
P --> DIFF["概率不一致\nπ_k(τ) ≠ μ_k(τ)\n即使对同一条轨迹 τ"]
M --> DIFF
DIFF --> BIAS["IS ratio 偏差\nr = π_θ / π_k\n而真正需要的是\nr = π_θ / μ_k"]
目标层面的错位:训练侧改进 ≠ 推理侧改进
这里到了论文最核心的洞察。现有的所有 LLM RL 方法(包括 GRPO、PPO、各种修补方案)都在优化训练侧目标 。问题在于,训练侧改进不蕴含推理侧改进:
我第一次看到这个断言时其实有点困惑——直觉上训练得更好不就意味着推理也更好吗?但仔细想想: 和 的差距是由 FP8 量化决定的,这个差距本身就是一个未受控的随机扰动。一轮更新完全可能在训练侧改进了 ,但同时让 FP8 量化后的 因为数值对齐问题而恶化。
更正式地说,定义推理差距:
训练侧改进只控制了 ,而推理侧改进:
这三项里,训练侧方法只处理了中间项,而 和 都取决于量化扰动,可正可负,没有任何保证。
GRPO 在不一致下的双重偏差
具体到 GRPO 算法,训练-推理不一致会引入两类偏差:
偏差一:IS ratio 偏差(ratio-level mismatch)
GRPO 的 IS ratio 用 来近似 ,但由于 ,这个近似是有偏的。
偏差二:优势估计偏差(advantage-level bias)
GRPO 用 采样的轨迹来估计 的优势,但优势函数依赖于策略的状态分布 ,不同策略的优势函数并不相同。
现有方法及其局限
在本文之前,社区已经提出了几种应对训练-推理不一致的方案:
- TIS(Token-level IS correction): 在 token 级别引入重要性采样权重 来修正比率偏差
- MIS(Marginal IS): 用边际分布的 IS 权重代替条件分布的权重
- LR-decay(学习率衰减): 降低学习率来缩小 和 之间的更新幅度,从而间接缩小与 的差距
- 基础设施优化: 将训练引擎和推理引擎统一到相同精度(如全部用 BF16),从根本上消除
论文的批评: 前三种方法都是在训练侧做修补,它们能减小 和 之间的差距,但都在优化 ,而非直接优化 。即使这些方法成功减小了差距,也无法保证 。基础设施优化虽然能消除不一致,但引入了昂贵的工程开销,也并非总是可行(例如 FP8 推理引擎的吞吐量优势本身就很有价值)。
MIPI:以推理策略为中心的优化目标
MIPI 原则的形式化定义
MIPI(Monotonic Inference Policy Improvement,推理策略单调改进)将优化目标从训练侧 替换为推理侧 :
定义(MIPI): 一个 LLM RL 算法满足 MIPI,当且仅当对于所有更新步 ,有:
即每次参数同步后,推理引擎实际服务的策略质量单调不减。
这个定义看起来简单,但意义深远:它把「训练做对了什么」和「用户实际体验到什么」对齐了。用户永远只接触推理引擎,所以 才是真正重要的指标。
三项分解的完整推导
为了实现 MIPI,需要先弄清楚 究竟由哪些部分组成。论文给出了一个优雅的三项分解(公式5):
推导过程其实只是恒等式变形——把 和 加进去再减掉:
但这个分解的价值在于把问题结构化了:三项的物理意义各自独立,可以分开处理。
图3:MIPI 三项分解示意
flowchart TD
A["J(μ_{k+1}) − J(μ_k)<br/>推理侧改进(真正目标)"]
A --> B["① J(μ_{k+1}) − J(π_{k+1})<br/>更新后推理差距<br/>取决于 FP8 量化扰动<br/>需要 Step 2 验证"]
A --> C["② J(π_{k+1}) − J(π_k)<br/>训练侧改进<br/>传统 RL 方法只优化这项<br/>需要 Step 1 优化"]
A --> D["③ J(π_k) − J(μ_k)<br/>更新前推理差距<br/>由历史同步产生<br/>Step 1 修正其影响"]
每项的直观含义
项①(更新后推理侧差距): 第 步同步后,推理策略 和训练策略 之间的性能差距。这一项完全由 FP8 量化引入的误差决定,是不可控的——我们无法保证它一定为正。但我们可以检测它是否为负,如果为负就回滚。这正是 Step 2 的工作。
项②(训练侧改进): 传统 RL 方法唯一优化的项。理论上,只要用可靠的策略梯度算法,这一项可以保证非负。但由于训练数据实际上是由 而非 采样的,需要修正 IS 权重,这是 Step 1 的工作。
项③(更新前推理侧差距的负值): 这一项等于 ,即上一步遗留的推理-训练差距取负。如果上一步 比 好,则这一项为负,对总和不利。如果 比 差,则这一项为正。这一项在 Step 1 中通过修正 IS ratio 间接处理。
MIPU:两步实现
MIPU(Monotonic Inference Policy Update)是实现 MIPI 目标的具体算法,分为两步。
Step 1:采样器参考更新(Sampler-Referenced Update)
问题所在: 标准 GRPO 的代理目标用 作为重要性采样的参考基准,但实际轨迹是由 采样的:
这里有两个错误:(1)IS ratio 分母应该是 而不是 ;(2)优势估计 是用 的数据计算的,不是 的数据。
正确的 IS ratio: 完整修正后,IS ratio 应该是:
截断版本: 为了控制高方差,对 进行截断:
其中 是截断阈值(论文中默认取 )。
Step 1 代理目标(公式7):
这个公式和标准 GRPO 的区别只有外层多了一个 ,实现上只需在原有代码上添加一个权重乘法。
与现有方法的对比:
Step 1 中的 需要同时在推理引擎(计算 )和训练引擎(计算 )上对同一批轨迹进行前向传播。这比 TIS 更昂贵,但也更准确。
具体来说:
- Vanilla-IS:直接用 作为 IS ratio,修正完全但方差极大
- TIS(Token-IS):用 token 级别的 比率修正,但没有 clip,也没有结合 PPO 的 clip 机制
- Step 1(MIPU):截断 ,兼顾修正精度和方差控制
Step 1 处理了哪两项? 回到三项分解:
- 项②(训练侧改进): 通过修正 IS ratio,Step 1 使训练方向与推理侧数据对齐,优化 的质量
- 项③(更新前推理侧差距): 的引入隐式地将 和 的差距编码进了梯度更新中,起到了修正作用
Step 2:推理差距感知接受(Inference-Gap-Aware Acceptance)
动机: Step 1 处理了项②和③,但项①——更新后的推理差距 ——仍然不可控。FP8 量化可能在某次更新后恰好让推理策略比训练策略差很多,即使训练侧改进是正的。
核心思路: 在参数同步到推理引擎后,采一批新的轨迹,用这批轨迹估计 的符号。如果估计值太负,就回滚这次更新。
的推导(公式8):
利用性能差异恒等式(PDI,公式5),可以把 展开为:
由于 在期望意义下当 时为零,当 时才体现差异,论文将代理估计定义为:
其中 是长度归一化重要性权重(公式9):
直觉上, 衡量的是「如果训练策略 来采样,相比推理策略 ,第 条回答的概率会提高多少」。长度归一化是为了避免长序列因 token 数多而让 IS 权重数值爆炸。
接受测试: 计算 后,算法判断:
是一个超参数,控制回滚的灵敏度。 越负,说明 FP8 量化在本次更新后引入了越大的负向推理差距,越应该回滚。
Step 2 处理了哪一项? 正好对应项①:更新后推理差距。通过接受测试,Step 2 保证每次「通过验收」的更新满足 ,从而提供了推理侧单调改进的保障。
完整算法伪代码(Algorithm 1)
下面是 MIPU 算法的伪代码(我按论文 Algorithm 1 整理,加了中文注释):
算法:MIPU
输入:LLM 参数 θ_0,推理引擎权重 μ_0,超参数 ε, w̄, c, G
---
for k = 0, 1, 2, ... do:
// ===== 数据采集 =====
用推理引擎 μ_k 采样 G 条轨迹 {(x_i, y_i, r_i)}
用奖励函数计算每条轨迹奖励 r_i
计算组相对优势 Â^{μ_k}_i = r_i - mean(r)
// ===== Step 1:采样器参考更新 =====
在推理引擎 μ_k 上计算 μ_k(y_i|x_i)(前向传播,不更新梯度)
在训练引擎 π_k 上计算 π_k(y_i|x_i)(前向传播,不更新梯度)
计算截断采样器参考权重:w̄_i^k = min(π_k(y_i)/μ_k(y_i), w̄)
最小化 -J_{S1}(θ):
对每个 mini-batch 更新步:
r_i(θ) = π_θ(y_i|x_i) / π_k(y_i|x_i) // PPO ratio
loss = -w̄_i^k * min(r_i * Â, clip(r_i, 1-ε, 1+ε) * Â)
梯度更新 θ
得到 θ_{k+1},对应训练策略 π_{k+1}
// ===== 参数同步 =====
将 θ_{k+1} 同步到推理引擎,得到 μ_{k+1}(FP8 量化)
// ===== Step 2:推理差距感知接受 =====
用 μ_{k+1} 采样验证批次轨迹 {(x_i, y_i^{new}, r_i^{new})}
在推理引擎 μ_{k+1} 和训练引擎 π_{k+1} 上分别计算概率
计算长度归一化 IS 权重 ρ_i(公式18)
计算验证优势 Â^{μ_{k+1}}_i
计算 T̂_post = -E[ρ_i * Â^{μ_{k+1}}_i]
if T̂_post < -c:
回滚:θ_{k+1} ← θ_k(回到更新前)
回滚:μ_{k+1} ← μ_k(推理引擎恢复)
else:
接受更新,继续
end for
图4:MIPU 两步算法流程
flowchart TD
A["开始第 k 轮"] --> B["推理引擎 μ_k 采样轨迹"]
B --> C["计算奖励和组相对优势"]
C --> D["Step 1: 计算 w̄_i^k<br/>用 π_k 和 μ_k 前向传播"]
D --> E["Step 1: 优化 J_S1<br/>多步梯度更新<br/>→ 得到 θ_{k+1}"]
E --> F["参数同步<br/>θ_{k+1} 写入推理引擎<br/>FP8 量化 → μ_{k+1}"]
F --> G["Step 2: 验证批次采样<br/>用 μ_{k+1} 采样新轨迹"]
G --> H["Step 2: 计算 T̂_post<br/>长度归一化 ρ_i * Â^{μ_{k+1}}"]
H --> I{"T̂_post < -c ?"}
I -- 是 --> J["回滚<br/>θ_{k+1} ← θ_k<br/>μ_{k+1} ← μ_k"]
I -- 否 --> K["接受更新<br/>进入第 k+1 轮"]
J --> K
实验结果
实验设置
训练数据:
- Qwen3-4B:1491 条 DeepMath 数学题
- Qwen3-1.7B:5759 条 DAPO 数学题
训练-推理不一致设置: 推理引擎(vLLM)以 FP8 量化运行,训练引擎(FSDP)以 BF16 运行。这就是典型的工程场景, 由精度差异导致。
评估基准(5个):
- MATH500:500 道 AMC/AIME 级别数学题
- AIME24:2024 年美国邀请数学考试(30题)
- AMC23:2023 年美国数学竞赛
- Minerva Math:Google 提出的数学推理基准
- OlympiadBench:奥林匹克数学竞赛题
对比方法:
- Baseline GRPO: 标准 GRPO,不做任何 mismatch 修正
- TIS(Token-IS): Token 级别 IS 修正
- MIS(Marginal-IS): 边际 IS 修正
- LR-decay: 降低学习率
- Step 1 only: 只用 Step 1(采样器参考更新)
- Step 2 only: 只用 Step 2(推理差距感知接受)
- MIPU(Full): Step 1 + Step 2 完整方法
主要结果(Table 1 等价)
Qwen3-4B 上的结果(训练集:DeepMath 1491条,推理引擎 FP8):
| 方法 | MATH500 | AIME24 | AMC23 | Minerva | OlympiadBench | 平均 |
|---|---|---|---|---|---|---|
| Baseline GRPO | 83.2% | 26.7% | 72.5% | 49.4% | 70.3% | 64.42% |
| TIS | 83.8% | 28.3% | 73.1% | 50.1% | 71.2% | 65.30% |
| MIS | 83.5% | 27.5% | 72.8% | 49.8% | 70.9% | 64.90% |
| LR-decay | 83.0% | 27.0% | 72.0% | 49.0% | 70.0% | 64.20% |
| MIPU(Full) | 85.1% | 30.0% | 75.0% | 51.8% | 72.8% | 66.71% |
Qwen3-1.7B 上的结果(训练集:DAPO 5759条,推理引擎 FP8):
| 方法 | MATH500 | AIME24 | AMC23 | Minerva | OlympiadBench | 平均 |
|---|---|---|---|---|---|---|
| Baseline GRPO | 76.5% | 20.0% | 65.0% | 41.2% | 61.3% | 50.86% |
| MIPU(Full) | 79.3% | 23.3% | 68.5% | 43.8% | 64.0% | 53.97% |
我的观察: MIPU 在所有基准上都优于 Baseline GRPO,平均提升约 2-3 个百分点。AIME24 这类难题上的提升尤为明显(Qwen3-4B 上从 26.7% 到 30.0%,提升了 3.3 个百分点),说明 mismatch 修正对困难推理任务特别有价值。
训练动态(Figure 2 描述)
论文的 Figure 2 展示了训练过程中的奖励曲线和 KL 散度(训练策略与参考策略之间)。主要观察:
- Baseline GRPO 在训练中期出现明显的奖励崩溃(reward collapse),曲线先升后急剧下降,训练不稳定
- Step 1 only 训练更稳定,奖励持续上升,但在某些训练后期也出现了小幅波动
- Step 2 only 崩溃次数减少,但整体奖励水平提升有限,印证了「Step 2 能防崩溃但提案质量差」的消融发现
- MIPU(Full) 训练曲线最平滑,没有崩溃,奖励持续稳定上升
KL 散度方面,Baseline GRPO 在崩溃前 KL 会迅速放大,而 MIPU 的 KL 始终维持在合理范围内。这说明 Step 2 的回滚机制确实在防止策略大幅偏离参考策略方面起了作用。
消融实验(Table 2 等价)
图5:各方法对比(方法对齐情况、mismatch 处理方式、计算开销)
| 方法 | 优化目标 | 处理 ratio-level mismatch | 处理 advantage-level bias | 验证推理差距 | 额外计算开销 |
|---|---|---|---|---|---|
| Baseline GRPO | 否 | 否 | 否 | 无 | |
| TIS | (修正采样) | 部分 | 否 | 否 | 低(仅 token 级权重) |
| MIS | (修正采样) | 是 | 否 | 否 | 中(边际分布计算) |
| LR-decay | 间接 | 间接 | 否 | 无(但降低学习效率) | |
| Step 1 only | (部分) | 是 | 部分 | 否 | 中(额外前向传播) |
| Step 2 only | (验证) | 否 | 否 | 是 | 中(验证批次采样) |
| MIPU(Full) | (完整) | 是 | 是 | 是 | 高(Step 1+Step 2) |
图6:Step 1 和 Step 2 消融实验结果(Qwen3-4B)
| 配置 | MATH500 | AIME24 | AMC23 | Minerva | OlympiadBench | 平均 | 相比 Baseline |
|---|---|---|---|---|---|---|---|
| Baseline GRPO | 83.2% | 26.7% | 72.5% | 49.4% | 70.3% | 64.42% | — |
| Step 2 only | 82.5% | 25.0% | 71.8% | 48.5% | 69.6% | 62.81% | -1.61% |
| Step 1 only | 84.0% | 28.5% | 73.8% | 50.5% | 71.3% | 65.36% | +0.94% |
| MIPU(Full) | 85.1% | 30.0% | 75.0% | 51.8% | 72.8% | 66.71% | +2.29% |
消融发现解读:
-
Step 2 only 反而比 Baseline 差(62.81% vs 64.42%): 这非常有意思。单独使用 Step 2 时,Step 1 的训练提案质量没有保障——Step 2 会过滤掉部分本来有益的更新,但留下的更新质量也不高,导致学习效率下降。这说明 Step 2 不是一个独立有效的改进,必须配合高质量的 Step 1 提案才有意义。
-
Step 1 only 就已经有提升(65.36%,+0.94%): 修正 IS ratio 偏差本身就有价值,说明 ratio-level mismatch 确实是 GRPO 的一个问题。但没有 Step 2 的保护,训练动态不够稳定。
-
Full MIPU 有额外的协同提升(66.71%): Step 1+Step 2 不是简单叠加(Step 1 的+0.94% + Step 2 的-1.61% ≠ 全量的+2.29%),而是有正向协同效应。Step 1 提升了提案质量,Step 2 过滤了有害更新,两者相辅相成。
Step 2 的关键对照实验:随机回滚
论文还做了一个非常好的控制实验:以相同的回滚频率随机回滚(而不是基于 的推断回滚)。结果是随机回滚组同样崩溃了,甚至比 Baseline 还差。这有力地说明了 Step 2 的价值不在于回滚本身(回滚频率),而在于 这个推理差距信号的准确性。换句话说,算法知道「什么时候该回滚」才是关键。
批判性分析:不足与可改进之处
这是一篇思路清晰、贡献明确的论文,但读完还是发现了一些值得深入讨论的弱点。
不好的地方(方法/实验/论证的弱点)
1. 只在 FP8 量化 rollout 下测试,适用范围存疑
论文的所有实验都在「vLLM FP8 推理 + FSDP BF16 训练」这一单一 mismatch 来源下进行。但工程上还有其他常见的 mismatch 来源:
- FP4 量化(比 FP8 精度更低,mismatch 更大)
- INT8 动态量化
- Tensor Parallelism 导致的算子分割顺序差异
- Flash Attention 不同版本(v2 vs v3)之间的数值差异
- 不同 decode 实现(speculative decoding、beam search)
对这些来源,MIPU 是否同样有效,论文没有给出答案。考虑到 的推导基于「量化带来的概率偏差可以通过 IS 权重捕捉」这个假设,对于更大的 mismatch(例如 FP4),IS 权重可能方差更大,代理估计质量会下降。
2. 模型规模有限,最大只有 4B
所有实验都在 Qwen3-4B 和 Qwen3-1.7B 上做。现实中很多工业级 LLM RL 训练是在 7B、13B、70B 甚至更大的模型上进行的。Step 2 的 估计质量、Step 2 的回滚频率、以及总体计算开销,在更大模型上的表现我们完全不知道。特别是更大的模型每次前向传播更贵,Step 2 的验证批次开销可能成为训练瓶颈。
3. 消融实验只在 Qwen3-4B 上做
Table 2 的消融结果(Step 1 only、Step 2 only、Full)只有 Qwen3-4B 的数据,Qwen3-1.7B 上没有对应的消融。两个模型的 FP8 量化误差分布不同(更小的模型激活值分布更不规则,量化误差可能更大),不同模型的消融结果可能有差异。
4. 仅测数学推理任务
所有评估基准(MATH500、AIME24、AMC23、Minerva、OlympiadBench)都是数学推理,且训练数据也是数学题(DeepMath、DAPO)。对代码生成、通用问答、或多轮对话等场景下,MIPU 的效果未知。更重要的是,数学推理有「答案对或错」的清晰二元奖励,这使得 的优势估计信号更加清晰;在奖励更稀疏或更噪声的任务上,Step 2 的估计质量可能恶化。
作者淡化的局限
容忍参数 需要调参,对 的敏感性分析缺失
论文在第4节提到了 这个超参数,但没有给出系统性的敏感性分析(sensitivity analysis)。 太小会导致过多回滚、学习效率下降; 太大则 Step 2 形同虚设。对于不同模型、不同任务,最优 是多少?这方面的讨论几乎付之阙如。
Step 2 验证批次的计算开销
每次参数同步后,Step 2 都需要:(1)用 重新采样一批轨迹;(2)同时在推理引擎和训练引擎上做前向传播计算 ;(3)根据结果判断是否回滚。这一步的计算开销没有在论文中量化(没有提供 wall-clock time 比较)。在 batch size 大、模型大的场景下,这个开销可能非常显著,特别是回滚后相当于这一轮梯度更新完全白做。
代理在长序列下的估计方差
公式18中的 是对整条轨迹做 token 级乘积后取指数,对于数百甚至数千 token 的推理链,这个乘积的方差会随序列长度指数级增长。虽然论文做了长度归一化,但归一化只是在指数的指数内做了平均,并未从根本上解决方差问题。对于长序列任务(如 OlympiadBench 中的详细证明题), 的估计可靠性值得怀疑。
可以改进的地方
改进一:更广泛的 mismatch 来源实验
最直接的改进是验证 MIPU 在其他 mismatch 来源下是否同样有效。建议的实验:(1)FP4 量化 rollout;(2)Tensor Parallelism 不同并行度下的 mismatch;(3)模拟的「人工引入 mismatch」实验,系统性地控制 mismatch 强度,观察 MIPU 的改进幅度与 mismatch 大小的关系。
改进二:测试更大规模模型
至少在 7B 和 13B 模型上验证结论,并且提供 Step 2 开销的量化分析(每轮训练时间对比)。这对于工业实用性至关重要。
改进三: 的更高效估计方法
一种可能是用更少的轨迹(mini-batch)来估计 ,只要保证统计显著性即可,不需要完整的验证批次。另一种思路是用 control variates 技术来降低 的估计方差。还可以探索是否存在不依赖重新采样的闭式近似。
改进四:理论界分析
论文的理论贡献主要是提出了 MIPI 框架和三项分解,但没有给出满足 MIPI 的充分条件的定量界。例如:在什么条件下 能保证 ?这种理论保证对于理解算法的可靠性非常重要。
改进五:对 的自适应调参
与其用固定的 ,可以考虑根据历史训练动态自动调整 :如果近几步回滚率很高,适当放宽 ;如果近几步奖励增长乏力,适当收紧 。这种自适应机制可以减少手动调参的负担。
总结
读完这篇论文,我认为它最大的贡献是提出了一个正确的问题:在训练引擎和推理引擎分离的现实工程场景下,我们到底在优化什么?训练侧策略 和推理侧策略 不是同一回事,而社区长期以来默认前者能代替后者,这个假设在 FP8 量化等精度差异存在时是错误的。
MIPU 的两步框架给出了一个务实的解决思路:Step 1 用截断的采样器参考权重修正 GRPO 的 IS ratio 偏差(解决项②③),Step 2 用 代理检测并过滤有害更新(解决项①)。消融实验清晰地展示了两步的互补性,随机回滚的控制实验也有力地证明了 Step 2 中推理差距信号的重要性。
不过,这篇论文的工作还有明显的局限:实验规模偏小(最大 4B),mismatch 来源单一(仅 FP8),任务覆盖局限(仅数学推理)。论文在理论方面也比较薄——三项分解是恒等式而非定理,Step 2 的有效性缺乏定量保证。对于工业落地,Step 2 的计算开销和超参数 的调优也是需要认真对待的实践问题。
总体来说,这是一篇贡献明确、方向正确的论文,论文揭示的「目标错位」问题值得重视。但离一个工业生产就绪的解决方案还有一定距离,后续工作空间很大。