Skip to content
nano-gpt-data-curation

claude-opus-5

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

backend
modal
variant
claude claude-opus-5
metric
held-out multi-domain perplexity
actions
66
duration
1h 13m
recorded
2026-08-03

run iddclm-nano-curation__YA9bqxQ

Everything claude-opus-5 did on this task, in order.

download JSON ↗
claude-codeclaude-opus-559 turns31 narration66 action66 observation28 reasoning1 final
#51
narration

Now making the deliverable self-contained and verifying it reproduces from scratch (no caches).

toolBashCold-start reproducibility check
args
{
  "command": "cd /workspace\ncp feats.py submission/feats.py\npython - <<'PY'\np='submission/curate.py'; s=open(p).read()\ns=s.replace('''sys.path.insert(0, \"/workspace\")\nfrom feats import build, STAT_NAMES, norm, B''',\n'''sys.path[:0] = [os.path.dirname(os.path.abspath(__file__)), \"/workspace\"]\nfrom feats import build, STAT_NAMES, norm, B''')\ns=s.replace('''import argparse, hashlib, json, os, pickle, sys, time''',\n            '''import argparse, hashlib, json, os, pickle, sys, time''')\nopen(p,'w').write(s)\nPY\ngrep -n \"sys.path\" submission/curate.py\ncp submission/selection.json /tmp/selection_final_backup.json\nrm -f /tmp/pool.pkl /tmp/pool_feats.npz /tmp/dev_feats.npz /tmp/dev_text.txt\ntime python submission/curate.py --out /tmp/repro.json 2>&1 | tail -4\npython -c \"\nimport json\na=json.load(open('/tmp/selection_final_backup.json')); b=json.load(open('/tmp/repro.json'))\nprint('cold-start reproduction identical:', a==b, len(a), len(b))\n\"",
  "description": "Cold-start reproducibility check",
  "timeout": 900000
}
Bash result
74:sys.path[:0] = [os.path.dirname(os.path.abspath(__file__)), "/workspace"]
  dedup dropped 2302 duplicate/near-duplicate docs -> 91584 left
selected 51096 ids, ~36.0M est tokens (~19635 docs fill the 12M budget)
  register mix of the in-budget prefix: {'wiki': 6924, 'webprose': 1187, 'news': 5143, 'qa': 6381}
wrote /tmp/repro.json  (53s)

real	0m54.838s
user	5m31.690s
sys	0m27.320s
cold-start reproduction identical: True 51096 51096

[stdout]
74:sys.path[:0] = [os.path.dirname(os.path.abspath(__file__)), "/workspace"]
  dedup dropped 2302 duplicate/near-duplicate docs -> 91584 left
selected 51096 ids, ~36.0M est tokens (~19635 docs fill the 12M budget)
  register mix of the in-budget prefix: {'wiki': 6924, 'webprose': 1187, 'news': 5143, 'qa': 6381}
wrote /tmp/repro.json  (53s)

real	0m54.838s
user	5m31.690s
sys	0m27.320s
cold-start reproduction identical: True 51096 51096
[metadata] {"noOutputExpected": false}
#52
narration

Cold-start reproduction is bit-identical. Now tightening the claim's comparisons so the ablations quote matched controls.

toolEdit
args
{
  "replace_all": false,
  "file_path": "/workspace/claim.md",
  "old_string": "| register-balanced, equal token quotas                 | 370.9   |  −23.6%   |\n| register-balanced, quotas = target's own shares       | 369.0   |  −24.0%   |\n| final config, but **no quality gate**                 | 362.3   |  −25.4%   |\n| final config, but **tightened** quality gate          | 383.3   |  −21.1%   |\n| **final: tuned quotas + contrastive register ranking**| **343.8** | **−29.2%** |\n\nAll three predictions hold, and the ordering is the informative part: no-gate (362) is\nmuch closer to the final (344) than no-balance (433) is. Balance is worth ~90 ppl, the\ngate ~18 ppl.",
  "new_string": "| register-balanced, equal token quotas                 | 370.9   |  −23.6%   |\n| register-balanced, quotas = target's own shares       | 369.0   |  −24.0%   |\n| tuned quotas, no contrast term — *matched control for the two gate rows* | 346.7 | −28.6% |\n| ⤷ same, but **no quality gate**                        | 362.3   |  −25.4%   |\n| ⤷ same, but **tightened** quality gate                 | 383.3   |  −21.1%   |\n| **final: tuned quotas + contrastive register ranking**| **343.8** | **−29.2%** |\n\nAll three predictions hold, and the ordering is the informative part. Against matched\ncontrols: register balance is worth ~90 ppl (433.5 → 343.8), while the quality gate is\nworth ~16 ppl (362.3 vs its matched control 346.7) and over-tightening it costs ~37 ppl\n(383.3 vs 346.7). The contrast term itself is worth ~3 ppl — inside the noise band below,\nso I claim nothing for it beyond \"not harmful\"."
}
Edit result
The file /workspace/claim.md has been updated successfully. (file state is current in your context — no need to Read it back)

