NoCap-Test evidence · think2earn docs
Source code ↗

NoCap campaign — comprehensive report

Evidence state: 2026-07-16 (seals) · volume inventory 2026-07-17
Purpose: submission packaging — methods, timeline, failures, seals, components
Status: multi-seed under-baseline vs sealed F1. Under our sealed F1 baseline. Matched cand-vs-stock ΔT% = N/A. Public % vs F1_seal only.

Sources: NUMBERS_CANON.md, nocap-repo/results/claim_stack_v1/MULTI_SEED_CLAIM.md (+ seed summaries / PREREG.md), FAILURE_LEDGER.md, CAMPAIGN_TIMELINE.md, CAMPAIGN_RUNS_OVERVIEW.md, VOLUME_INVENTORY.local.md, CHALLENGE_TERMS.md, FAIR_CLOCK.md, RECIPE_CARD.md.


Verdict

On three independent seeds (1337, 2029, 4242), the claim-stack candidate (Muon B32 + timing-cheap split-QKV) first-crosses val_disjoint ≤ 3.3821 about 8% faster than the sealed stock AdamW F1 baseline (3.866 h; mean ΔT% ≈ +8.3%), with terminal CE ≈ 3.37. Where measured, the joint-QKV stock control misses the quality bar.

Local seals are campaign evidence. They are not organizer acceptance.


Challenge terms

Official source: BottleCapAI/NoCap-Test (master README).

Official ruleSummary
Optional goalval loss ≤ 3.3821 on FineWeb faster than stock baseline
Non-4090Benchmark baseline on your setup; report speedup vs that baseline
Fair comparisonSame treatment for baseline and candidate
DocumentationIDEA.md (motivation, method, results). Negative results welcome
Submissiongit bundle[email protected] (speedup % in subject; negative OK). Beat baseline → add RESULTS.md
StatusFirst competition finished Nov 2025; self-paced submissions still welcome

They want algorithmic ideas, not LR-only tuning or copied Modded-NanoGPT tricks.

Mapping

OfficialThis campaign
Quality ≤ 3.3821First logged val_disjoint ≤ 3.3821 (horizon 4768)
Speed vs baselineFirst-passage train time T from train_time_ms at first-cross (compile warmup in)
Non-4090Denom = sealed stock AdamW F1_seal on pinned stack — not the 4090 leaderboard row
Fair comparisonOne sealed denom; no matched speedup vs joint stock where stock missed quality
BundleCampaign packaging for organizers.

Fair clock

Published speed metric = first-passage train time:

  1. Train on sealed recipe / pin.
  2. Log official val_disjoint (claim-stack: every 128 steps).
  3. First step with val_disjoint ≤ 3.3821.
  4. Read train_time_ms at that row → T = train_time_ms / 3.6×10^6.
  5. Compare to public denominator:

ΔT% = 100 × (3.866 h - T_M) / (3.866 h)

Positive ΔT% = fewer hours to first hit the quality bar.

Pin (required for cardinal %)

KnobSealed value
GPUNVIDIA A100-SXM4-40GB exact
Torch2.13.0 (resolved 2.13.0+cu130)
Quality barval_disjoint ≤ 3.3821
Clock fieldtrain_time / train_time_ms

Not the metric

Not the metricWhy
Terminal val aloneQuality without first-passage T is not a speed claim
step_avg aloneForensic only
Sliding / EMA valNot the official disjoint endpoint
Proxy @800 ΔT%Ordinal only — never published cardinal %
Historical notebook F1 (~229.1 min)Torch unlogged; provisional
Matched ΔT% vs joint-QKV stockStock never crossed on sealed pairs → N/A

Noise floor

Measured stack drift ~6% step-time is the empirical prior for single-seed noise. \|ΔT%\| < ~6% (single seed): do not publish as win. Claim-stack sealed candidates all ≥6%.


Recipe (claim-stack v1)

Hardware / software

KnobValue
GPUA100-SXM4-40GB exact (80GB rejected by guard; seed 4242 relaunched)
Torch2.13.0+cu130
Horizon4768 updates
Tokens / update524,288 (B32 × accum16 × seq 1024)

Shared recipe (both claim-stack arms)

KnobValue
Batchmicrobatch 32 × accumulation 16
Muon groupslr 0.02 · momentum 0.95 · WD 0.1
Adam groups (embed/head)lr 0.0018 · WD 0.1
Newton–Schulz steps5
Warmup / warmdown476 / 1192
z-loss0
EMAoff
Dataraw FineWeb shards + official val
Priorfrozen prior_full.pt
Parallel blockon
single_process_fastpathon
val every / save every128 / 256
Trainertrain_gpt2_split_qkv_cheap_v1.py (kit_override; SHA freeze in PREREG.md)

