NoCap-Test evidence · think2earn 3/3 · ≈8.3%
Source code ↗
2026-07-16 · 3/3 sealed

BottleCapAI NoCap-Test · sealed campaign report

≈8.3% less train time to val ≤ 3.3821 — 3/3 seeds

Challenge repository ↗ · inspect the implementation

On seeds 1337, 2029, and 4242, a composite candidate (Muon + B32 + timing-cheap split-QKV) first reaches val_disjoint ≤ 3.3821 in 3.51–3.57 h (mean 3.544 h). That is ≈8.3% less first-passage train time than our sealed stock AdamW baseline F1_seal at 3.866 h. Per-seed times and ΔT% are in the scoreboard below.

  • GPT-2 ≈124M · d12 · FineWeb
  • 1× A100-SXM4-40GB
  • torch 2.13.0+cu130
  • official disjoint val
3 / 3
seeds under F1_seal
≈8.3%
mean ΔT% vs F1
3.866 h
F1_seal T_cross
≈3.37
candidate terminal CE

Not claimed. Versus our sealed F1 only. Not an official NoCap win. Joint-QKV stock control missed quality on seeds that ran it (1337/2029). Seed 4242 had no stock arm. Matched candidate-vs-stock first-cross ΔT% is N/A.

NoCap-Test trains GPT-2 ≈124M on FineWeb on one GPU until validation loss ≤ 3.3821, faster than a fair stock baseline. The metric is first-passage train time: measured clock time until the run first crosses that threshold. The challenge favors algorithmic ideas over tuning tricks or wholesale copies of Modded-NanoGPT.

Supported Candidate first-crosses ≤3.3821 on 3/3 seeds. Each is ≥6% under sealed F1_seal on the matched GPU/torch pin.
Not supported Matched first-cross speedup vs joint-QKV stock. Stock never crossed on 1337/2029. Not run on 4242.
Status Multi-seed under-baseline evidence against our seal — not an official NoCap win.

01 / Scoreboard

The sealed comparison

Train GPT-2 d12 on FineWeb until official disjoint validation ≤ 3.3821. Reach it faster than the sealed baseline on one GPU. “Cross” is the first logged row at that threshold. T is train_time_ms at that row.

Public denominator: F1_seal on Clock-W. Horizontal scroll on small screens.
Run Role / workspace First passage T_cross vs F1_seal Terminal CE Status
F1_seal stock AdamW baseline denominator
Clock-W
@4736val 3.381538 3.866 h13,918,667.5 ms reference 3.379813 sealed
candidate · s1337 Muon · B32 · split-QKV claim seed
Claim-W1
@4736val 3.3741 3.553 h +8.1% 3.3710 hit
candidate · s2029 Muon · B32 · split-QKV claim seed
Claim-W2
@4736val 3.3726 3.567 h +7.7% 3.3695 hit
candidate · s4242 Muon · B32 · split-QKV claim seed
Claim-W1 · cand-only
@4736val 3.3733 3.511 h +9.2% 3.3702 hit

Matched stock control

Same Muon stack with joint QKV. Terminal 3.3848 (s1337) and 3.3840 (s2029). Both above the bar. No first cross. Seed 4242 stock arm was not run. Matched candidate-vs-stock first-passage ΔT% is N/A.

Same-account cross-check

F1_Claim-W2 crossed @4768, val 3.380977, 3.858 h (~0.2% vs F1_seal). Seed 2029 is 7.5% faster against that same-workspace denominator. Seed 4242’s first spawn hit an A100-SXM4-80GB guard reject. The seal is the relaunched 40GB run.

02 / Verify

Verify this in 5 minutes

Three steps: read the chart, download the CSV, recompute the number that decides the claim. Files are served same-origin from data/.

  1. Step 01

    Read the chart

    Each curve is disjoint validation loss over training-time hours. Candidate seeds cross the 3.3821 target line left of the F1_seal baseline. Less time to the same quality.

  2. Step 02

    Download the CSV

    The same rows the chart reads. Columns include step, train_time_ms, and val_disjoint. Open in any spreadsheet or text editor.

  3. Step 03

    Recompute the number

    Find the first row that meets the target. Convert its clock to hours. Compare to the sealed baseline. Three lines of arithmetic. No tooling.

