Experimenter: Benjamin FeuerExperiment Dates: 07-30-2026 / 08-27-2026

Experiment: Non-agentic RL on Marin's 2.7T "Snowball" MoE

Models with Saved Checkpoints and Reported Results: 25

Why conduct this experiment?

Claims

I: Well-designed RL can improve the performance of Marin MoEs, and Marin MoEs are "RL-ready"

RESULT: UPHELD. Snowball trained stably under RL. In the best case, E6 improved AIME24 from 17.67% to 27%, MATH-500 from 64.00% to 78%, and OlympiadBench from 12.67% to 20%. E15 produced a second strong repaired export under interpolated router-bias updates, but the available evidence does not establish router-bias updating as the cause of the transfer gain.

Figure 1 · Average raw reward by training step. Select E6, E15, or E11; the retained E11 reward series covers steps 1–14.

In a more typical case for the overall campaign, E11 (DeepScaleR + DAPO) at step 24 improved AIME24 from 17.67% to 20.00%, MATH-500 from 64.00% to 72.80%, and OlympiadBench from 12.67% to 19.33% (its best single checkpoint across the three suites; MATH-500 peaked earlier at 74.60% at step 12), and held that level through step 48 while training accuracy kept rising.

II: Non-agentic RL is highly sensitive to the choice of objective and training-task distribution

RESULT: UPHELD. Unfortunately, this sensitivity appears to be disorderly; no strategy reliably outperforms its competitors.

(Point of clarification: DAPO-17k is a dataset; DAPO is an objective.)

Training-task distribution. Reward and downstream evals, even within domain, are not closely correlated, and the dataset ordering depends on the training recipe. On the hero-v3g/E12 body, DeepScaleR led RLVR-MATH by +0.67 / +6.20 / −3.67 under GRPO and +5.00 / +3.20 / +5.67 under DAPO at each arm's best checkpoint. The later E17 contrast reversed that result under GRPO with stochastic-rounded AdamW: at matched step 16, DeepScaleR (E17f) trailed RLVR-MATH (E17a) by −1.33 / −14.80 / −10.34. RLVR-MATH was also easier to learn under DAPO (pass@16 1.00 by step 8), while DAPO-17k gave little in-run GRPO signal but transferred respectably on the E12 body (E14 step 16: 20.67 / 73.80 / 15.67). No dataset won across recipes. The full table is in "Dataset × objective comparison, by training recipe" below.

Objective. The hero-v3g/E12 2×2 also did not establish a reliable objective winner. On DeepScaleR, DAPO (E11) beat GRPO (E12) by 0.00 / +1.80 / +4.33 at best checkpoints, by +3.00 / +2.00 / +2.00 at steps 18 vs 16, and by +4.00 / +1.00 / +3.00 at step 24. On RLVR-MATH, DAPO (E13, step 8) trailed GRPO (hero-v3g, step 12) by −4.33 / +4.80 / −5.00 at best checkpoints and by −4.00 / +2.00 / −1.00 at steps 8 vs 6. DAPO was not tested on the E17 body.

IV: Non-agentic RL is highly sensitive to hyperparameters RESULT: PARTIALLY UPHELD. Learning rate and related settings materially affected stability, entropy, convergence speed, and collapse, but did not demonstrably elevate the held-out performance frontier.

V: The Muon-H optimizer used for Snowball pre-training will be more effective in post-training. RESULT: REJECTED. After unifying each optimizer's parameter-group rates and selecting a viable master learning rate for each, AdamW learned faster and reached a higher peak training reward. Muon-H tolerated a higher learning rate, but showed no consistent held-out advantage.

VI: Training reward is a reliable proxy for eval performance RESULT: REJECTED. Runs with higher training reward often transferred less well; the E6 reproduction exceeded E6's training reward but scored lower on all three held-out math suites.

Figure 2 · Higher training pass@16 did not predict held-out math. The E6 reproduction's pass@16 exceeds the original from step 1 onward, but its final AIME24 / MATH-500 / OlympiadBench scores are 19.67 / 73.60 / 20.00 versus 26.00 / 76.80 / 22.67. Hero-v3g is a second high-training-score reference.
Figure 2 · Higher training pass@16 did not predict held-out math. The E6 reproduction's pass@16 exceeds the original from step 1 onward, but its final AIME24 / MATH-500 / OlympiadBench scores are 19.67 / 73.60 / 20.00 versus 26.00 / 76.80 / 22.67. Hero-v3g is a second high-training-score reference.

Recommendations

Experimental Details

Experimental policy

The closing written policy is @@HTMLTOKEN0@@, SHA-256 825a47ba766b16028a27461d308282330b382c11daaf5048f861af0ae787b9af. The report and linked artifacts contain the measurements and decisions needed to interpret the results.

Default inputs. Non-agentic RLVR only (no Harbor, Daytona or per-trial sandboxes). Most arms start from marin-community/grug-67b-a2b-sft-s2-thinking-step630@6808fe5c; E18 tests a stronger 5.7T-cooldown Stage 3 checkpoint. Models are staged from the in-region S3 mirror with their bundled tokenizer. Datasets come from the marin#6279 known-good set and are prepared with infra.rl_data at pinned source and validation SHAs, with the prompt budget derived as request_window_tokens − max_new_tokens_per_turn.

Default training constraints. FSDP2; frozen router bias; expert, context and sequence parallelism all 1; no sample packing, router replay, grouped GEMM, fused weight sync, LoRA, 4-bit loading, Liger kernels or PKO; router_z_loss_coef: 0; vLLM at TP1; and explicit regularization settings. Named ablations changed the router mode or parallelism. The replace router mode caused the pre-fix raw-export collapse fixed by the SFT-bias transplant; later frozen-router arms exposed separate non-termination failures. Probe arms run 20 steps; hero runs set their own horizon.

Launch and monitoring. Requests are built by the MarinSkyRL launcher from a clean origin/main checkout, dry-run first, and submitted to cw-rno2a at interactive priority with three retries. Banked progress is the highest complete global_step_N on S3, corroborated by Iris logs. Stop rules: avg_raw_advantages_abs near zero with decaying raw_grad_norm; entropy at 3× step 1 is a watch condition and 10× is a stop; a rising skipped non-finite-step rate stops the run for debugging; every stop is preceded by checkpoint/export verification and a dry-run of the exact job ID.

Measurement. From 2026-08-21, every run exports the banked checkpoint at each multiple of 8 steps and runs the chat and nlp suites as soon as the export is complete; scores go to @@HTMLTOKEN2@@. Exports are compared with the fixed snowball-sft baseline on the same samples. The RL model keeps the SFT tokenizer, chat template, skip_special_tokens=false and repetition_penalty=1.1. Chat tasks allow 8,192 generated tokens; NLP generative tasks use shorter registry budgets described below.

Retention and definition of done. checkpoints/ and exports/ are never deleted for a terminated, superseded or failed arm; cleanup may remove trial trees, Ray logs and scratch once durable artifacts are verified. A run is done when it reaches its horizon without reward collapse or unresolved non-finite steps, a fixed downstream evaluation shows measurable improvement over the SFT checkpoint, and the report carries the Snowball-specific failures, throughput, token counts, context settings, skipped-step rate and artifact locations.

Two policy items drifted during the campaign: after MarinSkyRL #380, hero-v3e onward launched through cloud.iris.iris_backend; and the 08-05 evaluation batch predates the frozen-router rule, so those exports are repaired copies.

Experiment index

Each row states the hypothesis the arm tested. Scores are AIME24 / MATH-500 / OlympiadBench.