[metadata] {"filePath": "/workspace/claim.md", "oldString": "| register-balanced, equal token quotas                 | 370.9   |  −23.6%   |\n| register-balanced, quotas = target's own shares       | 369.0   |  −24.0%   |\n| final config, but **no quality gate**                 | 362.3   |  −25.4%   |\n| final config, but **tightened** quality gate          | 383.3   |  −21.1%   |\n| **final: tuned quotas + contrastive register ranking**| **343.8** | **−29.2%** |\n\nAll three predictions hold, and the ordering is the informative part: no-gate (362) is\nmuch closer to the final (344) than no-balance (433) is. Balance is worth ~90 ppl, the\ngate ~18 ppl.", "newString": "| register-balanced, equal token quotas                 | 370.9   |  −23.6%   |\n| register-balanced, quotas = target's own shares       | 369.0   |  −24.0%   |\n| tuned quotas, no contrast term — *matched control for the two gate rows* | 346.7 | −28.6% |\n| ⤷ same, but **no quality gate**                        | 362.3   |  −25.4%   |\n| ⤷ same, but **tightened** quality gate                 | 383.3   |  −21.1%   |\n| **final: tuned quotas + contrastive register ranking**| **343.8** | **−29.2%** |\n\nAll three predictions hold, and the ordering is the informative part. Against matched\ncontrols: register balance is worth ~90 ppl (433.5 → 343.8), while the quality gate is\nworth ~16 ppl (362.3 vs its matched control 346.7) and over-tightening it costs ~37 ppl\n(383.3 vs 346.7). The contrast term itself is worth ~3 ppl — inside the noise band below,\nso I claim nothing for it beyond \"not harmful\".", "originalFile": null, "structuredPatch": [{"oldStart": 32, "oldLines": 13, "newStart": 32, "newLines": 16, "lines": [" | register-balanced, but each cut widened 2× (\"diversity\") | 429.7 |  −11.5%   |", " | register-balanced, equal token quotas                 | 370.9   |  −23.6%   |", " | register-balanced, quotas = target's own shares       | 369.0   |  −24.0%   |", "-| final config, but **no quality gate**                 | 362.3   |  −25.4%   |", "-| final config, but **tightened** quality gate          | 383.3   |  −21.1%   |", "+| tuned quotas, no contrast term — *matched control for the two gate rows* | 346.7 | −28.6% |", "+| ⤷ same, but **no quality gate**                        | 362.3   |  −25.4%   |", "+| ⤷ same, but **tightened** quality gate                 | 383.3   |  −21.1%   |", " | **final: tuned quotas + contrastive register ranking**| **343.8** | **−29.2%** |", " ", "-All three predictions hold, and the ordering is the informative part: no-gate (362) is", "-much closer to the final (344) than no-balance (433) is. Balance is worth ~90 ppl, the", "-gate ~18 ppl.", "+All three predictions hold, and the ordering is the informative part. Against matched", "+controls: register balance is worth ~90 ppl (433.5 → 343.8), while the quality gate is", "+worth ~16 ppl (362.3 vs its matched control 346.7) and over-tightening it costs ~37 ppl", "+(383.3 vs 346.7). The contrast term itself is worth ~3 ppl — inside the noise band below,", "+so I claim nothing for it beyond \"not harmful\".", " ", " ## Mechanism — and an observable that is *not* the final perplexity", " "]}], "userModified": false, "replaceAll": false}
#53
reasoning (redacted)

encrypted chain-of-thought — recorded, not exposed