Candidate vs stock control

Stock controlCandidate
QKVjoint (muon_split_qkv=0)timing-cheap split (muon_split_qkv=1)
match_joint10
Everything elseidenticalidentical

Stock control = joint-QKV Muon stack, not AdamW F1.
F1_seal / F1_Claim-W2 are separate AdamW denominators for under-baseline ΔT%.

Attribution: Muon → Keller Jordan. Timing-cheap split-QKV → this campaign’s banked mechanism.


Sealed denominators

LabelWorkspaceRecipeFirst-cross T
F1_sealClock-Wstock AdamW · raw FineWeb · zloss 0 · no prior/EMA3.866 h @4736
F1_Claim-W2Claim-W2same-class AdamW re-seal3.858 h @4768 (~+0.2% vs F1_seal)

Exact F1_seal ms @ cross: 13,918,667.5 → CSV hours ≈ 3.866297; publish 3.866.
Public headline ΔT% uses F1_seal. Seed 2029 may also report vs F1_Claim-W2 (+7.5%).

Do not publish % vs historical notebook F1 (~229.1 min).


Claim-stack seals (3/3)

SeedWorkspaceCrossval @ crossT (pub)ΔT% vs F1_sealTerminal CEStock
1337Claim-W147363.37413.553 h+8.1%3.3710final 3.3848 · no cross
2029Claim-W247363.37263.567 h+7.7%3.3695final 3.3840 · no cross
4242Claim-W147363.37333.511 h+9.2%3.3702not run

Aggregates: mean cand T3.544 h · mean ΔT% ≈ +8.3%. All three candidates first-cross at step 4736.

Explicit matched-pair statement

SeedCandidate first-crossStock first-crossMatched ΔT% vs stock
1337yes @4736 · 3.553 hNONEN/A
2029yes @4736 · 3.567 hNONEN/A
4242yes @4736 · 3.511 hnot runN/A

Published under-baseline percentages compare candidate T to F1_seal, not to joint stock.

Pass checklist (claim-stack era)

  1. Candidate first-crosses ≤ 3.3821 — 3/3
  2. Candidate T vs F1_seal ≥ 6% — 3/3 (+8.1%, +7.7%, +9.2%)
  3. Terminal CE cand ≤ stock — where stock ran
  4. Soft: stock may miss — observed on 1337 and 2029
  5. Same-workspace F1 on Claim-W2 for seed-2029 ratios

Ops notes (non-metric)


Timeline (causal order)

1. Early waves → failed finals

Absolute quality bar: disjoint val ≤ 3.3821 on GPT-2 ~124M / FineWeb, one A100.

RunOutcome
F2 (WD 256, curated/prior/EMA)Terminal CE ≈ 3.405; no first-cross
F2b (WD 1024, same family)Quality HIT (cross @4736, terminal ≈ 3.377); historical wall ≈ −2.9% vs notebook F1 retracted as speed evidence

2. Fair-clock reform → sealed F1 denominator

Pin: A100-SXM4-40GB · torch 2.13.0+cu130. Metric T = train_time at first logged disjoint val ≤ 3.3821.
F1_seal on Clock-W: 3.866 h. Public speed denominator.

3. Failed full claims (pre–component bank)

RunQualitySpeed vs F1_seal
claim_muon_par (Clock-W)Miss (final 3.386130, never crossed)N/A
claim_muon_wsdHit (~3.376 terminal)T3.899 h · ~0.8% slower

Board-v3 800-step screens: no promote.

4. Component bank (research workspaces)

5. Tier A hparam screens — all NO-GO

LeverVerdict
Muon mom 0.90 / 0.98NO-GO (reverse)
Adam WD 0.05 / 0.2NO-GO / flat
Warmdown 200 → 160NO-GO (shorter hurts)

Defaults kept: mom 0.95, Adam WD 0.1, warmdown 200 (proxy; full claim uses wu476/wd1192).

6. Claim-stack seals (3/3 candidates under F1)

Recipe: Muon B32 + timing-cheap split-QKV candidate vs joint-QKV stock control. Full 4768. Exact A100-40 + torch 2.13. Result: 3/3 under F1_seal (candidate vs F1, not matched stock speedup).

Causal spine (one line)