Table 1 · Experiment indextoggle
IDHypothesis (what the arm tried to break)Verdict
E1The EP=1 serving/training geometry blocks Snowball on the context × policy-node grid.Refuted — all four repaired cells ran 5 steps; the blockers were configuration faults. Repaired exports score 16.0–23.3 / 68.8–71.6 at step 5.
E2Unregularized RL collapses within 40 steps and an entropy anchor prevents it.Refuted on both halves — the control ran 21 steps without collapsing in a 6.5–9.1 % solve band; the entropy bonus destabilised the run at 0.01 and 0.003.
E2-KLA KL anchor holds the policy where the entropy bonus could not.Refuted — inert: stable, but lands inside the control's own band (7.5 % solve, pass@16 0.33).
E3 / E3bA length penalty is required to shorten generations; a lower weight avoids the collapse.Refuted — generations shorten on their own; the penalty drives degenerate short answers at any weight.
E3cThe truncation cliff, not penalty magnitude, drives E3's collapse.Upheld — with the cliff removed the arm ran 20/20 with no collapse.
E5A low solve rate leaves GRPO no within-group advantage variance.Refuted — advantages rose in all E1 cells; the first-batch degeneracy was a warm-up artefact.
E6A difficulty-scoped source (RLVR-MATH) restores usable GRPO signal where DAPO-17k gives none.Upheld — solve 11 % → 41 %, pass@16 0.63 in 20 steps; original export 26.00 / 76.80 / 22.67 with the bias transplant (treated as exceptional), reproduction 19.67 / 73.60 / 20.00.
E7The chat SFT checkpoint buys a better reward-per-token trade than the thinking checkpoint.Refuted — mode-collapsed to 7.75-token answers by step 7.
E7b / E7cE3c's geometry / per-token weighting explain E7's collapse.E7b upheld on collapse but pass@16 0.31 vs E6's 0.63; E7c refuted (no acceleration, pass@16 0.30). Neither export survives for held-out evaluation.
E8An unforced-thinking template shortens output without costing reward.Refuted — longer and lower-reward than the control at every matched step.
E9 / E9bFlashAttention moves the context ceiling past 8k; the residual activation term is near-constant in sequence length.Resolved — 24k and 32k train at 5 steps once Ray spilling moved to node-local scratch; 64k dies in a genuine backward-pass OOM. Repaired step-5 exports: 18.7 / 69.8 (24k), 16.3 / 66.8 (32k).
E10-A/B/C/D/EFrozen-router ablation cohort (ctrl, MuonH, EP=8, TIS, MuonH+TIS).A: reward −0.74 → +0.53 in 9 steps, transfer untested. B: MuonH OOM at 32k. C: EP=8 trains with chronic gradient instability (#335). D: TIS engaged cleanly, too short to read. E: never run. All terminal at the 32k rank-drop.
hero-v1 … v3iThe hero lineage (next subsection).No hero arm beat the E6 reproduction on all three suites; best cells v3i step 8 (72.20 MATH-500) and v3g step 12 (18.67 OlympiadBench).
E11DeepScaleR + DAPO on the hero-v3g body moves held-out math where RLVR-MATH + GRPO did not.Upheld — completed 50/50; best checkpoint step 24 at 20.00 / 72.80 / 19.33, flat after ~step 18 while training accuracy kept rising.
E12DeepScaleR alone explains E11's gain (GRPO control).Partially refuted — stable but slower; best step 8 at 20.00 / 71.00 / 15.00; step 24 at 16.00 / 71.80 / 16.33.
E13DAPO alone explains E11's gain (RLVR-MATH + DAPO).Refuted — easy reward, poor transfer (15.00 / 69.60 / 13.67 at step 8); died at step 14 on a trainer uid-collision defect (#439).
E14DAPO-17k under the E12 recipe closes the three-dataset contrast under one body.Refuted — sealed at step 16 with 20.67 / 73.80 / 15.67: at the E6-reproduction level on MATH-500, no advantage over DeepScaleR. The dataset row is closed.
E15An interpolated router-bias update (w = 0.5) keeps the mutable-router expert gains while leaving the export servable.Half upheld — the repaired export climbs monotonically to 24.00 / 74.20 / 21.67 at step 20, but the un-repaired export is collapsed at every step (22.40 MATH-500 at 20). Better experts, unservable router.
E17aStochastic-rounding BF16 AdamW (#452) reproduces the mutable-router gain with the router frozen.Refuted on transfer, upheld on training and termination — train accuracy reached 0.717 by step 10, but step 16 scored 15.33 / 75.60 / 19.67. AIME24 truncation fell from 81% to 13% and MATH-500 from 30% to 0.8%, while AIME24 answer accuracy remained 16%. See @@HTMLTOKEN0@@.
E17cSR composes with interpolated rebalancing (w = 0.5 + SR trains at least as well as E15).Refuted — collapsed by step 5 where E15 (identical minus SR) was healthy; killed at step 15. Interp-rebalancing × SR is destructive.
E17b1/b2, E17dInterpolation dose sweep (w = 0.05 / 0.15) and DeepSeek loss-free balancing (#454, rate 0.01).Complete at step 20. Scores: w=0.15 20.67 / 77.20 / 22.00; w=0.05 20.33 / 73.40 / 17.33; loss-free 5.33 / 64.00 / 19.00; frozen control 14.67 / 75.20 / 18.67. Interpolation can improve repaired-export transfer, but the result depends on dose and suite. Loss-free had the best training accuracy (0.6765) and worst transfer.
E17fDeepScaleR transfers better than RLVR-MATH under the frozen-bias E17a recipe.Refuted — steps 8 and 16 scored 13.33 / 64.20 / 12.33 and 14.00 / 60.80 / 9.33, both behind E17a by step 16. The gap appears to be, at least in part, because the arm never learns to terminate in this particular policy setting.
E18E17a's recipe preserves the stronger 5.7T-cooldown Stage 3 SFT checkpoint.Partially upheld — step 8 reached 37.33 / 83.00 / 13.33 from 37.00 / 78.20 / 9.00. By step 20, AIME24 fell to 31.67 while OlympiadBench rose to 22.33; MATH-500 ended at 80.00.

Hero-run ablations

The "hero" lineage (hero-v1 → hero-v2 → hero-v3 … v3i, 2026-08-05 to 08-19) is the campaign's attempt to turn E6's recipe into a long run; @@HTMLTOKEN0@@ has the full record. Common ground for every arm: the same base checkpoint, RLVR-MATH with the aime verifier (±1 reward), GRPO with std-normalised advantages, no KL or entropy term, batch 256 × 16 at temperature 1.0, 10 × H100x8 on cw-rno2a, FSDP2 EP=1. The v1→v2 trunk changed several settings; later branches isolate narrower changes.

Table 2 · Hero-run ablationstoggle
ArmChange from prior bodyTraining outcomeBest held-out (step: AIME24 / MATH-500 / OlympiadBench)End
v1E6 recipe at 32k, AdamW 1e-5, mutable routerreward −0.74 → −0.22 by step ~21; length 4k → 7k25 (repaired): 11.67 / 56.20 / 13.33rank-drop NCCL timeout at step 31
v224k; Muon-H 1e-5; TIS/TITO; frozen query biaspeak 0.472 @46; 0.395 @5018: 11.67 / 64.80 / 16.00completed 50/50; held-out collapses by step 30 (5.00 / 36.80 / 5.33)
v3+ trajectory shaping v1 (loop, non-termination, length)——killed in step 1: penalties sized for a 0/1 channel on a ±1 reward
v3bshaping ×0.40.421 @49; mean length halved; loop incidence 0.33 → ~0.20 floor24: 11.33 / 67.00 / 18.00; 46: 6.00 / 57.60 / 10.00completed 50/50; late policy loops on single words
v3cloop price ×7.5loop incidence unchanged (std-normalised GRPO is scale-invariant to trajectory-level terms)not evaluatedstopped step 13
v3dtoken-level loop credit (period ≤64, ≥4 copies)trainer loop incidence 0.0058: 5.67 / 40.00 / 6.00stopped step 18: loops moved to 86–129-token periods; 51 % unanswered at the 8k cap
v3egeneration budget 22,912 → 8,192 (= eval budget)peak 0.488 @118: 9.00 / 61.00 / 10.00; 28: 7.67 / 53.60 / 10.67stopped step 30; no recovery
v3fv3e on PR #405 (master LR applies to every Muon-H route)flat for 5 steps at a true 1e-5not evaluatedstopped step 5 — exposed that v2–v3e had learned through an implicit 6e-4 Adam route
v3gMuon-H master lr 1e-4peak 0.505 @1112: 19.33 / 64.80 / 18.67stopped step 15 (trajectory-retention S3 stall)
v3hAdamW at 1e-4diverged after one step; pass@16 0—killed step 3
v3iAdamW at 1e-50.540 @8, peak 0.649 @118: 17.00 / 72.20 / 17.67; 16: 11.33 / 66.40 / 14.33stopped ~step 18

What the lineage established, in order: 32k passed a five-step probe but was unreliable over longer runs with cpu_offload=false; mutable-router exports require bias repair; training reward is not a proxy for held-out math on RLVR-MATH; and the dominant held-out failure is non-termination and looping under the 8,192-token evaluation budget. Trajectory-level penalties did not price that behavior under std-normalised GRPO, token-level credit relocated it, and budget alignment did not remove it. At uniform rates Muon-H needed 1e-4 while AdamW needed 1e-5. No hero arm beat the E6 reproduction on all three suites, so the series closed by moving the dataset in E11.

Dataset × objective comparison, by training recipe

Held-out math for the controlled dataset and objective contrasts (AIME24 and OlympiadBench are 10-repetition accuracy_avg; MATH-500 is a single pass with binomial standard error; full per-step rows and eval groups are in @@HTMLTOKEN1@@, with the hero-body deltas in @@HTMLTOKEN2@@). The hero-v3g/E12 block reports each arm's best checkpoint. The E17 block reports matched steps 8 and 16 because the dataset ordering changes over training. Each block is comparable only within its own recipe.

Table 3 · Dataset × objective comparison, by training recipetoggle
DatasetObjectiveArm (checkpoint)AIME24MATH-500OlympiadBench
— (SFT base)—grug-67b-a2b-sft-s2-thinking-step63017.67 ± 1.0664.00 ± 2.1512.67 ± 1.03
Hero-v3g/E12 body (Muon-H, TIS, trajectory shaping):
RLVR-MATHGRPOhero-v3g step 1219.33 ± 0.9264.80 ± 2.1418.67 ± 1.26
RLVR-MATHDAPOE13 step 815.0069.6013.67
DeepScaleRGRPOE12 step 820.0071.0015.00
DeepScaleRDAPOE11 step 2420.0072.8019.33
DAPO-17kGRPOE14 step 1620.67 ± 1.6973.80 ± 1.9715.67 ± 1.16
E17 body (stochastic-rounded AdamW, frozen router bias):
RLVR-MATHGRPOE17a step 89.67 ± 0.8865.00 ± 2.1316.33 ± 1.10
DeepScaleRGRPOE17f step 813.33 ± 1.1564.2012.33 ± 1.06
RLVR-MATHGRPOE17a step 1615.33 ± 0.8475.60 ± 1.9219.67 ± 0.99
DeepScaleRGRPOE17f step 1614.00 ± 1.0360.809.33 ± 1.23
E6-era recipe (8192 window, unregularized GRPO, AdamW 1e-5):
DAPO-17kGRPOE1 ctx8k-p8 step 5 (repaired)19.3370.0013.33
RLVR-MATHGRPO, frozen biasE6 repro-A step 2019.6773.6020.00
RLVR-MATHGRPO, mutable biasE6 original step 20 (repaired)26.00 ± 2.2076.80 ± 1.8922.67 ± 1.03
RLVR-MATHGRPO, interpolated bias 0.5E15 step 20 (repaired)24.00 ± 1.6274.20 ± 1.9621.67 ± 1.08
Different start point — 5.7T-cooldown Stage 3 agentic checkpoint, not the 2T Thinking one. Absolutes are not comparable with the rows above; the deltas from its own start are:
— (start point)—laion/snowball-67b-a2b-sft-s3-nemotron-terminal-step188837.0078.209.00
RLVR-MATHGRPO, frozen biasE18 step 837.33 ± 1.4083.0013.33 ± 1.05
RLVR-MATHGRPO, frozen biasE18 step 1633.33 ± 1.6376.0022.33 ± 1.16
RLVR-MATHGRPO, frozen biasE18 step 2031.67 ± 1.3580.0022.33 ± 0.67

On the hero body, DeepScaleR led RLVR-MATH by +3.20 summed points under GRPO and +13.87 under DAPO at best checkpoints. DAPO added +6.13 summed points on DeepScaleR but lost 4.53 on RLVR-MATH. The E17 body does not preserve the dataset ordering: DeepScaleR − RLVR-MATH was +3.66 / −0.80 / −4.00 at step 8 and −1.33 / −14.80 / −10.34 at step 16. Dataset and recipe therefore interact; these experiments do not identify a recipe-independent dataset winner.

DAPO-17k also separates training signal from transfer. E14 needed eight steps to reach 23% training accuracy, yet its step-16 held-out score exceeded E12's best checkpoint by +0.67 / +2.80 / +0.67. The E1/E2 finding that the hard set gives little in-run signal survives, but the conclusion that it cannot transfer does not. E13 died at step 14, so step 8 is its only held-out read. The E6 original remains exceptional; the reproduction is the representative comparator. Router-bias update mode is another large, recipe-dependent contrast in the E6-era block.

Figure 3 · Training learnability and held-out transfer order the datasets differently. DAPO-17k barely moves in-run; RLVR-MATH and DeepScaleR learn quickly, yet E6 reproduction and E11 finish with similar held-out math. E11 also changes objective and optimizer, so only E2 to E6 is a dataset-only contrast.
Figure 3 · Training learnability and held-out transfer order the datasets differently. DAPO-17k barely moves in-run; RLVR-MATH and DeepScaleR learn quickly, yet E6 reproduction and E11 finish with similar held-out math. E11 also changes objective and optimizer, so only E2 to E6 is a dataset-only contrast.

Additional Findings

Short generation caps distort the NLP generative scores

The NLP suite caps gsm8k-0shot at 512 generated tokens, drop at 256, and nq-open and triviaqa at 128; the chat suite allows 8192 for aime24, math500, and olympiadbench. These short caps confound capability with response length. Multiple-choice NLP tasks use loglikelihood scoring and are unaffected.

E17f step 8 scored 51.93 on capped gsm8k and 89.84 at 8192 tokens. Across eight checkpoints, the capped scores spanned 40.48 points while the 8192-token reruns spanned 4.62. The capped gsm8k scores therefore cannot rank these arms. E18 retains a smaller decline after correction (92.49 at step 8 to 88.78 at step 16), and drop still separates the measured checkpoints: E18 falls from 39.18 to 11.59 at 8192 tokens. The full gsm8k and drop rerun tables are in @@HTMLTOKEN0@@.

The chat scores expose a different failure. E17f loops despite math500's 8192-token budget: looping rose from 89.8% at step 8 to 98.4% at step 20, when 69.8% of responses ended mid-sentence and math500 fell to 44.60. E17a used the same recipe with RLVR-MATH and ended at 14.2% looping, 0.8% truncation, and 75.20 math500. E17f did not learn to terminate over the observed checkpoints; its step-17/18 length runaway made an existing failure acute. The full termination table is also in @@HTMLTOKEN0@@.

Observed gains
Pathologies

The smallest distance between the origin and a point on the graph of $y=\frac{1}{2}x^2-9$ can be expressed as $a$. Find $a^2$.

Before RL · SFT baseline
incorrect6,063 charactersextracted: \frac{4513}{81}
Okay, so I need to find the smallest distance between the origin (0,0) and a point on the graph of the function y = (1/2)x² - 9. Then, I have to find the square of that distance, which is a². Hmm, let's think about how to approach this.

First, I remember that the distance between two points (x1, y1) and (x2, y2) is given by the distance formula: sqrt[(x2 - x1)² + (y2 - y1)²]. Since one of the points is the origin, that simplifies to sqrt[x² + y²]. So, the distance from the origin to a point (x, y) on the graph is sqrt[x² + y²]. But since we're looking for the smallest distance, maybe I can minimize the square of the distance instead of the distance itself to make the math easier. Because the square root function is increasing, minimizing the square will also minimize the distance. So, let's let d² = x² + y². Then, substitute y from the given equation into this.

Given y = (1/2)x² - 9, s

[… 4,563 characters omitted …]

\]

Setting the derivative equal to zero:

\[
3x^2 - 16x = 0 \implies x(3x - 16) = 0
\]

The critical points are \( x = 0 \) and \( x = \frac{16}{3} \). Evaluating \( d^2 \) at these points:

- For \( x = 0 \): \( d^2 = 0^2 + (-9)^2 = 81 \)
- For \( x = \frac{16}{3} \): 
  \[
  y = \frac{1}{2}\left(\frac{16}{3}\right)^2 - 9 = \frac{47}{9}
  \]
  \[
  d^2 = \left(\frac{16}{3}\right)^2 + \left(\frac{47}{9}\right)^2 = \frac{256}{9} + \frac{2209}{81} = \frac{4513}{81}
  \]

The minimum distance squared occurs at \( x = \frac{16}{3} \), so \( a^2 = \frac{4513}{81} \).

\[
\boxed{\frac{4513}{81}}
\]
After RL · E6 step 15
correct3,405 charactersextracted: 17
Okay, let's see. The problem is asking for the smallest distance between the origin and a point on the graph of the function y = (1/2)x² - 9. Then we need to find a squared, where a is that smallest distance. Hmm, right. So, distance from the origin to a point (x, y) on the graph. The distance formula is sqrt(x² + y²), but since we're looking for the minimum distance, maybe we can work with the squared distance to make it easier, since the square root might complicate things. Yeah, because the square of the distance is x² + y², and the minimum of that would correspond to the minimum distance.

Given the function y = (1/2)x² - 9. Let's denote the point as (x, (1/2)x² - 9). The distance squared from the origin to this point is x² + [(1/2)x² - 9]^2. Let's expand that.

First, let's compute y². y = (1/2)x² - 9, so y² = [(1/2)x² - 9]^2. Let's expand that:

[(1/2)x² - 9]^2 = (1/2 x²)^2 - 2*(1/

[… 1,905 characters omitted …]

). Substituting \( y = \frac{1}{2}x^2 - 9 \), we get:

\[
D = x^2 + \left(\frac{1}{2}x^2 - 9\right)^2 = \frac{1}{4}x^4 - 8x^2 + 81
\]

Taking the derivative of \( D \) with respect to \( x \):

\[
D'(x) = x^3 - 16x
\]

Setting \( D'(x) = 0 \):

\[
x(x^2 - 16) = 0 \implies x = 0, \pm 4
\]

Evaluating \( D \) at these critical points:

- At \( x = 0 \): \( D(0) = 81 \)
- At \( x = \pm 4 \): \( D(4) = \frac{1}{4}(4)^4 - 8(4)^2 + 81 = 17 \)

The minimum distance squared is 17, so the smallest distance is \( \sqrt{17} \). Therefore, \( a = \sqrt{17} \), and \( a^2 = 17 \).

Final Answer: \boxed{17}
Figure 4 · Matched raw MATH-500 responses from the 2T Thinking SFT baseline and after RL. E6, E11, and E17a correct baseline reasoning errors; the pathology tabs show looping, scorer-sensitive formatting, and verbosity after hero-v2. These selected examples illustrate behavior, not aggregate effect sizes. Baseline source: public post-SFT eval bundle. Selected RL records: raw matched samples.

The capped NLP scores are evaluator artifacts and are not used as capability measurements. E17f's chat scores remain valid measurements of model behavior because the model exhausts an adequate budget by looping. E18 is verbose but terminates: at step 20 it has 14.0% looping, 3.0% truncation, and 80.00 math500, although its uncapped drop decline remains. One DeepScaleR arm cannot establish that its dataset caused the termination failure. Future launches report both NLP budgets through @@HTMLTOKEN0@@.

Bias updates broaden routing and correlate with stronger repaired exports

Three update modes for the Grug router bias were trained under the same E6 recipe: mutable (replace — the E6 original), frozen (#310, the campaign default after the export-collapse diagnosis), and interpolated (w = 0.5 toward the load-balancing quantile target each step — E15). What we learned:

  1. Bias-updating arms produced stronger repaired exports. Held-out: mutable 26.00 / 76.80 / 22.67 at step 20 (27.33 / 78.40 on AIME24/MATH-500 at step 15), interpolated 24.00 / 74.20 / 21.67 at step 20, and frozen 19.67 / 73.60 / 20.00. The ordering is replicated across two bias-updating modes, but the item-level evidence does not establish the transfer mechanism.
  2. But the trained bias itself is unservable. Every un-repaired export of a bias-updating arm collapses on chat evals (E15 step 20: 2.00 / 22.40 / 1.67) while its nlp suite stays normal; transplanting the SFT bias back (@@HTMLTOKEN1@@) restores full scores. The gains live in the expert weights, and the experts do not depend on the trained bias to be useful.
  3. Bias updates broaden routing on a fixed replay batch. The frozen arm is indistinguishable from the SFT base (Gini 0.57, ~140 effective experts/layer, top-8 share 20%), while the bias-updating arms reach Gini 0.28–0.29, ~221 effective experts and a 10% top-8 share. The replay uses one stand-in batch and mismatched steps, so it establishes routing behavior, not transfer causality.
  4. Bias-updating arms have larger, more even expert updates. In the frozen arm, 87 experts have more than 95% of elements unchanged through step 20; per two-step window its experts move ~40% less and less evenly. Per-expert update rank order remains similar across modes (minimum Spearman 0.945).
  5. Interpolation depends on dose and update method. Interpolation at w=0.5 collapses when combined with stochastic rounding, while w=0.15 produces the strongest E17 repaired export. DeepSeek loss-free balancing ends with mean absolute router-bias drift 0.138 and maximum drift 0.297 at step 20, but transfers poorly.

Caveat added 2026-08-25 after an item-level audit of the eval traces. Finding 1's transfer ordering is carried by AIME24, and AIME24 will not carry it. Clustered by item over its 30 problems, E15 @20 − E17a @16 is +8.67 with a 95% CI of [−1.00, +19.33] (p = 0.082); five items supply nearly the whole pooled gap, and fifteen items are unsolved by every checkpoint. Truncation is ruled out as an artifact, but in the reverse direction — E17a truncates 13–16% of AIME24 attempts against 66–81% for the bias-updating arms. The robust difference between the arms is answering policy: the bias-updating arms emit an answer on ~33% of attempts and are ~82% correct when they do, while E17a emits on 90% and is ~16% correct, and 15–29% of E17a's emitted answers are not AIME-shaped integers. One item-level statistic does support the narrowing reading: E17a solves 8–10 distinct items against E15's 16, E6's 15, and the SFT base's own 12. Full analysis, including a null result on the per-expert width measurement, is in @@HTMLTOKEN0@@.

The animated per-expert comparison (all three modes vs the SFT base, 26 layers × 256 experts, step by step) is published as a durable artifact: Snowball update anatomy — E15 vs E6 original vs frozen.

Most parameters never move under bf16 (remediated by stochastic rounding)

With bf16 master weights and AdamW at lr 1e-5, many per-step updates are smaller than half a ULP at the weight's magnitude, so round-to-nearest returns the old value. Measured cumulatively against the SFT base, ≈ 80 % of expert-tensor elements and ≈ 69 % of attention-tensor elements had never changed across the mutable, frozen, and interpolated arms. The measurement establishes stored-weight coverage, not how gradient mass is distributed.

MarinSkyRL #452 adds stochastic rounding to BF16 AdamW, making the expected stored update equal to the optimizer update. It is now the default (bf16_update_mode: stochastic). E17a reached train accuracy 0.717 by step 10, faster than the earlier E6-family arms, but did not improve AIME24. It did improve termination: AIME24 truncation fell from 81% to 13% and MATH-500 truncation from 30% to 0.8%. The added motion is directed rather than random-walk jitter, but the sampled coverage analysis does not establish that greater parameter coverage caused the behavioral change. E17c establishes an empirical incompatibility between stochastic rounding and interpolation at w=0.5; lower interpolation rates had mixed training and transfer results. Details are in @@HTMLTOKEN1@@ and the @@HTMLTOKEN2@@ artifact. The mode is selectable in code but not declared in ppo_base_config.yaml, so explicit run-config overrides fail Hydra composition; current runs rely on the default.

Muon-H showed no post-training advantage

The early hero-v3 Muon-H runs were not valid optimizer comparisons. Muon-H matrices and the language-model head used the configured 1e-5 learning rate, while embeddings, router weights, attention gates, biases, and one-dimensional norms were routed through Adam at an implicit 6e-4. MarinSkyRL PR #405 made the configured master learning rate the default for every parameter group. Hero-v3f confirmed from its optimizer checkpoint that all three routes used 1e-5.

The corrected sweep tested 1e-5 and 1e-4 for both optimizers under the same model, data, reward shaping, TIS/TITO settings, context budget, and launch geometry:

Table 4 · Muon-H showed no post-training advantagetoggle
RunOptimizerMaster LRTraining resultHeld-out math result
hero-v3fMuon-H1e-5Flat through step 5: reward -0.764 to -0.760; pass@16 0.629 to 0.625.Not evaluated.
hero-v3gMuon-H1e-4Stable learning; reward -0.776 to 0.238 by step 8 and peaked at 0.505 at step 11.Steps 6/12: AIME24 19.00/19.33, MATH-500 67.60/64.80, OlympiadBench 14.67/18.67.
hero-v3hAdamW1e-4Collapsed after the first optimizer step; pass@16 fell to zero.Not evaluated.
hero-v3iAdamW1e-5Faster learning; reward reached 0.540 at step 8 and peaked at 0.649 at step 11.Step 8: AIME24 17.00, MATH-500 72.20, OlympiadBench 17.67; all three regressed by step 16.

Held-out scores for the two evaluated arms, each optimizer at its viable rate (AIME24 and OlympiadBench are 10-repetition accuracy_avg; MATH-500 is a single pass over 500 items with binomial standard error; 8,192 generated tokens, repetition penalty 1.1; groups in @@HTMLTOKEN1@@):

Table 5 · Muon-H showed no post-training advantagetoggle
CheckpointOptimizer / master LRTraining reward, pass@16AIME24MATH-500OlympiadBench
2T Thinking SFT base——17.67 ± 1.0664.00 ± 2.1512.67 ± 1.03
hero-v3g step 6Muon-H 1e-40.034, 0.8019.00 ± 1.2567.60 ± 2.0914.67 ± 1.71
hero-v3g step 12Muon-H 1e-40.40, 0.87519.33 ± 0.9264.80 ± 2.1418.67 ± 1.26
hero-v3i step 8AdamW 1e-50.54, 0.9117.00 ± 1.7972.20 ± 2.0017.67 ± 1.34
hero-v3i step 16AdamW 1e-50.52, 0.8911.33 ± 1.4366.40 ± 2.1114.33 ± 0.48

Muon-H leads AIME24 at both reads, AdamW leads MATH-500 at step 8 by 4.6–7.4 points, and OlympiadBench is within one standard error at the best checkpoint of each. Two caveats: the pair is matched on each optimizer's viable rate (1e-4 against 1e-5), not on rate, and the evaluated steps differ (6/12 against 8/16), so the closest matched read is v3g step 6 against v3i step 8. The other two cells of the sweep produced nothing to evaluate.

The matched-1e-4 comparison shows that Muon-H is more tolerant of a large learning rate. At each optimizer's viable rate, AdamW learned faster and reached a higher reward. Held-out results were mixed across suites, with no evidence that Muon-H was the more effective post-training optimizer.

Artifacts

Table 6 · MATH_EVALS.md · Math evals — hero-v3g checkpoints vs E6 and the 2T Thinking SFT basetoggle
modelaime24math500olympiadbenchsource
2T Thinking SFT base (stage 2, step 630 = grug-67b-a2b-sft-s2-thinking-step630, the RL start point; = snowball-sft in EVAL_RESULTS.md)17.67 ± 1.0664.00 ± 2.1512.67 ± 1.03aime24/math500 experiments/complete/snowball-5.7T-SFT-Eval/artifacts/eval-results/2t_source_records.json → selected.thinking_2t (runs 20260806-200908-snowball-sft-*); olympiadbench re-eval 20260818-192841-snowball-sft-olympiadbench-52d7 (10 reps, accuracy_avg; single-pass unified rerun 20260816-110617-…-2t-thinking-… gave the same 12.67)
E1 ctx8k-p8 step 5 (DAPO-17k, unregularized GRPO, 8192 window, 8 policy nodes; repaired query-bias export snowball-e1-ctx8k-p8-s5-repaired)19.33 ± 2.20 (re-eval 2026-08-06: 15.67 ± 1.89)70.00 ± 2.05 (re-eval 70.40)13.33 (single pass 2026-08-06, no SE reported)s3://marin-us-east-02a/marin/evals/20260805-205152-snowball-e1-ctx8k-p8-s5-repaired-*/ and …/20260806-235432-snowball-e1-ctx8k-p8-s5-repaired-*/ (aime24 10-rep accuracy_avg; math500 n=500, SE binomial; olympiadbench single pass, SE binomial). The only DAPO-17k checkpoint ever evaluated; added to the table 2026-08-22
E6 — snowball-e6-s20-sftbias (RLVR-MATH, step 20, query-bias transplant)26.00 ± 2.2076.80 ± 1.8922.67 ± 1.03aime24/math500 EVAL_RESULTS.md (2026-08-07 snapshot); olympiadbench re-eval 20260818-192833-snowball-e6-s20-sftbias-olympiadbench-0f68 (10 reps, accuracy_avg)
E6 reproduction — snowball-e6-repro-step20 (run A, rl-snowball-e6-repro-a-…-20260812-150653, query bias unfrozen, no transplant)19.67 ± 1.1073.60 ± 1.9720.00 ± 1.49aime24/math500 s3://marin-us-east-02a/marin/evals/20260813-193006-snowball-e6-repro-step20-{aime24-5b71,math500-9be6}/; olympiadbench re-eval 20260818-192837-snowball-e6-repro-step20-olympiadbench-b064 (10 reps)
hero-v3g step 619.00 ± 1.2567.60 ± 2.0914.67 ± 1.71s3://marin-us-east-02a/marin/evals/20260818-122236-snowball-hero-v3g-step6-*/ (read 2026-08-18 14:0x, STATE.md)
hero-v3g step 1219.33 ± 0.9264.80 ± 2.1418.67 ± 1.26s3://marin-us-east-02a/marin/evals/20260818-174909-snowball-hero-v3g-step12-*/ (chat group …-5f82, all three succeeded)
hero-v3i step 8 (AdamW 1e-5; training reward 0.54, pass@16 0.91)17.00 ± 1.7972.20 ± 2.0017.67 ± 1.34s3://marin-us-east-02a/marin/evals/20260819-001356-snowball-hero-v3i-step8-*/ (chat group …-595f; math500 single pass n=500, SE binomial; aime24/olympiadbench 10-rep accuracy_avg)
hero-v3i step 16 (AdamW 1e-5; training reward 0.52, pass@16 0.89; final — training stopped 2026-08-19 11:0x UTC)11.33 ± 1.4366.40 ± 2.1114.33 ± 0.48s3://marin-us-east-02a/marin/evals/20260819-100056-snowball-hero-v3i-step16-*/ (chat group …-a4ae; math500 single pass n=500, SE binomial; aime24 10-rep accuracy_avg)
E11 step 6 (DeepScaleR + DAPO, MuonH 1e-4; training reward −0.47, pass@16 0.69)16.33 ± 1.2969.00 ± 2.0716.67 ± 1.63s3://marin-us-east-02a/marin/evals/20260819-105241-snowball-e11-step6-*/ (chat group …-ea56; math500 single pass n=500, SE binomial; aime24/olympiadbench 10-rep accuracy_avg)
E11 step 12 (DeepScaleR + DAPO, MuonH 1e-4; training reward −0.242, pass@16 0.91)17.67 ± 0.9574.60 ± 1.9516.67 ± 1.33s3://marin-us-east-02a/marin/evals/20260819-191515-snowball-e11-step12-*/ (chat group …-4754; math500 single pass n=500, SE binomial; aime24 10-rep accuracy_avg)
E11 step 18 (DeepScaleR + DAPO, MuonH 1e-4; training reward −0.096, pass@16 1.00)19.67 ± 0.8872.20 ± 2.0020.00 ± 1.05s3://marin-us-east-02a/marin/evals/20260820-023025-snowball-e11-step18-*/ (chat group …-3947; math500 single pass n=500, SE binomial; aime24/olympiadbench 10-rep accuracy_avg)
E11 step 24 (DeepScaleR + DAPO, MuonH 1e-4; training reward −0.127, pass@16 0.96, environment/acc 0.421)20.00 ± 1.7672.80 ± 1.9919.33 ± 0.79s3://marin-us-east-02a/marin/evals/20260820-111543-snowball-e11-step24-*/ (chat group …-4311; math500 single pass n=500, SE binomial; aime24/olympiadbench 10-rep accuracy_avg)
E11 step 32 (DeepScaleR + DAPO, MuonH 1e-4; training reward +0.041, pass@16 1.00, environment/acc 0.483)20.33 ± 1.8573.40 ± 1.9816.00 ± 1.40s3://marin-us-east-02a/marin/evals/20260821-123636-snowball-e11-step32-*/ (chat group …-5c73; math500 single pass n=500, SE binomial; aime24/olympiadbench 10-rep accuracy_avg; the group's serve was replaced once and all three evals ran twice — the surviving results_*.json are from the second pass, 13:58–14:43 UTC)
E11 step 40 (DeepScaleR + DAPO, MuonH 1e-4; training reward +0.091, pass@16 1.00, environment/acc 0.542)20.00 ± 1.9468.00 ± 2.0915.33 ± 1.71s3://marin-us-east-02a/marin/evals/20260822-000714-snowball-e11-step40-*/ (chat group …-5724; math500 single pass n=500, SE binomial; aime24/olympiadbench 10-rep accuracy_avg; every-8-steps policy)
E13 step 8 (RLVR-MATH + DAPO ctx10k; training reward +0.234, pass@16 1.00, environment/acc 0.601)15.00 ± 1.2769.60 ± 2.0613.67 ± 0.99s3://marin-us-east-02a/marin/evals/20260822-003405-snowball-e13-step8-*/ (chat group …-27af; same protocol; every-8-steps policy)
E12 step 8 (DeepScaleR + GRPO control ctx10k; training reward −0.383, pass@16 0.71, environment/acc 0.312)20.00 ± 1.0571.00 ± 2.0315.00 ± 1.27s3://marin-us-east-02a/marin/evals/20260822-020837-snowball-e12-step8-*/ (chat group …-3886; same protocol; every-8-steps policy)
E11 step 48 (DeepScaleR + DAPO, MuonH 1e-4; training reward +0.038, pass@16 1.00, environment/acc 0.530; final export — run completed at step 50)20.33 ± 1.4570.00 ± 2.0514.67 ± 1.26s3://marin-us-east-02a/marin/evals/20260822-081039-snowball-e11-step48-*/ (chat group …-09c9; same protocol; every-8-steps policy)
E12 step 16 (DeepScaleR + GRPO control ctx10k; training reward −0.246, pass@16 0.77, environment/acc 0.377)16.67 ± 0.9470.20 ± 2.0518.00 ± 1.26s3://marin-us-east-02a/marin/evals/20260822-081039-snowball-e12-step16-*/ (chat group …-7a43; same protocol; every-8-steps policy)
E12 step 24 (DeepScaleR + GRPO control ctx10k; final — run cancelled after banking step 24 per owner order; training metrics at step 24 not captured, step 21 environment/acc 0.395)16.00 ± 1.3271.80 ± 2.0116.33 ± 0.99s3://marin-us-east-02a/marin/evals/20260822-140531-snowball-e12-step24-*/ (chat group …-c41d; same protocol; every-8-steps policy)
E2-unreg step 5 (DAPO-17k + unregularized GRPO, E-series recipe; repaired export)16.67 ± 1.4170.80 ± 2.0314.00 ± 1.40s3://marin-us-east-02a/marin/evals/20260822-152435-snowball-e2-unreg-step5-repaired-*/ (matched-step dataset contrast vs E6; same protocol)
E2-unreg step 10 (as above)16.00 ± 1.2368.40 ± 2.0814.00 ± 1.32…/20260822-152440-snowball-e2-unreg-step10-repaired-*/
E2-unreg step 15 (as above)14.33 ± 1.3469.40 ± 2.0616.00 ± 1.48…/20260822-152444-snowball-e2-unreg-step15-repaired-*/
E2-unreg step 20 (as above)18.00 ± 0.8471.40 ± 2.0214.67 ± 1.26…/20260822-152447-snowball-e2-unreg-step20-repaired-*/
E6 original step 5 (RLVR-MATH + unregularized GRPO, mutable router; repaired export)20.33 ± 2.0871.80 ± 2.0116.33 ± 1.10…/20260822-152451-snowball-e6-step5-repaired-*/
E6 original step 10 (as above)25.33 ± 1.4374.00 ± 1.9619.33 ± 1.03…/20260822-152454-snowball-e6-step10-repaired-*/
E6 original step 15 (as above)27.33 ± 1.8778.40 ± 1.8419.67 ± 1.20…/20260822-152458-snowball-e6-step15-repaired-*/
E14 step 8 — snowball-e14-step8 (DAPO-17k, plain GRPO, frozen query bias; un-repaired export, frozen = repair-free)16.67 ± 1.0570.00 ± 2.0514.67 ± 0.97s3://marin-us-east-02a/marin/evals/20260823-090831-snowball-e14-step8-*/record.json (read 2026-08-23 11:2x UTC)
E14 step 16 — snowball-e14-step16 (DAPO-17k, plain GRPO, frozen query bias; un-repaired export, frozen = repair-free; final — run sealed 17:29 UTC 08-23 at max_steps 16)20.67 ± 1.6973.80 ± 1.9715.67 ± 1.16…/20260823-175436-snowball-e14-step16-*/record.json (read 20:3x UTC 08-23; aime24/olympiadbench accuracy_avg, math500 binomial SE); nlp group 20260823-175456-…-4294 results landing
E15 step 8 — snowball-e15-step8 (RLVR-MATH, GRPO, interpolated query bias 0.5; un-repaired export)2.33 ± 0.6726.80 ± 1.983.67 ± 0.88…/20260823-072549-snowball-e15-step8-*/record.json. COLLAPSED; MMLU/gsm8k-flex normal. Un-repaired export artifact (as for E6 original); see the repaired row
E15 step 8 — repaired (marin/exports/snowball-bias-repaired/<run>/global_step_8/policy, SFT router-bias transplant, same protocol as the E6 rows)14.67 ± 1.2672.00 ± 2.0117.33 ± 1.69…/20260823-112747-snowball-e15-step8-repaired-*/record.json (all three read 12:3x UTC 08-23; aime24/olympiadbench accuracy_avg)
E15 step 16 — snowball-e15-step16 (RLVR-MATH, GRPO, interpolated query bias 0.5; un-repaired export; launched on purpose — the un-repaired/repaired gap is a read for the E17 plan)2.67 ± 0.7925.80 ± 1.962.67 ± 0.63…/20260823-165008-snowball-e15-step16-*/record.json (read 20:3x UTC 08-23). COLLAPSED, as the step-8 un-repaired export; artifacts/e15/e15-step16-eval-chat.launch.log
E15 step 16 — repaired (marin/exports/snowball-bias-repaired/<run>/global_step_16/policy, SFT router-bias transplant, same protocol as the E6 rows; VERIFY OK artifacts/e15/bias-transplant-step16.log)19.00 ± 1.5773.00 ± 1.9917.00 ± 1.37…/20260823-164943-snowball-e15-step16-repaired-*/record.json (read 20:3x UTC 08-23; aime24/olympiadbench accuracy_avg, math500 binomial SE); artifacts/e15/e15-step16-repaired-eval-chat.launch.log
E15 step 20 — snowball-e15-step20 (final, un-repaired export)2.00 ± 0.7022.40 ± 1.861.67 ± 0.53…/20260823-233942-snowball-e15-step20-*/record.json (waiter-launched 23:39 UTC 08-23). COLLAPSED as at 8/16. A duplicate group 20260824-022414-… (math500 23.2) exists — the supervisor relaunched believing the waiter had died; treat 233942 as canonical
E15 step 20 — repaired (SFT router-bias transplant, VERIFY OK artifacts/e15/bias-transplant-step20.log)24.00 ± 1.6274.20 ± 1.9621.67 ± 1.08…/20260824-022521-snowball-e15-step20-repaired-*/record.json (read 08:2x UTC 08-24). Repaired trajectory 8→16→20: aime24 14.67→19.00→24.00, math500 72.0→73.0→74.2, olympiadbench 17.3→17.0→21.7 — still climbing at seal
E17a step 8 — snowball-e17a-step8 (RLVR-MATH, GRPO, frozen bias + stochastic-rounded bf16 AdamW #452; repair-free by construction — verified max|Δ|=0 vs SFT router.bias)9.67 ± 0.8865.00 ± 2.1316.33 ± 1.10…/20260824-124732-snowball-e17a-step8-*/record.json (read 01:0x UTC 08-25). Early-training trough; see steps 16/20 — not a final read
E17a step 16 — snowball-e17a-step16 (same arm)15.33 ± 0.8475.60 ± 1.9219.67 ± 0.99…/20260825-012737-snowball-e17a-step16-*/record.json (read 02:2x UTC 08-25). Arm's best row
E17a step 20 — snowball-e17a-step20 (final, run succeeded 20/20)14.67 ± 1.2675.20 ± 1.9218.67 ± 0.97…/20260825-012737-snowball-e17a-step20-*/record.json (read 02:2x UTC 08-25). Trajectory 8→16→20: aime24 9.67→15.33→14.67, math500 65.0→75.6→75.2, olympiadbench 16.3→19.7→18.7 — recovers from the step-8 trough, peaks at 16, flat-to-down by 20
E17b1 step 8 — snowball-e17b1-step8 (RLVR-MATH, GRPO, router bias interpolate w=0.05 + stochastic-rounded bf16 AdamW; export repaired, SFT router.bias transplanted, verified byte-equal)9.33 ± 1.2366.009.67 ± 1.37s3://marin-us-east-02a/marin/evals/20260825-164111-snowball-e17b1-step8-*/ (aime24/olympiadbench 10-rep accuracy_avg; math500 n=500 single pass). Steps-8/16 standing policy
E17b2 step 8 — snowball-e17b2-step8 (as above, interpolate w=0.15; export repaired)7.00 ± 0.9954.8010.33 ± 1.20…/20260825-165536-snowball-e17b2-step8-*/ (same protocol)
E17d step 8 — snowball-e17d-step8 (as above, DeepSeek loss-free balancing #454; export not repaired — the loss-free bias is the arm's own trained state)2.67 ± 0.7935.207.00 ± 0.57…/20260825-163921-snowball-e17d-step8-*/ (same protocol). Export verified byte-faithful to global_step_8 (e17/export_vs_checkpoint_bias.py), so this is the run, not an export artifact
E17d step 8 repaired — snowball-e17d-step8-repaired (same checkpoint as the row above with the SFT router.bias transplanted, verified byte-equal)3.33 ± 0.8337.805.67 ± 0.60s3://marin-us-east-02a/marin/evals/20260825-195841-snowball-e17d-step8-repaired-*/. Control for whether the loss-free bias itself is the cause: it is not — 2.5 math500 points from the unrepaired export, opposite sign on olympiadbench
E17b1 step 16 — snowball-e17b1-step16 (interpolate w=0.05, stochastic rounding; export repaired)19.00 ± 1.4271.0015.33 ± 1.24…/20260825-200619-snowball-e17b1-step16-*/ (same protocol). First E17 arm above the SFT base on aime24; router-bias mean drift 0.438 at this step
E17d step 16 — snowball-e17d-step16 (loss-free balancing; export not repaired)4.00 ± 0.7960.8014.33 ± 0.83…/20260825-200441-snowball-e17d-step16-*/ (same protocol). Recovered 25.6 math500 points from its step-8 trough and still below the base on all three; router-bias mean drift 0.111
E17d step 20 — snowball-e17d-step20 (loss-free balancing, final step; export not repaired)5.33 ± 0.7964.0019.00 ± 0.83s3://marin-us-east-02a/marin/evals/20260826-045654-snowball-e17d-step20-*/ (aime24/olympiadbench 10-rep accuracy_avg; math500 n=500). Recovered monotonically from step 8 (35.20) and step 16 (60.80); ends level with the SFT base on math500 and 12.3 below it on aime24. Router-bias mean drift 0.138, max 0.297
E17b1 step 20 — snowball-e17b1-step20 (interpolate w=0.05, final step; export repaired, transplant VERIFY OK)20.33 ± 1.6073.4017.33 ± 0.92s3://marin-us-east-02a/marin/evals/20260826-135446-snowball-e17b1-step20-{aime24-362a,math500-8c48,olympiadbench-8211}/ (aime24/olympiadbench 10-rep accuracy_avg; math500 n=500 single pass). Read 2026-08-26 by the resumed stages-4/5 driver
E17b2 step 16 — snowball-e17b2-step16 (interpolate w=0.15; export repaired)20.67 ± 1.4071.4020.67 ± 1.03…/20260825-230247-snowball-e17b2-step16-{aime24-dee4,math500-6b78,olympiadbench-29f2}/ (same protocol). Launched 08-25, first recorded 2026-08-26 — the results had landed but were never read into this table
E17b2 step 20 — snowball-e17b2-step20 (interpolate w=0.15, final step; export repaired, transplant VERIFY OK)20.67 ± 1.4877.2022.00 ± 1.07…/20260826-135657-snowball-e17b2-step20-{aime24-64ca,math500-a238,olympiadbench-8b23}/ (same protocol). Best E17 arm at step 20; matches E6 on math500 (76.80) and olympiadbench (22.67), still 5.3 behind on aime24
E17f step 8 — snowball-e17f-step8 (DeepScaleR instead of RLVR-MATH, otherwise E17a's config verbatim; frozen bias, repair-free — export drift verified exactly 0.000000 on all 26 layers)13.33 ± 1.1564.2012.33 ± 1.06s3://marin-us-east-02a/marin/evals/20260826-161538-snowball-e17f-step8-{aime24-f919,math500-db17,olympiadbench-e821}/ (aime24/olympiadbench 10-rep accuracy_avg; math500 n=500 single pass). Steps-8/16 standing policy
E17f step 16 — snowball-e17f-step16 (DeepScaleR, frozen bias, E17a config verbatim; export drift verified exactly 0.000000 on all 26 layers, so the frozen-mode known-answer control now spans both export points)14.00 ± 1.0360.809.33 ± 1.23s3://marin-us-east-02a/marin/evals/20260826-201003-snowball-e17f-step16-{aime24-62a8,math500-4944,olympiadbench-df69}/ (aime24/olympiadbench 10-rep accuracy_avg; math500 n=500 single pass). Flat-to-down from step 8: aime24 13.33→14.00, math500 64.20→60.80, olympiadbench 12.33→9.33. E17a on RLVR-MATH under the same frozen recipe gained over the same window (9.67→15.33, 65.0→75.6, 16.3→19.7), so the dataset swap removes the mid-run recovery rather than shifting it
E17f step 20 — snowball-e17f-step20 (DeepScaleR, frozen bias, final step; export drift again exactly 0.000000 on all 26 layers)8.67 ± 1.0744.606.67 ± 0.94s3://marin-us-east-02a/marin/evals/20260827-045606-snowball-e17f-step20-{aime24-0626,math500-32a1,olympiadbench-a00b}/ (aime24/olympiadbench 10-rep accuracy_avg; math500 n=500 single pass). Collapse, as predicted from the training curve, not a reading on the recipe: the arm entered a response-length runaway at steps 17-18 (mean length 2913 → 4636 tokens, truncation 6.9% → 38.4%, pass@16 0.723 → 0.543), so this checkpoint is post-runaway. Trajectory 8 → 16 → 20: aime24 13.33 → 14.00 → 8.67, math500 64.20 → 60.80 → 44.60, olympiadbench 12.33 → 9.33 → 6.67. The arm's usable states are steps 8 and 16
E18 step 8 — snowball-e18-step8 (5.7T-cooldown Stage 3 agentic start point laion/snowball-67b-a2b-sft-s3-nemotron-terminal-step1888@680bec3a instead of the 2T Thinking checkpoint; E17a's config body byte-for-byte, frozen bias, repair-free — export drift verified exactly 0.000000 on all 26 layers against this arm's own start point)37.33 ± 1.4083.0013.33 ± 1.05s3://marin-us-east-02a/marin/evals/20260826-234853-snowball-e18-step8-{aime24-a14a,math500-e445,olympiadbench-e605}/ (aime24/olympiadbench 10-rep accuracy_avg; math500 n=500 single pass). Campaign-best absolute aime24 and math500, but most of that is inherited: the start point already scores 37.00 / 78.20 / 9.00 (artifacts/e18/PLAN.md), so the RL delta at step 8 is aime24 +0.33 (flat), math500 +4.80, olympiadbench +4.33. Read the deltas, not the absolutes, against the 2T-line arms
E18 step 16 — snowball-e18-step16 (same arm; frozen bias, drift 0.000000 on all 26 layers against its own Stage 3 start point)33.33 ± 1.6376.0022.33 ± 1.16s3://marin-us-east-02a/marin/evals/20260827-104950-snowball-e18-step16-ac6d…/ (aime24/olympiadbench 10-rep accuracy_avg; math500 n=500 single pass). Not saturation — a redistribution. Against step 8 (37.33 / 83.00 / 13.33): aime24 −4.00 (~1.9 SE), math500 −7.00 (~2.6 SE), olympiadbench +9.00 (~5.8 SE). Against its own start point (37.00 / 78.20 / 9.00): aime24 −3.67, math500 −2.20, olympiadbench +13.33. Olympiadbench reaches 22.33, within noise of the campaign's best (E6 22.67, E17b2 22.00), from the weakest start of any arm
E18 step 20 — snowball-e18-step20 (same arm, final step; frozen bias, drift 0.000000 on all 26 layers against its own Stage 3 start point)31.67 ± 1.3580.0022.33 ± 0.67s3://marin-us-east-02a/marin/evals/20260827-123755-snowball-e18-step20-{aime24-bc15,math500-6701,olympiadbench-c270}/ (aime24/olympiadbench 10-rep accuracy_avg; math500 n=500 single pass). Confirms the step-16 trade is stable, not a transient. Olympiadbench holds at 22.33 across two consecutive export points. Over the full 20 steps, against its own start (37.00 / 78.20 / 9.00): olympiadbench +13.33 (~8.6 SE), aime24 −5.33 (~2.8 SE), math500 +1.80 (single pass, does not separate). Beats E6 original step 20 (26.00 / 76.80 / 22.67) on aime24 by 5.67 and math500 by 3.20 and ties on olympiadbench, but started 19.33 aime24 points above E6's base, so that comparison credits the start point
Table 7 · HERO_ABLATIONS.md · Lineage at a glancetoggle
armlaunched (UTC)one change vs predecessortraining outcomebest held-out math (step: AIME24 / MATH-500 / OlympiadBench)fate
hero-v108-05 01:20— (E6 recipe at 32k context, AdamW 1e-5, mutable router)reward −0.74 → −0.22 by step ~21; response length 4.0k → 7.2kstep 25 (router-bias repaired): 11.67 / 56.20 / 13.33failed step 31 — NCCL collective timeout (rank-drop at 32k, cpu_offload=false); resume died on an S3 read timeout; last complete ckpt 28
hero-v208-07 12:3724k context; MuonH 1e-5; TIS/TITO (cap 2.0); frozen query bias (#310)reward peak 0.472 @46, 0.395 @50; length 3.8k → 5.9kstep 18: 11.67 / 64.80 / 16.00 (step 12 best on AIME24: 13.00)succeeded 50/50 — but held-out math peaks at 12–18 and collapses by 30 (5.00 / 36.80 / 5.33)
hero-v308-11 09:57+ trajectory reward shaping v1 (loop 0.002/occ cap 0.2; non-termination 0.1; length >4,096 tok 1e-5/tok cap 0.2)step 1 only—killed in step 1 — penalties sized for a 0/1 channel on a ±1 reward; nothing banked
hero-v3b08-11 11:19shaping recalibrated ×0.4 (loop 0.0008 cap 0.08; non-term 0.04; length free to 8,192, 5e-6/tok cap 0.08)reward 0.421 @49; avg tokens 3.5–4.2k vs v2's 6.7–7.4k; loop incidence 0.33 → ~0.20 and flatstep 24: 11.33 / 67.00 / 18.00 (16: 11.00 / 59.40 / 15.00; 46: 6.00 / 57.60 / 10.00)succeeded 50/50; late policy piles into single-word loops (81/500 MATH-500 responses ≤8-token loops at step 46)
hero-v3c08-13 21:37loop price ×7.5 (0.006/occ, cap 0.6 — loop margin 30 % of the correctness gap)loop incidence steps 4–11 mean 0.194 vs v3b 0.214, back on v3b's floor by step 13not evaluatedstopped step 13 (owner) — price not binding: GRPO's std-normalisation makes trajectory-level penalties scale-invariant
hero-v3d08-14 16:16shaping schema 2: token-level loop credit (period ≤64 tok, tail 256, ≥4 copies, 0.6 adv/tok, cap 1,200)trainer loop_incidence 0.0054 @18; tokens 6.6k → 4.7kstep 8: 5.67 / 40.00 / 6.00stopped step 18 (owner) — policy moved to 86–129-token-period loops the detector cannot see; 51 % of MATH-500 outputs unanswered at the 8k cap; loops are relocated, not removed
hero-v3e08-15 22:30 → relaunch 08-16 00:37generation budget 22,912 → 8,192 (= eval budget); evaluation_token_budget 8,192; shaping held at v3d valuesreward peak 0.488 @11, 0.42 @28; pass@16 0.89step 8: 9.00 / 61.00 / 10.00 (10: 11.67 / 58.80 / 9.00; 28: 7.67 / 53.60 / 10.67)stopped step 30 (owner) — budget alignment did not recover held-out math; step-8 AIME24 −8.67 vs base
hero-v3f08-17 15:19v3e verbatim on PR #405 (master LR inherited by every MuonH route; previously embeddings/router/gates/norms ran Adam at an implicit 6e-4)flat: reward −0.764 → −0.760, pass@16 0.63 over 5 stepsnot evaluatedstopped step 5 (owner) — at a true 1e-5 MuonH does not learn; every earlier "MuonH" hero had been learning through the accidental 6e-4 Adam route
hero-v3g08-17 23:52MuonH master lr 1e-5 → 1e-4reward −0.776 → 0.238 @8, peak 0.505 @11; entropy ≤1.06× step 1step 12: 19.33 / 64.80 / 18.67 (6: 19.00 / 67.60 / 14.67)stopped step 15 (owner) — learns, but flat vs base on held-out math; stalled on trajectory-retention S3 writes (escalated)
hero-v3h08-18 01:48optimizer MuonH → AdamW at 1e-4 (paired with v3g)diverged after one optimizer step: every rollout at the 8,192 cap, loop_incidence 0.985, pass@16 0.000not evaluated (weights collapsed)killed step 3
hero-v3i08-18 11:53AdamW lr 1e-4 → 1e-5 (E6's rate)reward 0.540 @8, peak 0.649 @11, 0.52 @16 — fastest climb in the lineagestep 8: 17.00 / 72.20 / 17.67; step 16: 11.33 / 66.40 / 14.33stopped ~step 18 (owner) — best MATH-500 of the lineage at step 8, regressed on all three suites by step 16
Table 8 · HERO_ABLATIONS.md · hero-v3f → v3i: the optimizer sweep, and the hidden learning ratetoggle
lr 1e-5lr 1e-4
MuonHv3f: flat (reward −0.76, pass@16 0.63 at step 5)v3g: learns (peak 0.505 @11); held-out flat vs base (19.33 / 64.80 / 18.67 @12)
AdamWv3i: fastest learner (0.540 @8, peak 0.649 @11); best MATH-500 in the lineage @8 (17.00 / 72.20 / 17.67), regressed by 16v3h: diverged on the first optimizer step
Table 9 · HERO_ABLATIONS.md · Run identifierstoggle
armIris job (cw-rno2a)runtime
hero-v1rl-snowball-hero-rno2a-rlvrmath-ctx32k-grug-67-20260805-012043 (+ -resume-…-221206)—
hero-v2rl-snowball-hero-v2-rno2a-rlvrmath-ctx24k-grug-67-20260807-123752 (+ -resume-20260808-115358)#341
hero-v3rl-snowball-hero-v3-rno2a-rlvrmath-ctx24k-grug-67-20260811-09571191bdd0fd
hero-v3brl-snowball-hero-v3b-rno2a-rlvrmath-ctx24k-grug-67-20260811-11192097d308f1
hero-v3crl-snowball-hero-v3c-rno2a-rlvrmath-ctx24k-grug-67-20260813-213516e1c2dff6
hero-v3drl-snowball-hero-v3d-rno2a-rlvrmath-ctx2-20260814-161630-804d27—
hero-v3erl-snowball-hero-v3e-rno2a-rlvrmath-ctx10k-grug-67-20260816-003714d62ad5bd
hero-v3frl-snowball-hero-v3f-rno2a-rlvrmath-ctx10k-grug-67-20260817-151858773d2560 (#405)
hero-v3grl-snowball-hero-v3g-rno2a-rlvrmath-ctx10k-grug-67-20260817-2350570e476fc4
hero-v3hrl-snowball-hero-v3h-rno2a-rlvrmath-ctx10k-grug-67-20260818-0147210e476fc4
hero-v3irl-snowball-hero-v3i-rno2a-rlvrmath-ctx10k-grug-67-20260818-1152510e476fc4
Table 10 · UPDATE_GEOMETRY.md · The puzzle that started ittoggle
armrouter biasbf16 updatetrainingAIME24MATH-500OlympiadBench
SFT base———17.6764.0012.67
E6 repro-A @20unfrozen, no transplantround-to-nearestreward +0.4819.6773.6020.00
E6 original @15, repairedreplaceround-to-nearestreward −0.18 @2027.3378.4019.67
E15 @20, repairedinterpolate w=0.5round-to-nearestacc 0.37424.0074.2021.67
E17a @16frozenstochasticacc 0.689 @8, 0.717 @1015.3375.6019.67
E17cinterpolate w=0.5stochasticcollapsed by step 5———
Table 11 · UPDATE_GEOMETRY.md · The hypothesis: two knobs, width and depthtoggle
frozenbias-updating (replace or interp 0.5)
effective experts per layer~140~221
routing Gini0.570.28–0.29
top-8 experts' share of load20%10%
experts untouched through step 2087 (over 24 of 26 layers)—
Table 12 · UPDATE_GEOMETRY.md · The hypothesis: two knobs, width and depthtoggle
round-to-neareststochastic
elements moved over 12 steps14.6–18.9%54.5–66.4%
median displacement when moved5–6 ulp2 ulp
share of moves that are exactly 1 ulp~19%~49%
Table 13 · UPDATE_GEOMETRY.md · Test 1: the AIME24 gap does not carry the weight put on ittoggle
checkpointAIME24 truncatedMATH-500 truncatedAIME24 mean gen tokens
SFT base81.0%30.0%7,203
E6 @15 repaired69.0%13.0%6,833
E15 @20 repaired66.0%17.0%6,613
E17a @1616.3%3.2%4,699
E17a @2013.0%0.8%4,370
Table 14 · UPDATE_GEOMETRY.md · Test 1: the AIME24 gap does not carry the weight put on ittoggle
checkpointtaskemitted an answerreported accuracyaccuracy given an answer
E6 @15 repairedaime2433.3%27.33%82.0%
E15 @20 repairedaime2435.0%24.00%68.6%
E17a @20aime2490.0%14.67%16.3%
E6 @15 repairedmath50087.6%78.40%89.5%
E17a @20math50098.6%75.20%76.3%
Table 15 · UPDATE_GEOMETRY.md · Test 2: the width measurement on E17d is a null resulttoggle
armmean displacement (ulp)Gini across expertsCVminmax
E15 interp 0.5, round-to-nearest0.9160.0970.1710.6121.160
E17a frozen, stochastic1.1260.1110.2020.4821.493
E17c interp 0.5, stochastic1.1460.1170.2080.6371.633
E17b2 interp 0.15, stochastic1.1880.1130.2050.5441.580
E17d loss-free, stochastic1.0980.1270.2400.1961.422
Table 16 · README.md · What exists to comparetoggle
runstepsourcedtype on disk
hero-v3e6, 12, 18…/checkpoints/global_step_N/policy/model_world_size_64_rank_*.pt (FSDP2 Shard(0) DTensors)fp32
hero-v3e8, 10…/exports/global_step_N/policy/*.safetensorsfp32
e6-repro-A16, 18, 20s3://marin-us-east-02a/iris/rl-snowball-e6-…-98cb43/checkpoints/global_step_N/policy/model_world_size_64_rank_*.ptbf16
Table 17 · README.md · RESULTS (job /benjaminfeuer/param-updates-e6-vs-v3e-r2, succeeded 2026-08-17 15:43 UTC)toggle
family (route under MuonH)v3e @18e6 @18v3e/e6cos(v3e, e6)e6 exact-zero sharebf16-immovable share of theta_0
attention q/k/v/o (Muon)1.2e-42.3e-30.050.01-0.0269%67-68%
experts gate/up/down (Muon)1.3e-41.7e-30.080.00281%69%
shared expert (Muon)1.2e-42.3e-30.050.0168%66-67%
gated norms (Muon)1.3e-42.4e-30.050.0266%63%
lm_head (AdamH)1.3e-41.3e-30.100.0588%63%
attn_gate (plain Adam)1.6e-19.2e-41690.0681%80%
router.weight (plain Adam)2.5e-29.1e-52730.0194%93%
embed_tokens (plain Adam)2.7e-33.5e-67590.00199.9%98%
layernorm / embed_norm (plain Adam)2.6e-3 / 2.9e-30inf—100%100%
router.bias00——100% (frozen)—
Table 18 · README.md · Statestoggle
runquery biasstatessource
E15 …-20260822-202712-f3445ainterpolate 0.54, 8, 12 (pass 1); 16 (pass 2); every banked even step (pass B)tmp/ttl=14d/…/checkpoints/global_step_N/policy/ FSDP2 shards
E6 original …-20260802-090254-c609adreplace (mutable router)16, 20 (pass 1); 16, 18, 20 (pass B)iris/…/checkpoints/
E6 repro-A …-20260812-150653-98cb43frozen16, 20 (pass 1); 16, 18, 20 (pass B)iris/…/checkpoints/
Table 19 · README.md · Results (pass 1, read 2026-08-23 13:5x UTC)toggle
statemean rel_deltaCVGinimin/maxexperts with frac_zero>0.95
e15_048.50e-040.320.1860.0830
e15_081.18e-030.260.1490.1220
e15_121.39e-030.240.1360.1440
e6O_161.54e-030.230.1320.1600
e6O_201.67e-030.220.1270.1670
e6A_161.34e-030.350.1980.00087 (1.3%)
e6A_201.40e-030.350.1990.00087 (1.3%)
Table 20 · README.md · Pass B results (read 2026-08-23 16:1x UTC)toggle
windowexperts with frac_zero<0.95 ("touched")median per-expert frac_zeromean per-expert rel_deltaGini of rel_deltarouter.bias rel_delta / max‖Δ‖
e6O 16→180.8140.9431.49e-040.1080.048 / 0.84
e6O 18→200.6500.9471.36e-040.1120.044 / 0.72
e6A 16→18 (frozen)0.1310.9618.77e-050.2230 / 0
e6A 18→20 (frozen)0.0870.9637.99e-050.2300 / 0
e15 2→41.0000.8634.27e-040.1260.258 / 2.72
e15 4→60.9980.8963.08e-040.1080.104 / 2.38
e15 6→80.9950.9142.46e-040.1010.047 / 0.45
e15 8→100.9830.9242.10e-040.1030.043 / 0.50
e15 10→120.9590.9311.87e-040.1080.025 / 0.48
e15 12→140.9130.9361.69e-040.1100.029 / 0.44
Table 21 · README.md · Statestoggle
idstateS3 pathsubstitution
sftSFT bases3://marin-us-east-02a/models/marin-community--grug-67b-a2b-sft-s2-thinking-step630/none
e6O_20E6 original (mutable router bias, replace), rl-snowball-e6-rno2a-rlvrmath-grug-67b-a-20260802-090254-c609ads3://marin-us-east-02a/iris/rl-snowball-e6-rno2a-rlvrmath-grug-67b-a-20260802-090254-c609ad/exports/global_step_20/policy/step 20 instead of 16: the only un-repaired export; step 16 exists only as FSDP2 DCP shards (not converted)
e6A_16E6 repro-A (frozen router bias), rl-snowball-e6-rno2a-rlvrmath-grug-67b-a-20260812-150653-98cb43s3://marin-us-east-02a/iris/rl-snowball-e6-rno2a-rlvrmath-grug-67b-a-20260812-150653-98cb43/exports/global_step_16/policy/none
e15_08E15 (interpolated router bias, w=0.5), rl-snowball-e15-rno2a-rlvrmath-interp-bi-20260822-202712-f3445as3://marin-us-east-02a/marin/users/benjaminfeuer/skyrl/rl-snowball-e15-rno2a-rlvrmath-interp-bi-20260822-202712-f3445a/exports/global_step_8/policy/step 8 instead of 12: the only export; steps 10/12/14 exist only as DCP shards under tmp/ttl=14d/.../checkpoints/
Table 22 · README.md · Results (job /benjaminfeuer/router-replay-e15-vs-e6-r2, succeeded 16:10 UTC 2026-08-23)toggle
statesegmentunique experts (min layer)GiniCVeffective expertstop-8 / top-32 / top-64 load sharerouter.bias std / L2
SFT baseall254.3 (250)0.5701.43139.90.204 / 0.467 / 0.6641.005 / 82.0
E6 repro-A step 16 (frozen)all254.2 (251)0.5751.42138.80.204 / 0.470 / 0.6701.005 / 82.0
E6 original step 20 (mutable)all256.0 (256)0.2840.59221.80.100 / 0.267 / 0.4341.301 / 106.1
E15 step 8 (interpolated)all256.0 (256)0.2910.60220.60.098 / 0.270 / 0.4411.246 / 101.7
SFT baseresponse253.3 (249)0.5881.53133.30.221 / 0.490 / 0.682—
E6 repro-A step 16response253.1 (249)0.5941.53131.70.222 / 0.495 / 0.688—
E6 original step 20response256.0 (256)0.2540.49229.20.082 / 0.241 / 0.408—
E15 step 8response256.0 (256)0.2690.52226.30.086 / 0.252 / 0.422—
Table 23 · README.md · Resultstoggle
intervalstepsE15 round-to-nearestE17c stochasticratio
global_step_2 → 4210.23%22.08%2.16×
global_step_8 → 1026.19%21.57%3.48×
global_step_2 → 141211.56%48.96%4.23×
Table 24 · README.md · Resultstoggle
tensorelementsRN movedSR moved
layers.10.mlp.experts.gate_proj.weight1,000,00014.08%61.29%
layers.10.mlp.experts.up_proj.weight1,000,00014.29%61.29%
layers.10.mlp.experts.down_proj.weight1,000,00014.48%61.77%
layers.10.self_attn.q_proj.weight102,40018.64%62.71%
layers.10.self_attn.o_proj.weight102,40018.53%63.93%
layers.10.shared_expert.gate_proj.weight102,40021.30%65.40%
layers.10.mlp.router.weight10,2402.79%25.68%
embed_tokens.weight1,000,0001.06%7.09%
Table 25 · README.md · The step-size signature confirms the mechanismtoggle
intervalRN median ulpRN share moving exactly 1 ulpSR median ulpSR share moving exactly 1 ulp
8 → 102~30%1~67%
2 → 144–5~19%2~49%
Table 26 · README.md · Follow-up: are the extra moves directed or a random walk?toggle
runtensormovedmean D/Lmedian Lp90 L
E15 round-to-nearestexperts.gate_proj14.58%0.867629
E15 round-to-nearestexperts.down_proj14.91%0.862629
E15 round-to-nearestself_attn.q_proj18.94%0.911528
E17c stochastic + interp 0.5experts.gate_proj65.68%0.84528
E17c stochastic + interp 0.5experts.down_proj66.37%0.84128
E17c stochastic + interp 0.5self_attn.q_proj66.10%0.88229
E17a stochastic + frozenexperts.gate_proj54.51%0.93427
E17a stochastic + frozenexperts.down_proj55.77%0.93427
E17a stochastic + frozenself_attn.q_proj62.58%0.93528
Table 27 · controlled_contrasts.csvtoggle
contrastvariableheld_constantarm_Ackpt_Aaime24_Amath500_Aolympiadbench_Asum_Aarm_Bckpt_Baime24_Bmath500_Bolympiadbench_Bsum_Bd_aime24d_math500d_olympiadbenchd_sumcaveat
dataset under GRPORLVR-MATH vs DeepScaleRgrug-67b-a2b-sft-s2-thinking-step630; aime env; MuonH 1e-4; frozen query bias; TIS 2.0; v3d shaping; eps 0.2/0.2; no dynamic sampling; 8192 gen budget; 10xH100x8hero-v3g (RLVR-MATH)1219.3364.8018.67102.80E12 (DeepScaleR)820.0071.0015.00106.00+0.67+6.20-3.67+3.20E12 s24 = 16.00/71.80/16.33 (s8 remains best); window 9856 vs 10240 (input allowance only)
dataset under DAPORLVR-MATH vs DeepScaleRas above but eps 0.2/0.4 + dynamic sampling filter (max_sample_batches 8)E13 (RLVR-MATH)815.0069.6013.6798.27E11 (DeepScaleR)2420.0072.8019.33112.13+5.00+3.20+5.67+13.87E13 died at step 14 (trainer uid-collision defect; fixed upstream in #439) so its best checkpoint is its only one; matched-step read: E13 s8 vs E11 s6 = 15.00/69.60/13.67 vs 16.33/69.00/16.67
dataset under GRPO (E1/E6 era)DAPO-17k vs RLVR-MATHsame checkpoint; 8192 window; 8 policy nodes; unregularized GRPOE1 ctx8k-p8 (DAPO-17k)5 (repaired export)19.3370.0013.33102.66E6 reproduction run A (RLVR-MATH)2019.6773.6020.00113.27+0.33+3.60+6.67+10.61E1 step 5 is the only DAPO-17k export ever evaluated (E2 ran 21 steps unexported); E1 re-eval 2026-08-06: 15.67/70.40/13.33; owner: the original E6 (26.00/76.80/22.67 with query-bias transplant) was anomalous, the reproduction is representative
objective on DeepScaleRGRPO vs DAPOE11 config with only the objective reverted (eps 0.2/0.2, no dynamic sampling)E12 (GRPO)820.0071.0015.00106.00E11 (DAPO)2420.0072.8019.33112.130.00+1.80+4.33+6.13E12 s24 = 16.00/71.80/16.33; at matched step 24/24: E12 s24 vs E11 s24 20.00/72.80/19.33 = +4.00/+1.00/+3.00 for DAPO; at matched step 8/6: E12 s8 20.00/71.00/15.00 vs E11 s6 16.33/69.00/16.67; at matched step 16/18: E12 s16 16.67/70.20/18.00 vs E11 s18 19.67/72.20/20.00
objective on RLVR-MATHGRPO vs DAPOhero-v3g config with only the objective changed (eps 0.2/0.4, dynamic sampling filter); window 9856 in bothhero-v3g (GRPO)1219.3364.8018.67102.80E13 (DAPO)815.0069.6013.6798.27-4.33+4.80-5.00-4.53E13 died at step 14; hero-v3g s6 = 19.00/67.60/14.67
referencebase vs representative RLVR-MATH RL2T Thinking SFT base630 (SFT)17.6764.0012.6794.34E6 reproduction run A (RLVR-MATH)2019.6773.6020.00113.27+2.00+9.60+7.33+18.93original E6 export with query-bias transplant scored 26.00/76.80/22.67 — exceptional case, not used as the comparator
Table 28 · dataset_training_curves.csvtoggle
rundatasetstepavg_raw_reward
E2 unregularizedDAPO-17k1-0.91943359375
E2 unregularizedDAPO-17k2-0.90380859375
E2 unregularizedDAPO-17k3-0.90185546875
E2 unregularizedDAPO-17k4-0.8759765625
E2 unregularizedDAPO-17k5-0.85205078125
E2 unregularizedDAPO-17k6-0.8525390625
E2 unregularizedDAPO-17k7-0.8427734375
E2 unregularizedDAPO-17k8-0.841796875
E2 unregularizedDAPO-17k9-0.84912109375
E2 unregularizedDAPO-17k10-0.87109375
E2 unregularizedDAPO-17k11-0.84619140625
E2 unregularizedDAPO-17k12-0.83154296875
E2 unregularizedDAPO-17k13-0.8701171875
E2 unregularizedDAPO-17k14-0.8671875
E2 unregularizedDAPO-17k15-0.84521484375
E2 unregularizedDAPO-17k16-0.884765625
E2 unregularizedDAPO-17k17-0.81884765625
E2 unregularizedDAPO-17k18-0.8125
E2 unregularizedDAPO-17k19-0.82275390625
E2 unregularizedDAPO-17k20-0.8310546875
E2 unregularizedDAPO-17k21-0.8330078125
E6RLVR-MATH1-0.779296875
E6RLVR-MATH2-0.6279296875
E6RLVR-MATH3-0.53955078125
E6RLVR-MATH4-0.41259765625
E6RLVR-MATH5-0.48779296875
E6RLVR-MATH6-0.46435546875
E6RLVR-MATH7-0.4287109375
E6RLVR-MATH8-0.42041015625
E6RLVR-MATH9-0.37109375
E6RLVR-MATH10-0.3046875
E6RLVR-MATH11-0.314453125
E6RLVR-MATH12-0.3232421875
E6RLVR-MATH13-0.2666015625
E6RLVR-MATH14-0.2197265625
E6RLVR-MATH15-0.34130859375
E6RLVR-MATH16-0.3291015625
E6RLVR-MATH17-0.306640625
E6RLVR-MATH18-0.2275390625
E6RLVR-MATH19-0.28857421875
E6RLVR-MATH20-0.1767578125
E11DeepScaleR1-0.874453125
E11DeepScaleR2-0.816494141
E11DeepScaleR3-0.750654297
E11DeepScaleR4-0.677050781
E11DeepScaleR5-0.577412109
E11DeepScaleR6-0.465449219
E11DeepScaleR7-0.415107422
E11DeepScaleR8-0.377226562
E11DeepScaleR9-0.455751953
E11DeepScaleR10-0.280556641
E11DeepScaleR11-0.246933594
E11DeepScaleR12-0.242255859
E11DeepScaleR13-0.157167969
E11DeepScaleR14-0.17484375
Table 29 · dataset_heldout_math.csvtoggle
checkpointdatasetaime24math500olympiadbench
2T Thinking SFT baseNone17.6764.0012.67
E6 reproduction step 20RLVR-MATH19.6773.6020.00
E11 step 24DeepScaleR20.0072.8019.33