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
61
duration
43m
recorded
2026-08-04

run iddclm-nano-curation__iADFZ4p

Score

reward
330.960
compare against every run on this task →

Summary

All deliverables are complete and validated. Final summary:

Result

Curated the 182k-doc web pool down to the best 12M-token training set, cutting held-out dev perplexity from 458 (random baseline) → 345 — a 25% reduction.

Deliverables

  • `/workspace/submission/selection.json` — 60,000 priority-ordered ids (unique, in-range, packs the full 12M-token budget).
  • `/workspace/submission/curate.py` — reproduces the selection from a stated criterion; uses deterministic crc32 hashing so a fresh run reproduces the file bit-for-bit.
  • `/workspace/claim.md` — Hypothesis / Mechanism / Falsification / Transfer.

Method (DSIR-style importance selection + prose gate + dedup)

  1. Target-likeness score — estimate a target word n-gram distribution by decoding the disclosed dev sample (multi_dev.npy), a background distribution from the raw pool, and rank each doc by its mean per-feature log-likelihood ratio (hashed unigram+bigram features, K=2²²).
  2. Prose quality gate — this was the decisive fix. Bare log-ratio ranking puts degenerate junk (prime-number tables, plant-name galleries, hashtag spam) at the very top, because a doc repeating a few target-like tokens gets a near-perfect mean. Gating on function-word ratio, digit ratio, type-token ratio, and word length removes the 23.9% of the pool that is non-prose.
  3. Near-duplicate removal — dropping repeated docs (360→349).

What I verified along the way

  • Random baseline 458 → gated DSIR 360 → +dedup 349 → +larger deterministic hash 345.
  • A length-blended variant was worse (353) — quality-per-token beats raw length.
  • Observable grounding the mechanism (independent of final PPL): selection function-word ratio 0.408 vs random pool 0.356; 24% of the pool fails the prose gate.

The one caveat worth stating plainly: dev PPL is measured on multi_dev.npy; the official score is a hidden disjoint sample of the same domain, so the absolute number will move slightly, but the selection is built to match the broad target distribution, not the dev sample specifically.

Transcript