BottleCapAI NoCap-Test · comprehensive campaign report
≈8.3% less first-passage train time than F1_seal (3.866 h) — 3/3 seeds
Applied Jul 9. Sealed Jul 15–16.
On three independent seeds (1337, 2029, 4242), the claim-stack candidate
(Muon +
B32 +
timing-cheap split-QKV)
first-crosses val_disjoint ≤ 3.3821 in 3.553 h, 3.567 h, and 3.511 h.
Versus sealed stock AdamW F1_seal at 3.866 h: +8.1%, +7.7%, +9.2%. Mean ΔT% ≈ +8.3%. Mean candidate T ≈ 3.544 h. Terminal candidate CE ≈ 3.37.
Where measured, joint-QKV stock never crosses (1337, 2029). Seed 4242 stock was not run.
Pin: A100-SXM4-40GB · torch 2.13.0+cu130.
Under our sealed F1 baseline. Public % vs F1_seal only. Matched cand-vs-stock ΔT% = N/A.
The metric
First-passage train time. Quality gate and speed clock are separate. Quality gate: val_disjoint ≤ 3.3821. Speed clock: measured train_time_ms (validation paused; compile warmup inside the path).
T = train_time_ms at the first logged row where val_disjoint ≤ 3.3821, in hours.
Sliding, EMA, and train-CE curves are diagnostics; they do not define first-passage T or ΔT%.
T_h = train_time_ms ÷ 3,600,000
ΔT% = 100 × (3.866 − T_h) / 3.866
Denominator: sealed F1_seal on Clock-W — first-cross @4736, val 3.381538, T = 3.866 h. Historical notebook F1 (~229.1 min) is provisional. Never used for published %.
Loading first-passage chart…
Noise floor: measured stack drift ~6% step-time. Single-seed |ΔT%| < ~6%: do not publish as a sealed under-baseline claim. Sealed candidates all ≥6%.
Challenge mapping: CHALLENGE_TERMS.html · clock rules: FAIR_CLOCK.html.
What we tried
Step 01
Screen
Stop paths that miss their stated quality or timing criteria before spending more GPU time.
Step 02
Validate
Keep components that met their stated criteria (Muon, B32×accum16, timing-cheap split-QKV). Component evidence is not the claim.
Step 03
Seal · 3/3
Use train_time_ms at the first logged val_disjoint ≤ 3.3821 row on three seeds; compare T to sealed F1_seal only.
Screen — Stop paths that miss their stated quality or timing criteria before spending more GPU time.
Step through the campaign order. Internal campaign terms: process glossary. This figure shows process order only. Claim boundary: see the abstract.
Screen candidates, validate components, then seal.
Internal campaign terms: process glossary.
Screen first: F2 / claim_muon_par missed the quality criterion; claim_muon_wsd reached quality but used ~0.8% more first-passage train time than F1_seal; Tier A and other closed paths stay NO-GO.
Then validate:
B32×accum16
+
timing-cheap split-QKV
(what QKV is;
component evidence, not yet a full claim).
Only then seal: the candidate recipe first-crosses on 3/3 seeds vs sealed
F1_seal
(3.866 h; mean ΔT% ≈ +8.3%).
Joint-QKV stock does not first-cross where measured. Matched cand-vs-stock ΔT% = N/A
(why).
Muon attribution: muon-explained.html (not Muon-alone ΔT%).
How to read the stack: process first, then the three validated components.
- Process glossary — screen candidates, validate components, then seal vs F1_seal.
- Muon — Keller Jordan optimizer (adopted).
- B32 systems path — validated step-time path (B32×accum16).
- QKV primer — Query / Key / Value before packing.
- Timing-cheap split-QKV — validated layout after dual-polar split missed its timing criterion.
- F1_seal — AdamW public denom; what published % is vs.
- Seeds 3/3 — multi-seed seal bar.
Claim boundary: see the abstract above.
Scale: 13 workspaces · each has a nocap volume · 153 runs/ entries (incl. partials). Codes: Clock-W, Claim-W1/W2, Research-W1…W7, Archive-W1…W3.
| Family | Workspaces | Outcome |
|---|---|---|
| claim_stack | Claim-W1, Claim-W2 | 3/3 cand HIT vs F1. Stock MISS on 1337/2029. |
| f1 | Clock-W, Claim-W2, Archive-W2 | Clock-W + Claim-W2 SEALED. Archive historical only. |
| claim_muon | Clock-W, Research-W2 | claim_muon_par MISS. claim_muon_wsd quality HIT, speed miss. |
| ix / px / b3 | Research-W1, W2 | Proxy ordinals. Promoted Muon+parallel. No cardinal %. |
| systems sysv1 | Research-W6, W7 | B32 ~6% step-time. NS3 / z-loss kill. |
| theory tv* | Research-W3…W7 | Cheap-split MECH-REPEAT + W4 p2400 SEAL. Tier A all NO-GO. |
| curation cv1 | Research-W7 | Closed. Not claim path. |
| waves / f2 | Archive-W1…W3 | Archive-complete. Not claim-stack seals. |
Workspace roles
| Code | Role |
|---|---|
| Clock-W | Public F1_seal. Also claim_muon_par. |
| Claim-W1 | Seeds 1337 (matched) + 4242 (cand-only). |
| Claim-W2 | Seed 2029 (matched) + F1_Claim-W2. |
| Research-W1 | Proxy / ordinal (ix_*, b3_*). |
| Research-W2 | Horizon screens + claim_muon_wsd. |
| Research-W3…W5 | Theory / Tier A / cheap-split / Adam LR. |
| Research-W4 | Cheap-split persistence seal (seed 5151 @2400). |
| Research-W6/W7 | Systems-v1 + curation peer. |
| Archive-W1…W3 | Waves / f2 / historical f1. |
Validated into the claim recipe: Keller Jordan Muon · B32×accum16 · timing-cheap split-QKV · frozen unigram prior · parallel + fastpath · WSD wu476/wd1192 · z-loss 0 · NS 5 · raw FineWeb · EMA off.
What the numbers say
Three sealed candidates first-cross the quality bar; each is ≥6% under sealed F1_seal on the matched A100/torch pin. Mean ΔT% ≈ +8.3%. Published % is vs F1_seal — not vs joint stock (matched first-cross ΔT% is N/A).
| Run | Workspace | First-cross | T | vs F1_seal | Terminal CE |
|---|---|---|---|---|---|
| F1_sealstock AdamW · denominator | Clock-W | @4736val 3.381538 | 3.866 h | ref | 3.379813 |
| F1_Claim-W2same-workspace AdamW check | Claim-W2 | @4768val 3.380977 | 3.858 h | +0.2% | — |
| candidate · s1337Muon B32 + split-QKV · CSV | Claim-W1 | @4736val 3.3741 | 3.553 h | +8.1% | 3.3710 |
| candidate · s2029Muon B32 + split-QKV | Claim-W2 | @4736val 3.3726 | 3.567 h | +7.7% | 3.3695 |
| candidate · s4242Muon B32 + split-QKV · cand-only | Claim-W1 | @4736val 3.3733 | 3.511 h | +9.2% | 3.3702 |
Matched pairs
Matched pair · joint-QKV stock never crossed · recompute from s1337_cand.csv / s1337_stock.csv.
Matched pair · joint-QKV stock never crossed · published % vs F1_seal only (+7.7%).
Cand-only · no stock arm run · still counts toward 3/3 vs F1_seal (+9.2%).
Full matched-pair table (complete evidence)
| Seed | Candidate | Stock | Matched ΔT% |
|---|---|---|---|
| 1337 | yes @4736 · 3.553 h | NONE | N/A |
| 2029 | yes @4736 · 3.567 h | NONE | N/A |
| 4242 | yes @4736 · 3.511 h | not run | N/A |
Published % compares candidate T to F1_seal, not to joint stock. Seed 2029 vs F1_Claim-W2: +7.5%. Canon: NUMBERS_CANON.html. Short scoreboard: preview-schema.html.
Compute / GPU-hours
Three tiers, three clocks. Do not collapse to one GPU-hour number. Tiers 1–2 measure trainer-internal train_time_ms. Tier 3 measures Modal billed A100 container time (train_time_ms ≠ billed).
1 · Local CSVs (pulled)
72.03 h · deduped local train_time_ms · 90 unique runs (101 CSVs − 11 byte-identical). Lower bound of pulled artifacts. Source: GPU_HOURS_LOCAL.md.
2 · Volume train_time
110.18 h · volume log.csv max · 151 run dirs · 150 with clock (99.3%). Broader than local (theory peers, archives, full claim clocks). Source: internal volume inventory.
3 · Modal billed A100
147.91 h all apps · 128.28 h NoCap-named · 13 codes · 2026-07-08→16. Derived from resource $, not a native hour meter. Source: Modal billing export.
Which number to cite? Claim speed uses sealed train_time_ms (F1_seal / candidates) — not these campaign totals. For campaign spend/effort: quote the triple 72.03 / 110.18 / 147.91 and name the clock.
Ratios. Billed all-apps vs volume: 1.34× (147.91 / 110.18). Billed NoCap vs volume: 1.16× (128.28 / 110.18). Billed vs local: 2.05×. Local is a pulled subset of volume — not apples-to-apples with billed.
Why tiers diverge. Local < volume: not all volume runs pulled; volumes hold more theory / archive / claim clocks. Billed > volume: container wall clock (image/setup, CUDA init, failed/killed partials without usable CSV, idle while container held) vs trainer-loop train_time_ms. Archive notebook-kernel A100 (~19.63 h) drives most of all-apps vs NoCap-named.
Billed method. modal billing report --show-resources --json; keep A100-40GB rows; gpu_hours = cost_usd / (0.000583 $/s × 3600) (public list price). Report $ is pre-credit. Assumes base-region preemptible; region/non-preempt multipliers would overstate hours.
Storage (volume bytes)
Across 13 nocap volumes: ~302 GiB under runs/ (almost all .pt checkpoints; text logs ~2 MiB), ~56 GiB sum of data/ (~5.6 GiB unique FineWeb pack replicated on many workspaces), ~420 GiB grand total.
| Family / rollup (local CSVs) | Runs | Hours | Share |
|---|---|---|---|
| f1 (denominators + finals records) | 5 | 19.47 | 27.0% |
| claim_stack | 4 | 14.66 | 20.4% |
| theory_* (all) | 26 | 20.78 | 28.8% |
| waves (wave2–4 + colab_wave) | 16 | 6.91 | 9.6% |
| systems_v1 | 20 | 2.95 | 4.1% |
| curation | 6 | 3.68 | 5.1% |
| horizon / other screens | 13 | 3.58 | 5.0% |
| Local total | 90 | 72.03 | 100% |
Caveats. Tiers 1–2: train_time_ms is trainer-loop wall-clock — excludes idle GPU outside the timer, container spin-up, failed spawns with no CSV; partials at measured max only; volume may double-count partial+resume dirs. Tier 3: not native GPU-hours; notebooks and non-NoCap apps inflate all-apps 147.91 vs NoCap 128.28; local 72.03 h is not comparable 1:1 to the billed window. Near-duplicate local logs with different bytes count separate.
Sources: GPU_HOURS_LOCAL.md · internal volume inventory · Modal billing export.
Failures
Hard non-claim. No matched candidate-vs-stock first-cross ΔT%. Stock 1337/2029: never crossed. Seed 4242: stock arm not run. Public % vs F1_seal only.
| Item | Verdict | Evidence |
|---|---|---|
| Joint-QKV stock · s1337 | no cross | Terminal 3.3848. |
| Joint-QKV stock · s2029 | no cross | Terminal 3.3840. |
| Joint-QKV stock · s4242 | not run | Cand-only seal. |
| Candidate vs stock ΔT% | N/A | No matched first-cross %. |
| F2 short warmdown | quality miss | Terminal ≈ 3.405. Never crossed. |
| F2b long warmdown | speed retracted | Quality HIT. Historical wall ≈ −2.9% retracted (noise / confound). |
| claim_muon_par | quality miss | Final 3.386130. Never crossed. |
| claim_muon_wsd | speed miss | Quality ~3.376; T ≈ 3.899 h ≈ 0.8% slower than F1_seal. |
| Board-v3 800-step | proxy only | Proxies ≠ full claim. |
| Dual-polar split-QKV | time tax | ~+0.015 CE; time ratio ≈ 1.026. |
| Tier A hparams | 5/5 NO-GO | mom / Adam WD / WD160. Defaults stay. |
| Adam LR 0.003 alone | NO-GO | Mid-horizon lead failed @2400. |
Full ledger: FAILURE_LEDGER.html.
Recipe
Claim-stack v1. Seeds 1337, 2029, 4242. Stock control = same stack with joint QKV (muon_split_qkv=0).
- Model / data
- GPT-2 d12 · raw FineWeb · seq 1024 · official disjoint val
- Batch
- B32 × accum16 · 524,288 tok/update · 4768 steps
- Muon
- LR 0.02 · mom 0.95 · WD 0.1 · NS 5
- Adam (embed/lm_head)
- LR 0.0018 · WD 0.1
- Schedule
- warmup 476 · warmdown 1192 · zloss 0 · frozen unigram prior
- Candidate delta
muon_split_qkv=1·match_joint=0- Environment
- A100-SXM4-40GB · torch 2.13.0+cu130 · 1 GPU · bf16 · compile on
- Attribution
- Keller Jordan Muon + campaign timing-cheap split-QKV (B32 systems path)
Pin card: RECIPE_CARD.html. Narrative source: COMPREHENSIVE_REPORT.md.
Verification + links
Recompute claim ΔT% from public data/*.csv: gate → clock → cross.
Implementation and run logs:
challenge repository
·
kit/
·
claim-stack v1
·
reproduce notes
·
F1_seal logs.
(Repo access may be required until the challenge tree is opened.)
Loading first-passage chart from data/chart_series.json…
1 · Gate
Horizontal line: val ≤ 3.3821. Quality first. (= recompute step 1)
2 · Clock
Vertical F1_seal: sealed baseline 3.866 h. (= ΔT% denominator)
3 · Cross
Magenta markers: first-cross before baseline → ΔT% vs F1_seal (not vs stock).
2 · Clock · T_h = train_time_ms ÷ 3.6e6
3 · Cross · ΔT% = 100 × (3.866 − T_h) / 3.866
4 · Stock · if no row ≤ 3.3821 → matched cand-vs-stock ΔT% = N/A
5 · Separate · claim T ≠ campaign GPU-hours; Muon ≠ Muon-alone ΔT%
Worked example — s2029_cand.csv: step 4736, train_time_ms = 12,840,827.6 → T_h = 3.5669 → ΔT% = +7.7%.
What verify checks vs what literature teaches. Recompute above is CSV arithmetic only. Optimizer and layout primers (Muon, B32, split-QKV) do not set the sealed %. Campaign totals under Compute are inventory clocks, not claim ΔT%.
Literature context, not campaign evidence. Adjacent papers motivate matrix-aware optimization, WSD schedules, and time-to-result evaluation. A broader synthesis finds recurring mixed optimizer routing, but no verified source tests this campaign’s exact parameter-group partition. Published literature does not validate this campaign’s ΔT% or establish split-QKV causality. Batch and gradient-accumulation research includes counterevidence and throughput tradeoffs; none directly tests this stack or split-vs-joint QKV treatment.
Future research
The sealed 3/3 result measures the full claim stack—Muon routing, B32×accum16, WSD, and timing-cheap split-QKV—against sealed F1_seal on a fixed A100/torch pin. The reported ΔT% reflects that combined recipe; it does not isolate which component drove the wall-clock gain. Where measured, joint-QKV stock never crossed; seed 4242 has candidate only. Matched candidate-vs-stock first-cross ΔT% remains N/A.
Verified adjacent work on Practical Efficiency of Muon, WSD schedules, small-batch and gradient accumulation, AlgoPerf time-to-result evaluation, and AdamW motivates tighter controls but does not validate this stack. Priorities:
1 · Matched QKV arms
Split-QKV candidate vs joint-QKV stock on all three seeds to the same step horizon, including a stock arm for seed 4242.
2 · Leave-one-out ablations
A leave-one-component-out sequence: drop one of Muon routing, B32×accum16, WSD pins, or split-QKV per run under identical pins.
3 · Threshold sensitivity
Re-analyze existing CSVs for how first-cross T_h shifts with validation threshold and logging cadence before new GPU runs.
4 · Seeds and intervals
Add seeds and report uncertainty intervals on wall-clock crossing time, alongside point first-cross estimates.
5 · Replication and profiling
Equal-tuning AdamW re-seal plus one replication across model depth, accelerator, or data mix; profile NS steps and gradient-accumulation overhead where they explain wall clock.
Claimed
Candidate first-crosses ≤3.3821 on 3/3 seeds; each ≥6% under sealed F1_seal on the matched GPU/torch pin. Recompute from public CSVs in data/.
Not claimed
Under our sealed F1 baseline. Public % vs F1_seal only. Matched cand-vs-stock ΔT% = N/A. No % vs historical notebook F1. No board % from 800-step proxies. Why each clause.
Compute tiers are separate. Campaign totals 72.03 / 110.18 / 147.91 h are inventory clocks (train_time_ms ≠ billed) — see Compute.
Muon hedge. Attribution:
Keller Jordan Muon +
timing-cheap split-QKV
(B32 systems path).
Sealed ΔT% is the claim-stack, not Muon alone.
Public sealed kit: TRAINER_DELTA.html ·
kit/ (this site) ·
kit/ on GitHub ↗.
- TRAINER_DELTA.html — timing-cheap vs joint/dual-polar · SHA freeze · kit/ sources · GitHub kit/ ↗
- preview-schema.html — short schema scoreboard + chart
- not-claimed-explained.html — public hedge defense (matched ΔT% N/A)
- qkv-explained.html — Query / Key / Value primer
- split-qkv-explained.html — timing-cheap vs dual-polar
- b32-systems-explained.html — B32×accum16 systems path
- f1-seal-explained.html — AdamW denom 3.866 h
- seeds-explained.html — 3/3 multi-seed seal
- kill-bank-seal-explained.html — process jargon
- muon-explained.html — Keller Jordan Muon diagrams
- NUMBERS_CANON.html — number resolution order
- FAILURE_LEDGER.html — negative results
- FAIR_CLOCK.html · HOW_TO_READ_EVIDENCE.html · DOCS_INDEX.html
- data/f1_seal.csv · s1337_cand.csv · s1337_stock.csv · s2029_cand.csv · s4242_cand.csv · s2029_stock.csv
- data/chart_series.json · data/README.html
- COMPREHENSIVE_REPORT.md · CAMPAIGN_RUNS_OVERVIEW.md · GPU_HOURS_LOCAL.md
- Challenge · github.com/BottleCapAI/NoCap-Test
- Muon · github.com/KellerJordan/Muon
- Literature · Practical Efficiency of Muon for Pretraining · Understanding Warmup-Stable-Decay Learning Rates · Small Batch Size Training for Language Models · Benchmarking Neural Network Training Algorithms · Decoupled Weight Decay Regularization