Skip to content
nano-gpt-data-curation

claude-opus-4-8

nano-gpt-data-curation — graded by the task's verifier against a measured baseline.

backend
modal
variant
claude claude-opus-4-8
metric
held-out multi-domain perplexity
actions
102
duration
1h 9m
recorded
2026-08-04

run iddclm-nano-curation__TGPvq9r

Score

reward
354.110
compare against every run on this task →

Summary

Done. All three deliverables are complete, validated by real training runs, and reproducible.

Result

Curated selection scores 384.97 held-out perplexity vs. 476.71 random baseline — a 19.2% reduction.

What's shipped

FileContents
/workspace/submission/selection.json45,000 unique in-range ids, priority-ordered; packer fills exactly 12M tokens with reserve
/workspace/curate.pySelf-contained, deterministic; default run reproduces selection.json bit-for-bit
/workspace/claim.mdHypothesis / Mechanism / Falsification / Transfer, with measured O1 + O2

(Copies of curate.py and claim.md also placed in submission/ as a path hedge.)

The criterion (stated in curate.py)

Rank pool docs by a DSIR/NBSVM log-likelihood-ratio to the disclosed target (log P(f|target) − log P(f|background) over hashed unigram+bigram features, scored as the mean of clipped per-feature weights — kills length bias and rare-word-salad), behind an English clean-prose junk filter (stopword-fraction, mean-word-length, unique-ratio, ascii/symbol/digit gates), deduplicated by content fingerprint. A single combined head (all dev registers as positives) because the pool audit found no code — a separate technical selector only drags in multilingual boilerplate.

Experiments run (the eval was the oracle)

  • Combined head + filter: 384.97 ← best, shipped
  • + word-bigram fluency demotion: 385.9 (neutral — filter already removes most junk)
  • Force ~25% encyclopedic: 396.1 (worse — pool under-supplies wiki)
  • Prose-only head (drop Q&A positives): 440.9 (worse — Q&A vocab matters)

Mechanism, measured (the interesting part)

The 19% win is register-localized, not uniform. Splitting the target into prose (75%) and code/Q&A (25%):

  • O1 (data cross-entropy, no model): prose 8.128→7.889 (↓), code 8.068→8.447 (↑)
  • O2 (per-register perplexity): prose 519→360 (−31%), code 370→469 (+27%)

Because the pool has no code, curation doesn't just fail to help the code register — it trades it away to buy prose. That's a falsifiable, structured prediction distinct from the single aggregate number, and it's what the claim rests on.

~25 min of budget remain, but further tuning would risk overfitting the dev proxy against the hidden official target — the four controlled ablations agree the combined head is robustly best, so I stopped there.

Transcript