toolBashFix ablation baselines in both docs
args
{
  "command": "cd /workspace\npython - <<'PY'\np='claim.md'; s=open(p).read()\ns=s.replace(\"*Result: tightening to the target's 5th/95th percentiles costs\\n  +39 ppl — not falsified.*\",\n            \"*Result: tightening to the target's 5th/95th percentiles costs\\n  +37 ppl against its matched control — not falsified.*\")\ns=s.replace(\"gate ~18 ppl\",\"gate ~16 ppl\")\nopen(p,'w').write(s)\nq='submission/curate.py'; t=open(q).read()\nt=t.replace(\"\"\"recipe on candidate selections and reading dev perplexity on data/multi_dev.npy (24\nruns).\"\"\",\"\"\"recipe on candidate selections and reading dev perplexity on data/multi_dev.npy (30\nruns).\"\"\")\nt=t.replace(\"\"\"    register-balanced, quotas = target's own shares            369.0\n    ... no quality gate (scoring only)                          362.3\n    ... tightened quality gate                                  383.3\n    THIS CONFIG (tuned weights + contrast)                      343.8\"\"\",\n\"\"\"    register-balanced, quotas = target's own shares             369.0\n    tuned quotas, no contrast  <- matched control, next two rows 346.7\n      ... same but no quality gate (scoring only)               362.3\n      ... same but tightened quality gate                       383.3\n    THIS CONFIG (tuned weights + contrast)                      343.8\"\"\")\nopen(q,'w').write(t)\nPY\ngrep -n \"39 ppl\\|+37 ppl\\|~16 ppl\" claim.md; echo \"--- curate table:\"; sed -n '/random selection (do-nothing/,/THIS CONFIG/p' submission/curate.py\npython -c \"import ast;ast.parse(open('/workspace/submission/curate.py').read());print('syntax ok')\"",
  "description": "Fix ablation baselines in both docs",
  "timeout": 300000
}
Bash result
42:worth ~16 ppl (362.3 vs its matched control 346.7) and over-tightening it costs ~37 ppl
117:  +37 ppl against its matched control — not falsified.*
--- curate table:
    random selection (do-nothing baseline)                     485.5
    single pooled target model, no register balance            433.5
    register-balanced but cut widened 2x for diversity         429.7
    register-balanced, equal token quotas                      370.9
    register-balanced, quotas = target's own register shares    369.0
    ... no quality gate (scoring only)                          362.3
    ... tightened quality gate                                  383.3
    THIS CONFIG (tuned weights + contrast)                      343.8
syntax ok

[stdout]
42:worth ~16 ppl (362.3 vs its matched control 346.7) and over-tightening it costs ~37 ppl
117:  +37 ppl against its matched control — not falsified.*
--- curate table:
    random selection (do-nothing baseline)                     485.5
    single pooled target model, no register balance            433.5
    register-balanced but cut widened 2x for diversity         429.7
    register-balanced, equal token quotas                      370.9
    register-balanced, quotas = target's own register shares    369.0
    ... no quality gate (scoring only)                          362.3
    ... tightened quality gate                                  383.3
    THIS CONFIG (tuned weights + contrast)                      343.8
syntax ok
[metadata] {"noOutputExpected": false}
#54
reasoning (redacted)

encrypted chain-of-thought — recorded, not exposed

toolEdit
args
{
  "replace_all": false,
  "file_path": "/workspace/submission/curate.py",
  "old_string": "    register-balanced, quotas = target's own register shares    369.0\n    ... no quality gate (scoring only)                          362.3\n    ... tightened quality gate                                  383.3\n    THIS CONFIG (tuned weights + contrast)                      343.8",
  "new_string": "    register-balanced, quotas = target's own register shares    369.0\n    tuned quotas, no contrast <- matched control for next two   346.7\n      ... same, but no quality gate (scoring only)              362.3\n      ... same, but tightened quality gate                      383.3\n    THIS CONFIG (tuned weights + contrast)                      343.8"
}
Edit result
The file /workspace/submission/curate.py has been updated successfully. (note: the file had been modified on disk since you last read it — the edit applied cleanly, but the file contains other changes not in your context. Read it before edits that depend on surrounding content.)

