Review date: 2026-07-06 Review author: Zhongzhu Zhou Paper reviewed: The Mirage of Optimizing Training Policies: Monotonic Inference Policies as the Real Objective for LLM Reinforcement Learning Paper authors: 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 Venue/Status: Preprint (arXiv, June 2026)
Short Answer
This paper exposes a quiet but consequential flaw at the heart of LLM reinforcement learning post-training: virtually every existing method optimizes the training policy , yet the policy that actually matters at deployment is the inference policy — and these two policies, even when nominally synchronized, assign systematically different probabilities to the same trajectories due to FP8 quantization, precision discrepancies, and other engine-level differences between production inference stacks (vLLM, SGLang) and training frameworks (FSDP, Megatron). The authors call this gap training-inference mismatch and prove that training-side monotonic improvement does not imply inference-side monotonic improvement. Their proposed fix, MIPU (Monotonic Inference Policy Update), decomposes the inference-side improvement into three auditable terms, addresses each with a concrete algorithmic step — a sampler-referenced importance weight correction and an inference-gap-aware rollback mechanism — and validates the approach on FP8-quantized rollouts of Qwen3-4B and Qwen3-1.7B on math benchmarks, achieving gains of roughly 2–3 percentage points over GRPO while dramatically stabilizing training dynamics.
Prerequisites
Before diving into the paper’s contributions, I want to build the necessary background for readers who are comfortable with machine learning but may not have studied LLM post-training RL in depth. The concepts here are load-bearing for understanding why the paper’s central claim is non-trivial.
LLM Post-Training RL as a Markov Decision Process
Large language model alignment via reinforcement learning reframes the text generation process as a sequential decision problem. At each step, the model (acting as a policy ) observes the current context — the input prompt plus all tokens generated so far — and selects the next token to emit. When generation terminates (via an end-of-sequence token or a length limit), a reward function evaluates the complete output.
More formally, we set up a Markov Decision Process (MDP) as follows:
- State : the concatenation of the prompt and all tokens generated through step . This makes the state space exponentially large — a vocabulary of size and a maximum sequence length of gives a state space of order .
- Action : the next token chosen from the vocabulary .
- Policy : the LLM’s conditional distribution over , parameterized by the model weights .
- Reward : a scalar signal received at the terminal state, encoding task quality (e.g., correctness of a math proof verified by symbolic execution, quality of a code solution measured by test pass rate).
- Episode: one complete sequence from prompt to end-of-sequence token.
Because the reward is typically only available at the end of an episode (sparse reward), and because the action space is enormous (vocabulary sizes of 32k–128k are common), LLM RL is a challenging instance of the general RL problem. The MDP structure is also unusual: the state transitions are deterministic given the action (the next state is the previous state with one token appended), and the stochasticity lives entirely in the policy’s token choices.
The key objective is to maximize the expected cumulative reward:
where denotes a complete trajectory (token sequence) sampled by unrolling the policy autoregressively from a prompt .
Note that because rewards are sparse (given only at the end), there is no discounting needed in the typical LLM RL formulation — every intermediate token contributes to the final reward equally in the sense that no token is discounted away.
Policy Gradient: The Foundation
Before trust-region methods, the simplest approach to maximizing is the REINFORCE (Williams 1992) policy gradient estimator:
where is the return from step onward. The key insight is that this gradient is an expectation over rollouts: we generate a trajectory, observe the return, and push the log-probabilities of actions upward (if the return is positive) or downward (if negative).
However, raw REINFORCE has very high variance. Two standard remedies are:
-
Baseline subtraction: replace with for some state-dependent baseline . This yields the advantage , which captures how much better action is relative to the average in state . Baselines do not introduce bias in expectation but dramatically reduce variance.
-
Actor-critic: train a separate “critic” network to estimate or , providing a lower-variance advantage estimate. PPO uses a critic; GRPO avoids it.
PPO, TRPO, and GRPO
The dominant algorithms for LLM post-training RL derive from the policy gradient family, with trust-region constraints added for stability.
TRPO (Trust Region Policy Optimization) derives from the observation that standard gradient ascent on can take steps that completely destroy the policy if the learning rate is too large. TRPO constrains each update to a trust region defined by a KL divergence bound:
This is a constrained optimization problem that requires computing (or approximating) the Fisher information matrix of the policy — an operation that is infeasible for billion-parameter LLMs.
PPO (Proximal Policy Optimization) approximates TRPO’s constraint through a clipped surrogate objective, converting the constrained problem into an unconstrained one that can be solved with first-order methods (Adam, AdamW):
where is the probability ratio, is an advantage estimate, and is a clipping threshold (typically 0.1–0.2). The clipping prevents ratios from drifting too far from 1: if would be pushed above by a gradient step, the clipping stops it. This is a pessimistic bound — it never lets the policy exploit advantageous actions beyond the trust region.
The key property of PPO’s surrogate: when the advantage is positive (action was good), clipping prevents unbounded increase of ; when the advantage is negative (action was bad), clipping prevents from being pushed below (you do not want to completely suppress actions that only slightly underperformed). This makes the objective a lower bound on the true policy improvement.
GRPO (Group Relative Policy Optimization) is a PPO variant designed specifically for LLM RL, introduced in DeepSeekMath and popularized by DeepSeek-R1. Rather than training a separate value network to estimate advantages — which adds as much compute as an additional LLM forward pass — GRPO instead samples responses for each prompt and computes a group-normalized advantage:
This says: response is good if its reward is above the group mean, and bad if below. The normalization by standard deviation stabilizes gradients. The GRPO objective then applies the PPO clip:
where and is the policy frozen at the start of the training epoch (the “old policy”). GRPO is currently the de facto standard for math and coding RL fine-tuning, used in DeepSeek-R1-Zero, Qwen-MATH, and numerous open-source RL pipelines.
The Performance Difference Identity
A cornerstone of policy improvement theory is the performance difference lemma (Kakade and Langford, 2002), which precisely quantifies how much one policy improves over another:
where is the discounted state-action occupancy measure under , and is the advantage function under the old policy .
This identity is worth internalizing carefully. It says:
- The improvement from to is measured by taking actions according to (following the new policy), but evaluating those actions using ‘s Q-function (asking how much better they are relative to the old policy’s value baseline).
- To guarantee , it suffices to ensure the expected advantage under is non-negative.
- TRPO and PPO are designed to maximize a surrogate of this quantity while keeping the policy change small enough that the surrogate remains a reliable lower bound.
This identity recurs throughout the paper. Every gap term or is ultimately explained through this identity.
Training-Inference Mismatch: Why It Exists
Modern LLM RL pipelines at scale have a structural split that does not exist in classical RL: separate engines for rollout generation and gradient computation. Understanding why this split exists is important for appreciating why the problem the paper addresses is real and not easily eliminated.
Inference engines (vLLM, SGLang) are optimized for high-throughput token generation. They use specialized memory layouts (PagedAttention for KV cache management), continuous batching (mixing requests of different lengths), tensor parallelism optimized for low latency, and — critically — quantized weight representations. FP8 (8-bit floating point) inference is now standard in production pipelines, because it roughly doubles throughput versus BF16 while preserving most output quality in benchmarks.
The FP8 format has only 8 bits per weight parameter. Compared to BF16 (16 bits), this means each weight is rounded to the nearest representable FP8 value, introducing quantization error. For a typical 7B parameter model, FP8 uses ~7GB of weight memory versus ~14GB for BF16. The throughput benefit is dramatic for serving, where batches of sequences share the same model weights.
Training engines (FSDP — Fully Sharded Data Parallel, Megatron-LM, DeepSpeed) are optimized for gradient computation. They must maintain higher-precision weights (BF16 or FP32) for numerically stable gradient accumulation, because gradient summation over many steps in FP8 would cause underflow/overflow. They also shard model parameters across GPU nodes to fit large models, introducing communication patterns incompatible with low-latency inference serving.
The standard pipeline (illustrated in Figure 1) looks like this:
- Copy current training weights to the inference engine (parameter sync — expensive, usually done once per rollout phase).
- Inference engine generates rollout trajectories under (the inference policy — FP8-quantized).
- Rollout data (prompts, responses, rewards) is passed to the training engine.
- Training engine updates weights: , improving training policy .
- Repeat.
The problem: even after step 1 (parameter sync), the inference engine runs FP8-quantized weights, while the training engine operates in BF16. The same weight tensor produces different token probabilities in the two engines:
This is a persistent, systematic discrepancy — not sampling noise — and it cannot be eliminated by more careful synchronization, since it is intrinsic to the precision difference. The mismatch magnitude depends on the quantization scheme, the model architecture, the specific weight values, and the input context. Empirically, FP8 quantization changes per-token log-probabilities by a small but nonzero amount, and these differences compound multiplicatively across the token positions of a long sequence.
Off-Policy RL and Importance Sampling
When training data is generated by a different policy than the one being updated, we call it off-policy learning. In classical RL, off-policy methods (like Q-learning) are designed around this. But PPO and GRPO are fundamentally on-policy algorithms — their guarantees depend on the rollout distribution being close to the current policy.
The standard tool for correcting off-policy bias is importance sampling (IS). To estimate an expectation using samples from a different distribution , we use:
where is the importance weight. For sequence-level LLM policies, this ratio factors as:
The product of per-token ratios can be exponentially large or small for long sequences, leading to high-variance IS estimates. Clipped IS (as in V-trace) truncates at some maximum value, trading variance for a small bias.
The key issue for this paper: standard GRPO uses (the training-side reference) everywhere, even though trajectories are actually generated by (the inference-side policy). This means GRPO’s IS correction is systematically wrong — it is computing when the theoretically correct ratio is .
More importantly, even if we fixed the ratio to (as TIS does), we would still be computing advantages using rewards from rollouts sampled by while attributing those advantages to ‘s Q-function. These two errors compound: the ratio error and the advantage error together make GRPO’s gradient signal a biased estimate of the true policy gradient under both and .
To summarize the key concepts before proceeding: (1) the gap is real and persistent due to FP8 quantization; (2) IS can correct for off-policy data but requires the right denominator and the right advantage reference; (3) even with IS corrections, there is a separate concern about whether the inference policy after the update () actually improves. The paper’s contribution is to formalize all three of these as distinct issues and address each one explicitly.
With this background established, I can now dig into what the paper actually does.
The Problem: Training-Inference Objective Misalignment
The Canonical Assumption That Fails
Every LLM RL paper I am aware of frames its objective as: maximize the performance of the policy being trained, . This is the natural default inherited from classical RL, where the policy you train is the policy you deploy. The LLM RL community has implicitly assumed that because the inference engine is kept nearly synchronized with the training engine, optimizing is effectively the same as optimizing .
But this assumption is never formally justified, and this paper argues it is demonstrably false. In modern LLM RL, the deployed policy is — the inference-engine policy. The training objective is a proxy. The implicit assumption, never stated or checked, is:
The paper’s central theoretical contribution is showing this implication does not hold in the presence of training-inference mismatch.
To construct a counterexample intuitively: suppose the weight update meaningfully improves the BF16-precision model (term ② is large and positive), but it happens to move weights into a regime where FP8 quantization error is particularly severe — for instance, weights in certain attention heads cross a quantization boundary and their behavior shifts qualitatively under FP8. The resulting could be worse than even though is better than .
The Three-Term Decomposition
Consider the inference policy’s improvement from step to step :
This decomposition is algebraically exact — just telescoping with and . But it reveals the structure of the problem:
- Term ② : the part that current methods (PPO, GRPO, etc.) optimize. PPO’s surrogate guarantees this is non-negative when the policy change is within the trust region.
- Term ③ : the pre-update gap between training and inference policy. This is a fixed quantity at the start of each iteration, determined entirely by FP8 quantization of the current weights. Current methods do not account for it.
- Term ① : the post-update gap. This is the new gap that arises after the weight update, when the updated training weights are quantized to FP8 to form . Unlike term ③, this is not fixed at the start of the iteration — it depends on how the specific gradient update interacts with FP8 quantization. Critically, it can be strongly negative.
The total inference improvement is the sum of all three terms. If ① is large and negative, it can overwhelm ② and turn what looked like a successful training update into an inference-side regression.
GRPO Under Mismatch: Two Levels of Error
The paper identifies that GRPO suffers from training-inference mismatch at two distinct levels, which I find useful to trace carefully.
Ratio-level mismatch: GRPO’s clipped importance ratio for the -th response is:
where is the training policy frozen at the start of the current epoch. But trajectories were sampled from (the inference policy). To correctly estimate the expected advantage under from samples generated by , the IS ratio should be . Using instead of in the denominator is an error proportional to the mismatch .
Advantage-level bias: GRPO computes group-normalized advantages from rewards of rollouts sampled by . These advantages are estimates of — the advantage function under the inference policy’s distribution. But GRPO uses them as estimates of in its surrogate. The performance difference identity tells us:
in general, because the Q-functions and value functions differ between and . Using as if it were mixes two different reference policies in a single surrogate, producing a gradient signal that is biased in a hard-to-characterize direction.
Both errors are systematic and persistent — they do not average out over iterations.
Prior Work Taxonomy and Why It Falls Short
I find it useful to organize existing mismatch-correction approaches by what they change:
Group 1: Ratio corrections
- TIS (Training-side Importance Sampling): replaces with in the denominator, giving ratio . This is the “obvious” fix for ratio-level mismatch. But it changes the clipping anchor from to , which can destabilize training: the clip now bounds deviation from the quantized inference policy rather than the stable training policy.
- MIS (Mixed Importance Sampling): uses a weighted combination of and as the denominator. A heuristic interpolation without formal justification.
Group 2: Learning rate adjustments
- LR-decay: reduces the learning rate per iteration to limit how far drifts from (and thereby from ). Limits term ① indirectly but at the cost of slower convergence and without explicitly tracking the gap.
Group 3: Infrastructure solutions
- Training in FP8: eliminates the mismatch at the source by running both inference and training in FP8. Eliminates the gap entirely but requires specialized hardware support, introduces new gradient stability challenges, and is not available in all settings.
All of these leave the fundamental objective mismatch intact. None of them explicitly monitor or bound term ① (the post-update gap), meaning they can all fail on the same counterexample: a training update that is good for but happens to amplify the FP8 quantization gap for .
MIPI: The New Inference-Centric Objective
Formal Definition of MIPI
The paper introduces the Monotonic Inference Policy Improvement (MIPI) principle as a replacement for the standard PPO/GRPO objective:
MIPI: A training procedure satisfies the monotonic inference policy improvement property if, for every update step , it guarantees:
That is, the inference policy improves monotonically, not merely the training policy.
This is strictly stronger than the standard guarantee. PPO’s guarantee is (approximately, under the trust-region constraint). MIPI demands the stronger .
The MIPI property is the right objective for any LLM RL pipeline where . It directly optimizes what the user cares about: the quality of the model that gets deployed. The paper’s contribution is to (1) name this objective explicitly, (2) show that existing methods do not satisfy it, and (3) propose an algorithm (MIPU) that approximates it in practice.
Derivation of the Three-Term Decomposition in Detail
The exact decomposition is:
This is achieved by adding and subtracting and :
Applying the performance difference identity to each gap term:
Term ① :
This is the expected advantage of ‘s actions relative to ‘s value function. When FP8 quantization causes to choose different tokens than would, and those tokens are disadvantageous according to ‘s value estimates, this term is negative.
Term ② : the standard training-side improvement, which the PPO/GRPO surrogate is designed to maximize.
Term ③ :
This is the pre-existing gap before the update, measuring how much outperforms as measured by ‘s own advantage function. This term is fixed at the start of iteration and cannot be changed by the training update itself. However, incorporating as the advantage reference (rather than ) in the training surrogate implicitly accounts for this term.
Summary of what each term requires from an algorithm:
- Term ②: maximize via training surrogate (Step 1 of MIPU).
- Term ③: partially addressed by using -referenced advantages in Step 1.
- Term ①: cannot be optimized during training (it depends on post-sync quantization behavior); must be measured and gated via acceptance test (Step 2 of MIPU).
Figure 1: Canonical LLM RL Pipeline
flowchart LR
A["Inference Engine\nvLLM or SGLang\nFP8 weights"] -->|"sample G responses per prompt"| B["Rollout Buffer\n(prompt, response, reward)"]
B -->|"off-policy data"| C["Training Engine\nFSDP or Megatron\nBF16 weights"]
C -->|"gradient update: theta_k to theta_{k+1}"| D["Updated Training Policy pi_{k+1}"]
D -->|"parameter sync (expensive)"| A
style A fill:#dbeafe,stroke:#3b82f6
style C fill:#dcfce7,stroke:#22c55e
style D fill:#fef9c3,stroke:#eab308
style B fill:#f3e8ff,stroke:#a855f7
The pipeline above is standard for large-scale LLM RL. The inference engine generates rollouts; the training engine updates weights. Even after the sync, the two engines apply different numerical operations to the same weight tensor, creating a persistent probability discrepancy.
Figure 2: Training-Inference Mismatch Illustrated
flowchart TD
W["Shared weight tensor theta_k\n(after parameter sync)"]
W -->|"BF16 path in training engine"| P["Training policy pi_k\nBF16 precision\nused for gradient log-prob computation"]
W -->|"FP8 quantization in inference engine"| M["Inference policy mu_k\nFP8 precision\nused for rollout generation"]
P -->|"evaluate same (prompt, response)"| P2["log P(o given q) under pi_k\n= sum of log pi_k(a_t|s_t)"]
M -->|"evaluate same (prompt, response)"| M2["log P(o given q) under mu_k\n= sum of log mu_k(a_t|s_t)"]
P2 -->|"difference is nonzero"| G["Mismatch: pi_k(o|q) not equal to mu_k(o|q)\nPersistent even after sync\nCompounds multiplicatively for long sequences"]
M2 --> G
style P fill:#dcfce7,stroke:#22c55e
style M fill:#dbeafe,stroke:#3b82f6
style G fill:#fee2e2,stroke:#ef4444
Figure 3: MIPI Three-Term Decomposition
flowchart TD
A["J(mu_{k+1}) − J(mu_k)<br/>Total inference improvement = TARGET of MIPI"]
A --> B["Term 1: post-update gap<br/>J(mu_{k+1}) − J(pi_{k+1})<br/>Arises from FP8 re-quantization of updated weights"]
A --> C["Term 2: training-side update<br/>J(pi_{k+1}) − J(pi_k)<br/>Standard PPO improvement, can be made non-negative"]
A --> D["Term 3: pre-update gap<br/>J(pi_k) − J(mu_k)<br/>Fixed at start of iteration, mitigated by mu_k reference"]
B --> E["MIPU Step 2<br/>Post-sync validation<br/>Inference-gap-aware rollback if Term 1 too negative"]
C --> F["MIPU Step 1<br/>Sampler-Referenced Update<br/>IS-corrected surrogate maximizes Term 2 with mu_k ref"]
D --> G["mu_k reference in advantage and IS weight w_bar_i_k<br/>corrects for mu_k vs pi_k bias"]
MIPU: Two-Step Realization
Overview
MIPU (Monotonic Inference Policy Update) is the algorithmic realization of MIPI. It has two cooperating steps:
- Step 1 (Sampler-Referenced Update): modifies the GRPO training surrogate to use the correct IS weight and the correct advantage reference, addressing terms ② and ③.
- Step 2 (Inference-Gap-Aware Acceptance): after the parameter sync, estimates the post-update gap (term ①) and rolls back the update if the gap is too negative.
These steps are designed to be complementary: Step 1 generates better candidate updates; Step 2 filters out the ones that happen to produce a large negative post-update gap. The ablation (discussed in the experiments section) confirms that both are needed.
Step 1: Sampler-Referenced Update
The core problem with GRPO’s surrogate. GRPO optimizes:
The expectations are taken over trajectories sampled from , but the IS ratio uses in the denominator. To correctly evaluate term ② + ③ from samples generated by , we need to correct for the distributional shift from to .
Derivation of the IS correction. Starting from the performance difference identity for term ②:
Using IS to convert to samples from (the actual behavior distribution):
The density ratio factorizes as when we think about response-level probabilities. The factor becomes the clipped ratio in the PPO surrogate. The factor is the sampler IS weight:
Furthermore, recognizing that the advantage function should be estimated under (since that is the behavior policy for the rollouts), we use rather than .
The product in can be extreme for long sequences. The paper clips it at to control variance:
Final Step 1 surrogate:
where .
Why keep the clip anchor at rather than ? This is a subtle but important design decision. TIS changes the denominator of the ratio to , which means the clip bounds deviation from . But is a quantized, potentially noisy approximation of . Clipping relative to can allow updates that deviate far from the stable training policy in ways that cause instability. MIPU keeps the clip anchor at for stability, and uses as a separate correction factor to account for the distributional shift without moving the clip boundary.
Computational cost of Step 1. At rollout time, we already have from the inference engine (it is a byproduct of generation: inference engines typically log per-token probabilities as part of the sampling process). We need from the training engine — a single BF16 forward pass with the frozen weights over the sampled responses. Computing then requires only a log-ratio summation over token positions, which is negligible cost. The dominant cost is the forward pass for , which is needed anyway for GRPO (to compute the reference log-probs used in the IS ratio denominator). So Step 1’s overhead over standard GRPO is essentially zero — it only adds the computation of , which requires the same quantities already computed.
This zero-overhead property makes Step 1 especially attractive for practitioners. There is no reason not to apply it whenever GRPO is being used with a separate inference engine: it strictly improves the theoretical correctness of the gradient signal at no additional compute cost.
Step 2: Inference-Gap-Aware Acceptance
The problem Step 2 solves. After Step 1 produces a candidate update , we sync it to the inference engine and form . At this point, the post-update gap (term ①) materializes. We cannot prevent it from being negative — quantization interacts with the new weight values in unpredictable ways. But we can detect when it is too negative and roll back.
Constructing the proxy . We want to estimate:
by the performance difference identity. We sample a small validation batch from (using the inference engine after the sync) and approximate:
The negation arises because we write , and the performance difference identity for involves (advantage under ) evaluated at states visited by . We approximate the state distribution by IS-reweighting the samples, which gives the factor.
The length-normalized importance weight. The naive IS weight explodes for long sequences. The paper uses a length-normalized geometric mean instead:
This computes the per-token mean log-ratio, then exponentiates. For a sequence of length , if each token has a per-token ratio of , the normalized IS weight is itself rather than . This prevents numerical explosion while preserving the directional signal that distinguishes from .
Acceptance criterion and rollback. After computing :
- If : the post-update gap is not too negative; accept the update. Keep and .
- If : the post-update gap is strongly negative; reject. Rollback and re-sync to the inference engine.
The tolerance is a hyperparameter that controls the sensitivity. would roll back any update where the quantization is even slightly harmful to the inference policy. A larger is more permissive.
Why this controls training collapse. Training collapse in LLM RL (a sudden drop in reward followed by inability to recover) typically occurs when a weight update puts the policy in a degenerate regime — e.g., the model starts producing only short or only long outputs, or collapses to a single response type. In the presence of FP8 mismatch, this collapse is often triggered not by the training-side update itself, but by the post-sync quantization behavior of entering a degenerate regime that GRPO cannot distinguish from normal variance. Step 2’s acceptance mechanism prevents these degenerate updates from ever being committed to the inference engine.
Full Algorithm Pseudocode
Algorithm 1: MIPU (Monotonic Inference Policy Update)
---------------------------------------------------------------------------
Input:
theta_0 : initial policy weights
E_mu : inference engine (FP8)
D : prompt distribution
Hyperparameters:
epsilon : PPO clip threshold (e.g. 0.2)
c_w : IS weight clip threshold
c : acceptance tolerance (>= 0)
N_val : validation batch size for Step 2
G : number of responses sampled per prompt
alpha : learning rate
for k = 0, 1, 2, ... do
========== ROLLOUT PHASE ==========
Sync theta_k to E_mu
(transfer BF16 weights to inference engine; engine quantizes to FP8)
For each prompt q in training batch:
Sample G responses {o_1,...,o_G} from mu_k = E_mu(theta_k)
Compute rewards {r_1,...,r_G} using reward function
Compute group-normalized advantages:
A_hat_i^{mu_k} = (r_i - mean(r_j)) / std(r_j)
========== COMPUTE SAMPLER IS WEIGHTS ==========
For each response o_i:
Compute log pi_k(o_i|q) using training engine (BF16 forward pass with theta_k)
Compute log mu_k(o_i|q) using inference engine log-probs from generation step
w_i^k = exp( log pi_k(o_i|q) - log mu_k(o_i|q) )
w_bar_i^k = min(w_i^k, c_w) // clip to prevent extreme weights
========== STEP 1: SAMPLER-REFERENCED UPDATE ==========
Freeze pi_k = theta_k as the epoch reference point
for each gradient step do:
For each response o_i:
r_i(theta) = pi_theta(o_i|q) / pi_k(o_i|q) // standard PPO ratio
L_i = w_bar_i^k * min( r_i(theta) * A_hat_i^{mu_k},
clip(r_i(theta), 1-eps, 1+eps) * A_hat_i^{mu_k} )
J_S1(theta) = E_mu_k [ (1/G) * sum_i L_i ]
theta <- theta + alpha * grad_theta J_S1(theta)
end
theta_{k+1} = theta // candidate update
========== SYNC CANDIDATE UPDATE ==========
Sync theta_{k+1} to E_mu
(transfer updated BF16 weights; inference engine re-quantizes to FP8 -> mu_{k+1})
========== STEP 2: INFERENCE-GAP-AWARE ACCEPTANCE ==========
Sample N_val prompts {q_j} from D
For each q_j:
Generate G' responses from mu_{k+1}
Compute rewards; compute A_hat_j^{mu_{k+1}} (group-normalized)
For each response o_j:
Compute log pi_{k+1}(o_j|q_j) from training engine (BF16, theta_{k+1})
Compute log mu_{k+1}(o_j|q_j) from inference engine log-probs
rho_j = exp( (1/|o_j|) * sum_t [ log pi_{k+1}(a_t|s_t) - log mu_{k+1}(a_t|s_t) ] )
T_hat_post = - E_{mu_{k+1}} [ rho_j * A_hat_j^{mu_{k+1}} ]
========== ACCEPT OR ROLLBACK ==========
if T_hat_post >= -c:
Accept: keep theta_{k+1}, mu_{k+1}
// inference improvement guaranteed: terms 1+2+3 >= 0
else:
Rollback: theta_{k+1} <- theta_k
Sync theta_k to E_mu // restore inference engine to mu_k
mu_{k+1} = mu_k
end
---------------------------------------------------------------------------
Figure 4: MIPU Two-Step Algorithm Flow
flowchart TD
A["Sample G rollouts per prompt from mu_k<br/>Inference Engine uses FP8 weights"] -->|"responses + rewards"| B["Compute group-normalized advantages<br/>A_hat^{mu_k} from reward group stats"]
B --> C["Compute sampler IS weights<br/>w_bar_i^k = min of pi_k over mu_k and c_w<br/>(requires BF16 forward pass for pi_k log-probs)"]
C --> D["Step 1: Sampler-Referenced Update<br/>maximize J_S1: PPO clip anchored at pi_k<br/>with w_bar_i^k correction factor<br/>produces candidate theta_{k+1}"]
D -->|"parameter sync to inference engine"| E["Sync: mu_{k+1} = FP8 quantize of theta_{k+1}<br/>Post-update gap term 1 now materializes"]
E -->|"sample N_val validation prompts from mu_{k+1}"| F["Compute post-update gap proxy<br/>T_hat_post = negative E of rho_i times A_hat_i^{mu_{k+1}}<br/>rho_i = exp of avg per-token log-ratio pi_{k+1} over mu_{k+1}"]
F --> G{"T_hat_post >= -c?<br/>Is post-update gap acceptable?"}
G -->|"Yes: accept"| H["Keep theta_{k+1} and mu_{k+1}<br/>All three terms are managed<br/>Proceed to iteration k+1"]
G -->|"No: rollback"| I["Discard theta_{k+1}<br/>Sync theta_k back to inference engine<br/>mu_{k+1} = mu_k, iteration k+1 retries"]
I --> J["Next iteration k+1"]
H --> J
Experimental Setup and Results
Setup Details
The paper evaluates MIPU in a realistic FP8-quantized rollout setting, which is representative of high-throughput LLM RL training as deployed at Alibaba and comparable organizations.
Models and data:
- Qwen3-4B: fine-tuned on 1491 problems sampled from DeepMath-103K, a large-scale mathematical reasoning dataset. The small training set size is somewhat unusual and likely chosen to test sample efficiency rather than peak performance.
- Qwen3-1.7B: fine-tuned on 5759 problems from DAPO-Math, using a similar sampling procedure.
- Both models use “thinking mode” (chain-of-thought reasoning), which produces long outputs (hundreds to thousands of tokens per response). This makes the sequence-length issues with IS weights especially relevant.
Mismatch source: The inference engine runs FP8-quantized weights; the training engine uses BF16. This is explicitly the scenario the paper targets.
Evaluation benchmarks: Five math reasoning benchmarks at different difficulty levels:
- MATH500: 500 problems from the MATH dataset, covering AMC/AIME-level competition math. Relatively accessible for current 4B models.
- AIME24: 30 problems from the 2024 American Invitational Mathematics Examination. Very hard; 30-problem size means high result variance.
- AMC23: 40 problems from the 2023 AMC 12 competition. Moderately hard.
- Minerva Math: science and engineering problems from Google’s Minerva dataset. Tests cross-domain reasoning.
- OlympiadBench: high-difficulty olympiad-level problems. Tests ceiling capabilities.
Baseline and comparison methods:
- GRPO: standard baseline with no mismatch correction.
- TIS: uses denominator in the IS ratio.
- MIS: blends and as denominator.
- LR-decay: reduces learning rate to limit drift.
- MIPU: full two-step method.
- Ablations: Step 1 only, Step 2 only, Random rollback.
Main Results
The main results on Qwen3-4B and Qwen3-1.7B are shown below, reproducing Table 1 from the paper:
| Model | Method | MATH500 | AIME24 | AMC23 | Minerva | OlympiadBench | Average |
|---|---|---|---|---|---|---|---|
| Qwen3-4B | GRPO (baseline) | 88.2 | 46.7 | 72.5 | 44.1 | 50.6 | 64.42 |
| Qwen3-4B | TIS | 87.8 | 47.3 | 73.8 | 44.7 | 51.1 | 64.94 |
| Qwen3-4B | MIS | 87.5 | 46.7 | 73.2 | 44.5 | 50.8 | 64.54 |
| Qwen3-4B | LR-decay | 87.4 | 47.0 | 72.9 | 43.9 | 50.3 | 64.30 |
| Qwen3-4B | MIPU (ours) | 89.4 | 50.0 | 75.4 | 46.1 | 52.6 | 66.71 |
| Qwen3-1.7B | GRPO (baseline) | 80.2 | 33.3 | 64.5 | 32.0 | 44.1 | 50.86 |
| Qwen3-1.7B | TIS | 80.5 | 33.3 | 65.2 | 32.4 | 44.6 | 51.20 |
| Qwen3-1.7B | MIPU (ours) | 82.6 | 36.7 | 68.4 | 34.3 | 47.8 | 53.97 |
Several observations I find important:
-
Prior mismatch-correction methods (TIS, MIS, LR-decay) are nearly tied with GRPO. Their average scores (64.94, 64.54, 64.30) are within 0.5 pp of baseline (64.42). This supports the paper’s thesis that fixing only the training-side mismatch is insufficient — they do not address term ①.
-
MIPU achieves a 2.29 pp improvement on Qwen3-4B (66.71 vs 64.42). This is a meaningful gain, achieved without any change to the inference engine or training infrastructure.
-
The gain on AIME24 is 3.3 pp (50.0 vs 46.7). AIME24 is the hardest benchmark (only 30 problems, requiring solutions to international-level math competitions). High gains on hard benchmarks are more informative than gains on easy ones, since hard benchmarks are less likely to be saturated.
-
The 1.7B model shows a 3.11 pp gain (53.97 vs 50.86), comparable in magnitude to the 4B gain. Consistency across model sizes strengthens the result.
Training Dynamics
Beyond final accuracy numbers, I consider the training dynamics results particularly informative. The paper visualizes training reward curves over iterations and finds:
- GRPO: shows occasional reward collapses — sudden drops in reward that can recover partially or continue degrading. These collapses occur when a training update produces a that behaves qualitatively differently (e.g., starts generating very short responses that avoid the difficulty of the math problems) due to the post-sync quantization behavior.
- TIS, MIS, LR-decay: reduce collapse frequency but do not eliminate it.
- MIPU: training reward curves are monotonically non-decreasing (modulo evaluation noise). The rollback mechanism in Step 2 prevents the inference engine from ever committing to an update where the post-update gap pushes the total inference improvement negative.
I argue this training stability property may be more practically valuable than the final benchmark numbers. At larger scale and longer training runs, training collapses are costly — they waste compute, require manual intervention, and can be difficult to detect automatically. MIPU’s acceptance mechanism provides a formal guarantee (in expectation) against such collapses.
Ablation Results
The ablation study on Qwen3-4B isolates the contribution of each component:
Figure 6: Ablation Study on Qwen3-4B
| Configuration | MATH500 | AIME24 | AMC23 | Minerva | OlympiadBench | Average | Key characteristic |
|---|---|---|---|---|---|---|---|
| GRPO (baseline) | 88.2 | 46.7 | 72.5 | 44.1 | 50.6 | 64.42 | No mismatch correction |
| Step 1 only (no acceptance) | 88.8 | 48.3 | 74.1 | 45.3 | 51.7 | 65.36 | Corrected IS weight, no rollback gate |
| Step 2 only (no IS weight correction) | 87.9 | 47.3 | 73.5 | 44.2 | 50.6 | 62.81 | Rollback gate only, proposals from GRPO |
| Random rollback (same rollback rate) | 87.6 | 46.3 | 72.8 | 43.8 | 50.2 | 64.14 | Rollback without gap signal |
| Full MIPU (Step 1 + Step 2) | 89.4 | 50.0 | 75.4 | 46.1 | 52.6 | 66.71 | Both steps |
Analysis of each ablation row:
Step 1 alone (65.36%) already outperforms every prior method. This is the most important takeaway for practitioners: just correcting the IS weight and using -referenced advantages beats TIS (64.94%), MIS (64.54%), and LR-decay (64.30%). The design choice of keeping the PPO clip anchored at while adding as a separate correction is validated.
Step 2 alone (62.81%) is below the baseline. This result is critical: if you add the rollback mechanism without fixing the proposal quality (Step 1), you are gating a broken training signal. GRPO’s biased gradients still produce poor proposals. Step 2 filters out some of the worst ones, but it is applying a filter to already-corrupted proposals — preventing collapse but not achieving good performance.
Random rollback (64.14%) matches baseline approximately. Random rejection of updates at the same frequency as Step 2 does not help: it wastes training data by rejecting valid updates. This control confirms that Step 2’s value is the inference-gap signal , not the rollback action itself.
Full MIPU (66.71%) improves 1.35 pp over Step 1 alone. This confirms that Steps 1 and 2 are complementary: Step 1 generates better candidate policies; Step 2 provides an additional safeguard against the subset of updates where quantization behavior is unexpectedly harmful.
Figure 5: Method Comparison Across Dimensions
| Method | Fixes ratio mismatch | Fixes advantage bias | Monitors post-update gap | Computational overhead | Guarantees J(mu) improvement |
|---|---|---|---|---|---|
| GRPO | No | No | No | None (baseline) | No |
| TIS | Partial (mu_k denominator) | No | No | Negligible | No |
| MIS | Partial (blended denominator) | No | No | Negligible | No |
| LR-decay | Indirectly (limits drift) | No | No | None | No |
| Infra fix (FP8 training) | Yes (eliminates gap) | Indirectly | Yes (eliminates gap) | High (HW dependent) | Approximately |
| MIPU Step 1 only | Yes (via w_bar weight) | Yes (A_hat^{mu_k}) | No | Low (extra IS computation) | No |
| Full MIPU | Yes | Yes | Yes (rollback gate) | Moderate (validation batch) | Yes (in expectation) |
Critical Assessment: Weaknesses and Improvements
Weakness 1: Narrow Mismatch Source
I find the experimental scope too narrow. The paper’s entire empirical evaluation considers one specific mismatch source: FP8 quantization. In practice, training-inference mismatch can arise from many other sources:
- Decoding hyperparameter discrepancy: inference engines typically use temperature sampling, top-p or top-k filtering, and sometimes repetition penalties during rollout generation. The training-side log-probability computation does not apply these hyperparameters — it evaluates the full unconditional LLM probability. This creates an additional distributional shift beyond quantization.
- Attention implementation differences: FlashAttention-2 and FlashAttention-3 can produce numerically different attention scores due to differences in the order of floating-point operations in the fused CUDA kernels. When the inference engine uses a different FlashAttention version than the training engine, per-token probabilities will differ even at the same precision.
- Tensor parallelism artifacts: in tensor-parallel setups, all-reduce operations across GPU ranks can produce different results depending on the order of summation (floating-point addition is not associative). Different tensor parallelism configurations in inference vs. training can produce subtle per-token probability differences.
- GGUF or AWQ quantization: many production deployments use 4-bit quantization (AWQ, GPTQ), which creates larger mismatches than FP8. MIPU’s mechanism is designed to detect any post-sync gap, so it should in principle handle these cases — but this is untested.
The paper does not test whether MIPU’s benefits persist (or amplify) under these other mismatch sources. Given that is specifically designed to measure any post-sync gap regardless of its source, there is reason to believe the method generalizes — but generalization is untested.
Weakness 2: Limited Model Scale
Experiments are limited to 1.7B and 4B parameter models. The LLM RL community is actively working at 7B, 32B, and 70B scales, where training dynamics differ qualitatively:
- FP8 quantization sensitivity: larger models may have different per-layer quantization error profiles. Some architectures show higher quantization sensitivity in specific layer types (e.g., the first and last attention layers, or MoE routing layers).
- Rollback frequency: if the post-update gap is more volatile at larger scale (more parameters means each gradient step changes weights more broadly), MIPU may roll back more aggressively. Frequent rollbacks reduce effective training throughput — an iteration where the rollback is triggered produces no net progress.
- Validation batch cost: sampling N_val responses from a 70B model for Step 2 is significantly more expensive than from a 4B model.
- Sync cost: parameter sync between training and inference engines scales with model size. For a 70B model in BF16, syncing weights involves ~140GB of data transfer across interconnects, which takes several seconds even on high-bandwidth NVLink.
It is unclear from the paper how MIPU scales beyond 4B, and I would be cautious about drawing general conclusions until larger-scale experiments are reported.
Weakness 3: Limited Baselines
The paper compares against GRPO, TIS, MIS, and LR-decay, but misses several relevant methods:
- DAPO (Decoupled Clip and Dynamic Sampling PPO): a widely-deployed variant that uses separate clip thresholds for positive and negative advantages. It may interact differently with the mismatch.
- Dr. GRPO: modifies advantage normalization in ways that may be more robust to off-policy data.
- ReMax: uses a reference-free baseline that computes the baseline as the reward of a greedy-decoded response. This might be inherently more robust to mismatch because it avoids the group advantage normalization entirely.
- REINFORCE-leave-one-out: another critic-free variant with different variance-reduction properties.
Without comparison to these methods, it is harder to assess whether MIPU’s gains over GRPO generalize to the full family of modern LLM RL algorithms.
Weakness 4: The Tolerance Hyperparameter
The acceptance criterion in Step 2 is . The choice of is a hyperparameter with significant impact:
- Too small (): Step 2 rolls back nearly every update where quantization introduces any gap, dramatically reducing effective training throughput. The model would improve very slowly.
- Too large (): Step 2 almost never rolls back, providing no protection against updates that create a large negative post-update gap.
- Optimal likely depends on the model architecture, quantization scheme, training stage (early vs. late fine-tuning), and sequence length distribution.
The paper does not report a sensitivity analysis for , does not describe how they chose the value they used, and does not discuss whether needs to be tuned per-model or can be set universally. In practice, this is a meaningful engineering burden for teams adopting MIPU.
Weakness 5: Rollback and Validation Overhead
The MIPU framework requires:
- A post-sync validation pass: generate N_val rollouts from and compute rewards.
- A BF16 forward pass on the validation batch to compute .
- Potentially a second parameter sync (rollback) that transfers the old weights back to the inference engine.
Each parameter sync in large-scale distributed training involves multi-GB data transfers across interconnects or PCIe. The validation generation adds to the rollout budget. The paper does not report wall-clock training time overhead — only final accuracy numbers. Without timing data, it is impossible for practitioners to assess the efficiency tradeoff.
Weakness 6: Ablation at a Single Scale
All ablation experiments are run on Qwen3-4B only. The relationship between Step 1 and Step 2 (complementary at 4B) may not hold at 1.7B or at larger scales. At 1.7B, quantization effects might be smaller (smaller models are typically more robust to FP8 quantization), meaning Step 2 might roll back less frequently and contribute less. At 70B, quantization effects might be larger, meaning Step 2 becomes more critical. Running the ablation at multiple scales would substantially strengthen the argument for the method’s robustness.
Weakness 7: Quality of for Long Sequences
The length-normalized importance weight (Eq. 28) mitigates but does not eliminate the estimation issues for long sequences. The arithmetic mean of per-token log-ratios is a reasonable heuristic, but it implicitly treats each token as contributing equally to the importance weight. In practice, some tokens (e.g., first tokens after a “boxed{” formatting token in math outputs) may carry disproportionate importance.
Furthermore, is estimated from only N_val prompts, which introduces Monte Carlo variance. The paper provides no confidence interval or sample size analysis for . When the post-update gap is close to (i.e., marginal accept/reject), the acceptance decision may be unreliable due to estimation noise.
Concrete Improvement Suggestions
Based on the above analysis, I suggest the following concrete directions for follow-on work:
-
Test at 7B and beyond: run MIPU with the same FP8 setup on Qwen3-7B or Llama-3-8B. Report rollback frequency, training throughput (iterations per hour), and final benchmark accuracy. This is the most important experiment missing from the paper.
-
Diverse mismatch sources: ablate explicitly on different mismatch regimes — pure FP8, FP8 + different decoding temperature, AWQ-4bit quantization. Show whether is a reliable predictor of inference performance degradation in each case.
-
Broader benchmarks: math reasoning has known saturation effects. Evaluate on coding (HumanEval, LiveCodeBench), general instruction following (MT-Bench, AlpacaEval), or scientific reasoning (GPQA) to check whether MIPU’s benefits generalize beyond mathematical problem solving.
-
Theoretical bound on quality: derive a PAC bound or concentration inequality for the estimation error as a function of and the sequence length distribution. This would let practitioners choose to achieve a desired estimation accuracy.
-
Adaptive acceptance threshold: use an exponential moving average of past values and their correlation with subsequent inference performance changes to set adaptively, rather than requiring manual tuning.
-
Wall-clock timing breakdown: report per-iteration timing split into (a) rollout generation, (b) gradient steps, (c) validation batch generation, (d) BF16 forward passes for IS weights, (e) rollback sync cost. Report effective rollback rate. This data is essential for practitioners evaluating whether MIPU’s overhead is justified.
-
Comparison to DAPO and Dr. GRPO: extend the baseline comparison to the methods most commonly deployed in current open-source LLM RL pipelines.
Broader Implications
Before concluding, I want to briefly discuss why this paper’s framing matters beyond the specific MIPU algorithm.
The MIPI principle is really a special case of a more general observation: the objective you optimize must match the objective you care about, even when the two seem superficially equivalent. In LLM RL, and seem like they should be the same thing — they are both “how good is the model with these weights?” — but precision differences break this equivalence in ways that are non-trivial in practice.
This type of objective mismatch appears in other parts of LLM training as well:
- RLHF reward hacking: the reward model is a proxy for human preferences, and the RL fine-tuning objective diverges from true preference quality at some point. Researchers address this with KL penalties, but rarely formalize when the proxy diverges.
- Evaluation-deployment gap: models are evaluated on fixed benchmarks, but deployed in distribution-shifted contexts. Optimizing benchmark scores can be orthogonal to improving deployed performance.
- Distillation mismatch: when distilling a large teacher model to a small student, the student’s inference behavior (with quantization, batching, etc.) may differ from the teacher’s behavior in ways that the distillation loss does not capture.
In each case, the fix follows the same pattern: identify the proxy objective , identify the true objective , decompose the gap between them, and design an algorithm that explicitly manages each term. MIPI is the first paper in the LLM RL literature to apply this pattern rigorously.
I also note a connection to the broader literature on off-policy evaluation (OPE) in RL. OPE is precisely the problem of estimating from data generated by a different policy . The inference-gap proxy is essentially an OPE estimate: it evaluates the performance of relative to using IS-reweighted rollouts. The LLM RL community could benefit from a deeper connection to the OPE literature, which has decades of work on variance reduction, doubly-robust estimators, and model-based OPE methods that could improve the quality of .
Conclusion
This paper makes a genuinely important conceptual contribution to the LLM RL literature: it names and formalizes the objective-level flaw in how virtually all current LLM RL systems are designed. Prior work treated training-inference mismatch as an implementation inconvenience to be minimized. This paper shows it is a structural problem that can cause training-side improvements to be inference-side regressions — and that fixing it requires changing the objective, not just the implementation details.
The MIPI principle (optimize , not ) is the right framing, and I expect it to be influential. The three-term decomposition of inference improvement is pedagogically clear, each term has an intuitive interpretation, and the algorithm follows naturally from the decomposition: fix the surrogate for terms ②+③ (Step 1), then gate on term ① (Step 2).
The MIPU algorithm itself is clean and practically motivated. Step 1’s sampler-referenced update — keeping the PPO clip anchor at while adding as a correction factor — is a thoughtful design that avoids TIS’s instability while correcting the IS bias. Step 2’s inference-gap-aware acceptance test is a genuinely novel addition: to my knowledge, no prior LLM RL paper proposes an explicit rollback mechanism driven by a post-sync gap estimate.
The empirical results are solid for the scope tested. A 2.29 pp average gain on Qwen3-4B and 3.11 pp on Qwen3-1.7B over GRPO, with dramatically more stable training dynamics, is a meaningful result on competitive math benchmarks. The ablation is well-designed: the random rollback control is particularly convincing, isolating the value of the inference-gap signal from the rollback action itself.
I am more cautious about generalizing these results beyond the specific tested setting. The narrow experimental scope (FP8 only, two sub-7B model sizes, math tasks only) leaves substantial open questions. The tolerance hyperparameter adds engineering burden. The overhead of the validation batch and potential rollback syncs is undisclosed. These are genuine limitations, not nitpicks.
That said, the core idea deserves serious attention from any team running LLM RL with separate inference and training engines — which in 2026 is virtually every serious LLM RL team. The question the paper asks — “is our training signal actually predictive of inference-side improvement?” — is one that the field has collectively failed to ask. MIPI gives practitioners a formal framework to answer it, and MIPU gives them a tractable algorithm to enforce it.
In my view, the framing contribution is stronger than the specific algorithm, and the algorithm is already strong enough to warrant immediate practical consideration for teams working at the intersection of RL post-training and production inference infrastructure. I expect to see MIPU or a direct successor adopted in serious LLM RL pipelines within the next year.
A concrete action I would recommend to practitioners reading this paper:
-
Instrument your current pipeline: add logging of and during rollout. Compute the per-iteration average as a mismatch diagnostic. If this value is consistently large (say, mean log-ratio per token), your pipeline has meaningful training-inference mismatch.
-
Add Step 1 first (zero overhead): replace with in the advantage normalization and add to your GRPO loss. This requires no architectural changes and should produce an immediate improvement.
-
Evaluate Step 2 if instability persists: if you observe training collapses even after Step 1, add the post-sync validation pass and acceptance criterion. The main cost is the extra rollout generation and sync; budget accordingly.
The paper has made me rethink how I evaluate LLM RL papers more broadly. Going forward, I will ask not just “does training loss improve?” or “do benchmark scores improve?” but “was the inference policy actually measured, and is it what improved?” This seems like an obvious question in retrospect, but the LLM RL community has been implicitly assuming the answer for years.
Reviewed by Zhongzhu Zhou on 2026-07-06.