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
- 61
- duration
- 51m
- recorded
- 2026-08-04
run iddclm-nano-curation__EAKU6Ra
Score
Summary
All deliverables are final, intact, and validated. Here's the summary.
Done
I curated the pool by DSIR-style importance ranking toward the disclosed multi-domain target, and validated it end-to-end with the frozen trainer.
Deliverables (all in place):
/workspace/submission/selection.json— 40,000 unique, in-range ids in priority order; packs to exactly 12M tokens./workspace/submission/curate.py— reproducesselection.jsonbit-for-bit from a stated criterion (verifiedselection == curate output)./workspace/claim.md— Hypothesis / Mechanism / Falsification / Transfer.
The criterion: decode the disclosed target (multi_dev.npy) back to text, fit a unigram+bigram bag-of-words distribution for the target and for a random pool background, then score every document by its mean per-token log-likelihood ratio log p_target(w) − log p_background(w), apply light degeneracy filters, and fill the budget best-first.
Measured results (frozen trainer, dev target, seed 1337):
| selection (12M tokens) | dev perplexity |
|---|---|
| bottom-importance (anti-selection) | 1348.7 |
| random baseline | 459.8 |
| importance-ranked (submitted) | 335.6 |
The submission is ~27% below the random baseline, purely from data selection.
What the experiments established:
- Clean monotonic dose–response (335.6 < 459.8 < 1348.7) — training on the lowest-importance docs is ~3× worse than random, confirming the score carries real signal, not just generic "clean text" quality.
- I ablated four variants (dedup, HTML-aware features + forced Q&A inclusion, unigram-only) — all regressed, so the simple unigram+bigram LLR with duplicates kept is the shipped config. Two counterintuitive findings are documented in the claim: de-duplication hurt (duplicated high-importance docs act as implicit up-weighting under random-window sampling), and the technical-Q&A register is structurally pool-limited (only 278 of 182,016 docs have real StackOverflow markup vs ~25% of the target), so no strategy can fully cover it.