Loading the first-passage chart from data/chart_series.json (CSV fallback)…

Three beats on the sealed series: quality gate, baseline clock, then candidate first-cross. Auto plays them; Step advances one; Reset returns to the start.

1 · Gate

First row with val ≤ 3.3821 — the quality bar that starts the clock.

2 · Clock

Read train_time_ms → T_h. Denominator: F1_seal 3.866 h.

3 · Cross

Candidate markers left of baseline → ΔT% vs F1_seal (not vs joint stock).

Same arithmetic as below: 1 first-cross ≤ 3.3821 · 2 T_h = ms÷3.6e6 · 3 ΔT% vs 3.866.

Loading…
val_disjoint (y, lower is better) vs training-time hours (x). Dashed orange: target 3.3821. Dotted steel: F1_seal first-cross at 3.866 h. Seeds 2029 and 4242 from data/chart_series.json (CSV fallback). Seed 1337 is sealed-summary-only (no public CSV). Seed 2029 joint-QKV stock never crosses. Drawn from the same series as the CSVs below.
Show first-passage numbers as a table
First row with val_disjoint ≤ 3.3821. T_h = train_time_ms ÷ 3,600,000. ΔT% = 100 × (3.866 − T_h) ÷ 3.866.
Run First-cross step val @ cross train_time_ms T_h ΔT% vs F1_seal
F1_seal baseline · CSV 4736 3.381538 13,918,667.5 3.866 reference
s1337 candidate summary-only · no CSV 4736 3.3741 3.553 +8.1%
s2029 candidate CSV 4736 3.372588 12,840,827.6 3.567 +7.7%
s4242 candidate CSV 4736 3.373309 12,640,470.5 3.511 +9.2%
s2029 stock joint-QKV control · CSV none min 3.384017 N/A
Recompute — three lines
1 · first-cross = first CSV row where val_disjoint ≤ 3.3821 2 · T_h = train_time_ms ÷ 3.6e6 3 · ΔT% = 100 × (3.866 − T_h) ÷ 3.866

Example, s2029 candidate: first-cross at step 4736, train_time_ms = 12,840,827.6 → T_h = 3.5669 → ΔT% = +7.7% vs the sealed F1_seal baseline (3.866 h).

Download the evidence CSVs

Seed 1337 is sealed-summary-only. No downloadable CSV here. Its chart marker and table row come from the sealed seed summary.

03 / How we measure

When the quality bar is crossed

Speed is measured at the first logged step where official disjoint validation ≤ 3.3821. That row’s train_time_ms is the clock. Sliding and EMA curves are diagnostics only; they do not define T.

01 / Clock

Training time

Not calendar wall. The harness pauses the timer for validation. Compile warmup stays inside the measured path.

02 / Metric

Disjoint val

Official disjoint set defines the cross. Sliding and EMA do not define T.

03 / Pin

Exact hardware

A100-SXM4-40GB · torch 2.13.0+cu130 · fingerprint seed, batch, compile, software identity.

04 / Noise

~6% floor

Single-seed noise prior ≈6%. Band 6–10% wants replication. This candidate is 3/3.

Denominator rule

Published percentages use sealed F1_seal (3.866 h) on the matched GPU/torch pin. Historical F1 (~229.1 min) is provisional only. It is not used for any published %. Same-workspace F1_Claim-W2 is reported separately where available.

How evidence was produced
  • Kill before seal. Weak levers die at proxy cost with pre-registered stops.
  • Bank components. Systems B32 path and timing-cheap split-QKV cleared promote criteria before the full stack.
  • Seal candidate + joint control on the same pin (where both arms were scheduled).
  • Keep “no” on the page. Failures stay in the ledger.
  • Fire-and-forget ops. Long seals use detached spawn(); volumes do not share across accounts.

Challenge terms → how we measured them

The NoCap-Test README frames a faster-to-quality run as an optional goal. It tells non-RTX-4090 entrants to seal their own baseline and compare against it. Each row maps a README term to what we did.