[metadata] {"filePath": "/workspace/submission/curate.py", "oldString": "    register-balanced, quotas = target's own register shares    369.0\n    ... no quality gate (scoring only)                          362.3\n    ... tightened quality gate                                  383.3\n    THIS CONFIG (tuned weights + contrast)                      343.8", "newString": "    register-balanced, quotas = target's own register shares    369.0\n    tuned quotas, no contrast <- matched control for next two   346.7\n      ... same, but no quality gate (scoring only)              362.3\n      ... same, but tightened quality gate                      383.3\n    THIS CONFIG (tuned weights + contrast)                      343.8", "originalFile": null, "structuredPatch": [{"oldStart": 59, "oldLines": 8, "newStart": 59, "newLines": 9, "lines": ["     register-balanced but cut widened 2x for diversity         429.7", "     register-balanced, equal token quotas                      370.9", "     register-balanced, quotas = target's own register shares    369.0", "-    ... no quality gate (scoring only)                          362.3", "-    ... tightened quality gate                                  383.3", "+    tuned quotas, no contrast <- matched control for next two   346.7", "+      ... same, but no quality gate (scoring only)              362.3", "+      ... same, but tightened quality gate                      383.3", "     THIS CONFIG (tuned weights + contrast)                      343.8", " ", " Usage:  python curate.py                      # reproduces the submitted selection"]}], "userModified": false, "replaceAll": false, "staleRecovered": true}
#55
reasoning (redacted)

encrypted chain-of-thought — recorded, not exposed

toolEdit
args
{
  "replace_all": false,
  "file_path": "/workspace/claim.md",
  "old_string": "available in the pool: the encyclopedic slice is by far the hardest and the scarcest.\nRandom selection spends ~94% of its budget on text that is either junk or off-register,\nso it under-serves the hard registers badly.",
  "new_string": "available in the pool: the encyclopedic slice is by far the hardest and the scarcest.\nRandom selection draws a *representative* sample of the pool — about half of it fails the\nquality gate (the gate keeps 52%), and its register mix is the pool's rather than the\ntarget's — so it under-serves the hard registers badly."
}
Edit result
The file /workspace/claim.md has been updated successfully. (file state is current in your context — no need to Read it back)

[metadata] {"filePath": "/workspace/claim.md", "oldString": "available in the pool: the encyclopedic slice is by far the hardest and the scarcest.\nRandom selection spends ~94% of its budget on text that is either junk or off-register,\nso it under-serves the hard registers badly.", "newString": "available in the pool: the encyclopedic slice is by far the hardest and the scarcest.\nRandom selection draws a *representative* sample of the pool — about half of it fails the\nquality gate (the gate keeps 52%), and its register mix is the pool's rather than the\ntarget's — so it under-serves the hard registers badly.", "originalFile": null, "structuredPatch": [{"oldStart": 50, "oldLines": 8, "newStart": 50, "newLines": 9, "lines": [" *formatting* is unmatchable and cannot be the source of any gain). What varies is register", " and well-formedness. The four registers are not equally easy, and they are not equally", " available in the pool: the encyclopedic slice is by far the hardest and the scarcest.", "-Random selection spends ~94% of its budget on text that is either junk or off-register,", "-so it under-serves the hard registers badly.", "+Random selection draws a *representative* sample of the pool — about half of it fails the", "+quality gate (the gate keeps 52%), and its register mix is the pool's rather than the", "+target's — so it under-serves the hard registers badly.", " ", " **Prediction (observable, not the score), registered before measuring: the per-register", " held-out loss improves on *every* register, unevenly, with the largest gain on the register"]}], "userModified": false, "replaceAll": false}
#56
narration

Final end-to-end verification of all three deliverables.

toolBashFinal deliverable verification
args
{
  "command": "cd /workspace\necho \"=== files ===\"; ls -la submission/ claim.md\necho; echo \"=== selection.json validity ===\"\npython -c \"\nimport json,numpy as np\nsel=json.load(open('submission/selection.json'))\nassert isinstance(sel,list) and all(isinstance(x,int) for x in sel)\nprint('ids:',len(sel),'| unique:',len(set(sel))==len(sel),'| range ok:',min(sel)>=0 and max(sel)<=182015)\nprint('identical to cold-start repro:',sel==json.load(open('/tmp/repro.json')))\n\"\necho; echo \"=== official packer fills budget ===\"\nexport TOKENIZERS_PARALLELISM=false\npython pack_selection.py submission/selection.json /tmp/final_check.npy 2>&1 | grep packed\npython -c \"import numpy as np;a=np.load('/tmp/final_check.npy');print('tokens:',len(a),'dtype',a.dtype,'max id',a.max())\"\necho; echo \"=== curate.py runs clean (--help) ===\"; python submission/curate.py --help | head -14\ncat .timer/remaining_secs",
  "description": "Final deliverable verification",
  "timeout": 600000
}
Bash result
=== files ===
-rw-r--r-- 1 root root 10916 Aug  4 00:34 claim.md

