Why conduct this experiment?
- Pursuant to Marin's high-level staged post-training plan, we expect that reinforcement learning will prove invaluable in brining Marin models to the "frontier minus epsilon" of scientific AI; our EOY goal to achieve a strong score on AAII also indicates this can be impactful
- Therefore, we hope to begin to establish a set of good general practices for conducting RL on Marin MoEs
- We also hope to establish the tradeoffs inherent in certain design choices during RL
- We hope that we can use insights from this experiment to accelerate convergence, improve attainable reward, and enhance downstream evals
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.
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.
Recommendations
- Despite its weak AIME score, E17a seems like the most principled way forward. It reduces overthinking and improves answer formatting. On the stronger E18 start, the same recipe traded AIME24 for OlympiadBench rather than improving every suite. The AIME comparisons are uncertain because AIME24 has only 30 items.
- RL training efficiency and speed should be a key target for Marin going forward; this is perhaps the single most important growth area. 24k and 32k eventually trained; 64k hit a genuine backward-pass memory ceiling; EP=8 trained but showed severe gradient instability.
- The next highest-impact contribution is discovering metrics that better capture when, and why, training reward becomes a useful proxy for eval performance. Such a discovery could also contribute to the establishment of meaningful scaling laws for RL.
- Muon-H's failure to outperform AdamW is mildly counterintuitive, and the choice of optimizer in general is a good area for future investigation.
- DAPO seems like a useful alternative / supplement to GRPO.
- Frozen-router-bias training produced strong in-run curves. Bias-updating arms produced stronger repaired exports in this campaign, but the transfer mechanism remains uncertain. Low-rate interpolation deserves further study.
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
| ID | Hypothesis (what the arm tried to break) | Verdict |
|---|---|---|
| E1 | The 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. |
| E2 | Unregularized 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-KL | A 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 / E3b | A 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. |
| E3c | The truncation cliff, not penalty magnitude, drives E3's collapse. | Upheld — with the cliff removed the arm ran 20/20 with no collapse. |
| E5 | A 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. |
| E6 | A 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. |
| E7 | The 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 / E7c | E3c'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. |
| E8 | An unforced-thinking template shortens output without costing reward. | Refuted — longer and lower-reward than the control at every matched step. |
| E9 / E9b | FlashAttention 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/E | Frozen-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 … v3i | The 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). |
| E11 | DeepScaleR + 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. |
| E12 | DeepScaleR 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. |
| E13 | DAPO 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). |
| E14 | DAPO-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. |
| E15 | An 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. |
| E17a | Stochastic-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@@. |
| E17c | SR 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, E17d | Interpolation 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. |
| E17f | DeepScaleR 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. |
| E18 | E17a'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
| Arm | Change from prior body | Training outcome | Best held-out (step: AIME24 / MATH-500 / OlympiadBench) | End |
|---|---|---|---|---|
| v1 | E6 recipe at 32k, AdamW 1e-5, mutable router | reward −0.74 → −0.22 by step ~21; length 4k → 7k | 25 (repaired): 11.67 / 56.20 / 13.33 | rank-drop NCCL timeout at step 31 |
| v2 | 24k; Muon-H 1e-5; TIS/TITO; frozen query bias | peak 0.472 @46; 0.395 @50 | 18: 11.67 / 64.80 / 16.00 | completed 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 |
| v3b | shaping ×0.4 | 0.421 @49; mean length halved; loop incidence 0.33 → ~0.20 floor | 24: 11.33 / 67.00 / 18.00; 46: 6.00 / 57.60 / 10.00 | completed 50/50; late policy loops on single words |
| v3c | loop price ×7.5 | loop incidence unchanged (std-normalised GRPO is scale-invariant to trajectory-level terms) | not evaluated | stopped step 13 |
| v3d | token-level loop credit (period ≤64, ≥4 copies) | trainer loop incidence 0.005 | 8: 5.67 / 40.00 / 6.00 | stopped step 18: loops moved to 86–129-token periods; 51 % unanswered at the 8k cap |
| v3e | generation budget 22,912 → 8,192 (= eval budget) | peak 0.488 @11 | 8: 9.00 / 61.00 / 10.00; 28: 7.67 / 53.60 / 10.67 | stopped step 30; no recovery |
| v3f | v3e on PR #405 (master LR applies to every Muon-H route) | flat for 5 steps at a true 1e-5 | not evaluated | stopped step 5 — exposed that v2–v3e had learned through an implicit 6e-4 Adam route |
| v3g | Muon-H master lr 1e-4 | peak 0.505 @11 | 12: 19.33 / 64.80 / 18.67 | stopped step 15 (trajectory-retention S3 stall) |
| v3h | AdamW at 1e-4 | diverged after one step; pass@16 0 | — | killed step 3 |
| v3i | AdamW at 1e-5 | 0.540 @8, peak 0.649 @11 | 8: 17.00 / 72.20 / 17.67; 16: 11.33 / 66.40 / 14.33 | stopped ~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
| Dataset | Objective | Arm (checkpoint) | AIME24 | MATH-500 | OlympiadBench |
|---|---|---|---|---|---|
| — (SFT base) | — | grug-67b-a2b-sft-s2-thinking-step630 | 17.67 ± 1.06 | 64.00 ± 2.15 | 12.67 ± 1.03 |
| Hero-v3g/E12 body (Muon-H, TIS, trajectory shaping): | |||||
| RLVR-MATH | GRPO | hero-v3g step 12 | 19.33 ± 0.92 | 64.80 ± 2.14 | 18.67 ± 1.26 |
| RLVR-MATH | DAPO | E13 step 8 | 15.00 | 69.60 | 13.67 |
| DeepScaleR | GRPO | E12 step 8 | 20.00 | 71.00 | 15.00 |
| DeepScaleR | DAPO | E11 step 24 | 20.00 | 72.80 | 19.33 |
| DAPO-17k | GRPO | E14 step 16 | 20.67 ± 1.69 | 73.80 ± 1.97 | 15.67 ± 1.16 |
| E17 body (stochastic-rounded AdamW, frozen router bias): | |||||
| RLVR-MATH | GRPO | E17a step 8 | 9.67 ± 0.88 | 65.00 ± 2.13 | 16.33 ± 1.10 |
| DeepScaleR | GRPO | E17f step 8 | 13.33 ± 1.15 | 64.20 | 12.33 ± 1.06 |
| RLVR-MATH | GRPO | E17a step 16 | 15.33 ± 0.84 | 75.60 ± 1.92 | 19.67 ± 0.99 |
| DeepScaleR | GRPO | E17f step 16 | 14.00 ± 1.03 | 60.80 | 9.33 ± 1.23 |
| E6-era recipe (8192 window, unregularized GRPO, AdamW 1e-5): | |||||
| DAPO-17k | GRPO | E1 ctx8k-p8 step 5 (repaired) | 19.33 | 70.00 | 13.33 |
| RLVR-MATH | GRPO, frozen bias | E6 repro-A step 20 | 19.67 | 73.60 | 20.00 |
| RLVR-MATH | GRPO, mutable bias | E6 original step 20 (repaired) | 26.00 ± 2.20 | 76.80 ± 1.89 | 22.67 ± 1.03 |
| RLVR-MATH | GRPO, interpolated bias 0.5 | E15 step 20 (repaired) | 24.00 ± 1.62 | 74.20 ± 1.96 | 21.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-step1888 | 37.00 | 78.20 | 9.00 |
| RLVR-MATH | GRPO, frozen bias | E18 step 8 | 37.33 ± 1.40 | 83.00 | 13.33 ± 1.05 |
| RLVR-MATH | GRPO, frozen bias | E18 step 16 | 33.33 ± 1.63 | 76.00 | 22.33 ± 1.16 |
| RLVR-MATH | GRPO, frozen bias | E18 step 20 | 31.67 ± 1.35 | 80.00 | 22.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.
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@@.
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$.
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}}
\]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}Evaluate \[\sin (\arcsin 0.4 + \arcsin 0.5) \cdot \sin (\arcsin 0.5 - \arcsin 0.4).\]
Okay
Okay, so I need to evaluate the expression sin(arcsin 0.4 + arcsin 0.5) multiplied by sin(arcsin 0.5 - arcsin 0.4). Hmm, let me think. I remember that there are some trigonometric identities that can help simplify products of sines. Maybe the product-to-sum formulas? Let me recall. The product of two sines can be written as [cos(A - B) - cos(A + B)] / 2. Yeah, that sounds right. So if I can apply that identity here, it might simplify things.
Let me write down the expression again to make sure I have it right. The first term is sin(arcsin 0.4 + arcsin 0.5), and the second term is sin(arcsin 0.5 - arcsin 0.4). So if I let A = arcsin 0.4 and B = arcsin 0.5, then the expression becomes sin(A + B) * sin(A - B). Applying the product-to-sum formula, that should be [cos((A + B) - (A - B)) - cos((A + B) + (A - B))]/2. Let me compute the arguments inside the cosines.
First, (A + B) - (A - B
[… 5,568 characters omitted …]
ssion \(\sin (\arcsin 0.4 + \arcsin 0.5) \cdot \sin (\arcsin 0.5 - \arcsin 0.4)\), we use the trigonometric identity for the product of sines:
\[
\sin(A + B) \sin(A - B) = \sin^2 A - \sin^2 B
\]
Here, let \(A = \arcsin 0.4\) and \(B = \arcsin 0.5\). Substituting these values into the identity:
\[
\sin^2(\arcsin 0.4) - \sin^2(\arcsin 0.5)
\]
Since \(\sin(\arcsin 0.4) = 0.4\) and \(\sin(\arcsin 0.5) = 0.5\), we compute:
\[
(0.4)^2 - (0.5)^2 = 0.16 - 0.25 = -0.09
\]
Expressing \(-0.09\) as a fraction, we get \(-\dfrac{9}{100}\). Therefore, the final answer is:
\[
\boxed{-\dfrac{9}{100}}
\]Okay, let's see. I need to evaluate the product of two sine functions: sin(arcsin 0.4 + arcsin 0.5) multiplied by sin(arcsin 5 - arcsin 4). Wait, no, wait. The problem says arcsin 0.4 and arcsin 0.5. So the first term is arcsin 0.4 plus arcsin 0.5, and the second term is arcsin 0.5 minus arcsin 0.4. So it's sin(arcsin 0.4 + arcsin 0.5) multiplied by sin(arcsin 0.5 - arcsin 0.4). Hmm.
First, I should probably compute each of these arcsin terms. Let me recall that arcsin gives an angle whose sine is the given value. So arcsin 0.4 is the angle θ such that sinθ = 0.4, and similarly for arcsin 0.5, which is π/6 or 30 degrees, since sin(π/6) = 0.5.
But wait, maybe I can use some trigonometric identities here. Let me think. The product of sines can sometimes be simplified using product-to-sum formulas. Let me recall that:
sin A sin B = [cos(A - B) - cos(A + B)] / 2.
So if I let A be (arcsin
[… 3,198 characters omitted …]
grees) ≈ 0.8. Wait, but 0.9351 radians is about 53.6 degrees. So sin(53.6 degrees) ≈ 0.8. So sin(α + β) ≈ 0.8.
Similarly, sin(β - α) ≈ sin(0.1121) ≈ 0.1121 radians, which is about 6.42 degrees. So sin(0.1121) ≈ 0.1121. So the product is approximately 0.8 * 0.1121 ≈ 0.0897, which is approximately 0.09, so 9/100. So that matches.
Therefore, the answer is 9/100, boxed as \boxed{\frac{9}{100}}.
Alternatively, maybe I can write it as a decimal, but since the problem didn't specify, and fractions are exact, so 9/100 is better.
So the final answer is \boxed{\frac{9}{100}}.
\boxed{\frac{9}{100}}In the sequence 0, 1, 1, 3, 6, 9, 27, ..., the first term is 0. Subsequent terms are produced by alternately adding and multiplying by each successive integer beginning with 1. For instance, the second term is produced by adding 1 to the first term; the third term is produced by multiplying the second term by 1; the fourth term is produced by adding 2 to the third term; and so on. What is the value of the first term that is greater than 125?
Okay, let's see. I need to figure out the sequence described here. The first term is 0. Then each subsequent term is either adding or multiplying by the next integer, starting with 1. The operations alternate between addition and multiplication. So the second term is 0 + 1 = 1. Third term is 1 * 1 = 1. Fourth term is 1 + 2 = 3. Fifth term is 3 * 3 = 9. Sixth term is 9 + 4 = 13. Wait, wait, no, wait. Wait, the problem says "alternately adding and multiplying by each successive integer beginning with 1." So the operations alternate between add and multiply, and the integers start at 1 and go up by 1 each time. So the first operation is add 1, then multiply by 2, then add 3, then multiply by 4, etc. Wait, no. Let me check the example again.
The problem says: the second term is produced by adding 1 to the first term. So term 2 is term 1 + 1. Then term 3 is term 2 multiplied by 1. Then term
[… 4,209 characters omitted …]
r is 497. So boxed answer is \boxed{497}.
The sequence starts with 0. Each subsequent term is generated by alternately adding and multiplying by successive integers starting from 1. The operations alternate between addition and multiplication, with the integers increasing by 1 each time.
- Term 1: 0
- Term 2: \(0 + 1 = 1\)
- Term 3: \(1 \times 1 = 1\)
- Term 4: \(1 + 2 = 3\)
- Term 5: \(3 \times 3 = 9\)
- Term 6: \(9 + 4 = 13\)
- Term 7: \(13 \times 5 = 65\)
- Term 8: \(65 + 6 = 71\)
- Term 9: \(71 \times 7 = 497\)
The first term greater than 125 is **497**.
\boxed{497}Okay, let me think through the problem.
First, let me list the given sequence:
0, 1, 1, 3, 6, 9, 27, ...
Let me break it down term by term to find the pattern.
1st term: 0
2nd term: 0 + 1 = 1
3rd term: 1 × 1 = 1
4th term: 1 + 2 = 3
5th term: 3 × 2 = 6
Wait, let me double-check the operations:
Term 1: 0
Term 2: 0 + 1 = 1
Term 3: 1 × 1 = 1
Term 4: 1 + 2 = 3
Term 5: 3 × 2 = 6
Term 6: 6 + 3 = 9
Term 7: 9 × 3 = 27
Wait, let me list each term with the operation:
Term 1: 0
Term 2: 0 + 1 = 1
Term 3: 1 × 1 = 1
Term 4: 1 + 2 = 3
Term 5: 3 × 2 = 6
Term 6: 6 + 3 = 9
Term 7: 9 × 3 = 27
Wait, let me check the multipliers and additions:
The pattern alternates between adding and multiplying by each integer starting from 1.
Let me list each term with the operation:
Term 1: 0
Term 2: 0 + 1 = 1
Term 3: 1 × 1 = 1
Term 4: 1 + 2 = 3
Term 5: 3 × 2 = 6
Term 6: 6 + 3 = 9
Term 7: 9 × 3 = 27
Wait, let me check the multipliers and additions:
The operations alternate:
1st term: 0
2nd: +1
3rd: ×1
4th: +2
5th: ×2
6th: +3
7th: ×3
8th: +4
...
Let me verify each term:
Term 1: 0
Term 2: 0 + 1 = 1
Term 3: 1 × 1 = 1
Term 4: 1 + 2 = 3
Term 5: 3 × 2 = 6
Term 6: 6 + 3 = 9
Term 7: 9 × 3 = 27
Term 8: 27 + 4 = 31
Term 9: 31 ×4 = 124
Wait, let me compute:
Term 8: 27 + 4 = 31
Term 9: 31 ×4 = 124
Term 10: 124 + 5 = 129
Hmm, let me list up to term 10:
1: 0
2: 1
3: 1
4: 3
5: 6
6: 9
7: 27
8: 27 + 4 = 31
9: 31 ×4 = 124
10: 124 + 5 = 129
Now, let's find the first term >125.
Check each term:
Term 7: 27
Term 8: 31
Term 9: 124
Term 10: 129
Yes, term 10 is 129.
Answer: \boxed{129}
Answer: \boxed{129} In the equation $|x-4| -10 = 2$, what is the product of all possible values of $x$?
Okay, let's see. I need to solve the equation |x - 4| - 10 = 2 and find the product of all possible values of x. Hmm, absolute value equations can sometimes be tricky, but I think I remember how to handle them. Let me start by recalling the steps.
First, the equation is |x - 4| - 10 = 2. To solve for x, I should probably isolate the absolute value expression. So, I'll add 10 to both sides to get rid of the -10. That gives me |x - 4| = 12. Now, the absolute value equation |x - 4| = 12 means that the expression inside the absolute value, which is x - 4, can be either 12 or -12. So, I can set up two separate equations:
1. x - 4 = 12
2. x - 4 = -12
Let me solve each equation one by one.
Starting with the first equation: x - 4 = 12. To solve for x, I'll add 4 to both sides. That gives x = 12 + 4, so x = 16.
Now the second equation: x - 4 = -12. Again, add 4 to both sides. So, x = -12 + 4
[… 857 characters omitted …]
he absolute value expression. Adding 10 to both sides gives:
\[
|x - 4| = 12
\]
This absolute value equation splits into two cases:
1. \(x - 4 = 12\)
2. \(x - 4 = -12\)
Solving the first case:
\[
x - 4 = 12 \implies x = 12 + 4 \implies x = 16
\]
Solving the second case:
\[
x - 4 = -12 \implies x = -12 + 4 \implies x = -8
\]
The possible values of \(x\) are 16 and -8. To find the product of these values:
\[
16 \times (-8) = -128
\]
Verification of the solutions in the original equation confirms both are valid. Therefore, the product of all possible values of \(x\) is:
\[
\boxed{-128}
\]Okay, so I need to solve this equation: |x-4| -10 = 2. The question is asking for the product of all possible values of x. Hmm, right. Let me start by thinking through how to approach this. First, I remember that absolute value equations can sometimes be tricky, but maybe I can break it down step by step. The equation given is |x-4| minus 10 equals 2. So, let's rewrite the equation to make it easier to handle. Let me subtract 10 from both sides to get rid of the subtraction. Wait, the original equation is |x-4| -10 = 2. So if I add 10 to both sides, the equation becomes |x-4| = 12. Then, maybe I can solve for x by considering the two cases of the absolute value. Wait, but the problem says the product of all possible values of x. So I need to find all possible x values and then multiply them. But since absolute value equations can have two solutions, maybe there are two possible x value [… 29,982 characters omitted …] values. So if there are two solutions, their product is 16 * (-8) = -128. But the problem is asking for the product of all possible values. So the answer is 16 * (-8) = -128. Wait, but the problem is asking for the product of all possible values. So if there are two solutions, their product is 16 * (-8) = -128. But the problem is asking for the product of all possible values. So the answer is 16 * (-8) = -128. Wait, but the problem is asking for the product of all possible values. So if there are two solutions, their product is 16 * (-8) = -128. But the problem is asking for the product of all
A line is parameterized by \[\begin{pmatrix} x \\ y \end{pmatrix} = \begin{pmatrix} 8 \\ -1 \end{pmatrix} + t \begin{pmatrix} 2 \\ 3 \end{pmatrix}.\]The equation of the line can be expressed in the form $y = mx + b.$ Enter the ordered pair $(m,b).$
Okay, so I need to find the equation of a line that's given in parametric form and then express it in the slope-intercept form y = mx + b. The problem gives me the parametric equations as:
\[
\begin{pmatrix} x \\ y \end{pmatrix} = \begin{pmatrix} 8 \\ -1 \end{pmatrix} + t \begin{pmatrix} 2 \\ 3 \end{pmatrix}.
\]
Hmm, right. So parametric equations for a line usually have x and y expressed in terms of a parameter t. The general form is:
x = x₀ + t*v_x
y = y₀ + t*v_y
Where (x₀, y₀) is a point on the line and (v_x, v_y) is the direction vector. In this case, the point is (8, -1) and the direction vector is (2, 3). So, plugging those into the equations:
x = 8 + 2t
y = -1 + 3t
Now, I need to eliminate the parameter t to get the equation in the form y = mx + b. To do that, I can solve one of the equations for t and substitute into the other. Let's solve the x equation for t:
x = 8 + 2
[… 1,941 characters omitted …]
8 \\ -1 \end{pmatrix} + t \begin{pmatrix} 2 \\ 3 \end{pmatrix}.
\]
From the parametric equations, we have:
\[
x = 8 + 2t \quad \text{and} \quad y = -1 + 3t.
\]
Solving the \( x \)-equation for \( t \):
\[
t = \frac{x - 8}{2}.
\]
Substitute this expression for \( t \) into the \( y \)-equation:
\[
y = -1 + 3\left(\frac{x - 8}{2}\right).
\]
Simplify the equation:
\[
y = -1 + \frac{3x - 24}{2} = \frac{3x - 24}{2} - \frac{2}{2} = \frac{3x - 26}{2}.
\]
Rewriting in slope-intercept form \( y = mx + b \):
\[
y = \frac{3}{2}x - 13.
\]
Thus, the ordered pair \((m, b)\) is \(\boxed{(3/2, -13)}\).Okay, so I need to find the equation of a line given in parametric form and convert it into the form y = mx + b. The problem gives the parametric equations as x and y being expressed as a vector plus a parameter t multiplied by another vector. Let me think through this step by step.
First, the parametric equations are given as:
x = 8 + 2t
y = -1 + 3t
So, each of these is a linear function of the parameter t. To convert this into the standard linear equation y = mx + b, I need to eliminate the parameter t and express y in terms of x.
Let me recall that the standard form of a line is y = mx + b, where m is the slope and b is the y-intercept. So, I need to find the slope m and the y-intercept b.
Starting with the equations for x and y:
x = 8 + 2t
y = -1 + 3t
I can solve each equation for t. For x, subtract 8 from both sides to get x = 8 + 2t → x - 8 = 2t. For y, subtract -1 from bo
[… 2,951 characters omitted …]
\( x = 8 + 2t \) and \( y = -1 + 3t \) into the form \( y = mx + b \), we eliminate the parameter \( t \). From the \( x \) equation, \( t = \frac{x - 8}{2} \). From the \( y \) equation, \( t = \frac{y + 1}{3} \). Equating these expressions for \( t \):
\[
\frac{x - 8}{2} = \frac{y + 1}{3}
\]
Multiply both sides by 6 to eliminate denominators:
\[
3(x - 8) = 2(y + 1)
\]
Expand and rearrange:
\[
3x - 24 = 2y + 2
\]
Solving for \( y \):
\[
2y = 3x - 26 \implies y = \frac{3}{2}x - 13
\]
The ordered pair is \( \left(\frac{3}{2}, -13\right) \).
Answer: \boxed{\left(\frac{3}{2}, -13\right)}Write $\frac{3}{20}$ as a decimal.
Okay, so I need to convert the fraction 3/20 into a decimal. Hmm, let me think. I remember that fractions can be converted to decimals by dividing the numerator by the denominator. So, 3 divided by 20. Let me try that.
Wait, 3 divided by 20. Since 20 is a larger denominator than 10, maybe I can adjust the fraction to have a denominator of 100, which would make it easier to convert to a decimal. Because 20 times 5 is 100. So if I multiply both the numerator and denominator by 5, that would give me 15/100. Oh, right! Because 3 times 5 is 15 and 20 times 5 is 100. So 3/20 is equivalent to 15/100.
Now, 15/100 is the same as 0.15. Because 15 divided by 100 is 0.15. Let me check that. 0.15 is the same as 15 hundredths, which is exactly what 15/100 is. So that makes sense.
Alternatively, I could do the division directly. 3 divided by 20. Let's see. 20 goes into 3 zero times. So I add a decimal point and a zero, making it 30. 20 goes into 30 once, which is 20. Subtract 20 from 30, you get 10. Bring down another zero, making it 100. 20 goes into 100 five times. So that's 5. 20 times 5 is 100. Subtract that, and you get zero. So the division is 0.15.
So both methods give the same result. I think that's correct. So the answer should be 0.15. Let me just make sure I didn't make any mistakes. Yeah, 3 divided by 20 is 0.15. So the final answer is \boxed{0.15}.
To convert the fraction \(\frac{3}{20}\) to a decimal, we can adjust the denominator to 100 for simplicity. Multiplying both the numerator and denominator by 5 gives \(\frac{15}{100}\), which is equivalent to \(0.15\). Alternatively, performing the division \(3 \div 20\) directly also results in \(0.15\).
\(\boxed{0.15}\)Okay, so I need to convert the fraction 3/20 into a decimal. Let me think about how to do this. Fractions can be converted to decimals by dividing the numerator by the denominator. So, 3 divided by 20. Hmm, but wait, maybe I should check if there's a simpler way. Let's start by thinking about division. First, the numerator is 3 and the denominator is 20. So, 3 divided by 20. But 20 is a denominator, so maybe I can convert it into a denominator that's easier to divide. Wait, 20 is 2 times 10, so maybe I can adjust the denominator to 100 or something. Let me think. If I can make the denominator 100, that's easier because dividing by 100 is straightforward. But 20 times 5 is 100. So, if I multiply both numerator and denominator by 5, then the denominator becomes 100. Let's do that: 3 times 5 is 15, and 20 times 5 is 100. So, 3/20 becomes 15/100. Oh, right! That's easier. So 15 divided by 1 [… 19,952 characters omitted …] 5. So the answer is 0.15. So the answer is 0.15. So the answer is 0.15. So the answer is 0.15. So the answer is 0.15. So the answer is 0.15. So the answer is 0.15. So the answer is 0.15. So the answer is 0.15. So the answer is 0.15. So the answer is 0.15. So the answer is 0.15. So the answer is 0.15. So the answer is 0.15. So the answer is 0.15. So the answer is 0.15. So the answer is 0.15. So the answer is 0.15. So the answer is 0.15. So the answer is 0.15. So the answer is 0.15. So the answer is 0.15. So the answer is 0.15. So the answer is 0.15. So the answer is 0.15. So the answer is 0.15.
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:
- 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.
- 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
nlpsuite 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. - 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.
- 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).
- 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
| Run | Optimizer | Master LR | Training result | Held-out math result |
|---|---|---|---|---|
| hero-v3f | Muon-H | 1e-5 | Flat through step 5: reward -0.764 to -0.760; pass@16 0.629 to 0.625. | Not evaluated. |
| hero-v3g | Muon-H | 1e-4 | Stable 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-v3h | AdamW | 1e-4 | Collapsed after the first optimizer step; pass@16 fell to zero. | Not evaluated. |
| hero-v3i | AdamW | 1e-5 | Faster 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
| Checkpoint | Optimizer / master LR | Training reward, pass@16 | AIME24 | MATH-500 | OlympiadBench |
|---|---|---|---|---|---|
| 2T Thinking SFT base | — | — | 17.67 ± 1.06 | 64.00 ± 2.15 | 12.67 ± 1.03 |
| hero-v3g step 6 | Muon-H 1e-4 | 0.034, 0.80 | 19.00 ± 1.25 | 67.60 ± 2.09 | 14.67 ± 1.71 |
| hero-v3g step 12 | Muon-H 1e-4 | 0.40, 0.875 | 19.33 ± 0.92 | 64.80 ± 2.14 | 18.67 ± 1.26 |
| hero-v3i step 8 | AdamW 1e-5 | 0.54, 0.91 | 17.00 ± 1.79 | 72.20 ± 2.00 | 17.67 ± 1.34 |
| hero-v3i step 16 | AdamW 1e-5 | 0.52, 0.89 | 11.33 ± 1.43 | 66.40 ± 2.11 | 14.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
- Rendered HTML report
- Complete artifact archive
- Experimental policy
- Hero-run ablations, full record
- Hero-v3 run configurations
- Held-out math evaluations
- Raw 2T Thinking SFT baseline evaluations
- Parameter-update analysis, E6 vs v3e
- Parameter-update anatomy, E15 vs E6 original vs frozen and the published animated comparison
- Router-breadth replay, E15 vs E6 vs SFT base
- Controlled single-variable contrasts
- Dataset comparison plot, source, training data, and evaluation data