Marin: Week of June 29th summary

Milestone: July milestone: complete 67B-A2B MoE; start XB-AYB MoE on B200s; start post-training Marin MoEs
Contents
  1. Data
  2. Summary
  3. July inference epic opens: repinned TPU stack, expert-parallel parity on 8×H100
  4. July eval epic opens; agentic evals hit GPU parity on v6e TPUs in week one
  5. RNO2A's 512 H100s come online; Iris rebuilds around federation
  6. Qwen3.5 trace cohort closes at 49 datasets; axolotl becomes an SFT backend
  7. New 10T mix goes live; 111-eval verdict leaves curated a weak default
  8. Base BPB predicts post-RL math level; quality-classifier hits a label ceiling
  9. May Recipe merges to main at 2.12x; FLOP math points attention back to GQA
  10. FP8 beats both preregistered bars; source-push MoE kernels reach 218 TFLOP/s
  11. xorl repro adds a datapoint; objective-runtime trainer refactor joins the epic
  12. Delphi RL study closes out; external repro and corrected agentic-RL comparison
  13. Grug crosses 1.47T of 10T tokens; Paloma 2.43 tracking the preregistered 2.269
  14. June pipeline hands off: July-hero datakit release picks up v0 audit worklist
  15. [Hero Run] nB-AmB XT on B200s
  16. Other Changes
  17. Community Pulse
  18. Agent MoE
  19. Runs
GitHub
93 merged 23 opened 68 issues closed 13 contributors 19 epics 351 comments this week
Compute
GCP TPU 4.10e23 HW FLOPs (1.46e23 reserved) W&B 2.97e23 HW FLOPs (5.39e22 model FLOPs)
Compute calculations should be taken with a large grain of salt.
Infra
Discord
299 messages 51 authors 2 new members 21 channels active 12 threads
Tokens
19.0T tokens 0 32.9% synthetic 113 datasets 🤗 collection
web 12.6T (66.3%) multilingual 4.1T (21.3%) code 1.6T (8.3%) specialized 384.0B (2.0%) math 377.1B (2.0%)

The July milestone opened with its centerpiece already running: the 67B-A2B Grug MoE, preregistered and launched last week under the June milestone, put ~1.47T of its 10.07T tokens behind it #6704 — progress is tracked in a public W&B report. Its one incident was host-side — a checkpoint leak in JAX's serialization path was pinning ~26 GB of host memory per save until the cgroup killed training, which ended the original attempt 81 hours in at ~513B tokens #6774. The arc from diagnosis to fix ran inside the week (a fresh tensorstore context per save #6785, then pageable staging #6924, held flat across 140 saves), and Larry Dial relaunched July 1 from the step-15k checkpoint with the planned batch doubling to 67.1M tokens, lifting MFU from ~13.5% to ~18.6%. Against the preregistered 2.269 Paloma macro-loss target for 8T tokens the run reads 2.429 — a mid-run number Larry Dial cautioned against over-reading while the learning rate sits near peak; the cooldown does the final work. The June milestone's supporting threads closed out around it: the May Recipe merged onto main with its fitted scaling law and ~2.12x compute-equivalent speedup #6153, the datakit store went native on CoreWeave object storage as #6036 closed, and GrugMoE-on-vLLM-TPU #6041 closed with its end-to-end test carried onto freshly repinned Transformers-5-era forks #6733.

The milestone's two forward thrusts — a next-generation MoE on B200s and post-training the Marin MoEs — both moved. On GPU performance, the fp8 lane met both of its preregistered goals (a 1.41x fp8 grouped-GEMM expert MLP #6880 and 1.438x end-to-end with fp8 on the dispatch and combine wires #6911), the fused-MoE-kernel work hit ~20% MFU in a one-node trainer smoke #6597, and Russell Power tripled the H100 fleet by standing up the 512-GPU RNO2A cluster #6909, whose first ~1,500-pod soak shook a week of hardening out of the Iris control plane — including a first-collective hang that looked like bad InfiniBand for days and turned out to be a thread race in Levanter's tokenizer staging #6950. On post-training, the Delphi reasoning-RL scaling study closed out with midtraining + SFT + RL lifting Delphi 1e22 from 1.6 to 53.4 on MATH-500 #6279, an outside reproduction in Together's xorl framework confirmed the flagship result on an eighth of the hardware #6915, and a months-old reproducibility mystery in agentic RL traced to a harness summarization bug — with the corrected comparison showing all twenty RL variants beat their SFT base #6959. On the science side, the attention question for the September run resolved to grouped-query attention after FLOP accounting went against Multi-head Latent Attention #6522, and Ahmed Ahmed delivered the week's cautionary data finding: Nemotron-CC-Math has 10-gram overlap with 28% of MATH-500 despite its stated decontamination #6742 — a concrete argument for running decontamination in-house.

#6867 July inference epic opens: repinned TPU stack, expert-parallel parity on 8×H100

Epic title: [Epic] July Grug Inference tasks


Summary: DoD: Support full size GrugMoE model on both TPUs and GPUs. Stretch: Inference is fast enough on GPUs.

0/3 sub-issues closed

With the June GrugMoE-on-vLLM-TPU epic #6041 closed on July 2, Romain Yon opened #6867 to carry inference through July: the definition of done is serving full-size GrugMoE checkpoints correctly on both TPUs and GPUs, with fast-enough GPU inference as the stretch. Three sub-issues split the path — #6868 targets correct vLLM inference on the largest GrugMoE checkpoint to date on TPUs, #6869 the same on GPUs, and #6870 throughput good enough for reinforcement-learning rollouts on GPUs, with the fast-enough bar still to be pinned down relative to JAX and a reference model. Several of the caveats named at the June epic's close — throughput and latency coverage, wider parallel serving — are exactly what the new epic takes up.

The TPU foundation the epic starts from landed this week in two stages. #6735, merged June 29 by Romain Yon, moved Marin and Levanter onto Transformers 5 / Hugging Face Hub 1.x (transformers==5.12.1, huggingface-hub==1.21.0), retiring the temporary Transformers-4 bridge #6734. That cleared the way for the fork repin #6733, merged July 1: it pins the Marin-owned vllm and tpu-inference forks to tpu-inference v0.23.0 and its tested vLLM last-known-good build, converges the lock onto a single jax 0.10.1 / libtpu 0.0.41 stack instead of splitting inference and training extras, keeps only the fork overlays still needed (GrugMoE support among them), and fixes a Levanter DataLoader failure exposed by JAX 0.10.1's new stack primitive. Validation on v6e-4 covered direct vllm.LLM.generate, the GrugMoE real-checkpoint end-to-end test, and a local-mode broker/proxy/worker HumanEval smoke. Two detours surfaced along the way: Will Moss hit a macOS-only resolver failure pitting vLLM's CPU metadata (numba==0.65.0) against tpu-inference's 0.62.1 and opened the stopgap override #6766; Romain Yon traced the root cause to vLLM's setup.py ignoring VLLM_TARGET_DEVICE on macOS metadata hosts and fixed it in the fork, which Will Moss confirmed. Separately, the fully brokered Iris HumanEval smoke was blocked by a controller 404 on EndpointService/ListEndpoints #6754 — a control-plane mismatch rather than a serving regression, resolved after Russell Power restarted the cluster with an update to the endpoint API on June 30. Process documentation hardened the refresh workflow itself: #6724 writes down the post-merge fork-promotion protocol, #6768 has refreshes keep shared workspace dependencies aligned by default, and #6827 separates upstream refreshes from fixed-base overlay pin edits, while #6756 updated the served-Qwen HumanEval script to the current Iris config-loader API and #6749 cleaned up the GPT-2 tokenizer test fixtures flagged in Russell Power's review of the migration.

On GPUs, correctness got its first end-to-end evidence. Draft PR #6891 built a harness that exports a real checkpoint from the moe_may_compute_opt_d512 run at step 10,980, serves it with tensor parallelism 1, data parallelism 8, and expert parallelism 8 — each GPU owning a slice of the experts — on an 8×H100 CoreWeave node, and compares 16 greedy completions against a JAX/Levanter reference sharded over the same expert-8 mesh. The full CoreWeave run passed under both the Triton and FlashAttention backends — all eight data-parallel ranks responding, routed-expert ownership covering all eight expert ranks, and vLLM matching the Levanter reference batch for batch — and a fresh PR-head validation run passed again on July 3, though two split-environment reruns hit an opaque WorkerProc initialization failed before GrugMoE startup that Romain Yon classified as GPU wheel/bootstrap drift rather than a correctness mismatch. The harness deliberately covers short greedy parity and expert coverage only; performance, sampling parity, and long-running stability wait on #6870.

Probing GPU attention backends then surfaced a real model-side bug. #6964 documents that Grug MoE's Exclusive Self-Attention (XSA) value correction assumed a single hard-coded query-head sharding, while GPU backends are free to return attention output either head-sharded or head-dim-sharded; #6965 fixes the correction to follow the actual attention-output partition spec and adds a focused lowering test pinning the XSA contract under grouped-query attention on the compact Grug mesh. The validation harness was restacked on top of that fix as #6966 — carrying the CoreWeave/H100 harness, the vLLM fork pin, and dual Triton/FlashAttention summary gating — and #6891 closed as superseded. The same GrugMoE-on-GPU mesh reasoning surfaced in #automate-research, where David Hall caught Codex leaking raw chain-of-thought as it puzzled through compact_grug_mesh layouts across node counts.

0 PRs this week, and 3 new issues (3 total)
Sort:
15 autocategorized

#6863 July eval epic opens; agentic evals hit GPU parity on v6e TPUs in week one

Epic title: [Epic] July Eval tasks


Summary: DoD: Both Evalchemy and Harbor can be easily triggered from Marin on TPUs

0/3 sub-issues closed

Romain Yon opened the milestone's eval epic #6863 this week with a one-line definition of done: both Evalchemy and Harbor can be easily triggered from Marin on TPUs. Its three sub-issues split the path there. #6864 standardizes eval running behind a single high-level entry point — ./run-eval --cluster=... --checkpoint=... --eval-config=... — covering both Levanter checkpoints and Hugging Face models on TPU, with results landing in Google Cloud Storage before any UI or database layer, plus a side quest to clean up legacy eval code. #6865 adds Harbor support with a concrete parity target — Qwen3-32B on TBench2 through Daytona sandboxes — and #6866 covers invoking evalchemy.

The epic's first week already banked its most important de-risking result. Benjamin Feuer filed #6958 documenting that agentic software-engineering evaluations — a terminus-2 agent solving SWE-bench-Verified tasks — now run end-to-end on Iris v6e TPUs: vLLM serves the model on TPU, the agent drives Daytona sandboxes, verifiers score the final repo state, and results auto-register to the eval database, just as on the reference SLURM/GPU workflow. The parity check backs it up: the GLM-4.7-swesmith base model scored 0.240 (72/300 resolved) on swebench-verified-random-100 on a preemptible v6e against the H100 reference's 0.237 (71/300), with zero infrastructure errors and full per-trial trace datasets published on Hugging Face for both runs — a result he announced in the evals Discord channel. The write-up also nails down the one TPU-specific trap: vLLM's GPU-only --swap-space flag is rejected by the tpu-inference api_server, crashing the serve and presenting as a silent health-check timeout, so GPU-only flags need stripping on the TPU serve path. That validated TPU backend is exactly the substrate #6865's Harbor work builds on, and he also shared #6877 for coordination — OpenThoughts-Agent's unified Harbor-eval entrypoint on its SLURM clusters, a working reference for the kind of single front door #6864 wants on Marin.

Supporting infrastructure moved on two fronts. On typed interfaces, Russell Power's Executor-replacement PR #6649, merged Tuesday, typed two eval outputs — LevanterEvalResult for the Levanter evaluator's results.json and CompiledEvalResult for the evalchemy compiler's rollups — and his follow-up #6781 proposes that the three remaining evaluators (the vLLM lm_evaluation_harness runner, evalchemy, and harbor), which today write divergent nested, timestamped layouts with no shared schema, each also emit a small marin-owned summary.json of per-task metrics plus provenance at the artifact root, so one typed EvalResult reader can serve all of them instead of fragile per-tool globbing. On serving plumbing, Benjamin Feuer's #6847 asked for a first-class way for off-cluster Daytona and Modal sandboxes to reach on-cluster vLLM without one unauthenticated paid pinggy tunnel per job; Russell Power took it up the same day, and the resulting agent-drafted PR #6857 merged Friday, giving each Iris endpoint a declared access mode — private, public, or bearer — with controller-minted scoped tokens that authorize only that endpoint's proxy path, and per-provider ingress that opens only the proxy route (an Identity-Aware-Proxy-exempt backend on GCP, a Traefik ingress on CoreWeave). Together those remove the last ad-hoc bridge in the agentic-eval loop that #6958 validated.

0 PRs this week, and 3 new issues (3 total)
Sort:
3 autocategorized

#6715 RNO2A's 512 H100s come online; Iris rebuilds around federation

Epic title: Training & cluster infra / reliability


Summary: Ongoing area of investment, picking up after the July Commitment and Hero Run work in this milestone.

The GPU fleet tripled this week. Russell Power stood up a second CoreWeave cluster, marin-rn02a (RNO2A) — 64 nodes of 8 H100s each, 512 GPUs total, pinned warm rather than autoscaled since the capacity is prepaid — with Kueue gang admission, finelog, and controller state and checkpoints on the shared CoreWeave object-storage bucket reached through the node-local LOTA cache endpoint #6909. Bring-up was validated end to end with CPU/GPU smokes and single- and two-node training runs, though the multi-node leg first required a networking fix: the cluster config pinned NCCL_SOCKET_IFNAME to an exact-match interface name that the task image's NCCL (NVIDIA Collective Communications Library) build does not honor, so bootstrap found no socket and multi-node clique init died #6940; #6941 switched all CoreWeave clusters to the exclude-list form already proven in the GPU-smoke continuous-integration lane. Around the edges, Rafal Wojdyla put TTL lifecycle rules on the CoreWeave temp buckets and made bucket store types explicit config #6770, Romain Yon documented how to reach the object store from a laptop #6832, and the CPU scale-group specs were corrected to the real node hardware in #6793 and #6794. Because some GPU kernel work wants JAX's one-process-per-GPU launch layout, David Hall raised the launch-layout question on Discord, and after weighing gang-scheduling alternatives Russell Power shipped processes_per_task — N JAX processes inside one pod, preserving intra-node NVLink — in #6776, closing #6690.