submission/:
total 379
drwxr-xr-x 1 root root    200 Aug  4 00:34 .
drwxr-xr-x 1 root root    560 Aug  4 00:34 ..
drwxr-xr-x 1 root root    120 Aug  4 00:32 __pycache__
-rw-r--r-- 1 root root  17297 Aug  4 00:34 curate.py
-rw-r--r-- 1 root root   5657 Aug  4 00:32 feats.py
-rw-r--r-- 1 root root 364153 Aug  4 00:21 selection.json

=== selection.json validity ===
ids: 51096 | unique: True | range ok: True
identical to cold-start repro: True

=== official packer fills budget ===
packed 12000000 tokens from 51096 ids -> /tmp/final_check.npy
tokens: 12000000 dtype uint16 max id 50256

=== curate.py runs clean (--help) ===
usage: curate.py [-h] [--variant {balanced,global,random}] [--out OUT]
                 [--seed SEED] [--topmult TOPMULT] [--nogate] [--nodedup]
                 [--contrast CONTRAST] [--strict] [--smooth SMOOTH]
                 [--clip CLIP] [--weights WEIGHTS]

options:
  -h, --help            show this help message and exit
  --variant {balanced,global,random}
  --out OUT
  --seed SEED
  --topmult TOPMULT     widen each register's cut to topmult x needed, then
                        shuffle
  --nogate              ablation: skip the quality gate
  --nodedup             ablation: skip dedup
1265

[stdout]
=== files ===
-rw-r--r-- 1 root root 10916 Aug  4 00:34 claim.md

submission/:
total 379
drwxr-xr-x 1 root root    200 Aug  4 00:34 .
drwxr-xr-x 1 root root    560 Aug  4 00:34 ..
drwxr-xr-x 1 root root    120 Aug  4 00:32 __pycache__
-rw-r--r-- 1 root root  17297 Aug  4 00:34 curate.py
-rw-r--r-- 1 root root   5657 Aug  4 00:32 feats.py
-rw-r--r-- 1 root root 364153 Aug  4 00:21 selection.json

=== selection.json validity ===
ids: 51096 | unique: True | range ok: True
identical to cold-start repro: True

=== official packer fills budget ===
packed 12000000 tokens from 51096 ids -> /tmp/final_check.npy
tokens: 12000000 dtype uint16 max id 50256

=== curate.py runs clean (--help) ===
usage: curate.py [-h] [--variant {balanced,global,random}] [--out OUT]
                 [--seed SEED] [--topmult TOPMULT] [--nogate] [--nodedup]
                 [--contrast CONTRAST] [--strict] [--smooth SMOOTH]
                 [--clip CLIP] [--weights WEIGHTS]

options:
  -h, --help            show this help message and exit
  --variant {balanced,global,random}
  --out OUT
  --seed SEED
  --topmult TOPMULT     widen each register's cut to topmult x needed, then
                        shuffle
  --nogate              ablation: skip the quality gate
  --nodedup             ablation: skip dedup
1265
[metadata] {"noOutputExpected": false}
#57
reasoning (redacted)

encrypted chain-of-thought — recorded, not exposed

