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
36
duration
40m
recorded
2026-08-04

run iddclm-nano-curation__wPVYcnk

Score

reward
343.200
compare against every run on this task →

Summary

All deliverables are in place and validated. Summary:

Result

  • Dev held-out perplexity: 335.7 vs 457.5 random baseline — a 27% reduction.

Approach

I used DSIR-style importance selection. Since the pool is unlabeled raw web text and no external quality labels exist, I derived the quality signal entirely from the disclosed target itself:

  1. Model the target: decoded multi_dev.npy (the disclosed broad target — Wikipedia, high-quality web, news, technical Q&A) into a reference unigram+bigram word distribution.
  2. Model the background: built the same distribution over the full raw pool.
  3. Rank: scored each doc by average log-likelihood ratio mean_w log p_target(w)/p_pool(w) — docs whose vocabulary looks like clean multi-domain prose float to the top; forum junk/spam/boilerplate sink.
  4. Gate: dropped degenerate docs (too short, symbol-dominated, or highly repetitive).
  5. Output: selection.json = 173,739 ids in priority order (the top ~13k fill the 12M-token budget).

What I tested and ruled out (in claim.md)

  • Random baseline: 457.5 → confirms selection helps.
  • Stratified DSIR (forcing 25% per register): 361.4 — worse; the pool contains little genuine code-Q&A, so register quotas dilute the top ranks with weaker matches. Global ranking wins.
  • Looser quality gate (0.45 vs 0.60 alpha fraction): 340.3 vs 335.7 — admitting symbol-heavy docs hurts, so I kept the stricter gate.

Deliverables: /workspace/submission/selection.json, /workspace/submission/curate.py (reproduces the selection from the stated criterion), and /workspace/claim.md.

Transcript