RNO2A's first serious workload — a tokenizer bake-off soak fanning out to roughly 1,500 pods — promptly found every soft spot in the control plane, and the fixes landed the same week. Kueue's plain-Pod admission webhook had been intercepting pod creation in every namespace, which deadlocked fresh-node delivery on RNO2A (a new node's networking pod was rejected by a webhook it couldn't reach yet); #6894 scoped the webhook to the namespace Iris actually submits into. The controller itself first ran out of memory at its 16Gi limit, then — CPU-starved at 4 cores — failed its 1-second liveness probe and was killed mid-reconcile, orphaning in-flight sub-jobs #6944; #6943 moved its SQLite state off an NFS-backed volume onto node-local NVMe, and #6945 baked in 16 CPU / 64Gi Burstable defaults with a forgiving probe. A related failure — a user pod legally preempting the Kueue manager off the shared control node, taking the admission webhook down with it — got the whole control plane an iris-system PriorityClass above every user band #6929. A monitor to detect stalled GPU processes from their NCCL log signatures is proposed as follow-up in #6938.

The best debugging story of the week is #6950: the soak's two 128k-vocab arms reproducibly hung about 7 minutes into their first distributed collective and died on JAX's coordination timeout, every attempt. Suspicion fell on a bad InfiniBand leaf group, and Russell Power cordoned the five suspect nodes — but a relaunch on known-good hosts hung identically, and purpose-built minimal reproducers ruled out both the cross-leaf fabric and S3 starvation. The real culprit was software all along: a thread race in Levanter's tokenizer staging that intermittently forces a fatal Hugging Face Hub 404 for mirror-only tokenizer refs on a subset of the gang, whose survivors then park forever in the first collective #6954. With the staging body serialized behind a process-wide lock in #6955 — which also surfaces build_caches failures instead of letting them strand the gang — the retried arm cleared the death zone and became the first 128k arm ever to survive. The other host-side reliability arc was the checkpoint leak: #6774 diagnosed checkpoint saves leaving ~26 GB of permanent host-RAM residue per save until the cgroup killed training, #6785 gave each save a fresh tensorstore Context as a same-day mitigation, and after controlled A/B experiments pinned the dominant term on JAX staging every shard through pinned host memory the TPU runtime never returns, #6924 swapped saves to pageable staging — held dead flat across 140 saves in an overnight validation run — with the residual ~3 GB/h drift measured and closed as harmless allocator page retention in #6932. The hero-run side of that story is told in the 67B-A2B section; here it turned a monotonic ratchet into a bounded sawtooth for every large run on the fleet.

Russell Power also rebuilt Iris around federation. #6730 turned the controller into a meta-scheduler that routes each job to a single authoritative backend, and two design docs (#6718, #6814) set out the peer-federation model the rest of the week implemented: a federation module for observing peers in #6826, live handoff of whole jobs to a peer cluster in #6835, a single cluster-invariant job coordinate that eliminates remote-id rebasing in #6884, a durable relay of each cluster's logs into one shared global finelog behind mandatory authenticated ingress in #6871, and proxied exec and profile for federated tasks in #6846. Adjacent controller work landed too: #6857 gives Iris endpoints auth-gated public ingress via controller-minted scoped tokens, so off-cluster sandboxes can reach on-cluster vLLM without tunnels; #6853 let each backend author its full status rather than having the controller overlay worker health from its own roster; and an outside contributor added a matched pair of golden-replay scenarios isolating the preemption-budget gate — the branch where a preempted executing task either terminates or requeues — in #6800.

The week's other rewrite was the execution engine: #6649 replaced the eager, import-time Executor with lazy ArtifactSteps addressed by an explicit name@version — 276 files changed, a net five-thousand-line deletion — with follow-ups making cached outputs short-circuit their unbuilt ancestors #6791, moving training outputs into per-user directories built directly rather than baked in (#6790, #6809), and keeping pre-migration artifact records readable (#6807, #6890, #6892). The daily ferry canaries earned their keep against both rewrites, with each catch fixed in days: a trailing-slash MARIN_PREFIX produced doubled path separators that broke tokenize shard consolidation #6838 and then cache reads #6904 — patched in #6844, then fixed structurally by a StoragePath value type whose joins make a doubled separator unrepresentable #6922; a wedged W&B finish() left a healthy run with no metrics file #6906, fixed by writing the tracker replicate file before finalization #6923; a controller redeploy that baked --fresh into the pod command wiped a live canary mid-run #6808, now a one-shot wipe #6810; the new auth-gated edge briefly rejected every CI service-account submission as Unauthorized at the Identity-Aware Proxy layer #6934, fixed by falling back to the desktop client id when minting the edge token #6939; and a step-count floor calibrated for 4,096-token sequences failed every healthy 8,192-sequence run until #6960 recalibrated it. Steadier housekeeping ran alongside: Will Moss continued simplifying Zephyr toward workers that just report CPU and memory capacity and run whatever the coordinator hands them (#6789, #6831, #6751, closing #5855) and standardized pytest configuration across the repo's packages #6786, while David Hall added a train-state sharding-spec dump that preserves each Grug run's parameter and optimizer-state layout as a tracked artifact #6903.

144 autocategorized

#6714 Qwen3.5 trace cohort closes at 49 datasets; axolotl becomes an SFT backend

Epic title: SFT data curation


Summary: Ongoing area of investment, picking up after the July Commitment and Hero Run work in this milestone.

The new supervised fine-tuning (SFT) data-curation investment epic #6714 picks up where the June synthetic-data work left off, with instruction-following lift as its metric of record — and it inherits a substantial closing deliverable. Benjamin Feuer posted the wind-down cohort update for the Qwen3.5-122B trace-generation campaign to the agentic trace dataset index #6191: 23 more datasets totalling 109,230 rows of Qwen3.5-122B teacher trajectories at 32k context, bringing the cohort to 49 datasets, each annotated with row counts and candid quality flags. The flags matter as much as the volume: codenet-python-v2 ships zero-byte stdin test files so every rollout hits an EOFError and scores reward 0 regardless of correctness, nemotron-cpp's verifier hands out a vacuous reward of 1 on empty test suites, and swe-rebench-patched-oracle came back with mean reward 0.000 because its SWE-agent tasks are simply too hard for the 122B teacher — leaving those slices useful only reward-stripped or as negative data. A companion data-quality result from Ahmed Ahmed — MATH-500 contamination in Nemotron-CC-Math — is covered in the pretraining-mix section.

Tooling around the synthetic-data-to-SFT path also firmed up. Benjamin Feuer added axolotl as a first-class SFT backend to OpenThoughts-Agent via a marin-community/axolotl fork in #6839 — motivated by training and serving on a single delphi.jinja chat template so the template-split-at-save-time failure class that once produced 0% SWE-bench scores cannot recur; the Delphi masking canary passed (reasoning spans trained, user and system turns masked), and the fork's template-integrity, MFU, and registry plugins were merged to the fork's main the same day. On the serving side, #6937 asks to finish the native /proxy ingress rollout so datagen sandboxes can reach on-cluster vLLM at iris.oa.dev with bearer tokens instead of pinggy tunnels — Russell Power plans to flip it on Monday, deliberately careful about opening up proxy tunnels and noting endpoint tokens currently live at most 24 hours — while #6877 documents the unified Harbor-eval entrypoint used to evaluate the resulting models, and an outside researcher asked in #6842 for Weights & Biases access to the OT-Agent-ColdSFT+RL-8B run to aid reproducibility.

Looking ahead, OpenThoughts-Next held its kickoff meeting on July 1, as announced in the news channel: the project will scope open data recipes for training agents, this time centered on mid-training and reinforcement learning of mixture-of-experts models, working with Marin models once they land, with the meeting repeating weekly and open to all. Meanwhile the alignment-function pipeline #3355, a spec-to-synthetic-preference-data-to-DPO (direct preference optimization) pipeline, was closed as stale.

2 autocategorized

#6713 New 10T mix goes live; 111-eval verdict leaves curated a weak default

Epic title: Pretraining data curation & mix


Summary: Ongoing area of investment, picking up after the July Commitment and Hero Run work in this milestone.

The mixture work entered July already in production: the 10T-token mix assembled in June is the data under the 67B-A2B Mixture-of-Experts hero run tracked in #6044, and this week was about publishing the evidence behind it. Will Held posted a side-by-side speedup table across 111 evals in data-mixing — the new optimized mix versus the same data pool mixed proportionally versus the old Marin mix — answering Percy Liang's ask for a one-pass regeneration of the full eval set, with each cell clickable through to its underlying per-task scaling curve since fit quality varies by task; a follow-on RFC, #6802, asks where such analysis artifacts should durably live. Underneath the table, Calvin Xu closed out the two remaining scaling-anchor ladders: the proportional and UniMax-8 baselines over the 39 Dolma3/Dolmino buckets at four Delphi rungs in #6607, and the OLMix-for-Uncheatable-Eval baseline in #6608.

The table's headline question — curated versus proportional — got its recorded verdict in #6757, the epic's active experiment. Because each iso-FLOP speedup is an extrapolation through a four-point scaling fit, Will Held filtered the tasks on a 90 percent confidence interval from the fit residual, under which roughly 70 percent of per-task mix differences read as noise at this compute (3e17–3e19 FLOPs). What survives: both new mixes significantly beat the nemotron baseline on aggregate uncheatable bits-per-byte — a 1.78x iso-FLOP speedup for curated — and on code and math, both significantly regress on commonsense tasks like HellaSwag and PIQA, and the curated-versus-proportional head-to-head itself produced fewer significant cells than chance would predict. The recorded recommendation: take curated as a weak default, since its one candidate downstream edge — code — is in scope for a reasoning-, code-, and math-weighted intelligence target, but at these scales the mix choice is not a measurable lever, and a confident call needs at least one larger-scale point.

The open scientific question carried into July — does a phased curriculum actually beat the best single-phase mixture? — picked up a concrete test rig. Under #6609, Calvin Xu submitted the one-phase uncheatable-optimized scaling validation panel with its full scope declared up front: an OLMix one-phase uncheatable mixture and a DSP one-phase effective-exposure mixture, each trained at four Delphi scales spanning 3e18 to 1e21 FLOPs, with the native OLMoBaseEval Table-9 eval attached after every final export. The panel runs under a single Iris parent job, with the two smallest scales already training at submission time, and a companion tracker for the OLMix-curriculum ablation opened as #6801. A literature audit in #6931 asked whether nearby curriculum and specialized-pretraining papers already rule out single-phase mixtures being near-optimal in Marin's setting and concluded they do not: the audited comparisons often confound phase placement with aggregate target-domain exposure, so the proposed decisive test is a matched-exposure phase-order experiment — hold the aggregate mixture fixed, vary only where buckets appear in training, and check the effect against the measured 3e18 noise floor.

Hygiene for future math-heavy mixtures came from Ahmed Ahmed's validation-contamination investigation in #6742. He reported in midtraining that the puzzling Delphi math-midtraining prediction miss at 1e22 FLOPs traced to near-duplicate documents in the old Nemotron-CC-Math validation split — a clean actual-seen validation set cut the endpoint error from about 18.6 percent to 2.8 percent — and then ran a reproducible benchmark decontamination of the 45M-document corpus against math evals: 28.2 percent of MATH-500 test and 17 of 30 AIME24 problems have 10-gram overlap with corpus documents, despite Nemotron-CC-Math's stated deduplication against MATH-500 and GSM8K, while GSM8K itself is largely clean at around 2 percent. The takeaway for mixture work is to run decontamination in-house before trusting external corpora's claims. Scoping for the next mix also picked up a document-level signal: out of a data-curation discussion, Rafal Wojdyla filed #6750 to evaluate web-graph centrality — PageRank-style hub scores computed over the crawl hyperlink graph — as a data-selection feature, and Greg Lindahl of Common Crawl replied on the issue that Common Crawl publishes a web-graph dataset synchronized with its crawls, already uses harmonic centrality to rank hosts, and offered its conversion code; the related quality-classifier rework and the rest of the data-quality signal work sit with the diagnostics epic #6712.

The epic also picked up its first housekeeping win. Russell Power filed #6777 noting dataset definitions were scattered across six places in the experiments tree, and the agent-written #6797 — peer-reviewed as a proposal on the issue before implementation — merged on July 1, consolidating every dataset catalog into one flat experiments/datasets/ tree under a single convention: _dataset() for a single corpus, _datasets() for a keyed family, every handle's cache identity untouched so nothing re-tokenizes, and each module runnable on its own to print or opt-in build its plan.

8 autocategorized

#6712 Base BPB predicts post-RL math level; quality-classifier hits a label ceiling

Epic title: Data-selection diagnostics


Summary: Ongoing area of investment, picking up after the July Commitment and Hero Run work in this milestone.

The July milestone breaks data-selection diagnostics out as its own investment area in #6712 — strengthen the perplexity and diagnostic signals that predict downstream quality, with rank correlation between proxy and eval as the metric to improve — and it opens with its strongest result already in hand. On #6096, Will Held extended the SimpleRL-Zoo correlation study into a full exploitation/exploration decomposition. The exploitation half: a base model's bits per byte (BPB) on verified OpenMathReasoning chain-of-thought and tool-integrated-reasoning traces predicts post-reinforcement-learning math accuracy across the ten SimpleRL-Zoo base models (Pearson r = −0.89 on the chain-of-thought split, −0.92 on tool-integrated reasoning, −0.97 within the 7–8B cohort), and the signal is distribution-specific — real math traces predict far better than templated synthetic-reasoning bundles (−0.68 to −0.72), so the predictor tracks the target distribution rather than generic language-model quality. The exploration half asks whether a policy-spread term adds anything beyond correct-trace likelihood: token entropy turns out nearly redundant with BPB, but an embedding effective-rank metric — the participation ratio of the policy-weighted top-k output-embedding cloud, meant to capture semantic rather than syntactic branching — adds real signal, lifting the joint model to R² = 0.931 from 0.797 for BPB alone and cutting leave-one-out cross-validation error from 10.6 to 6.7 accuracy points, with a negative sign: at matched BPB, more semantic branching predicts worse post-RL performance.

