1 · The two-circuit system
The model is too large for one GPU, so it is split by pipeline parallelism into stages, and the stages live on GPUs connected over the ordinary internet. Everything that crosses a stage boundary during training, activations forward and gradients backward, is compressed to 5 percent of its dense size. Two circuits make that survivable: a fast circuit that runs GRPO end to end through the compressed pipeline on every optimizer step, and a slow anchor circuit that fires every 20 steps from deliberately stale weights and sends back one bit per parameter of direction. Over everything sits one constraint: post-training must not damage the base model.
Figure 1 · The two-circuit system
Left: the fast circuit, every optimizer step. Right: the anchor circuit, every 20 steps. Bottom: the firing schedule and the staleness contract.
1.1 The fast circuit
Ordinary GRPO, end to end, every optimizer step. The sampler generates responses with full dense weights and a rule-based verifier scores them. The policy update then runs through the pipeline, eight stages and seven boundaries, with every boundary tensor compressed in both directions. All log-probability passes of an iteration (old log-probs, the policy update, the reference policy) run through the same mask, so the PPO ratio compares like with like. The rollout engine and evaluation are untouched, and after each step the updated weights are synced to the sampler.
1.2 The boundary compression: exact-k PRF masking
Each boundary keeps exactly 77 of the 1536 hidden coordinates per token, 5 percent, and scales the kept values by 20, so the compressed activation is an unbiased estimate of the dense one. The mask is derived independently at both ends of the link from a keyed pseudo-random function (PRF) of (seed, layer, step, sample, position, channel). Nothing about it is transmitted, the count never varies, and a fresh mask is drawn every step. The backward pass returns the gradient of the same 77 coordinates.
Figure 2 · The compression in one picture
1.3 The anchor circuit
The anchor is one dense device off the critical path, and its job is to maintain M. Its inputs are stale by contract: shipping weights to a remote device takes real time, so the checkpoint it holds at step t was written at step t-20, never fresher. From those weights it replays rollouts that the same weights generated, with one uncompressed forward and backward and no optimizer step. The resulting clean gradient is folded into the moving average M, kept in full precision for every tensor in the model. The anchor's entire product is sign(M), one bit per parameter, refreshed every 20 steps and held in between.* The fast circuit merges that direction into every step's gradient before the optimizer consumes it:
The magnitudes stay the compressed gradient's own, which keeps the update correctly scaled for the optimizer. Three quarters of the signs come from the anchor's denoised direction.
* A cheap weight forecast lets the anchor track the newest weights and replay the newest batch instead. Ablations preferred that configuration and the long runs in this report use it: appendix A.
2 · Results
Qwen2.5-Math-1.5B post-trained on MATH under the full system, always against a byte-matched dense control: an identical configuration with compression turned off, on the same hardware. Final checkpoints are evaluated through one harness, greedy decoding for the large sets and avg@8 at temperature 0.7 for the competition sets.
Training curves: dense against 95 percent compressed
A matched dense and compressed pair, every logged step, no smoothing.
Training reward
Mean verifiable score per step. The two runs rise together, about 0.35 to 0.74.
Entropy (compression view)
The 20x rescale inflates the compressed reading to a flat band near 7.8. It is not the sampling entropy.
Train-inference mismatch
Sampler-to-trainer gap in nats per token. Large from step 1 and flat. The dense pair sits at about 0.0002.
Capability at step 600: dense against 95 percent compressed
3 · The compression method and the train-inference mismatch
The sampler generates data with dense weights while the trainer computes its log-probabilities through the compression. These are two views of the same network, so the system trains under a permanent train-inference mismatch, and the mismatch is native rather than a defect: the compressed network is also the one generating its own training data. Sampling through the compression would remove it by construction, but a 95 percent masked view is not a usable generator, so the gap is handled on the training side.
The gap is large but essentially static. It is there at step 1, before any training, and what matters is its trend, not its level: over the 600-step run it drifted by less than a thousandth of a nat per step. The compression-view diagnostics that look alarming, the KL to the reference and the entropy readout, are inflated by the mask itself and do not measure damage. The same run that ends with a compression-view KL near 0.9 matches the dense control on every benchmark above, and its weights move by only 0.03 to 0.13 percent. Health is read from the trend of the gap and from dense-view evaluation.
Before the mask, the system compressed these boundaries the natural way, with a learnable low-rank projection. Each boundary carries an orthonormal basis Q of shape 1536 x 77, fitted to its own activations, and a token's activation x crosses the wire as 77 coefficients instead of 77 raw coordinates:
The anchor owns the learning. During each dense replay it refreshes every basis with one step of power iteration on the activations it just saw, and broadcasts the result alongside sign(M):
This buys more signal per byte than a random mask, and it fails at long horizons for one reason: whatever a frozen basis throws away is the same subspace on every step until the next refresh, so the compression error keeps pointing the same way. A persistent direction is exactly what a gradient method picks up and follows. The fresh random mask has no direction to find.
The collapse this produces is visible in the raw curves. Below are the two runs side by side at the same 95 percent budget: the learned-basis run loses the model at around step 160, while the mask run trains on (it is the long run of section 2, shown over its first 200 steps).
The learned basis collapses, the mask holds
Both runs at the same 95 percent compression budget, every logged step, no smoothing. The shaded band marks the collapse.
Training reward
The learned-basis run learns first, then loses answer quality in the collapse. The mask run keeps climbing.
Entropy (compression view)
The learned basis cliffs from 5.5 to 0.03. The mask holds its flat band near 7.8.
KL to the reference (compression view)
The learned basis accelerates to 9.8. The mask ends near 0.3.
Train-inference mismatch
The learned basis turns a smaller initial gap into 30.9 nats and accelerating. The mask holds its band.
We studied the learnable family extensively at this budget, faster basis refresh, low-rank-plus-residual hybrids, low-bit quantization, importance-sampling corrections, and the same picture appeared every time: a compression with a persistent direction eventually turns it into drift, and none beat the fresh mask on long-horizon stability. The mask has been the system default since 2026-07-29.
4 · Current status
Settled
The compression. Exact-k PRF masking is the boundary compression. Every challenger tested at the same budget lost on stability.
Long-horizon stability. 600 of 600 optimizer steps at 95 percent compression with no collapse and a steady optimizer.
Capability preservation. Parity with the dense control in and out of domain (the bar plot above).
The anchor. A sign-only return is enough, and weakening it destabilizes training.
The reading frame. Compression-view KL and entropy are not damage metrics. Health is read from the gap trend and dense-view evaluation.
Open
Variance, not bias. The mismatch cannot be removed at this budget, so the target is a lower-variance unbiased compression at the same wire cost.
A drift controller. A periodic compression-off probe of true drift is validated. The controller that acts on it has not yet run a full horizon.
Replication. Cross-seed replication of the long run is outstanding.
One recorded lead. Injecting one fully dense step every 50 failed its registered stability test, yet posted the best held-out accuracy we have seen (0.6914 at step 600 against 0.6774 dense). Single seed, flagged for replication, not adopted.
Appendix A · Projecting the anchor's stale weights forward
The main text has the anchor replay rollouts that match the weights it holds. There is a stronger configuration. Replaying at weights that are K steps old reintroduces exactly the delay the schedule is meant to hide, and the anchor can compensate for it cheaply: keep the last two delayed checkpoints, c steps apart, and advance each parameter tensor linearly to the present,
a two-checkpoint secant with no fitting and no extra traffic. The forecast weights then replay the newest batch. This works because of how RLVR moves weights: updates concentrate in a small, consistent part of the network[1] and steer along structured, spectrum-preserving directions[2], and we measure relative movement of only 0.03 to 0.13 percent over our runs, so the linear extrapolation stays accurate over a 20-step horizon. In ablations the secant ended highest of the three forecast variants we evaluated, with MATH test accuracy 0.671 against 0.667 for a progressive window and 0.663 for a four-checkpoint fit, and the long runs in this report use it.
The forecast in one picture
References
- Mukherjee et al., 2025. Reinforcement Learning Finetunes Small Subnetworks in Large Language Models. arXiv:2505.11711.
- Zhu et al., 2025. The Path Not Taken: RLVR Provably Learns Off the Principals. arXiv:2511.08567.