NoCap-Test READMEReach official val ≤ 3.3821 faster than baseline (optional goal).
Our measurementFirst-passage train_time_ms at the first row with val_disjoint ≤ 3.3821. Quality gate and speed clock kept separate.
NoCap-Test READMEIf your GPU is not an RTX 4090, seal a baseline on your own GPU and compare to that.
Our measurementF1_seal: a stock AdamW baseline sealed on A100-SXM4-40GB · torch 2.13.0+cu130. Every published % is versus this seal, not a borrowed number.
NoCap-Test README1 GPU.
Our measurementSingle A100, GPU count = 1, attested in the recipe pin and the run fingerprint.
NoCap-Test READMEFair comparison.
Our measurementCandidate and baseline share the same GPU/torch pin, tokens-per-update, horizon, and disjoint val. The full recipe is documented on this page and in the companion docs.

The README welcomes negative results and takes submission as a git bundle to hey@bottlecapai.com. We claim only what those terms support: an under-baseline result versus our sealed F1 — not an official NoCap win.

04 / Timeline

Failed ideas, then a stack

Causal order: early waves → failed finals → fair-clock reform → failed claims → component bank → three seals.

FoundationLearn / park

Early waves found pieces and bad extrapolations

Wave 1 on Colab T4 exposed prior, sliding-eval, and warmdown behavior. Later waves parked naive Canon (~30% step-time tax). They banked a ~1.6% parallel-block timing gain within that notebook-era family.

First finalsMiss / retraction

Quality recovery was not a speed result

F2 (warmdown 256) ended near 3.405. No cross. F2b (warmdown 1024) ended near 3.377 and crossed. The −2.9% historical-wall framing was retracted (stack drift + ~6% floor).

Fair-clockMethod reset

Seal the denominator before another %

F1_seal fixed the public baseline at 3.866 h on A100-SXM4-40GB / torch 2.13.0+cu130. Historical F1 became provisional. Single-seed noise prior ≈6%.

Full claimsNo promote

Muon’s proxy lead did not survive the horizon

claim_muon_par ended ~3.386. No cross. claim_muon_wsd: quality ~3.376, T=3.899 h ≈0.8% slower than F1_seal. Board-v3 screens: no promotion.

Component bankTwo pieces

Systems path + small quality edge

B32×accum16 ~6% faster core step vs B16 (same 524,288 tok/update). Timing-cheap split-QKV ≈+0.015 CE at 800 steps. +0.0147 CE at 2400 on seed 5151. Tier A: 5/5 no-go.

Claim stack3 / 3 sealed

Composite candidate cleared the bar three times

s1337 (Claim-W1) 3.553 h · s2029 (Claim-W2) 3.567 h · s4242 (Claim-W1, cand-only) 3.511 h. Joint controls missed on 1337/2029. Claim is candidate vs sealed F1. Not matched first-cross vs joint stock.

05 / Recipe

What was sealed

Composite recipe. The stock control holds the stack fixed and removes the split-QKV treatment.

claim-stack v1 / candidate

seeds 1337 · 2029 · 4242

Model & data

Model
GPT-2 d12
Data
raw FineWeb
Seq len
1,024
Val
official disjoint
Val batch
16
Prior
frozen unigram

Batch & horizon

Microbatch
32
Accumulation
16
Tok / update
524,288
Updates
4,768

Optimizer

Muon LR
0.02
Momentum
0.95
Muon WD
0.1
Adam LR
0.0018
Adam WD
0.1
NS steps
5

Schedule & loss

Warmup
476
Warmdown
1,192
Z-loss
0
EMA
off
Val every
128
Save every
256

Systems

Precision
bf16
Compile
on
Fast path
single process
Block
parallel

Environment

GPU
A100-SXM4-40GB
Torch pin
2.13.0
Resolved
2.13.0+cu130
GPU count
1

06 / Negative results

What did not work

Negative results stay on the page.