Failed finals → fair clock + F1_seal → Muon compose misses → bank systems + cheap split → Tier A keeps defaults → claim-stack 3/3 under sealed F1.


Negative results (failure ledger)

Hard non-claim (claim-stack era): no matched candidate-vs-stock first-cross ΔT%.

What was testedOutcomeWhy not a claim
F2 short warmdownTerminal ≈ 3.405; no first-crossQuality miss
F2b long warmdownQuality HIT; historical wall ≈ −2.9%Speed framing retracted (noise / stack confound)
Historical notebook F1 (~229.1 min)Absolute cross exists; torch unloggedNot the sealed denominator
claim_muon_parFinal val 3.386130; never crossedQuality miss → speed N/A
claim_muon_wsdQuality HIT; T ≈ 3.899 h~0.8% slower than F1_seal
Board-v3 800-step screensControl wins/tiesNo promote; proxies ≠ full claim
FineWeb cleaners / curation @800No arm promotedClosed levers
Adam LR 0.003 aloneMid-horizon lead failed @2400NO-GO
Dual-polar split-QKV~+0.015 CE; time ratio ≈ 1.026CE edge eaten by step tax
muon_lr 0.025Reverse mid-runNO-GO
Fixed interleave shard order~0 edgeNO-GO
Muon NS6 / warmdown 300~0 @400 screensNO-GO
Late EMA as train CEMid ema_val mirageNO-GO for train metric
Tier A mom / Adam WD / WD1605/5 NO-GO; zero promoteDefaults stay
Joint stock seed 1337Terminal 3.3848; first-cross NONEControl quality miss
Joint stock seed 2029Terminal ≈ 3.3840; first-cross NONESame
Seed 4242 stock armNot runNo matched pair on this seed
Component bank alone through 2026-07-14Real CE/time component evidence0 under-baseline full recipes until claim-stack

What was tried (family level · all workspaces)

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.

FamilyWorkspacesWhat it wasOutcome (short)
claim_stackClaim-W1, Claim-W2Full-horizon Muon B32 + timing-cheap split vs joint stock3/3 cand HIT vs F1; stock MISS on 1337/2029
f1Clock-W, Claim-W2, Archive-W2Stock AdamW denominatorClock-W + Claim-W2 SEALED; Archive historical only
claim_muonClock-W, Research-W2Early compose / WSD full claimsclaim_muon_par MISS; claim_muon_wsd complete on volume (local ΔT% seal gap)
ix / px / b3Research-W1, Research-W2Proxy ordinals @800–1600Promoted Muon+parallel; WSD best @1600; no cardinal %
systems sysv1Research-W6, Research-W7Dual-workspace step-timeB32 ~6%; NS3 / z-loss kill
theory tv\*Research-W3…W7Mechanism + hparam screensCheap-split MECH-REPEAT + W4 p2400 SEAL; Tier A all NO-GO; AdamLR2400 NO-GO; dual-polar NO-GO
curation cv1Research-W7FineWeb cleaner variantsClosed / not claim path
crossfitResearch-W6 (+ root on W5/W7)Anchor even/oddResearch evidence
waves w2/w3/w4Archive-W1…W3Historical finals / annealComplete archive
f2 / f2b / m\*Archive-W1, Archive-W3Finals recordsHistorical

Workspace roles (sealed narrative)

CodeRole
Clock-WPublic F1_seal; also claim_muon_par
Claim-W1Seeds 1337 (matched pair) + 4242 (candidate-only)
Claim-W2Seed 2029 (matched pair) + F1_Claim-W2
Research-W1Proxy / ordinal (ix_*, b3_*)
Research-W2Horizon screens (px_*) + claim_muon_wsd
Research-W3Theory / Tier A / order / EMA / cheap-split s4
Research-W4Cheap-split persistence seal (seed 5151 @2400)
Research-W5Early cheap-split + Adam LR @2400
Research-W6Systems-v1 + cheap-split; p2400 joint incomplete (not a seal)
Research-W7Systems peer + curation
Archive-W1…W3Waves / f2 / f2b / historical f1 — not claim-stack seals

Volumes do not share across workspaces.


Components banked into the claim recipe