toolBashRead final section of claim.md
args
{
  "command": "cd /workspace; rm -rf submission/__pycache__; sed -n '119,170p' claim.md",
  "description": "Read final section of claim.md"
}
Bash result
Honest limits. (i) Perturbing the selection reshuffles which documents land inside the 12M
cut and moves dev PPL by roughly ±8 on its own; I treated only effects well outside that
band as real, so the exact quota vector (0.40/0.05/0.25/0.30) and `contrast=1.0` are *not*
individually resolved — several nearby settings land in 344–357, and the mixture landscape
is rugged rather than a smooth basin (the centroid of the good region scores 356.9, worse
than its corners). The large effects in the table are 5–11× the noise band; the last ~5
ppl of quota tuning is not. (ii) Quotas, smoothing and clip were tuned against the
disclosed dev sample, so some of that last few ppl is dev-specific and should not be
expected to transfer. (iii) Absolute perplexity is high (~344) because this is a 30M
model on 12M tokens; only relative comparisons are meaningful here. (iv) Register
boundaries in the dev stream were read off a marker scan and are approximate (±1%), which
slightly blurs the per-register attribution above.

## Transfer

Register-scarcity, not the specific weights, is the transferable claim.

- **To the hidden target:** it is a different sample of the same four-register domain. The
  effects I rely on are compositional and low-dimensional (which registers, in what token
  proportion) rather than topical, and the ordering of my ablations spans 90 ppl against an
  ±8 noise band, so it should survive resampling. The tuned quota vector should partly not
  transfer; I expect the hidden score near the dev value but above it.
- **What transfers to other budgets:** the *tighter* the budget relative to the pool, the
  more balance dominates junk-filtering, and the more selectivity should beat diversity.
  At 6% these point the same way; at 50% of the pool I would expect the diversity result
  to reverse, since the top of each register's ranking would be exhausted.
- **What transfers to other pools/targets:** the recipe needs only a sample of the target
  and no labels — hash n-grams, fit one importance model *per register* of the target,
  gate on statistics calibrated from the target's own distribution, and interleave against
  token quotas. The interleave-by-token-deficit ordering is worth keeping generally: it
  makes the mixture correct at *every prefix*, so the composition is invariant to exactly
  where a token budget truncates the list.
- **What would not transfer:** the approach assumes the target's registers are all
  *present* in the pool. Here formatting was unmatchable but register was; against a
  target containing something the pool genuinely lacks (e.g. real code), per-register
  importance weighting would return the nearest available prose and the gain on that
  register would largely vanish.

## Reproduce

```
python submission/curate.py                 # -> submission/selection.json  (dev PPL 343.8)
python submission/curate.py --variant random # -> do-nothing baseline       (dev PPL 485.5)
bash dev_eval.sh submission/selection.json  # pack 12M tokens + train + report dev PPL
python slice_dev.py                         # build the four per-register dev slices
```

[stdout]
Honest limits. (i) Perturbing the selection reshuffles which documents land inside the 12M
cut and moves dev PPL by roughly ±8 on its own; I treated only effects well outside that
band as real, so the exact quota vector (0.40/0.05/0.25/0.30) and `contrast=1.0` are *not*
individually resolved — several nearby settings land in 344–357, and the mixture landscape
is rugged rather than a smooth basin (the centroid of the good region scores 356.9, worse
than its corners). The large effects in the table are 5–11× the noise band; the last ~5
ppl of quota tuning is not. (ii) Quotas, smoothing and clip were tuned against the
disclosed dev sample, so some of that last few ppl is dev-specific and should not be
expected to transfer. (iii) Absolute perplexity is high (~344) because this is a 30M
model on 12M tokens; only relative comparisons are meaningful here. (iv) Register
boundaries in the dev stream were read off a marker scan and are approximate (±1%), which
slightly blurs the per-register attribution above.

## Transfer

Register-scarcity, not the specific weights, is the transferable claim.

- **To the hidden target:** it is a different sample of the same four-register domain. The
  effects I rely on are compositional and low-dimensional (which registers, in what token
  proportion) rather than topical, and the ordering of my ablations spans 90 ppl against an
  ±8 noise band, so it should survive resampling. The tuned quota vector should partly not
  transfer; I expect the hidden score near the dev value but above it.
- **What transfers to other budgets:** the *tighter* the budget relative to the pool, the
  more balance dominates junk-filtering, and the more selectivity should beat diversity.
  At 6% these point the same way; at 50% of the pool I would expect the diversity result
  to reverse, since the top of each register's ranking would be exhausted.
- **What transfers to other pools/targets:** the recipe needs only a sample of the target
  and no labels — hash n-grams, fit one importance model *per register* of the target,
  gate on statistics calibrated from the target's own distribution, and interleave against
  token quotas. The interleave-by-token-deficit ordering is worth keeping generally: it
  makes the mixture correct at *every prefix*, so the composition is invariant to exactly
  where a token budget truncates the list.