Failed runs, killed components, retractions, claim boundaries. Swipe on small screens.
Item Verdict What the evidence says
F2 · short warmdown quality miss Warmdown 256 ended near 3.405; never reached 3.3821.
F2b · long warmdown speed retracted Final CE ~3.377 is a quality hit. −2.9% vs historical F1 is not speed evidence.
claim_muon_par quality miss Ended near 3.386; never crossed.
claim_muon_wsd speed miss Quality ~3.376; first passage 3.899 h ≈0.8% slower than F1_seal.
FineWeb curation screens no promote 800-update screens: no arm promoted. Sealed claim uses raw FineWeb.
Adam-group LR 0.003 no-go 800-step lead did not persist; 2400-step gates failed.
Dual-polar split-QKV time tax ~+0.015 CE but timing ratio ≈1.026 failed the ceiling.
Tier A hyperparameters 5 / 5 no-go Mom 0.90/0.98, Adam WD 0.05/0.2, warmdown 160: no promotion.
Joint-QKV stock control 2 / 2 no cross Terminals 3.3848 / 3.3840 on seeds with a stock arm. Seed 4242: not run.
Candidate vs stock ΔT% N/A No matched first-cross % — stock never crossed where measured.
Split-QKV alone not sufficient Component ≈+0.015 CE ≪ ≈0.06 CE equal-speed pure-quality bar.
Unsealed account mixing forbidden Proxies may rank methods; they do not mint published cardinal % vs an unsealed clock.

07 / Workspace map

Workspace roles

Workspaces isolate volumes, seeds, and the clock. The sealed denominator stays separate from research proxies. These codes are roles, not a leaderboard and not public account names.

Clock

Sealed stock denominator. Cardinal reporting starts from a fingerprinted seal.

Claim pairs

Full-horizon candidate seals. Matched stock where scheduled. Same-workspace F1 on Claim-W2.

Research

Proxies and no-gos. Ordinal until promoted into a sealed claim.

Workspace provenance by role. Swipe on small screens.
Workspace code(s) Campaign role How evidence is used
Clock-W Clock — F1_seal The one public stock denominator. Every published % starts here.
Claim-W1 Claim seeds 1337 + 4242 First + third candidate seals (4242 candidate-only).
Claim-W2 Claim seed 2029 + F1 re-seal Second candidate seal. Same-workspace F1 cross-check.
Research-W1…W6 Research boards, horizon screens, component bank, Tier A Ordinal ranking and no-gos. Does not mint a published cardinal %.
Archive-W1…W3 Historical scale / F1 / F2b History and diagnostics. Not a seal.

08 / Evidence paths

Downloads, links, seal paths

Same-origin CSV downloads and public GitHub links first. Seal paths are repo labels, not web downloads.

Headline seals (repo paths)

  • nocap-repo/results/claim_stack_v1/MULTI_SEED_CLAIM.md
  • …/SEED1337_SUMMARY.md
  • …/SEED2029_SUMMARY.md
  • …/SEED4242_SUMMARY.md
  • …/F1_Claim-W2 summary
  • nocap-repo/results/f1_seal/SUMMARY.md

Protocol & history (repo paths)

  • nocap-repo/docs/ops/FAIR_CLOCK.md
  • …/claim_stack_v1/PREREG.md
  • …/systems_v1/SUMMARY.md
  • …/theory_split_qkv_cheap_v1/SUMMARY.md
  • …/claim_muon_par/SUMMARY.md
  • results/claim_muon_wsd/log.csv

Replication vs log audit

Full replication needs the trainer and data offline. Log audit does not — use the CSVs above. Same quality endpoint either way. Do not substitute a prettier curve.

  1. Confirm exact A100-SXM4-40GB and torch 2.13.0+cu130.
  2. Raw FineWeb + official disjoint val + frozen recipe above.
  3. Run the seed through 4,768 updates; keep compile warmup in T.
  4. First CSV row with val_disjoint ≤ 3.3821 → read train_time_ms.
  5. Compare % to F1_seal; also same-workspace F1_Claim-W2 where available.
  6. Report terminal CE, step, environment, and all no-cross controls.

09 / Documentation

Methods appendix

Companion HTML pages (markdown sources alongside for download).

Canonical URLs
https://nocap.think2earn.com/DOCS_INDEX.html https://nocap.think2earn.com/FAIR_CLOCK.html https://nocap.think2earn.com/HOW_TO_READ_EVIDENCE.html https://nocap.think2earn.com/preview-schema.html https://nocap.think2earn.com/data/f1_seal.csv
Architecture appendix (optional)

This report is results-first. Architecture mattered as a delta: timing-cheap split-QKV sits on a Muon hybrid optimizer, B32×accum16 systems path, frozen prior, WSD schedule (wu476/wd1192), bf16+compile, and parallel block. Dual-polar split was killed on timing tax (~1.026). Joint QKV on the same stack is the control that quality-missed. Trainer and kit are not hosted on this site.