ComponentEvidenceIn claim-stack?
Keller Jordan MuonProxy boards; full claims; claim-stackyes
B32 × accum16 systems pathResearch-W6/W7 systems-v1 (~6% step-time)yes
Timing-cheap split-QKV (match_joint=0)MECH-REPEAT @800 multi-seed; persistence @2400 Research-W4yes (candidate arm)
Frozen unigram priorBanked; used on claim stackyes
Parallel block + single_process_fastpathBankedyes
WSD schedule wu476/wd1192WSD lineage; Tier A rejected WD160yes
z-loss 0Systems kill on z-loss 1e-4yes
NS 5NS6 NO-GOyes
Raw FineWeb (no curation)Curation screens closedyes
EMA offLate EMA train CE NO-GOyes
Joint QKV (stock control)Matched pairs 1337/2029control only

Explicit non-claims

  1. Local seals ≠ organizer acceptance.
  2. No matched candidate-vs-stock first-cross speedup. Joint stock missed quality on 1337/2029; 4242 had no stock arm.
  3. No % vs historical notebook F1.
  4. No board % from 800-step proxies.
  5. Candidate recipe ≠ joint stock. Headline compares candidate to AdamW F1_seal.
  6. Do not inflate means beyond sealed rounding.

Compute

Three tiers — different clocks. Workspaces: Clock-W / Claim-W* / Research-W* / Archive-W*. Local artifacts only · do not deploy. No GPU launches.

TierHoursWhat it measuresSource
1 · Local CSVs (pulled)72.03 hDeduped local train_time_ms (90 unique runs; 101 CSVs scanned, 11 byte-identical copies dropped)GPU_HOURS_LOCAL.md
2 · Volume train_time110.18 hVolume runs/*/log.csv max train_time_ms (151 run dirs · 99.3% log coverage)GPU_HOURS_VOLUMES.local.md (local-only)
3 · Modal billed A100147.91 h all apps · 128.28 h NoCap-named appsA100-40GB container time from billing $ ÷ list rate (13 codes · 2026-07-08→16)GPU_HOURS_BILLED.local.md (local-only)

Ratios (same campaign window). Billed all-apps vs volume: 1.34× (147.91 / 110.18). Billed NoCap-apps vs volume: 1.16× (128.28 / 110.18). Volume vs local: local is a pulled subset.

Why the tiers diverge. Local < volume: not all volume runs were pulled. Billed > volume: Modal bills container wall clock (setup, CUDA init, failed/killed partials, notebook-kernel GPU); train_time_ms is trainer-internal only. Archive-W* notebooks (~19.63 h) drive much of the all-apps vs NoCap gap.

Billed method. modal billing report --show-resources --json per workspace code; keep resource == "A100-40GB"; gpu_hours = cost_usd / (0.000583 $/s × 3600). NoCap split = app description contains nocap. Report $ is pre-credit; hours assume base-region preemptible list price.

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. Source: VOLUME_BYTES.local.md (local-only · do not deploy).

Local family rollup (from pulled CSVs)

FieldValue
Methodmax train_time_ms per CSV ÷ 3.6e6; SHA-256 dedupe
f1 family19.47 h (5 runs)
claim_stack14.66 h (4 runs)
All theory_*20.78 h (26 runs)
Waves (wave2wave4 + colab_wave)6.91 h (16 runs)
systems_v12.95 h (20 runs)
curation3.68 h (6 runs)
Horizon / other screens3.58 h (13 runs)

Caveats. Tiers 1–2: train_time_ms is wall-clock inside the training loop as logged — excludes idle GPU, container spin-up, failed spawns without CSV; partial runs at measured max only. Tier 3: not a native GPU-hour field; derived from resource cost; region/non-preempt multipliers would overstate hours; local 72.03 h is not apples-to-apples with full billed window. No GPU reservation or deploy in the production of this report.


Submission packaging notes

ArtifactRole
This reportMethods + timeline + failures + seals + components
NUMBERS_CANON.mdPublic number resolution order
MULTI_SEED_CLAIM.md3/3 table source of truth
FAILURE_LEDGER.mdNegative results
FAIR_CLOCK.md / CHALLENGE_TERMS.mdMetric + official mapping
RECIPE_CARD.mdExact recipe
Official askIDEA.md + optional RESULTS.md + git bundle to [email protected]

Bundle / email: pending. Next packaging step is writeup + organizer submission — not more science GPUs unless an operator asks.


PathContent
nocap-repo/results/claim_stack_v1/MULTI_SEED_CLAIM, PREREG, seed summaries, CSVs
nocap-repo/results/f1_seal/F1_seal SUMMARY + log
VOLUME_INVENTORY.local.mdPer-workspace run inventory (local only · do not deploy)
WORKSPACE_MAP.local.mdCode ↔ CLI profile (private · never public)