BottleCapAI NoCap-Test · comprehensive campaign report
3/3 · ≈8.3% under sealed F1_seal
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. Matched candidate-vs-stock first-cross ΔT% is N/A.
Pin: A100-SXM4-40GB · torch 2.13.0+cu130.
Not claimed. Not an official NoCap win. Matched cand-vs-stock ΔT% = N/A. Public % vs F1_seal only.
The metric
First-passage train time. Quality gate and speed clock are separate. Quality bar: disjoint val ≤ 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.
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 win. Sealed candidates all ≥6%.
Challenge mapping: CHALLENGE_TERMS.html · clock rules: FAIR_CLOCK.html.
What we tried
Beat 01
Kill
Close paths that miss quality or speed before spending more GPU time.
Beat 02
Bank
Keep promoted components (Muon, B32×accum16, timing-cheap split-QKV) as blocks — banking is not the claim.
Beat 03
Seal · 3/3
First-cross the quality bar on three seeds; compare wall-clock T to sealed F1_seal only.
Kill — Close paths that miss quality or speed before spending more GPU time.
Step through the campaign order. Full detail: kill → bank → seal. Matched cand-vs-stock ΔT% = N/A · not an official win.
Kill → bank → 3/3.
Process: kill → bank → seal.
Kill first: F2 / claim_muon_par quality miss; claim_muon_wsd quality without speed (~0.8% slower than F1_seal); Tier A and closed bank levers stay NO-GO.
Then bank:
B32×accum16
+
timing-cheap split-QKV
(what QKV is;
component evidence, not yet a full claim).
Only then seal: candidate recipe first-cross on 3/3 seeds vs sealed
F1_seal
(3.866 h; mean ΔT% ≈ +8.3%).
Joint-QKV stock misses the quality bar 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 banked pieces.
- Kill → bank → seal — close dead ends, bank components, seal vs F1_seal.
- Muon — Keller Jordan optimizer (adopted).
- B32 systems path — banked step-time path (B32×accum16).
- QKV primer — Query / Key / Value before packing.
- Timing-cheap split-QKV — banked layout after the dual-polar tax kill.
- F1_seal — AdamW public denom; what published % is vs.
- Seeds 3/3 — multi-seed seal bar.
Sealed speed is vs F1_seal only. Matched cand-vs-stock ΔT% = N/A. Not an official win.
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. |
Banked 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 · summary-only | 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 · summary-only cand (no public 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 | no promote | 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. |
| “Officially won NoCap” | pending | Organizer acceptance not in local seals. |
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 mint 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
Not an official NoCap win. Matched first-cross speedup vs joint-QKV stock = 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 (teach-beat port)
- 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 · 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