- **What would not transfer:** the approach assumes the target's registers are all
  *present* in the pool. Here formatting was unmatchable but register was; against a
  target containing something the pool genuinely lacks (e.g. real code), per-register
  importance weighting would return the nearest available prose and the gain on that
  register would largely vanish.

## Reproduce

```
python submission/curate.py                 # -> submission/selection.json  (dev PPL 343.8)
python submission/curate.py --variant random # -> do-nothing baseline       (dev PPL 485.5)
bash dev_eval.sh submission/selection.json  # pack 12M tokens + train + report dev PPL
python slice_dev.py                         # build the four per-register dev slices
```
[metadata] {"noOutputExpected": false}
#58
narration

One numeric overstatement to correct — the multipliers don't all hold.

toolEdit
args
{
  "replace_all": false,
  "file_path": "/workspace/claim.md",
  "old_string": "is rugged rather than a smooth basin (the centroid of the good region scores 356.9, worse\nthan its corners). The large effects in the table are 5–11× the noise band; the last ~5\nppl of quota tuning is not. (ii)",
  "new_string": "is rugged rather than a smooth basin (the centroid of the good region scores 356.9, worse\nthan its corners). Sized against that ±8 band: random→final is ~18×, register balance ~11×,\nthe diversity result ~11×, tuned-vs-equal quotas ~3×, over-tightening the gate ~5×, and the\ngate itself ~2× — so the gate effect is the weakest of the ones I claim, and the last ~5 ppl\nof quota tuning I do not claim at all. (ii)"
}
Edit result
The file /workspace/claim.md has been updated successfully. (file state is current in your context — no need to Read it back)

[metadata] {"filePath": "/workspace/claim.md", "oldString": "is rugged rather than a smooth basin (the centroid of the good region scores 356.9, worse\nthan its corners). The large effects in the table are 5–11× the noise band; the last ~5\nppl of quota tuning is not. (ii)", "newString": "is rugged rather than a smooth basin (the centroid of the good region scores 356.9, worse\nthan its corners). Sized against that ±8 band: random→final is ~18×, register balance ~11×,\nthe diversity result ~11×, tuned-vs-equal quotas ~3×, over-tightening the gate ~5×, and the\ngate itself ~2× — so the gate effect is the weakest of the ones I claim, and the last ~5 ppl\nof quota tuning I do not claim at all. (ii)", "originalFile": null, "structuredPatch": [{"oldStart": 122, "oldLines": 8, "newStart": 122, "newLines": 10, "lines": [" band as real, so the exact quota vector (0.40/0.05/0.25/0.30) and `contrast=1.0` are *not*", " individually resolved — several nearby settings land in 344–357, and the mixture landscape", " is rugged rather than a smooth basin (the centroid of the good region scores 356.9, worse", "-than its corners). The large effects in the table are 5–11× the noise band; the last ~5", "-ppl of quota tuning is not. (ii) Quotas, smoothing and clip were tuned against the", "+than its corners). Sized against that ±8 band: random→final is ~18×, register balance ~11×,", "+the diversity result ~11×, tuned-vs-equal quotas ~3×, over-tightening the gate ~5×, and the", "+gate itself ~2× — so the gate effect is the weakest of the ones I claim, and the last ~5 ppl", "+of quota tuning I do not claim at all. (ii) Quotas, smoothing and clip were tuned against the", " disclosed dev sample, so some of that last few ppl is dev-specific and should not be", " expected to transfer. (iii) Absolute perplexity is high (~344) because this is a 30M", " model on 12M tokens; only relative comparisons are meaningful here. (iv) Register"]}], "userModified": false, "replaceAll": false}
#59
reasoning (redacted)

encrypted chain-of-thought — recorded, not exposed

toolBashFinal state check
args
{
  "command": "cd /workspace; ls -la submission/; echo; python -c \"\nimport json;s=json.load(open('submission/selection.json'));print('selection.json OK:',len(s),'ids, unique:',len(set(s))==len(s))\"; echo; sort -k3 -n results.txt | head -3; echo; cat .timer/remaining_secs",
  "description": "Final state check"
}
Bash result
total 379
drwxr-xr-x 1 root root    180 Aug  4 00:35 .
drwxr-xr-x 1 root root    580 Aug  4 00:35 ..
-rw-r--r-- 1 root root  17297 Aug  4 00:34 curate.py
-rw-r--r-- 1 root root   5657 Aug  4 00:32 feats.py
-rw-r--r-- 1 root root 364153 Aug  4 00:21 selection.json