The write-up leads with its own deflating caveat: RL adds a near-constant ~16 points to every model, so base and post-RL accuracy are 0.97 correlated — the predictors forecast a model's math-capability level, which RL preserves, not which base benefits most from RL, and predicting the gain itself fails at R² = 0.33 on this small, family-confounded sample of ten. Rafal Wojdyla pressed on exactly that point, and Will Held answered that it matches what Benjamin Feuer has been telling him: pre-RL pass@K is the main predictor of post-RL pass@K when everything else is held constant. Rafal followed up asking which evals come next and how to close the end-to-end loop back into pretraining, offering to help — which is the question this epic exists to answer.

On the document-quality side — the per-document counterpart to the mixture-level work under #6713Russell Power closed out #6739 with a deliverable and a diagnosis. The deliverable: a pooled fast-transformer quality classifier at 0.41M FLOPs per token that beats the fasttext baseline at matching the Sonnet quality oracle (AUC 0.875 and Spearman ρ 0.703 versus 0.846 and 0.641), comfortably under the 1M-FLOPs-per-token budget. The diagnosis: it will not go higher for free. Distilling three free teachers — a source-of-origin prior, Nvidia's Nemotron quality buckets, and FineWeb-Edu's per-document score — all landed below training from scratch on the 5.6k gold labels, so the ~0.87 plateau is a ceiling set by label quality, and breaking it means either paying for more oracle labels or, per his survey of how production filters are actually validated, judging classifiers by small-model downstream ablations rather than oracle agreement, since the oracle itself is edu-leaning. Russell Power reported the arc in data-mixing, where Rafal Wojdyla noted the deployed domain and quality classifiers are v0 pipeline placeholders with real headroom. A second candidate document-level signal, web-graph centrality #6750, is covered with the mixture work under #6713.

3 autocategorized

#6711 May Recipe merges to main at 2.12x; FLOP math points attention back to GQA

Epic title: Model architecture & scaling recipe (MoE)


Summary: Ongoing area of investment, picking up after the July Commitment and Hero Run work in this milestone.

3/4 sub-issues closed

The recipe itself landed. Larry Dial's #6153, open since early June, merged the May Recipe onto main's MoE template: half-RoPE everywhere, partial key offset (PKO) on every fourth layer, split w_gate/w_up storage, routing renormalization to sum 2.5, 256 experts at top-4, no gradient clipping, 1% warmup, and MuonH replacing AdamH on the weight-matrix group — the optimizer last week's summary noted the TPU recipe was keeping — plus the learning-rate refit from #5951. The PR ships the epic's definition of done in miniature: a compute-optimal reference table at four isoFLOP budgets from the #6074 sweeps and a fitted scaling law (loss(C) = 1.6 + 88.90·C−0.0941) — the same exponent as the v16 baseline but a ~2.12x equal-throughput compute-equivalent speedup at every budget. This epic's calls feed directly into the July hero-run architecture #6701 and the loss preregistration #6702, so the recipe-versus-baseline law above is the yardstick the hero run will be scored against.

The week's biggest open question was attention. Multi-head Latent Attention (MLA) looked good on quality at small scale — the best variant in #6522, with a learnable norm gain and XSA restored, reached ~1.14 effective speedup at d512 — but Larry Dial's FLOPs-per-token accounting across Trinity, Nemotron 3, DeepSeek-V4-Flash, and Gemma 4 configurations showed MLA on every layer costs +17–20% training FLOPs at 4k sequence length (about +5% if confined to a quarter of the layers) and balloons at long context, and he judged the team is unlikely to have bandwidth to optimize an MLA implementation on the GPU JAX stack before the planned September large-run kickoff. The same accounting is the current word on this epic's long-context scope — the extension plan in #6047 and the sequence-length experiments #6277 and #6232 ran nothing new this week, but the tables quantify the constraint they'll live under: an MLA stack would have to hold at 4k, or at most 8k, sequence length for much more of the run, while the grouped-query-attention hybrid keeps 32k training comparatively affordable. The working call is grouped-query attention (GQA), with #6889 opened to measure MLA's model-FLOPs-utilization at the d5260 target size before the decision is finalized. That decision produced a refreshed July Baseline #6882 — GQA 4:1, no long-window RoPE, no PKO — which finished all three cells just 0.004–0.010 above the May-Recipe law, close enough to referee the follow-ups. The standout on that baseline: alternating dense and MoE layers at matched active/total parameters #6885 is iso-loss but faster, with effective speedup growing 1.03 → 1.09 → 1.15 from d512 to d1024.

David Hall asked in the moe channel about revisiting latent MoE, and Larry Dial took it up in #6822: running the routed-expert path in a compressed latent halves the dispatch dimension for expert-parallel all-to-all traffic, Nemotron-style. Half-compression initially cost +0.04–0.055 macro loss at every scale, but the sweep traced the regression to an input-scale artifact — the latent down-projection under hyperball init leaves expert inputs at ~0.25 RMS, stuck in the low-signal SiLU regime — and a learnable RMSNorm on the latent (mirroring MLA's norm on the compressed KV, a connection Kaiyue Wen weighed in on) recovers it to loss-neutral on both the MLA and GQA stacks. The remaining payoff is purely the communication win at real expert-parallelism (EP) scale, which single-host runs cannot exercise; David Hall reckoned the ~0.96 measured speedup will more than pay for itself in comms.

The tokenizer question #6796 got a full arc in one week from Russell Power's agent (PR #6916), echoing the n-gram embedding trick Will Held flagged in LongCat 2.0. A FLOP-equivalent bits-per-byte (feBPB) rubric — quality as bits-per-byte, cost priced at the 250B-total/20B-active deployment target — scored a ~64k SuperBPE trained on the grug-moe mix plus a light hashed n-gram at −6.8% versus stock Llama-3 at proxy scale, crossing −10% under realistic serving-dominated lifetimes. A confirmation soak at 10B-total/500M-active — whose two 128k-vocab arms only joined after the tokenizer-staging thread race was run down in #6950, an infrastructure fix covered under the cluster epic — first shrank the win to ~1% and put the n-gram arm last, and then careful digging showed the soak itself was confounded three ways (superword merges trained on English-only text, an eval blind to the multilingual and math domains, serving fertility missing the code domain); a corrected re-run was training as the week closed. Elsewhere, David Hall's golem swept newcomer-facing TL;DR verdicts onto the older Good/Great 10T trackers #4023, #4024, #4033, #4035, #4036, #4037, and #4040, closing the loop on the spring optimizer and routing ablations the merged recipe now supersedes.

0 PRs this week, 29 new comments, and 3 new issues (4 total)
Sort:
11 autocategorized

#6710 FP8 beats both preregistered bars; source-push MoE kernels reach 218 TFLOP/s

Epic title: B200 training MFU & perf


Summary: > Blocked by / after: Commitment #6706 — Get B200 MFUs above X in advance of July run. This investment continues once that bar is hit.

Epic #6710 is the July milestone's GPU-performance investment: the kernel and parallelism work behind commitment #6706 — getting B200 model FLOPs utilization (MFU) above the bar ahead of the planned B200 hero run #6689. The fp8 compute lane landed its foundation this week: Matt Wittmann merged #6660, giving haliax an Fp8DirectDotGeneralOp that feeds genuine E4M3 operands to the matmul instead of relying on XLA's pattern-matcher to recover fp8 from the legacy quantize-dequantize recipe, with H100 benchmarks of roughly 1.2× on the attention and shared-expert projections and 1.3× on the lm_head. The bigger story is the grouped path: dense dot_general covers only part of a Mixture of Experts (MoE) model, and the expert computation's ragged_dot — a grouped matrix multiply (GEMM) — had no fp8 equivalent, since XLA cannot rewrite a hand-written Pallas kernel. Experiment #6824 preregistered the hypothesis that an fp8 grouped GEMM with delayed scaling would beat the tuned bf16 Triton ragged_dot by at least 20% end-to-end on H100, and draft PR #6880 delivers Fp8RaggedDotOp well past that bar: a measured 1.41× forward-plus-backward speedup for the MoE expert MLP at the production operating point. Much of the margin came from a dedicated backward-pass optimization loop in #6930, which moved the acceptance numbers from 1.32×/1.19× to 1.41×/1.27× on the two expert GEMM shapes by retuning block configurations per leg, replacing the weight-gradient kernel's in-shared-memory boundary masking with pre-masked boundary blocks so the pipeline body is branch-free, and widening the cast-transpose tile. A fork-built jaxlib also validated that the intended mixed recipe — E5M2 gradients against E4M3 activations — costs nothing over uniform fp8; making that work on stock JAX waits on jax-ml/jax#38859. The loop's logbook ranks the biggest remaining lever as caching weight quantization across gradient-accumulation microbatches, measured at about +15% layer-level throughput.

With the kernels in place, #6911 ran a research spike on the last piece: carrying fp8 over the wire in the MoE dispatch and combine collectives, against a preregistered goal of at least 1.4× end-to-end on the full grug MoE layer at realistic parameters. The goal was met at 1.438× on two H100 nodes under expert parallelism (EP) 16 — bf16 at 33.47 ms/step versus fp8 at 23.28 — with a design lesson attached: fp8 belongs on permutation legs only. Quantizing the dispatch all_gather (E4M3 forward) and the combine-transpose all_gather (E5M2 backward) pays off, but decomposing the ring reduction into an fp8 all_to_all plus a local sum regressed cross-node, because NCCL's hierarchical reduce-scatter already reduces node-locally before crossing InfiniBand. Follow-up measurements pushed further: fusing the E4M3 quantization into the dispatch itself lifted the four-node EP32 ring result to 1.467×, and at that scale the ragged-all_to_all backend overtakes ring entirely, reaching 26.60 ms/step — 2.02× against the ring bf16 production configuration. The spike also root-caused that backend's puzzling single-node deficit to XLA's one-shot ragged all_to_all kernel, which an escape-hatch flag routes back through NCCL for a 96.3 to 26.5 ms/step recovery. Everything ships as opt-in branches — fp8-moe-mlp for the GEMM wiring, fp8-moe-mlp-comms for the wire format — and defaults stay bf16: demonstrating training stability with no loss regression is explicitly the gate before any of this turns on. The motivation is easy to picture: the same week, David Hall posted a mock expense report in the GPU channel itemizing his step time — "random all gather $3,600… Please help my tensorcores are starving" — and the all_gather line is exactly what the fp8 wire work shrinks.

The fused-kernel lane advanced in parallel. David Hall's Pallas Mosaic GPU (MGPU) fused MoE effort under #6597 pivoted from optimizing dispatch in isolation to a source-push design over the whole expert MLP — one custom gradient boundary that saves the W13 preactivation as its checkpoint — now tracked in #6848 with a production-boundary PR #6841 and prototype #6840: the stable target-shape median is 218 TFLOP/s per rank, about 13.8% faster than the serial ring-prologue baseline, and a one-node 20-step trainer smoke ran the path end to end at about 20% MFU and 554k tokens/s — right at the commitment's bar, on Hopper. Those probes also caught the CUDA stack loading the wrong cuDNN — a CUDA 12 torch dependency shadowing the CUDA 13 wheel — which #6947 fixes by restoring CUDA 13 precedence after toolchain staging. The Blackwell sibling #6933 had a busy week of its own: the intended fully-fused design was ruled out because the current JAX/Mosaic stack cannot lower peer-id memory references in Warpgroup mode, so the practical path became staged transport plus local Blackwell compute — and that staged path tuned its transport to about 1,596 W13-equivalent TFLOP/s per rank on B300, cleared its 60%-of-local-compute gates, survived the full 65k-tokens-per-rank target forward with zero dropped routes, and cut the public-path steady state from 39.97 s to 0.093 s by reusing the route plan across calls. A backward that initially exhausted memory at the target shape was unblocked by regrouping rows per destination-local expert with a 512-row tile, completing the first full target forward-plus-backward run — still on a JAX fallback backward, with a tuned Pallas backward as the named next step.

The rest of the epic's surface got steady attention. David Hall merged FlashAttention-4 sliding-window support for the B200 path in #6377, teaching the FA4/CuTe backends to handle sliding-window causal masks while keeping full-window masks on the existing causal path, and followed with #6910, which keeps FlashAttention-4 metadata tensors shard-local before entering the shard_map to avoid a global-metadata mismatch during lowering. #6720 added semantically meaningful jaxtyping axis annotations across the expert-parallelism MoE helpers. Rafal Wojdyla's standalone reproduction of the GPU MoE model under #6759 now runs the production grug MoE train step on synthetic data with no Marin infrastructure at all — a single-file launcher validated on an 8xH100 node, built for sharing with external engineers. And #6695, verifying the cross-entropy path in the May profile, remains open: the multi-node MGPU probes it depends on do not yet reach a train step where that measurement is useful.

15 autocategorized

#6708 xorl repro adds a datapoint; objective-runtime trainer refactor joins the epic

Epic title: RL framework of the future


Summary: Ongoing area of investment, picking up after the July Commitment and Hero Run work in this milestone.

This Investment epic carries the framework-selection question into July: evaluate candidate reinforcement-learning (RL) frameworks, close the parity gaps tracked in the feature checklist #6341, and settle which framework Marin standardizes post-training on. The working document is #6162, Benjamin Feuer's evolving comparison of candidates from veRL and slime to SkyRL and torchforge, which Jeff Hammerbacher cross-linked to the parity checklist this week. On the in-house side, Tai Vu's trainer refactor #4766 was brought under the epic: it moves the RL trainer off loss-specific REINFORCE-leave-one-out (RLOO) surfaces onto a compositional objective runtime with an objective-neutral trajectory and replay data plane, so new objectives and on-policy distillation can be added without rewiring the trainer. It preserves current RLOO behavior, fails fast on unsupported objective shapes, and is still in review.

The week's strongest datapoint for the comparison came from outside the repo: the cross-framework reproduction of the MarinSkyRL rlvr7500_w1 Delphi run in Together AI's xorl #6915, which matched and exceeded the reference math lifts on a fraction of the hardware; the full story, including the bit-aligned sampler and trainer numerics that kept the run truly on-policy, is covered in the Delphi RL section. Discussion in the Discord midtraining channel turned to what the divergence teaches, and Benjamin Feuer flagged K3-divergence tracking as a feature to weigh in SkyRL. Two adjacent threads wound down: Rafal Wojdyla closed #6095, the fakeray shim for running Ray-based frameworks on Iris/Fray, with Russell Power noting he may resurrect it when the MarinSkyRL evaluation deepens, and the multi-host weight-sync experiment #4287 was closed as not planned.

3 autocategorized