selection.json OK: 51096 ids, unique: True

con1  HELDOUT_PPL 343.771  loss 5.8400  train_s 50  /tmp/tr_con1.npy
w040005025030  HELDOUT_PPL 346.657  loss 5.8483  train_s 50  /tmp/tr_w040005025030.npy
con  HELDOUT_PPL 346.859  loss 5.8489  train_s 50  /tmp/tr_con.npy

1225

[stdout]
total 379
drwxr-xr-x 1 root root    180 Aug  4 00:35 .
drwxr-xr-x 1 root root    580 Aug  4 00:35 ..
-rw-r--r-- 1 root root  17297 Aug  4 00:34 curate.py
-rw-r--r-- 1 root root   5657 Aug  4 00:32 feats.py
-rw-r--r-- 1 root root 364153 Aug  4 00:21 selection.json

selection.json OK: 51096 ids, unique: True

con1  HELDOUT_PPL 343.771  loss 5.8400  train_s 50  /tmp/tr_con1.npy
w040005025030  HELDOUT_PPL 346.657  loss 5.8483  train_s 50  /tmp/tr_w040005025030.npy
con  HELDOUT_PPL 346.859  loss 5.8489  train_s 50  /tmp/tr_con.npy

1225
[metadata] {"noOutputExpected": false}
final summary

Done. All three deliverables are in place and verified end-to-end.

Result

Dev perplexity 343.77 vs 485.46 random baseline — 29.2% lower, measured with the frozen recipe on the exact submitted selection.json.

What the pool turned out to be

Decoding multi_dev.npy revealed the target is four registers: ~28% WikiText-Wikipedia, ~28% web prose, ~25% news, ~19% StackExchange-with-HTML. But the pool contains zero wikitext @-@ escapes, zero <p>/<code>, zero blank-line paragraphing — target formatting is unmatchable, so I stripped those artifacts before scoring and let the criterion work on register and well-formedness instead.

Criterion

  1. Per-register importance weighting (DSIR-style): 20k hashed uni+bigram buckets, one smoothed multinomial per register, score = mean sqrt-tf-weighted log-ratio log p_d/q. Length-normalized (budget is in tokens), sqrt-tf and clipped (the first version's top-ranked "encyclopedic" doc was dating-site spam; sqrt-tf fixed that). Ranked contrastively, since the raw register scores correlate at r≈0.82–0.86 and otherwise return the same documents four times.
  2. Quality gate with thresholds calibrated from the target's own statistic distributions, plus dedup. Keeps 52%.
  3. Interleave by token deficit, so the mixture holds at every prefix — invariant to where the 12M cut lands.

Ablations (30 runs)

dev PPL
random485.5
no register balance (single pooled model)433.5
cut widened 2× for "diversity"429.7
equal token quotas370.9
no quality gate (matched control 346.7)362.3
final343.8

Balance is worth ~90 ppl; the gate ~16. Selectivity beats diversity decisively at a 6% budget.

Two things worth flagging

  • My registered mechanism prediction was half wrong. I predicted the largest per-register gain on the encyclopedic slice; measured, it's news (−35.2%) with encyclopedic second (−31.9%). All four improve (20–35%), which was the load-bearing half. The encyclopedic slice stays hardest by far even after curation (696 vs 257–288) — I read that residual as the pool being genuinely short of encyclopedic text. claim.md records this as falsified-as-stated.
  • ±8 ppl noise floor. Perturbing the selection reshuffles which docs land inside the cut. The exact quota vector and contrast=1.0 are not resolved above that band, and the mixture landscape is rugged (its centroid scores 356.9, worse than its corners). Expect the hidden score near 344 but above it.

Reproducibility: I deleted all caches and re-ran curate.py cold — bit-identical output. The official pack_selection.py fills exactly 12,000,000 tokens from 51,096 unique in-range ids. feats.py is copied into submission/ so the deliverable is self-contained.