#6707 Delphi RL study closes out; external repro and corrected agentic-RL comparison

Epic title: RL data curation, experiments & ablations


Summary: Ongoing area of investment, picking up after the July Commitment and Hero Run work in this milestone.

The Delphi reasoning-RL scaling study #6279 closed out this week. Benjamin Feuer posted the final two large-scale runs and summed up the arc on Discord: midtraining supplies the math capability, supervised fine-tuning elicits it, and forced-thinking RL adds further lift on top — together taking Delphi 1e22 from 1.6 to 53.4 on MATH500, 0 to 6.6 on AIME24, and 11.0 to 68.6 on GSM8K. The new runs settle two questions: in the RLVR-MATH-7500 sweep (reinforcement learning with verifiable rewards on a 7,500-problem math set), the length penalty wins — it adds +2.0 MATH500 and is the only leg with non-zero AIME24 — and dapo17k_w1, trained twice as long on the larger DAPO-17k set, became the first run in the study to beat its SFT AIME24 baseline at 6.6±0.4, evidence the 4k-context truncation wall is dataset- and training-length-sensitive rather than a hard ceiling. When Yiyuan Li pressed on the odd Qwen3 base-model ordering (8B scoring below 4B on MATH500), the raw pass@k artifacts went up on Hugging Face: the gap is a pass@1-only effect at temperature 0.7 that vanishes for k≥8 — and Yiyuan Li's own majority-voting reanalysis confirmed the expected scaling holds.

The close-out drew outside verification within days. In #6915, Ashwinee Panda reproduced the flagship rlvr7500_w1 run in Together's xorl framework — same checkpoint, data, and recipe, but on 16 H100s in 8 hours where the original used 128 A100s for roughly 41 — and exceeded the published deltas: +12.3 MATH500, +8.8 gsm8k-flex, with AIME24 no longer regressing. The write-up credits sampler↔trainer numerical alignment as the enabler: with bit-aligned kernels the run is fully on-policy and PPO clipping never fires across all 146 steps, whereas a pipelined variant of the same recipe collapsed at step 21, with the K3 KL estimator as the leading indicator. It is a strong cross-framework datapoint that the Group Relative Policy Optimization result is a property of the recipe, not the infrastructure.

The week's other resolution was months in the making. #6959 records the corrected agentic-RL comparison after Benjamin Feuer root-caused a summarization bug in the terminus-2 harness: when the agent's periodic transcript-summarization call timed out, the harness aborted the whole trial as a task failure, deflating scores unevenly — one base measurement lost 206 of 300 trials this way — which had made a single hero RL run look irreproducibly special. With the bug fixed and every affected model re-evaluated, the clean result is that RL reliably improves agentic software-engineering performance regardless of recipe or dataset: all 20 RL variants beat the 8B SFT base on SWE-bench-Verified (0.303–0.367 versus roughly 0.25), while being statistically indistinguishable from one another. Behaviorally, RL teaches the model to close the loop — edit the source, re-run the tests, and submit only once they pass — where the SFT base stalls in repository inspection.

3 autocategorized

#6704 Grug crosses 1.47T of 10T tokens; Paloma 2.43 tracking the preregistered 2.269

Epic title: [Hero run] Land June 67B-A2B run on TPUs


Summary: This is a tracking / planning issue for #6044

0/1 sub-issues closed

This epic tracks landing the 67B-A2B “Grug” 10T-token production run, which was preregistered and launched last week and keeps its day-to-day logbook on #6044. The run spent its first full week training on the TPU v4-2048 and passed its planned first gear change. Stage one ran at the 33.5M-token batch through step 15,000 (~513B tokens); the original W&B run ended in a crash after ~81 hours — consistent with Larry Dial's note in the infra channel that hero-run attempts routinely die to hardware and need manual restarts, and that Iris's two-week branch-freshness threshold forces a resync of ~96 main PRs mid-run each time — and on July 1 he relaunched from the step-15k checkpoint as resume15k_v2 with the batch doubled to 67.1M tokens and the replica axis halved to 8. The resumed run has sustained ~2.5M tokens/s since, lifting MFU from 13.5% during ramp-in to 18.6%, and by week's end had processed roughly 1.47T of its 10.07T tokens — about 15% — at train loss 1.44. Larry Dial announced the run in the moe channel with a public W&B report, estimating about 50 days to completion.

Against the preregistered stage-1 target of 2.269 paloma macro loss at 8T tokens (evaluated at sequence length 8,192 over 1,024 sequences), the run currently reads 2.429 — a mid-run number with the learning rate still near peak, which Larry Dial cautioned is not yet the one to compare against the target, likening it to reading a pot's water level while it is still boiling: a cooldown drops the loss further. The early signs are favorable. At 300B tokens (3% in), loss had already reached 2.55, roughly where the 1e22 dense 10B Delphi model finished, per his lineage recap of Delphi 1e22/1e23 through the 129B-A29B 1T run, and David Hall's reaction to the side-by-side Paloma curves against prior runs — “wow that paloma loss” — set off a thread on how much is the new data mix versus architecture, with Will Held noting the new mix had been slightly worse on Paloma in his experiments, crediting the difference to the architecture work.

The week's main incident for the run was on the host, not the accelerators: checkpoint saves were leaking host RAM until the container cgroup killed training, and the Grug job was among those bitten — lasting about 20 saves per attempt, per the diagnosis in #6774. Russell Power merged a first fix in #6785 on July 1 expressly so the hero run could pick it up, and the dominant leak was closed in #6924; the full diagnosis-to-fix arc is covered in the cluster epic's section.

Planning also started for what happens to the model mid-flight. This epic's first sub-issue, #6811, opened this week, targets an intermediate cooldown from roughly the 1T-token mark — graded on pass@256 across a small eval set — so mid-training, SFT, and RL can exercise the inference and post-training stack well before the full 10T checkpoint lands. Related plumbing in #6752 proposes decoupling Hugging Face checkpoint export from the training job into its own artifact step, since the current inline export cannot succeed on multi-host TPU gangs and fails jobs after training itself has finished — exactly the export path a cooldown checkpoint will need.

0 PRs this week, and 1 new issue (1 total)
Sort:

#6037 June pipeline hands off: July-hero datakit release picks up v0 audit worklist

Epic title: datakit: July-hero release


Summary: DoD: decide on new dataset inclusions add CC POC crawl add more code data known child-issues fixed new mix evaluated (via https://github.com/marin-community/marin/issues/6054) new mix produced

0/11 sub-issues closed

The June data-pipeline epic closed this week, and its follow-on — the datakit release for the July hero run — took shape around what the first end-to-end store revealed. On July 1, Rafal Wojdyla closed #6036 against its two acceptance criteria: CoreWeave's native object store is now the blessed storage for pretraining data — settling benchmark #6671, which had found CoreWeave beating Cloudflare R2 on reads, writes, listing, and tail latency — and the datakit pipeline now produces its output natively on that store at s3://marin-us-east-02a/marin/datakit/store_8ac06c74 rather than being mirrored in from R2. The work continues under #6037, whose definition of done spans deciding new dataset inclusions, adding a Common Crawl proof-of-concept crawl, adding more code data, fixing the known child issues, and evaluating the new mix via #6054 before producing it. Rafal Wojdyla scoped it on the epic this week: the data feeds the mid-July hero run, and the work covers fixing known issues, exploring the data, and plugging into the end-to-end feedback loop tracked in #6096.

The June closure let the throwaway scaffolding come down: in #6688, Russell Power deleted the R2-to-cwobject nemotron cache mirror (2.25 TB) and temp checkpoints from cwobject-data test runs (226 GB) off the cluster-local store, leaving only the mirror and monkeypatch code retirement gated on the upstream virtual-hosted-S3 change tracked in #6686. A brief ambiguity over two copies of the store — a finalized top-level one and an in-progress marin/-prefixed rebuild — was resolved when Rafal Wojdyla confirmed the marin/ path as canonical. Making native CoreWeave data real took two more object-store fixes. Zephyr had been reading parquet shards by handing a raw s3:// string to pyarrow, whose native client uses path-style addressing that cwobject rejects with HTTP 400; #6952 routes those reads through fsspec's virtual-host-aware filesystem — the same helper the JSONL reader already used — and merged after verifying against a CoreWeave-hosted Wikipedia shard. On the write side, #6887 documents a harder problem: Levanter's tensorstore native-S3 jagged-array writes hang forever with no timeout on the heaviest arrays, which stalled the clustered-store shuffle build at 638 of 644 caches on CoreWeave. The store also got quality-of-life work: Romain Yon documented how to reach the marin-us-east-02a bucket from a laptop in #6832, and #6770 configured time-to-live lifecycle rules on the CoreWeave buckets' temp paths and moved bucket store types into config.

Separately, Rafal Wojdyla's agent hardened the pipeline's cache identity for cross-region reproducibility: #6895 makes every reference-pipeline step's hash complete and region-independent, folding in previously un-hashed dedup, centroid, and store parameters and replacing region-specific gs:// paths with caller-supplied version tags. That directly addresses the non-determinism logged in #6798, where two builds of the same store diverged; follow-ups #6896 pins the tokenizer bytes, #6897 version-tags the decontam eval corpus, and #6898 checksums the download modules. In smaller cleanup, #6769 deleted the dead npm registry-metadata download module — download-only code whose sole consumers, the perplexity-gap eval experiments, were removed earlier — closing #6746.

The epic's eleven open sub-issues are the worklist that came out of auditing the full clustered store via ducky SQL, and the recurring theme is that the store's domain and quality axes are largely uninformative. On quality, #6849 finds the fastText classifier sorts documents by domain and modality rather than intrinsic quality, #6860 finds it returns near-constant scores within many sources, and #6859 finds it judges long documents on a truncated 4 KB lead. On domain, #6850 shows the luxical embedding collapsing all code into a single cluster and #6855 shows the k=40 clustering severely imbalanced with language and modality catch-alls at a 64,533× largest-to-smallest ratio. Dedup is the most consequential: #6851 and #6854 show fuzzy dedup over-merging templated synthetic data and wiping whole sources — a median of roughly 76% of documents removed per source, and 100% of massive_function_calling — while #6858 flags the store over-sharded down to roughly one element per shard in small buckets, and #6852 notes decontamination's deliberately precision-favoring matching flags very few documents, at the cost of recall on embedded or short-line contamination. Rafal Wojdyla framed the classifiers as intentionally v0 in data-mixing — “the goal was to have e2e pipeline. We can definitely do better!” — and #6856 requests a web visualizer to explore each store's stage lineage. Two long-stale tokenization-cleanup items, #4588 and #4476, were closed in the same triage.

0 PRs this week, 5 new comments, and 11 new issues (11 total)
Sort:
15 autocategorized

#6689 [Hero Run] nB-AmB XT on B200s


Summary: Prepare the next best model for post-training on the path to our EOY 256–500B-AYB run.

0/4 sub-issues closed
0 PRs this week, and 0 new issues (4 total)
Sort:

Other Changes


The week's most visible side project was ducky, an always-on Iris service for ad-hoc DuckDB SQL over the project's parquet data in object storage. Rafal Wojdyla landed the core service in #6762 — paste SQL into a dashboard, it runs in embedded DuckDB on a full v6e TPU host, and a capped preview is backed by the full result spilled to a time-limited Google Cloud Storage path — closing out the design issue #6760. Follow-ups through the week rounded it into a real tool: pre-baked catalog views over the finelog and datakit datasets plus parquet-footer caching and a dashboard picker #6875, per-query logging to finelog #6886, a preemption-resilient programmatic client that authenticates through the Identity-Aware Proxy with a service account #6893, and an automatic deploy workflow on merge to main #6899, #6900. A companion issue #6761 sketches smallquery, a distributed BigQuery-style SQL engine on preemptible TPU VMs, positioning ducky as the single-host stepping stone. In the same spirit of shared infrastructure, #6802 and its in-progress implementation #6816 propose durable public hosting for one-off analysis HTML pages, replacing the personal sites where such dossiers currently live.

Testing and developer tooling also saw steady work. Will Moss pushed the unified unit-test workflow forward on three fronts: a cleanup pass standardizing per-package pytest invocation and deleting dead configuration #6764, a merged step resolving pytest namespace collisions across packages #6786 with a small conftest import fix behind it #6834, and an import-driven test-selection workflow that builds a reverse dependency graph so only the tests affected by a diff run #6833; along the way it surfaced that lib/rigging's fifteen test files are not run by any workflow at all #6925. Russell Power fixed a collision where concurrent agent worktrees on one host overwrote each other's lint-review logs #6917, #6919, stopped agents from appending self-credit footers to PR bodies #6780, and sketched two workflow ideas: an experiment-issue template that an agent reaps nightly into documentation and blog teasers #6775, and dataset modules that are both importable and directly runnable as lazy builds #6782. The nightly nightshift passes continued their behavior-preserving cleanups across the subprojects #6747, #6772, #6806, #6837, #6905.

22 PRs this week, 39 new comments, and 68 issues closed (68 total)
Sort:

Community Pulse


A run of this week's threads came from outside the core team. The fp8 arc in the GPU section is Matt Wittmann's work end to end — the merged haliax direct-quantization op #6660, the H100 fp8 ragged-dot kernel #6880, and the over-the-wire spike #6911. Elsewhere, Matthew Jacobs added a matched pair of controller golden-replay scenarios isolating Iris's preemption-budget gate in #6800, Tai Vu pushed the RL trainer refactor onto an objective runtime and neutral data plane in #4766, and Rok Mihevc weighed in on the smallquery design thread #6761, suggesting DataFusion and PyArrow before building a SQL engine from scratch.

The reinforcement-learning channel carried the week's most substantive exchange. Benjamin Feuer closed out the Delphi reasoning-RL study #6279 — midtraining, SFT, and RL together lift Delphi 1e22 from 1.6 to 53.4 on MATH500 and 11.0 to 68.6 on GSM8K — and in a second thread traced months of hard-to-reproduce agentic-RL comparisons to a summarization bug in the terminus-2 harness, with the corrected comparison written up in #6959. The close-out drew outside verification within days: Ashwinee Panda reproduced the flagship rlvr7500_w1 run in Together's xorl framework on 16 H100s against the original's 128 A100s, with same-harness math deltas at least matching the original, filed as #6915; Yiyuan Li pressed on the Qwen3 base-model MATH500 ordering in the same study, and the raw pass@k artifacts went up on Hugging Face in response.

Two announcements set the community calendar: Percy Liang kicked off a roughly biweekly Marin community meeting over Zoom — roadmap, open research problems, experimental results — starting Tuesday, July 7, and David Hall published a manifesto on why Marin builds frontier models in the open. The week's news reading circled how training data gets made and measured — null-expert MoE architectures, one-model web extraction-and-curation pipelines that Michael Ryan is now benchmarking against his own, and whether smooth scaling curves decompose into discrete capability quanta.

Introductions brought Franziska Weindel, a PhD student at TU Munich working on agentic discovery for problems in information and coding theory — ground that intersects the automate-research effort — and Rajat, an ML engineer at Chime interested in adaptive AI systems that continuously learn and improve. Among the two dozen who joined without posting an introduction is the handle of Sumanth Hegde of Anyscale, a core contributor to SkyRL — the RL library whose Marin fork, MarinSkyRL, ran this week's large-scale reasoning-RL experiments.

News & research shared

Active collaborators this week

Stanford · CRFM 5 people · 2 issues filed · 8 comments · 36 Discord msgs

Common Crawl Foundation 1 person · 1 comment · 2 Discord msgs

Collaborator activity this week

Lab / Org People PRs Issues filed Comments Discord msgs Total
Stanford · CRFM 5 2 8 36 46
Common Crawl Foundation 1 1 2 3
CMU · NeuLab
Princeton · Dao Lab
GitHub activity from 43 other contributors

Ashwinee Panda · Unclassified 0 PRs, 1 comment, 24 Discord msgs

1 comment on 1 thread
  • #6279 [delphi] RL scaling laws

Will Moss · Industry (other) 9 PRs, 16 comments

  • #6834 [zephyr] Fix conftest imports +2 −4
  • #6831 [zephyr] Simplify ZephyrCoordinator initialization +289 −377
  • #6789 [zephyr] Make workers dumber 💬2 +571 −495
  • #6786 [ci] standardize test configuration and resolve pytest namespace collisions +134 −135
  • #6751 [zephyr] Remove legacy counter aliases; expose ZephyrExecutionResult.counters as float +166 −223
  • #6833 [ci] add unified unit test workflow with import-driven test selection +925 −25
  • #6764 [ci] Unified unit testing: Phase 0 cleanup: standardize and delete cruft 💬2 +82 −29
  • #6766 Fix conflicting uv dependencies (numba/tpu-inference vs vllm) 💬3 +18 −0
  • #5963 [zephyr] Move scatter internals to Polars & Parquet 💬1 +712 −1268
16 comments on 7 threads
  • #6733 Refresh TPU vLLM fork stack ×4
  • #6761 [smallquery] Distributed SQL engine on preemptible TPU VMs ×3
  • #6789 [zephyr] Make workers dumber ×2
  • #6764 [ci] Unified unit testing: Phase 0 cleanup: standardize and delete cruft ×2
  • #6766 Fix conflicting uv dependencies (numba/tpu-inference vs vllm) ×2
  • #6300 [zephyr] Clean up counters implementation ×2
  • #6925 [ci] lib/rigging/tests is not run by any workflow

Rohith Kuditipudi · Stanford · (other) 0 PRs, 16 Discord msgs

Matt Wittmann · Unclassified 3 PRs, 9 comments

  • #6817 [iris] dev_gpu: size the holder pod for real dev work + expose overrides +25 −2
  • #6660 [haliax] Add direct-quantization fp8 dot_general op +547 −75
  • #6880 Add FP8 ragged dot op optimized for H100 💬1 +1859 −10
9 comments on 3 threads
  • #6930 FP8 ragged-dot backward speed: dgrad/wgrad optimization loop ×5
  • #6911 FP8 end-to-end grug MoE layer: FP8 expert GEMMs + FP8 over-the-wire dispatch/combine (research spike) ×3
  • #6880 Add FP8 ragged dot op optimized for H100

Tim O'Donnell · Unclassified 0 PRs, 10 Discord msgs

Bilibird · Unclassified 0 PRs, 3 Discord msgs

Tai Vu · Stanford · (other) 1 PR, 1 comment

  • #4766 [RL] Refactor trainer onto objective runtime and neutral data plane 💬1 +3700 −868
1 comment on 1 thread
  • #4766 [RL] Refactor trainer onto objective runtime and neutral data plane

Rok Mihevc · Independent 0 PRs, 2 comments

2 comments on 1 thread
  • #6761 [smallquery] Distributed SQL engine on preemptible TPU VMs ×2

Yiyuan Li · UNC · (other) 0 PRs, 2 comments

2 comments on 1 thread
  • #6279 [delphi] RL scaling laws ×2

ixh · Unclassified 0 PRs, 2 Discord msgs

Franziska Weindel · TU Munich · (other) 0 PRs, 2 Discord msgs

Nilakshan · Unclassified 0 PRs, 2 Discord msgs

Jay Ning · Unclassified 0 PRs, 2 Discord msgs

Matthew Jacobs · Unclassified 1 PR

  • #6800 [iris] Add solo preempt-budget replay scenarios (terminal vs requeue) +343 −1

Ranti Dev Sharma · Unclassified 0 PRs

Felix Möller · Unclassified 0 PRs, 1 Discord msg

yifan_amber · Unclassified 0 PRs, 1 Discord msg

Daniel K · Unclassified 0 PRs, 1 Discord msg

titus_the_terrible · Unclassified 0 PRs, 1 Discord msg

janski · Unclassified 0 PRs, 1 Discord msg

Atal · Unclassified 0 PRs, 1 Discord msg

Hemanth Neelgund Ramesh - UW · Unclassified 0 PRs, 1 Discord msg

swjms. · Unclassified 0 PRs, 1 Discord msg

Minh Pham · Unclassified 0 PRs, 1 Discord msg

Eric · Unclassified 0 PRs, 1 Discord msg

Sumanth Hegde · Anyscale 0 PRs, 1 Discord msg

Jaume de Dios · Unclassified 0 PRs, 1 Discord msg

Dongwon · Unclassified 0 PRs, 1 Discord msg

this-chord · Unclassified 0 PRs, 1 Discord msg

Hao Tang · Unclassified 0 PRs, 1 Discord msg

CrazyLemon · Unclassified 0 PRs, 1 Discord msg

sangsq · Unclassified 0 PRs, 1 Discord msg

Aldous · Unclassified 0 PRs, 1 Discord msg

turquoisedragon · Unclassified 0 PRs, 1 Discord msg

chris mcconnell · Unclassified 0 PRs, 1 Discord msg

Sid · Unclassified 0 PRs, 1 Discord msg

Orlando Neto · Unclassified 0 PRs, 1 Discord msg

nato · Unclassified 0 PRs, 1 Discord msg

elie · Unclassified 0 PRs, 1 Discord msg

Bhavishya · Unclassified 0 PRs, 1 Discord msg

razan · Unclassified 0 PRs, 1 Discord msg

suhasia · Unclassified 0 PRs, 1 Discord msg

rpat23 · Unclassified 0 PRs, 1 Discord msg

Agent MoE speedup


Completed marin-community/marin_moe runs, grouped by Agent MoE budget. Speedup is relative to the original baseline run for each budget and charges each variant by its actual reported FLOPs. Best observed point is 4.20× from muonh-may-recipe-lr-v1-d1280-R60-lr1p0.

baseline (1×) this week's runs older runs running best higher is better
d512 / 2.19e17 FLOPs
100 completed runs
baseline loss 3.8104
1x klsoaph_d512_hp-scqr-pf8v2: 0.74x, loss 3.5428, Jun 16 klsoaph_d512_hp-scqr-pf8bbbbbb: 0.74x, loss 3.5428, Jun 16 klsoaph_d512_hp-scqr-pf1bbbbb: 0.26x, loss 3.5447, Jun 16 klsoaph_d512_hp-scqr-pf1v2: 0.26x, loss 3.5447, Jun 16 moe_may_compute_opt_d512_ep1_embed_late_decay: 0.80x, loss 3.5418, Jun 16 moe_may_compute_opt_d512_ep1_embed_no_rms: 0.77x, loss 3.5355, Jun 16 muonh_d512_decouple-d512-gainadam-e5: 0.78x, loss 3.5381, Jun 16 moe_may_compute_opt_d512_ep1_embed_no_norms: 0.59x, loss 3.5862, Jun 16 delay-muon-d512-tau0-none-s0-st3000: 0.74x, loss 3.9686, Jun 16 delay-adamh-d512-tau8-none-s0-st3000: 0.00x, loss 6.4791, Jun 16 delay-adamh-d512-tau8-dc_asgd_ema-l1-s0-st3000: 0.00x, loss 6.4671, Jun 16 moe_may_muon_coeffs_polar_v2_b_d512: 0.79x, loss 3.5449, Jun 16 delay-muon-d512-tau2-none-s0-st3000: 0.38x, loss 4.1246, Jun 16 delay-muon-d512-tau8-none-s0-st3000: 0.01x, loss 5.0532, Jun 16 delay-adamh-d512-tau0-none-s0-st3000: 0.58x, loss 4.0306, Jun 16 delay-adamh-d512-tau2-none-s0-st3000: 0.01x, loss 5.0372, Jun 16 delay-muon-d512-tau8-dc_asgd_ema-l1-s0-st3000: 0.01x, loss 5.0781, Jun 16 delay-muon-d512-tau4-none-s0-st3000: 0.15x, loss 4.3542, Jun 16 delay-adamh-d512-tau8-dc_asgd-l0.5-s0-st3000: 0.00x, loss 6.4306, Jun 16 delay-adamh-d512-tau8-dc_asgd_ema-l4-s0-st3000: 0.00x, loss 6.4692, Jun 16 delay-muon-d512-tau16-none-s0-st3000: 0.00x, loss 5.7441, Jun 16 delay-muon-d512-tau8-dc_asgd_ema-l4-s0-st3000: 0.01x, loss 5.0778, Jun 16 moe_may_compute_opt_d512_ep1_embed_no_rms_late_decay50: 0.78x, loss 3.5353, Jun 16 moe_may_compute_opt_d512_ep1_embed_only_rms: 0.84x, loss 3.5343, Jun 16 delay-muon-d512-tau8-weight_pred-p1-s0-st3000: 0.08x, loss 4.4938, Jun 16 delay-adamh-d512-tau8-weight_pred-p1-s0-st3000: 0.00x, loss 6.2144, Jun 16 delay-muon-d512-tau8-weight_pred-p0.5-s0-st3000: 0.04x, loss 4.7159, Jun 16 delay-muon-d512-tau16-weight_pred-p1-s0-st3000: 0.00x, loss 5.4943, Jun 16 delay-muon-d512-tau2-weight_pred-p1-s0-st3000: 0.54x, loss 4.0427, Jun 16 delay-muon-d512-tau0-none-s1-st3000: 0.79x, loss 3.9600, Jun 16 delay-adamh-d512-tau0-none-s1-st3000: 0.38x, loss 4.0382, Jun 16 delay-adamh-d512-tau8-none-s1-st3000: 0.00x, loss 6.2127, Jun 16 delay-adamh-d512-tau8-weight_pred-p1-s1-st3000: 0.00x, loss 6.2158, Jun 16 delay-muon-d512-tau8-none-s1-st3000: 0.01x, loss 5.1215, Jun 16 delay-muon-d512-tau8-weight_pred-p1-s1-st3000: 0.02x, loss 4.4939, Jun 17 delay-muon-d512-pp6-weight_pred-p1-s0-st6000: 0.63x, loss 3.8508, Jun 17 delay-muon-d512-tau0-none-s0-st6000: 0.90x, loss 3.7835, Jun 17 delay-muon-d512-pp6-lr_damp-d0.6-s0-st6000: 0.52x, loss 3.8916, Jun 17 delay-muon-d512-pp6-none-s0-st6000: 0.56x, loss 3.8763, Jun 17 delay-muon-d512-tau5-none-s0-st6000: 0.22x, loss 4.0840, Jun 17 delay-adamh-d512-pp6-none-s0-st6000: 0.25x, loss 4.0611, Jun 17 muonh_d512_decouple-d512-lmheadadamh-e5: 0.76x, loss 3.5408, Jun 17 moe_may_compute_opt_d512_ep1_alternate_dense_moe: 0.79x, loss 3.5486, Jun 17 moe_may_compute_opt_d512_ep1_mlp_no_rms: 0.69x, loss 3.5695, Jun 17 delay-muon-d512-pp6-wp_preorth-p1-s0-st6000: 0.53x, loss 3.8877, Jun 17 delay-muon-d512-pp6-wp_cautious-p1-s0-st6000: 0.53x, loss 3.8844, Jun 17 delay-muon-d512-pp6-wp_trust-p1t0.01-s0-st6000: 0.59x, loss 3.8649, Jun 17 delay-muon-d512-pp6-wp_confidence-p1-s0-st6000: 0.59x, loss 3.8656, Jun 17 moe_may_compute_opt_d512_ep1_embed_const_per_dim_gain: 0.82x, loss 3.5383, Jun 17 moe_may_compute_opt_d512_ep1_embed_const_scalar_gain: 0.81x, loss 3.5399, Jun 17 moe_may_compute_opt_d512_ep1_bf16_all: 0.05x, loss 4.1918, Jun 18 moe_may_compute_opt_d512_ep1_embed_rms_no_gain: 0.73x, loss 3.5601, Jun 18 moe_may_compute_opt_d512_ep1_embed_raw: 0.75x, loss 3.5549, Jun 18 moe_may_compute_opt_d512_ep1_bf16_residual_v2: 0.79x, loss 3.5869, Jun 18 moe_may_compute_opt_d512_ep1_bf16_fp32_hyperball: 0.04x, loss 4.2619, Jun 18 moe_may_compute_opt_d512_ep1_bf16_residual_fp32_rmsnorm: 0.88x, loss 3.5671, Jun 18 moe_may_compute_opt_d512_ep1_bf16_residual_fp32sensitive_v1: 0.25x, loss 3.5647, Jun 18 moe_may_compute_opt_d512_ep1_bf16_residual_caseC_v1: 0.89x, loss 3.5647, Jun 18 moe_may_compute_opt_d512_ep1_bf16_residual_neurongain_v1: 0.57x, loss 3.6484, Jun 18 moe_may_compute_opt_d512_ep1_bf16_residual_decouplegain_v1: 0.53x, loss 3.6585, Jun 18 june_prep_moe_may_d512_no_simepoch_ep2: 0.30x, loss 3.1646, Jun 18 june_prep_moe_may_d512_ep2: 0.16x, loss 3.1692, Jun 18 june_prep_moe_may_d512_ep2_no_long_rope_seq8192_sw2k: 0.27x, loss 3.1507, Jun 18 june_prep_moe_may_d512_ep2_bs128_seq8192_sw2k: 0.11x, loss 3.1371, Jun 18 moe_may_compute_opt_d512_ep1_bf16_residual_bf16moeattnshared_v5p8: 0.75x, loss 3.5497, Jun 18 moe_may_compute_opt_d512_ep1_bf16_residual_fp32exceptmoe_v5p8: 0.74x, loss 3.5484, Jun 18 moe_may_compute_opt_d512_ep1_bf16_residual_bf16moeattnsharedlmhead_v5p8: 0.70x, loss 3.5638, Jun 18 moe_may_compute_opt_d512_ep1_bf16_residual_bf16moeattnshared_ckpt: 0.75x, loss 3.5497, Jun 18 moe_may_compute_opt_d512_ep1_bf16_residual_fp32tail: 0.71x, loss 3.5433, Jun 18 moe_may_compute_opt_bf16_ns_d512: 0.70x, loss 3.6079, Jun 18 moe_may_compute_opt_bf16_ns_v2_d512: 0.81x, loss 3.5433, Jun 18 june_prep_moe_may_d512_ep2_16kctx_yarn_from72k: 0.21x, loss 3.1338, Jun 18 june_prep_moe_may_d512_no_simepoch_ep2_16kctx_yarn_from72k: 0.21x, loss 3.1331, Jun 18 june_prep_moe_may_d512_no_simepoch_ep2_32kctx_yarn_from72k: 0.13x, loss 3.1249, Jun 18 june_prep_moe_may_d512_ep2_32kctx_yarn_from72k: 0.13x, loss 3.1286, Jun 18 june_prep_moe_may_d512_ep2_seq8k_32kctx_yarn_from71808: 0.14x, loss 3.1175, Jun 19 moe_may_compute_opt_d512_ep1_endlr5e4_bf16moeattnshared: 0.77x, loss 3.5437, Jun 19 moe_may_compute_opt_d512_ep1_endlr5e4_fp32: 0.77x, loss 3.5480, Jun 19 june_prep_moe_may_d512_ep2_no_long_rope_seq8k_32kctx_yarn_from71808: 0.12x, loss 3.1343, Jun 19 june_prep_moe_may_d512_ep2_no_long_rope_seq8k_64kctx_yarn_from71808: 0.05x, loss 3.1340, Jun 19 june_prep_moe_may_d512_ep2_seq8k_sw2k_resume_to_step81110: 0.25x, loss 3.1758, Jun 19 june_prep_moe_may_d512_ep2_seq8k_64kctx_yarn_from71808: 0.06x, loss 3.1179, Jun 19 june_prep_moe_may_d512_ep2_seq8k_32kctx_yarn_from81110: 0.14x, loss 3.1197, Jun 19 moe_may_compute_opt_d512_ep1_baseline: 0.79x, loss 3.5448, Jun 20 moe_may_compute_opt_d512_ep1_normswish: 0.79x, loss 3.5448, Jun 20 moe_may_compute_opt_mla_d512: 0.50x, loss 3.6619, Jun 20 moe_may_compute_opt_gqa_d512: 0.55x, loss 3.6555, Jun 20 moe_may_compute_opt_mla_norm_compressed_d512: 0.46x, loss 3.6811, Jun 20 moe_may_compute_opt_d512_ep1_normswish_vector: 0.80x, loss 3.5428, Jun 20 moe_may_compute_opt_d512_ep1_normswish_scalar: 0.79x, loss 3.5437, Jun 20 june_prep_moe_may_d512_ep2_seq8k_64kctx_yarn_from81110: 0.06x, loss 3.1187, Jun 20 june_prep_moe_may_d512_ep2_no_long_rope_64kctx_mscale1p1_from71808: 0.05x, loss 3.1350, Jun 21 june_prep_moe_may_d512_ep2_no_long_rope_64kctx_mscale1p3_from71808: 0.05x, loss 3.1336, Jun 21 june_prep_moe_may_d512_ep2_no_long_rope_64kctx_mscale1p0_from71808: 0.05x, loss 3.1362, Jun 21 moe_may_compute_opt_d512_validate_seq4k_v5p8_fp32ns: 0.78x, loss 3.5472, Jun 25 moe_may_compute_opt_d512_validate_seq4k_v5p8: 0.79x, loss 3.5487, Jun 25 moe_may_5000tn_4x_d512_ep2_v1_adamh_warmup1pct_e256: 0.23x, loss 3.2103, Jun 25 moe_may_5000tn_4x_d512_ep2_v1_adamh_warmup1pct_e256_v2: 0.24x, loss 3.2042, Jun 25 moe_compute_opt_d512_stacked_rmsadam_v5p_8: 0.71x, loss 3.5711, Jun 27 moe_compute_opt_d512_stacked_baseline_v5p_8: 0.72x, loss 3.5676, Jun 27 Jun 16 Jun 27
Best
0.90× delay-muon-d512-tau0-none-s0-st6000 loss 3.7835
This week
no completed point
Baseline
moe-v16-compute-opt-d512-2.19e+17
d768 / 1.70e18 FLOPs
100 completed runs
baseline loss 3.4339
1x muonh-may-arch-1pct-pko-bos-zero-v1-d768-1.70e18: 0.93x, loss 3.3082, May 18 muonh-may-arch-1pct-no-pko-v1-d768-1.70e18: 0.85x, loss 3.3224, May 18 muonh-may-arch-per-expert-lr-gate1-shrink-expert-retry2-d768-1.70e18: 0.43x, loss 3.4379, May 18 muonh-may-arch-per-expert-lr-gate1-boost-nonexpert-retry2-d768-1.70e18: 0.46x, loss 3.4276, May 18 muonh-may-arch-per-expert-lr-gate1-mid-ratio-retry2-d768-1.70e18: 0.52x, loss 3.4065, May 18 muonh-may-arch-1pct-embed-adam-lr-1p0-v1-d768-1.70e18: 0.97x, loss 3.3015, May 18 muonh-may-arch-1pct-embed-adam-lr-0p7-v1-d768-1.70e18: 0.96x, loss 3.3031, May 18 muonh-may-arch-1pct-embed-adam-lr-1p3-v1-d768-1.70e18: 0.97x, loss 3.3009, May 18 muonh-may-arch-1pct-pko-first-bos-zero-v1-d768-1.70e18: 0.94x, loss 3.3061, May 18 muonh-may-arch-per-expert-lr-gate1-shrink-expert-retry3-d768-1.70e18: 0.43x, loss 3.4381, May 18 muonh-may-arch-1pct-pko-first-bos-zero-no-q-norm-v1-d768-1.70e18: 0.93x, loss 3.3090, May 18 muonh-may-arch-1pct-combined-combined-v1-d768-1.70e18: 0.91x, loss 3.2998, May 18 muonh-may-arch-1pct-combined-baseline-v1-d768-1.70e18: 0.96x, loss 3.3028, May 18 muonh-may-arch-1pct-combined-no-arch-v1-d768-1.70e18: 0.95x, loss 3.3040, May 18 muonh-may-recipe-lr-v1-d768-R10-lr1p3: 0.65x, loss 3.6411, May 20 muonh-may-recipe-lr-v1-d768-R10-lr0p4: 0.24x, loss 3.8372, May 20 context-norm-gate1-v1-d768-1.70e18: 0.10x, loss 3.7711, May 20 muonh-may-recipe-lr-v1-d768-R10-lr1p0: 0.66x, loss 3.6371, May 20 muonh-may-recipe-lr-v1-d768-R10-lr1p6: 0.60x, loss 3.6571, May 20 context-norm-no-xsa-gate1-v1-d768-1.70e18: 0.54x, loss 3.4478, May 20 muonh-may-recipe-lr-v1-d768-R10-lr0p7: 0.56x, loss 3.6702, May 20 muonh-may-recipe-lr-v1-d768-R20-lr0p4: 0.47x, loss 3.5684, May 20 muonh-may-recipe-lr-v1-d768-R20-lr0p7: 0.78x, loss 3.4788, May 21 muonh-may-recipe-lr-v1-d768-R20-lr1p3: 0.84x, loss 3.4659, May 21 muonh-may-recipe-lr-v1-d768-R20-lr1p0: 0.85x, loss 3.4634, May 21 muonh-may-recipe-lr-v1-d768-R20-lr1p6: 0.75x, loss 3.4844, May 21 muonh-may-arch-1pct-pko-shift32-v1-d768-1.70e18: 1.00x, loss 3.3123, May 21 grug_moe_mix_v4_path_r1_t050_d768-1.70e+18: 0.67x, loss 3.4114, May 21 grug_moe_mix_v4_path_r1_t025_d768-1.70e+18: 0.71x, loss 3.4020, May 21 muonh-may-arch-1pct-pko-split-distance-v1-d768-1.70e18: 1.00x, loss 3.3131, May 21 grug_moe_mix_v4_path_r1_t075_d768-1.70e+18: 0.63x, loss 3.4215, May 21 muonh-may-recipe-lr-v1-d768-R60-lr0p4: 0.70x, loss 3.3120, May 21 muonh-may-recipe-lr-v1-d768-R60-lr1p3: 0.90x, loss 3.2708, May 21 muonh-may-recipe-lr-v1-d768-R60-lr0p7: 0.92x, loss 3.2678, May 21 muonh-may-recipe-lr-v1-d768-R60-lr1p0: 0.94x, loss 3.2647, May 21 muonh-may-recipe-lr-v1-d768-R60-lr1p6: 0.83x, loss 3.2846, May 21 muonh-may-arch-1pct-flag-subset-routing-embed-split-v1-d768-1.70e18: 0.98x, loss 3.2987, May 21 muonh-may-arch-1pct-flag-subset-routing-embed-pko-v1-d768-1.70e18: 0.96x, loss 3.3034, May 22 muonh-may-arch-1pct-flag-subset-routing-embed-v1-d768-1.70e18: 0.99x, loss 3.2978, May 22 grug-moe-parallel-all-d768-1.70e18-v1: 0.78x, loss 3.3538, May 24 grug-moe-parallel-half-d768-1.70e18-v1: 0.95x, loss 3.3212, May 24 grug-moe-direct-d768-1.70e18-v1: 1.04x, loss 3.3052, May 24 grug-moe-glu-sigmoid-d768-1.70e18-v1: 0.63x, loss 3.3510, May 24 hrm-repro-d768-4.00e10-v7-shards200: 0.00x, loss 4.9800, May 24 tokenizer-sensitivity-moe-d768-tokenmonster-englishcode-32k: 0.26x, loss 3.7992, May 26 tokenizer-sensitivity-moe-d768-llama3-128k: 0.60x, loss 3.5041, May 26 tokenizer-sensitivity-moe-d768-marin-128k: 0.60x, loss 3.5032, May 26 tokenizer-sensitivity-moe-d768-qwen3-152k: 0.91x, loss 3.4078, May 26 tokenizer-sensitivity-moe-d768-gpt-oss-200k: 0.33x, loss 3.5410, May 26 tokenizer-sensitivity-moe-d768-gemma3-262k: 0.53x, loss 3.3117, May 26 grug-moe-may-recipe-newlr-d768-newlr-v2: 1.05x, loss 3.3033, May 27 grug-moe-isoflop-v18-d768-v1: 0.86x, loss 3.4021, May 27 grug-moe-isoflop-v3e18-d768-v1: 1.12x, loss 3.2209, May 28 grug-moe-plain-muon-d768-3e18-v1: 2.58x, loss 3.2584, May 29 grug-moe-lmhead-adam-d768-3e18-v1: 3.35x, loss 3.2174, May 29 muoneqh-d768-1.70e18-muoneqh-combined-e-0.5: 0.90x, loss 3.3055, May 30 muoneqh-d768-1.70e18-muoneqh-combined-e-0.25: 0.85x, loss 3.3140, May 30 moe_may_compute_opt_d768: 1.05x, loss 3.2261, Jun 2 marin-big-run-moe_may_compute_opt_d768: 1.41x, loss 3.2330, Jun 2 marin-big-run-moe_may_compute_opt_d768_10x: 1.02x, loss 2.9946, Jun 4 moe_may_compute_opt_d768_ep1: 1.20x, loss 3.2273, Jun 4 moe_may_compute_opt_d768_10x_ep2_baseline_from39k: 1.02x, loss 2.9949, Jun 5 moe_may_compute_opt_d768_10x_ep2_16kctx_long_yarn_mscale01_from39k: 0.74x, loss 2.9564, Jun 5 moe_may_compute_opt_d768_ep1_longmino_from15k: 0.70x, loss 3.3121, Jun 5 moe_may_compute_opt_d768_ep1_longmino_halfmix_from15k: 1.16x, loss 3.2325, Jun 5 moe_may_compute_opt_d768_ep2_longmino_from15k: 0.70x, loss 3.3252, Jun 5 moe_may_compute_opt_d768_ep2_longmino_halfmix_from15k: 1.30x, loss 3.2453, Jun 5 moe_may_compute_opt_d768_ep8_longmino_from15k: 0.65x, loss 3.3497, Jun 5 moe_may_compute_opt_d768_ep8_longmino_halfmix_from15k: 1.11x, loss 3.2643, Jun 5 moe_may_double_silu_compute_opt_d768_ep1: 1.21x, loss 3.2260, Jun 6 muonh_d768_decouple-d768-lr1p0: 1.40x, loss 3.2313, Jun 16 muonh_d768_decouple-d768-lr1p0c: 1.40x, loss 3.2313, Jun 16 moe_may_compute_opt_d768_ep1_embed_late_decay: 1.05x, loss 3.2231, Jun 16 moe_may_compute_opt_d768_ep1_embed_no_rms: 1.02x, loss 3.2189, Jun 16 muonh_d768_decouple-d768-gainadam-e5: 0.97x, loss 3.2307, Jun 16 moe_may_compute_opt_d768_ep1_embed_no_norms: 0.79x, loss 3.2592, Jun 16 moe_may_muon_coeffs_polar_v2_b_d768: 1.01x, loss 3.2287, Jun 17 moe_may_compute_opt_d768_ep1_embed_only_rms: 1.06x, loss 3.2211, Jun 17 moe_may_compute_opt_d768_ep1_embed_no_rms_late_decay50: 1.02x, loss 3.2189, Jun 17 muonh_d768_decouple-d768-lmheadadamh-e5: 0.97x, loss 3.2286, Jun 17 moe_may_compute_opt_d768_ep1_alternate_dense_moe: 1.06x, loss 3.2236, Jun 17 moe_may_compute_opt_d768_ep1_full_dense: 0.61x, loss 3.4562, Jun 17 moe_may_compute_opt_d768_ep1_alternate_dense_moe_3d1m: 1.03x, loss 3.2769, Jun 17 moe_may_compute_opt_d768_ep1_bf16_all: 0.01x, loss 4.2458, Jun 18 moe_may_compute_opt_d768_ep1_bf16_fp32_hyperball: 0.01x, loss 4.2695, Jun 18 moe_may_compute_opt_d768_ep1_bf16_residual_v2: 0.01x, loss 4.0706, Jun 18 moe_may_compute_opt_bf16_ns_d768: 0.83x, loss 3.2893, Jun 19 moe_may_compute_opt_d768_ep1_bf16_residual_bf16moeattnshared_v5p8: 0.95x, loss 3.2340, Jun 19 moe_may_compute_opt_d768_ep1_bf16_residual_bf16moeattnshared_v4: 1.15x, loss 3.2338, Jun 19 moe_may_compute_opt_bf16_ns_v2_d768: 1.06x, loss 3.2247, Jun 19 moe_may_compute_opt_d768_ep1_endlr5e4_fp32: 0.97x, loss 3.2337, Jun 19 moe_may_compute_opt_d768_ep1_endlr5e4_bf16moeattnshared: 0.96x, loss 3.2332, Jun 19 june_prep_moe_may_d768_ep2_bs128_seq8192_sw2k: 0.84x, loss 2.8845, Jun 20 june_prep_moe_may_d768_ep2_no_long_rope_seq8192_sw2k: 0.85x, loss 2.8820, Jun 20 moe_may_compute_opt_d768_ep1_normswish: 1.02x, loss 3.2267, Jun 20 moe_may_compute_opt_d768_ep1_baseline: 1.02x, loss 3.2268, Jun 20 moe_may_compute_opt_gqa_d768: 0.67x, loss 3.3249, Jun 20 moe_may_compute_opt_mla_d768: 0.68x, loss 3.3063, Jun 20 moe_may_compute_opt_d768_ep1_normswish_scalar: 1.03x, loss 3.2238, Jun 20 moe_may_compute_opt_d768_ep1_normswish_vector: 1.01x, loss 3.2278, Jun 20 May 18 Jun 20
Best
3.35× grug-moe-lmhead-adam-d768-3e18-v1 loss 3.2174
This week
no completed point
Baseline
moe-v16-compute-opt-d768-1.70e+18
d1024 / 9.00e18 FLOPs
100 completed runs
baseline loss 3.1605
1x muonh-gn-adamh-2pct-warmup-v1-d1024-9.00e18: 0.82x, loss 3.1265, May 15 muonh-wdown-paired-v1-d1024-9.00e18: 0.75x, loss 3.1393, May 15 muonh-drop-gn-attngate-lr-muonh-0p7-v1-d1024-9.00e18: 0.68x, loss 3.1563, May 15 muonh-drop-gn-attngate-lr-adamh-1p3-v1-d1024-9.00e18: 0.69x, loss 3.1538, May 15 normuon-wider-axis-split-gn-adamh-no-warmup-v2-d1024-9.00e18: 0.82x, loss 3.1252, May 15 muonh-drop-gn-attngate-lr-adamh-0p7-v1-d1024-9.00e18: 0.72x, loss 3.1483, May 15 muonh-drop-gn-attngate-lr-muonh-1p3-v1-d1024-9.00e18: 0.67x, loss 3.1575, May 15 muonh-drop-gn-attngate-lr-adam-1p3-v1-d1024-9.00e18: 0.73x, loss 3.1462, May 15 muonh-may-arch-default-v1-d1024-9.00e18: 1.15x, loss 3.0574, May 15 muonh-may-arch-gn-1p3-v1-d1024-9.00e18: 1.15x, loss 3.0574, May 15 muonh-gn-muon-no-hyperball-v1-d1024-9.00e18: 0.77x, loss 3.1366, May 16 muonh-may-arch-gnwup-1p3-v1-d1024-9.00e18: 1.14x, loss 3.0587, May 16 muonh-may-arch-gnwup-0p7-v1-d1024-9.00e18: 1.18x, loss 3.0550, May 16 muonh-may-arch-gn-0p7-v1-d1024-9.00e18: 1.15x, loss 3.0576, May 16 muonh-may-arch-gn-muonh-1pct-noclip-v1-d1024-9.00e18: 1.11x, loss 3.0610, May 16 muonh-may-arch-1pct-lr-lmhead-0p9-v1-d1024-9.00e18: 1.11x, loss 3.0618, May 16 muonh-may-arch-1pct-kv-colnorm-v1-d1024-9.00e18: 1.13x, loss 3.0596, May 16 muonh-may-arch-1pct-lr-lmhead-0p8-v1-d1024-9.00e18: 1.12x, loss 3.0599, May 16 muonh-may-arch-1pct-lr-lmhead-0p7-v1-d1024-9.00e18: 1.11x, loss 3.0612, May 16 muonh-may-arch-1pct-lr-lmhead-0p5-v1-d1024-9.00e18: 1.13x, loss 3.0584, May 16 muonh-may-arch-1pct-lr-embed-0p6-v1-d1024-9.00e18: 1.08x, loss 3.0651, May 16 muonh-may-arch-1pct-lr-embed-0p8-v1-d1024-9.00e18: 1.08x, loss 3.0650, May 16 muonh-may-arch-1pct-lr-embed-1p0-v1-d1024-9.00e18: 1.11x, loss 3.0617, May 16 muonh-may-arch-1pct-lr-lmhead-0p3-v1-d1024-9.00e18: 1.09x, loss 3.0644, May 16 muonh-may-arch-1pct-lr-lmhead-1p2-v1-d1024-9.00e18: 1.12x, loss 3.0608, May 16 muonh-may-arch-1pct-routedscale-2p0-v1-d1024-9.00e18: 1.11x, loss 3.0618, May 16 muonh-may-arch-1pct-routedscale-2p5-v1-d1024-9.00e18: 1.11x, loss 3.0613, May 16 muonh-may-arch-1pct-routedscale-3p0-v1-d1024-9.00e18: 1.13x, loss 3.0593, May 16 muonh-may-arch-gn-muonh-2pct-noclip-v1-d1024-9.00e18: 1.08x, loss 3.0654, May 17 muonh-may-arch-gn-muonh-1pct-clip-v1-d1024-9.00e18: 1.12x, loss 3.0618, May 17 muonh-may-arch-1pct-aurorah-expert-io-v1-d1024-9.00e18: 1.07x, loss 3.0562, May 17 muonh-may-arch-1pct-lr-adam-1p1-v1-d1024-9.00e18: 1.10x, loss 3.0626, May 17 muonh-may-arch-1pct-lr-embed-1p2-v1-d1024-9.00e18: 1.15x, loss 3.0566, May 17 muonh-may-arch-1pct-lr-adam-1p3-v1-d1024-9.00e18: 1.09x, loss 3.0642, May 17 muonh-may-arch-1pct-lr-embed-1p4-v1-d1024-9.00e18: 1.13x, loss 3.0588, May 17 muonh-may-arch-1pct-lr-muonh-1p3-v1-d1024-9.00e18: 1.05x, loss 3.0688, May 17 muonh-may-arch-1pct-lr-adam-1p5-v1-d1024-9.00e18: 1.08x, loss 3.0651, May 17 muonh-may-arch-1pct-lr-muonh-0p7-v1-d1024-9.00e18: 1.07x, loss 3.0674, May 17 muonh-may-arch-gn-muonh-0pct-noclip-v1-d1024-9.00e18: 1.15x, loss 3.0573, May 17 muonh-may-arch-1pct-gn-wup0p8-wdown1p2-v1-d1024-9.00e18: 1.14x, loss 3.0581, May 17 muonh-may-arch-1pct-finer-lr-qk-1p2-vo-0p8-v1-d1024-9.00e18: 1.12x, loss 3.0605, May 17 muonh-may-arch-1pct-normuon-expert-io-v1-d1024-9.00e18: 1.18x, loss 3.0592, May 17 muonh-may-arch-1pct-split-wupgate-v1-d1024-9.00e18: 1.20x, loss 3.0574, May 17 muonh-may-arch-1pct-embed-adam-lr-1p0-v1-d1024-9.00e18: 1.13x, loss 3.0589, May 18 muonh-may-arch-1pct-embed-adam-lr-0p7-v1-d1024-9.00e18: 1.12x, loss 3.0599, May 18 muonh-may-arch-1pct-embed-adam-lr-1p3-v1-d1024-9.00e18: 1.12x, loss 3.0601, May 18 muonh-may-arch-per-expert-lr-gate2-mid-ratio-v1-ram256-d1024-9.00e18: 0.57x, loss 3.1569, May 19 muonh-may-arch-1pct-routing-renorm-x2p0-v1-d1024-9.00e18: 1.17x, loss 3.0544, May 19 muonh-may-arch-1pct-routing-renorm-x2p5-v1-d1024-9.00e18: 1.15x, loss 3.0562, May 19 muonh-may-arch-1pct-routing-renorm-x3p0-v1-d1024-9.00e18: 1.16x, loss 3.0561, May 19 muonh-may-arch-1pct-combined-baseline-v1-d1024-9.00e18: 1.11x, loss 3.0617, May 19 muonh-may-arch-1pct-combined-combined-v1-d1024-9.00e18: 1.04x, loss 3.0588, May 19 muonh-may-arch-1pct-combined-no-arch-v1-d1024-9.00e18: 1.10x, loss 3.0620, May 19 muonh-may-arch-1pct-aurorah-gn-v1-d1024-9.00e18: 1.13x, loss 3.0652, May 20 muonh-may-arch-1pct-aurorah-kv-v1-d1024-9.00e18: 1.18x, loss 3.0607, May 20 muonh-may-arch-1pct-aurorah-expout-v1-d1024-9.00e18: 1.12x, loss 3.0606, May 20 muonh-may-arch-1pct-pko-one-kv-head-v1-d1024-9.00e18: 1.14x, loss 3.0647, May 20 muonh-may-recipe-lr-v1-d1024-R10-lr0p4: 0.41x, loss 3.4571, May 21 grug_moe_mix_v4_path_r1_t050_d1024-9.00e+18: 0.82x, loss 3.1372, May 21 muonh-may-recipe-lr-v1-d1024-R10-lr0p7: 0.75x, loss 3.3527, May 21 muonh-may-recipe-lr-v1-d1024-R10-lr1p0: 0.82x, loss 3.3392, May 21 muonh-may-recipe-lr-v1-d1024-R10-lr1p3: 0.79x, loss 3.3452, May 21 grug_moe_mix_v4_path_r1_t025_d1024-9.00e+18: 0.82x, loss 3.1374, May 21 muonh-may-recipe-lr-v1-d1024-R10-lr1p6: 0.72x, loss 3.3606, May 21 grug_moe_mix_v4_path_r1_t075_d1024-9.00e+18: 0.75x, loss 3.1487, May 21 muonh-may-arch-1pct-gqa-q1p5-pko-only-v1-d1024-9.00e18: 1.20x, loss 3.0546, May 22 muonh-may-arch-1pct-gqa-q1p5-every-v1-d1024-9.00e18: 1.18x, loss 3.0494, May 22 muonh-may-arch-1pct-gqa-q2p0-nonpko-only-v1-d1024-9.00e18: 1.19x, loss 3.0459, May 22 muonh-may-arch-1pct-gqa-q1p5-nonpko-only-v1-d1024-9.00e18: 1.20x, loss 3.0504, May 22 muonh-may-arch-1pct-gqa-q2p0-every-v1-d1024-9.00e18: 1.16x, loss 3.0437, May 22 muonh-may-arch-1pct-gqa-q2p0-pko-only-v1-d1024-9.00e18: 1.18x, loss 3.0540, May 22 muonh-may-recipe-lr-v1-d1024-R20-lr0p4: 0.64x, loss 3.2671, May 22 muonh-may-recipe-lr-v1-d1024-R20-lr1p3: 0.95x, loss 3.2059, May 22 muonh-may-recipe-lr-v1-d1024-R20-lr1p0: 1.00x, loss 3.1984, May 22 muonh-may-recipe-lr-v1-d1024-R20-lr1p6: 0.86x, loss 3.2207, May 22 muonh-may-recipe-lr-v1-d1024-R20-lr0p7: 0.98x, loss 3.2017, May 23 tokenizer-sensitivity-moe-d1024-tokenmonster-englishcode-32k: 0.24x, loss 3.4930, May 26 tokenizer-sensitivity-moe-d1024-llama3-128k: 0.74x, loss 3.2224, May 26 tokenizer-sensitivity-moe-d1024-qwen3-152k: 1.21x, loss 3.1357, May 26 tokenizer-sensitivity-moe-d1024-gpt-oss-200k: 0.43x, loss 3.2607, May 26 hrm-repro-d1024-4.00e10-v8-eastpin: 0.00x, loss 4.5913, May 26 muonh-may-arch-1pct-flag-subset-routing-embed-v1-d1024-9.00e18: 1.14x, loss 3.0583, May 27 muonh-may-arch-1pct-flag-subset-routing-embed-pko-v1-d1024-9.00e18: 1.11x, loss 3.0608, May 27 muonh-may-arch-1pct-flag-subset-routing-embed-split-v1-d1024-9.00e18: 0.94x, loss 3.0584, May 27 grug-moe-isoflop-v1e19-d1024-v1: 3.38x, loss 3.0422, May 27 grug-moe-may-recipe-newlr-d1024-newlr-v2: 1.17x, loss 3.0613, May 28 grug-moe-isoflop-v3e18-d1024-v1: 0.92x, loss 3.2409, May 28 grug-moe-nopko-d1024-1e19-v1: 1.75x, loss 3.0559, May 29 marin-big-run-moe_may_compute_opt_d1024: 1.83x, loss 3.0297, Jun 3 moe_may_compute_opt_d1024_ep1: 1.70x, loss 3.0195, Jun 4 moe_may_compute_opt_d1024_ep1_embed_no_rms: 1.22x, loss 3.0146, Jun 19 june_prep_moe_may_d1024_ep2_bs1024: 2.87x, loss 2.6929, Jun 22 june_prep_moe_may_d1024_ep2_bs512_seq8192_sw2k: 2.79x, loss 2.6707, Jun 22 june_prep_moe_may_d1024_ep2_bs512_no_long_rope_seq8192_sw2k: 2.74x, loss 2.6729, Jun 22 moe_d1024_L4_rep1_bs1024_seq2048_v4_2048_toy: 0.03x, loss 6.2088, Jun 27 moe_d1024_L4_rep2_bs1024_seq2048_v4_2048_toy: 0.02x, loss 6.2078, Jun 27 moe_d1024_L4_rep4_bs1024_seq2048_v4_2048_toy: 0.02x, loss 6.2098, Jun 27 moe_d1024_L4_rmsadam_rep1_bs1024_seq8192_v4_2048_200steps: 3.08x, loss 4.0185, Jun 27 moe_d1024_L4_rmsadam_rep2_bs1024_seq8192_v4_2048_200steps: 2.50x, loss 4.0183, Jun 27 moe_d1024_L4_rmsadam_rep16_bs1024_seq8192_v4_2048_200steps: 3.36x, loss 4.0149, Jun 27 May 15 Jun 27
Best
3.38× grug-moe-isoflop-v1e19-d1024-v1 loss 3.0422
This week
no completed point
Baseline
moe-v16-compute-opt-d1024-9.00e+18
d1280 / 2.83e19 FLOPs
41 completed runs
baseline loss 3.0065
1x muonh-matrix-baseline-adam-mask-d1280-2.83e19: 0.83x, loss 2.9888, May 11 muonh-nowarmup-d1280-2.83e19: 0.95x, loss 2.9706, May 13 muonh-gn-adamh-v1-d1280-2.83e19: 0.85x, loss 2.9855, May 15 muonh-may-recipe-lr-v1-d1280-R4-lr1p6: 1.51x, loss 3.4269, May 21 muonh-may-recipe-lr-v1-d1280-R4-lr0p4: 0.45x, loss 3.6450, May 21 muonh-may-recipe-lr-v1-d1280-R4-lr1p3: 1.59x, loss 3.4167, May 21 muonh-may-recipe-lr-v1-d1280-R4-lr0p7: 1.20x, loss 3.4664, May 22 muonh-may-recipe-lr-v1-d1280-R4-lr1p0: 1.59x, loss 3.4172, May 22 muonh-may-recipe-lr-v1-d1280-R20-lr0p4: 2.33x, loss 3.1066, May 22 muonh-may-recipe-lr-v1-d1280-R20-lr1p3: 3.44x, loss 3.0522, May 22 muonh-may-recipe-lr-v1-d1280-R20-lr1p0: 3.63x, loss 3.0448, May 22 muonh-may-recipe-lr-v1-d1280-R20-lr0p7: 3.42x, loss 3.0532, May 22 context-norm-no-xsa-gate2-v1-d1280-2.83e19: 0.76x, loss 3.0107, May 22 muonh-may-recipe-lr-v1-d1280-R20-lr1p6: 0.03x, loss 3.0692, May 22 grug_moe_mix_v4_path_r1_t050_d1280-2.83e+19: 0.90x, loss 2.9884, May 22 grug_moe_mix_v4_path_r1_t075_d1280-2.83e+19: 0.84x, loss 2.9962, May 22 muonh-may-recipe-lr-v1-d1280-R60-lr1p0: 4.20x, loss 2.8851, May 22 muonh-may-recipe-lr-v1-d1280-R60-lr1p6: 3.47x, loss 2.9081, May 22 muonh-may-recipe-lr-v1-d1280-R60-lr0p7: 4.18x, loss 2.8856, May 22 muonh-may-recipe-lr-v1-d1280-R60-lr0p4: 3.13x, loss 2.9211, May 22 muonh-may-recipe-lr-v1-d1280-R60-lr1p3: 3.87x, loss 2.8948, May 22 grug_moe_mix_v4_path_r1_t025_d1280-2.83e+19: 0.92x, loss 2.9851, May 24 muonh-may-recipe-lr-v1-d1280-R120-lr0p4: 3.24x, loss 2.8338, May 25 muonh-may-recipe-lr-v1-d1280-R120-lr0p7: 4.12x, loss 2.8063, May 25 muonh-may-recipe-lr-v1-d1280-R120-lr1p6: 3.32x, loss 2.8307, May 25 muonh-may-recipe-lr-v1-d1280-R120-lr1p3: 3.76x, loss 2.8162, May 25 muonh-may-recipe-lr-v1-d1280-R120-lr1p0: 3.99x, loss 2.8097, May 25 grug-moe-isoflop-v3e18-d1280-v1: 1.34x, loss 3.2983, May 27 grug-moe-isoflop-v3e19-d1280-v1: 3.27x, loss 2.9045, May 29 marin-big-run-moe_may_compute_opt_d1280: 2.04x, loss 2.8963, Jun 3 moe_may_compute_opt_d1280_ep1: 1.99x, loss 2.8857, Jun 5 moe_may_compute_opt_d1280_ep2_16kctx_long_yarn_mscale01_from13k: 1.51x, loss 2.8572, Jun 5 moe_may_compute_opt_d1280_ep1_16kctx_long_yarn_mscale01_from13k: 1.47x, loss 2.8473, Jun 5 moe_may_compute_opt_d1280_ep1_longmino_from13k: 1.05x, loss 2.9659, Jun 5 moe_may_compute_opt_d1280_ep1_longmino_halfmix_from13k: 1.94x, loss 2.8887, Jun 5 moe_may_compute_opt_d1280_ep2_longmino_from13k: 1.08x, loss 2.9776, Jun 5 moe_may_compute_opt_d1280_ep2_longmino_halfmix_from13k: 2.03x, loss 2.8979, Jun 5 moe_may_compute_opt_d1280_ep8_longmino_from13k: 0.71x, loss 3.0018, Jun 5 moe_may_compute_opt_d1280_ep8_longmino_halfmix_from13k: 1.32x, loss 2.9211, Jun 5 moe_may_compute_opt_d1280_ep8_32kctx_long_yarn_mscale01_halfmix_from13k: 0.66x, loss 2.8675, Jun 5 moe_may_compute_opt_d1280_ep1_seq8k: 1.82x, loss 2.8664, Jun 8 May 11 Jun 8
Best
4.20× muonh-may-recipe-lr-v1-d1280-R60-lr1p0 loss 2.8851
This week
no completed point
Baseline
moe-v16-compute-opt-d1280-2.83e+19

Top 15 runs (by FLOPs) this week (completed, running, crashed)


The 67B-A2B “Grug” production run — preregistered by Larry Dial in #6044 at a 2.269 Paloma macro-loss target for its first 8T tokens — had an eventful week; its live progress is tracked in a public W&B report. The original launch, moe_67b…rep16_bs4096…muon_10T (tracked in #6704), went down after 81 hours at ~513B tokens — right around step 15,000 — hitting a host-memory OOM after roughly 20 checkpoint saves, which Russell Power flagged as an instance of the checkpoint-serialization host-RAM leak Benjamin Feuer had diagnosed in #6774 (~26 GB leaked per host per save until the cgroup kills the process). Two fixes landed the same week: a fresh tensorstore context per checkpoint save in #6785 and pageable-memory checkpoint staging in #6924, with a smaller residual ~3 GB/h allocator drift split out to #6932.

Larry Dial relaunched from the step-15,000 checkpoint on July 1 as moe_67b…rep8_bs8192…resume15k_v2_10T, taking the planned step-15k batch ramp (33.5M→67.1M tokens per step) via 8-way rather than 16-way replica sharding — a change that also lifted MFU from ~13.5% to ~18.6% on the same v4-2048. The run is still training as of this writing, ~1.47T tokens in at train loss ~1.44 and Paloma macro-loss 2.429 against the preregistered 2.269-at-8T target; it consumed ~110k of the week's ~220k tracked chip-hours on its own.

The other big compute story is Russell Power's tokenizer bake-off under #6796. The proxy-scale study in #6916 concluded that a ~64k SuperBPE trained on Marin's own mix, plus a light hashed n-gram input embedding, is a −6.8% FLOP-equivalent bits-per-byte win over the stock Llama-3 tokenizer — crossing −10% once lifetime cost is weighted toward serving. A “lock-down soak” then re-tested the ranking at a representative 10B-total / ~500M-active grug-MoE shape, one 64×H100 run per arm on cw-rno2a: soak-01d-marin-128k (the Llama-3 baseline), soak-02d-64k, soak-06e, soak-05g, soak-07c, and the crashed n-gram arm soak-08d. The soak was a saga: the two 128k arms initially hung on a first-step collective and died every attempt — first suspected as an InfiniBand fabric fault, ultimately root-caused to a Levanter tokenizer-staging thread race in #6950 — and once all eight arms converged, the SuperBPE advantage largely evaporated. Digging into why produced the week's best debugging find: the trained tokenizers' superword merges had been learned from an English-only 300MB corpus slice, leaving them blind to code, multilingual text, and math. A corrected re-run with fixed tokenizers and an 11-domain eval is training as of this writing.

Michael Ryan finished his 10k-WARC curation scaling suite under #2351: six 1B-parameter iso-FLOP runs (2e21 FLOPs each) training on the same 10,000 web pages as processed by different extraction pipelines, from high_quality (best, eval bits-per-byte 0.89) through resiliparse, dclm, nemotron, and fineweb_cc, with fineweb_edu far behind on out-of-domain evals (1.73). His honest weekly sync reports a negative result alongside: the extraction that wins on validation loss loses on DCLM benchmark scores at every scale, suggesting validation loss is an imperfect proxy for the downstream behaviors that matter — a question he's now working through before locking the pipeline spec. Meanwhile the distilled fast pipeline looks promising, cutting extraction at this scale from about a month to under a day; its evaluation run curation-fastpipe_v3_40 (a 2.9B model) is still training as of this writing. The Agent MoE frontier saw no new completed runs this period.

Run User Hardware(?) Hours(?) FLOP Budget(?) Loss BPB(?)
#6704 pre-reg report moe_67b_a2b_d2560_ep1_rep8_bs8192_seq8192_sw2k_v4_2048_muon_resume15k_v2_10T Larry Dial TPU v4
(1024 chips)
4.5d 3.00e22 model
1.61e23 HW (19%)
BPB: 0.719
#6704 pre-reg report moe_67b_a2b_d2560_ep1_rep16_bs4096_seq8192_sw2k_v4_2048_muon_10T Larry Dial TPU v4
(1024 chips)
3.4d 1.05e22 model
7.73e22 HW (14%)
BPB: 0.740
#6796 #6916 soak-07c-superbpe-128k-llama Russell Power NVIDIA H100 80GB HBM3
(64 chips)
14.1h 3.22e20 model
8.94e21 HW (4%)
BPB: 0.920
#2351 curation-fineweb_cc_10k-expFM_natural-2e+21-d1536-L16-B1024 Michael Ryan TPU v5
(32 chips)
4.3d 1.80e21 model
5.70e21 HW (32%)
BPB: 1.044
#2351 curation-dclm_10k-expFM_natural-2e+21-d1536-L16-B1024 Michael Ryan TPU v5
(32 chips)
4.3d 1.80e21 model
5.25e21 HW (34%)
BPB: 0.969
#2351 curation-resiliparse_10k-expFM_natural-2e+21-d1536-L16-B1024 Michael Ryan TPU v5
(32 chips)
4.4d 1.80e21 model
5.25e21 HW (34%)
BPB: 0.934
#2351 curation-fineweb_edu_10k-expFM_natural-2e+21-d1536-L16-B1024 Michael Ryan TPU v5
(32 chips)
4.4d 1.80e21 model
5.20e21 HW (35%)
BPB: 1.725
#2351 curation-nemotron_10k-expFM_natural-2e+21-d1536-L16-B1024 Michael Ryan TPU v5
(32 chips)
4.3d 1.80e21 model
5.20e21 HW (35%)
BPB: 1.030
#2351 curation-high_quality_10k-expFM_natural-2e+21-d1536-L16-B1024 Michael Ryan TPU v5
(32 chips)
4.4d 1.80e21 model
5.19e21 HW (35%)
BPB: 0.891
#6796 #6916 soak-02d-64k Russell Power NVIDIA H100 80GB HBM3
(64 chips)
15.8h 2.70e20 model
3.81e21 HW (7%)
BPB: 0.909
#6796 #6916 soak-06e-superbpe-64k-llama Russell Power NVIDIA H100 80GB HBM3
(64 chips)
15.3h 2.70e20 model
3.16e21 HW (9%)
BPB: 0.935
#6796 #6916 soak-05g-superbpe-128k-digits Russell Power NVIDIA H100 80GB HBM3
(64 chips)
14.1h 3.22e20 model
2.76e21 HW (12%)
BPB: 0.950
#6796 #6916 soak-08d-superbpe-64k-ngram Russell Power NVIDIA H100 80GB HBM3
(64 chips)
13.6h 2.29e20 model
2.74e21 HW (8%)
BPB: 0.915
#2351 curation-fastpipe_v3_40-expFM_natural-2e+21-d2432-L24-B256 Michael Ryan TPU v5
(32 chips)
1.9d 8.43e20 model
2.45e21 HW (34%)
BPB: 0.940
#6796 #6916 soak-01d-marin-128k Russell Power NVIDIA H100 80GB HBM3
(64 chips)
12.6h 3.22e20 model
2.44e21 HW (13%)
BPB: 0.893
Merged PR Open PR Draft PR Closed PR Open issue Closed issue

Keyboard shortcuts

?
Toggle this help
j / k
Next / previous section
t
Toggle details in current section
s
Cycle sort order in current section
o
Open current epic on GitHub
m
Open current milestone on GitHub
M
Open milestones list on GitHub
Data: weekly-data-2026-06-29_2026-07-05.json · sections-2026-06-29_2026-07-05.json · wandb-flops-2026-06-29_2026-07-05.json · tpu-usage-2026-06-29_2026-07-05.json · token-counts-2026-06-29_2026-07-05.json · cluster-status-2026-06-29_2026-07-05.json · discord-2026-06-29_2026-07-05.json · agent-moe-2026-06-29_2026-07-05.json