Data-efficient pretraining
- Score
- 49.2
- Wallet spend
- $55.17 of $200
- Model cost
- $10.70
- Agent time
- 6h 13m
- Steps
- 254
- Tokens in / out
- 79.5M / 403k
- Self-checks
- 3 passed of 4 used
- Rank at $200 wallet
- 7th of 14
Score
49.2raw metric 0.4924
The raw metric (bits per byte on held-out text) is rescaled so that 1.461 bits per byte, the organizers' 7-minute GPT-2 baseline scores 0 and 1.25 bits per byte, a target set by the task author scores 100, clamped to that range.
Verifier details
- metric
- bits_per_utf8_byte
- bpb
- 1.3571
- reward
- 0.4924
- nll_nats
- 4857315.3109
- bytes
- 5163651
- documents
- 551
- tokens
- 1322393
- unscored_documents
- 0
- vocab_size
- 16384
After grading, a reviewer model reads the submission's files and the agent's trajectory and checks each of the task's rules. A failed check makes the score 0. Step numbers link into the trajectory.
✓trained from scratcharchitecture.json sets base_model "none" and base_revision "from-scratch", and the code matches. lm.py builds the LM wit
architecture.json sets base_model "none" and base_revision "from-scratch", and the code matches. lm.py builds the LM with random normal init (std 0.02, scaled for the proj and w_out layers). prep_data.py trains a new byte-level BPE (tokenizers.models.BPE() with BpeTrainer) on the corpus texts. train.py makes LM(cfg) and trains it with AdamW. Nothing is loaded from a pretrained checkpoint, there are no from_pretrained calls, and no distillation. The final listing (trajectory#249) shows no weight files in the submission; all weights come from train.sh.
✓no embedded external dataThe shipped files are code, JSON manifests and dev logs, about 100 KB in total, with no weights (trajectory#249). The on
The shipped files are code, JSON manifests and dev logs, about 100 KB in total, with no weights (trajectory#249). The only table in the code is byte_table() in serve.py, which rebuilds GPT-2's bytes_to_unicode map. That is a fixed algorithmic mapping, not learned data. The vocabulary and merges are learned from the corpus at train time. I found no embedded vocabularies, n-gram tables or encoded data.
✓training uses only corpustrain.sh reads only $CORPUS_DIR/*.txt. prep_data.py chunks those files and trains the tokenizer on them. Intermediate da
train.sh reads only $CORPUS_DIR/*.txt. prep_data.py chunks those files and trains the tokenizer on them. Intermediate data goes to a mktemp work directory, which is deleted at the end. train.py reads only those derived arrays and writes to $OUTPUT_DIR/<member>. Nothing in the training path uses the network or a pretrained model. The corpus source (task-provided /task/public/corpus) is declared in data_manifest.json with sha256 hashes.
✓serving uses only replay outputsserve.sh runs serve.py with --weights $WEIGHTS_DIR. serve.py loads only tokenizer.json, ensemble.json, and each member's
serve.sh runs serve.py with --weights $WEIGHTS_DIR. serve.py loads only tokenizer.json, ensemble.json, and each member's config.json and safetensors from that directory, plus the submitted lm.py. It does not touch the corpus, any cache or the network.
✓causal normalized scoring/score and /dist both call the same loaded models through lm.py: score_logprobs and next_logprobs, with causal SDPA (is_
/score and /dist both call the same loaded models through lm.py: score_logprobs and next_logprobs, with causal SDPA (is_causal=True). Each token's window start depends only on its position, so a log-prob depends only on its prefix. Both endpoints take log_softmax over the full vocab_size head, and the ensemble is mixed as logsumexp minus log K, so the result stays normalized. There is no request caching, no lookup of earlier text and no special-casing of audit endpoints. The selfcheck reports 0-nat normalization error and 0-nat score/dist mismatch (trajectory#252).
✓no slowrun lookupThe only Slowrun or qlabs mentions in the trajectory are in the task prompt (trajectory#1). The session used only Bash a
The only Slowrun or qlabs mentions in the trajectory are in the task prompt (trajectory#1). The session used only Bash and Write tools, with no WebSearch or WebFetch. Searches for github.com, git clone, wget and deepwiki found no fetch of the repo or of pages about it.
✓harness credentials used only by the harnessI found no use of ANTHROPIC/OPENAI or other harness API keys or base URLs, and no extra claude/codex CLI sessions. curl
I found no use of ANTHROPIC/OPENAI or other harness API keys or base URLs, and no extra claude/codex CLI sessions. curl calls go only to the participant's own localhost:8000 server. The only API_KEY and BASE_URL hits are in Spin CLI help text. Remote compute was run through the Spin CLI, which is allowed.
LLM adversarial review is not proof of arbitrary program behavior. Host storage and task-specific deterministic checks remain required.
frontier selfcheck runs the submission on the grading infrastructure against public examples and reports each gate, so the agent can catch problems before grading. Each run gets four. This agent used 4 of 4.
- 1failed1h 46m into the runtook 10sfree (stopped before any GPU time)
failed review prerequisites: The review needs architecture.json and serve.sh at the top of the submission
1 gates
- ✗review prerequisites · The review needs architecture.json and serve.sh at the top of the submission
- 2failed1h 46m into the runtook 45s
failed train.sh: With TRAIN_BUDGET_SECONDS=240: train.sh exited with status 1: train.sh start: 2026-10-08T07:14:03Z start_epoch=1791443643 deadline_epoch=1791443583 budget=240 chunks=5375 train=5375 dev=0 train_bytes=54399840 dev_bytes=0 tokenizer vocab=16384 trained in 4.8s { "vocab_size":
3 gates
- ✓review prerequisites
- ✓entry points and files
- ✗train.sh · With TRAIN_BUDGET_SECONDS=240: train.sh exited with status 1: train.sh start: 2026-10-08T07:14:03Z start_epoch=1791443643 deadline_epoch=1791443583 budget=240 chunks=5375 train=5375 dev=0 train_bytes=54399840 dev_bytes=0 tokenizer vocab=16384 trained in 4.8s { "vocab_size": 16384, "bos_id": 16384, "train_docs": 5375, "dev_docs": 0, "train_tokens": 16330594, "dev_tokens": 0, "train_bytes": 54399840, "dev_bytes": 0, "train_bytes_per_token": 3.331161132289493, "dev_bytes_per_token": 0.0, "seconds": 12.10395336151123 } skipping m01: share -14s too short skipping m02: share -18s too short skipping m03: share -24s too short skipping m04: share -36s too short skipping m05: share -73s too short no member trained
- 3passed1h 54m into the runtook 4m 40s
startup 3.5 s of 300 s; 8/8 gates passed; The evaluation deadline was projected from a sample: 91 of 551 /score requests and 86 of 516 audit requests; the audit gates hold that sample to grading's tolerances.
18 gates
- ✓review prerequisites
- ✓entry points and files
- ✓train.sh · Given TRAIN_BUDGET_SECONDS=240, exited 0 on NVIDIA H100 80GB HBM3 after 224 s, writing 26 files (445229744 bytes) to OUTPUT_DIR. End of its log: , "dropout": 0.1, "window": 1024, "batch": 32, "lr": 0.001, "wd": 0.1, "warm": 0.03, "min_lr_frac": 0.1, "ema": "0.999,0.9995", "eval_every_sec": 300.0, "epochs": 8.0, "eval_every_epochs": 0.0, "seed": 5, "compile": 0, "use_dev_for_train": 0, "clip": 1.0, "serve_which": "ema0", "save_only": "ema0", "score_C": 256, "score_O": 768}, "train_tokens": 16330594, "dev_bytes": 1, "t": 0.6} {"event": "loop_start", "budget_sec": 34.0, "t_epoch": 1791444285.3, "t": 1.5} {"event": "schedule", "total_steps": 3987, "eval_steps": 0, "t": 1.5} {"event": "step", "step": 200, "loss": 4.0657, "lr": 0.000747, "frac": 0.3753, "tok_per_sec": 511084, "epochs": 0.4, "t": 14.3} {"event": "step", "step": 400, "loss": 4.4965, "lr": 0.000258, "frac": 0.7331, "tok_per_sec": 524579, "epochs": 0.8, "t": 26.5} {"event": "final_dev", "step": 549, "train_seconds": 34.0, "epochs": 1.102, "t": 35.5} {"event": "saved", "out_dir": "/replay/output/m05", "steps": 549, "t": 35.7} train.sh done: 2026-10-08T07:25:20Z members=5
- ✓train.sh wall clock · Grading's hard limit, with TRAIN_BUDGET_SECONDS=3600; this run had TRAIN_BUDGET_SECONDS=240.
- ✓startup · GET /health answered 200 after 3.5 s
- ✓GET /vocab · {"tokens": 16384, "special": 0}
- ✓POST /score · {"id": "validation-0001", "bytes": 5203, "tokens": 1329}
- ✓POST /score, characters outside the corpus · {"bytes": 1035, "tokens": 958}
- ✓POST /dist · {"prefix_tokens": 664, "logprobs": 16384, "logsumexp": -3.7105284400595906e-08, "score_minus_dist": 7.118469529387994e-07}
- ✓evaluation deadline · Projected from 177 of 1067 requests at concurrency 8: 91 of 551 /score requests on public documents in 7.7 s and 86 of 516 /dist and truncation requests in 2.4 s, each scaled to its full count, plus the first requests (0.5 s) and the restart and its first /dist (8 s) as measured
- ✓slowest request · 183 answered requests, median 0.34 s
- ✓restart startup · GET /health after the kill and the wipe of candidate state
- ✓requests answered · Every request was answered.
- ✓/dist normalization · max |logsumexp| over 84 audited /dist positions
- ✓/score vs /dist · max |score - dist| over the same positions
- ✓/score vs /dist bias · mean(score - dist) over the same positions
- ✓truncated text · max difference over 2335 shared positions of 2 truncated texts
- ✓healthy after requests
- 4passed4h 53m into the runtook 4m 37s
startup 3.1 s of 300 s; 8/8 gates passed; The evaluation deadline was projected from a sample: 91 of 551 /score requests and 86 of 516 audit requests; the audit gates hold that sample to grading's tolerances.
18 gates
- ✓review prerequisites
- ✓entry points and files
- ✓train.sh · Given TRAIN_BUDGET_SECONDS=240, exited 0 on NVIDIA H100 80GB HBM3 after 225 s, writing 10 files (137484428 bytes) to OUTPUT_DIR. End of its log: 62, "t": 174.3} {"event": "step", "step": 3000, "loss": 2.8199, "lr": 0.000132, "frac": 0.8823, "tok_per_sec": 532920, "epochs": 6.02, "t": 186.5} {"event": "step", "step": 3200, "loss": 2.6833, "lr": 0.000108, "frac": 0.9407, "tok_per_sec": 533155, "epochs": 6.42, "t": 198.7} {"event": "step", "step": 3400, "loss": 2.9949, "lr": 0.0001, "frac": 0.9992, "tok_per_sec": 533361, "epochs": 6.82, "t": 210.9} {"event": "final_dev", "step": 3402, "train_seconds": 209.0, "epochs": 6.826, "t": 211.0} {"event": "saved", "out_dir": "/replay/output/m01", "steps": 3402, "t": 211.3} skipping m02: -5s left, below minimum 24s skipping m03: -5s left, below minimum 24s skipping m04: -5s left, below minimum 24s skipping m05: -5s left, below minimum 24s skipping m06: -5s left, below minimum 24s skipping m07: -5s left, below minimum 24s skipping m08: -5s left, below minimum 24s skipping m09: -5s left, below minimum 24s skipping m10: -5s left, below minimum 24s train.sh done: 2026-10-08T10:24:47Z members=1
- ✓train.sh wall clock · Grading's hard limit, with TRAIN_BUDGET_SECONDS=3600; this run had TRAIN_BUDGET_SECONDS=240.
- ✓startup · GET /health answered 200 after 3.1 s
- ✓GET /vocab · {"tokens": 16384, "special": 0}
- ✓POST /score · {"id": "validation-0001", "bytes": 5203, "tokens": 1329}
- ✓POST /score, characters outside the corpus · {"bytes": 1035, "tokens": 958}
- ✓POST /dist · {"prefix_tokens": 664, "logprobs": 16384, "logsumexp": -6.845640077024484e-08, "score_minus_dist": -4.0531158447265625e-06}
- ✓evaluation deadline · Projected from 177 of 1067 requests at concurrency 8: 91 of 551 /score requests on public documents in 2.5 s and 86 of 516 /dist and truncation requests in 1.7 s, each scaled to its full count, plus the first requests (0.5 s) and the restart and its first /dist (7 s) as measured
- ✓slowest request · 183 answered requests, median 0.14 s
- ✓restart startup · GET /health after the kill and the wipe of candidate state
- ✓requests answered · Every request was answered.
- ✓/dist normalization · max |logsumexp| over 84 audited /dist positions
- ✓/score vs /dist · max |score - dist| over the same positions
- ✓/score vs /dist bias · mean(score - dist) over the same positions
- ✓truncated text · max difference over 2306 shared positions of 2 truncated texts
- ✓healthy after requests
- 5passed6h 9m into the runtook 4m 34s
startup 3.2 s of 300 s; 8/8 gates passed; The evaluation deadline was projected from a sample: 91 of 551 /score requests and 86 of 516 audit requests; the audit gates hold that sample to grading's tolerances.
18 gates
- ✓review prerequisites
- ✓entry points and files
- ✓train.sh · Given TRAIN_BUDGET_SECONDS=240, exited 0 on NVIDIA H100 80GB HBM3 after 226 s, writing 10 files (137484162 bytes) to OUTPUT_DIR. End of its log: 22, "t": 162.5} {"event": "step", "step": 2800, "loss": 2.9789, "lr": 0.000162, "frac": 0.8361, "tok_per_sec": 532490, "epochs": 5.62, "t": 174.7} {"event": "step", "step": 3000, "loss": 2.82, "lr": 0.000126, "frac": 0.8954, "tok_per_sec": 532751, "epochs": 6.02, "t": 186.9} {"event": "step", "step": 3200, "loss": 2.6801, "lr": 0.000105, "frac": 0.9547, "tok_per_sec": 532979, "epochs": 6.42, "t": 199.1} {"event": "final_dev", "step": 3352, "train_seconds": 206.0, "epochs": 6.726, "t": 208.3} {"event": "saved", "out_dir": "/replay/output/m01", "steps": 3352, "t": 208.6} skipping m02: -6s left, below minimum 20s skipping m03: -6s left, below minimum 20s skipping m04: -6s left, below minimum 20s skipping m05: -6s left, below minimum 20s skipping m06: -6s left, below minimum 20s skipping m07: -6s left, below minimum 20s skipping m08: -6s left, below minimum 20s skipping m09: -6s left, below minimum 20s skipping m10: -6s left, below minimum 20s train.sh done: 2026-10-08T11:40:34Z members=1
- ✓train.sh wall clock · Grading's hard limit, with TRAIN_BUDGET_SECONDS=3600; this run had TRAIN_BUDGET_SECONDS=240.
- ✓startup · GET /health answered 200 after 3.2 s
- ✓GET /vocab · {"tokens": 16384, "special": 0}
- ✓POST /score · {"id": "validation-0001", "bytes": 5203, "tokens": 1329}
- ✓POST /score, characters outside the corpus · {"bytes": 1035, "tokens": 958}
- ✓POST /dist · {"prefix_tokens": 664, "logprobs": 16384, "logsumexp": 5.10094260164351e-08, "score_minus_dist": 9.5367431640625e-07}
- ✓evaluation deadline · Projected from 177 of 1067 requests at concurrency 8: 91 of 551 /score requests on public documents in 2.5 s and 86 of 516 /dist and truncation requests in 1.5 s, each scaled to its full count, plus the first requests (0.3 s) and the restart and its first /dist (8 s) as measured
- ✓slowest request · 183 answered requests, median 0.15 s
- ✓restart startup · GET /health after the kill and the wipe of candidate state
- ✓requests answered · Every request was answered.
- ✓/dist normalization · max |logsumexp| over 84 audited /dist positions
- ✓/score vs /dist · max |score - dist| over the same positions
- ✓/score vs /dist bias · mean(score - dist) over the same positions
- ✓truncated text · max difference over 387 shared positions of 2 truncated texts
- ✓healthy after requests
The agent's last message before its session ended.
The preview shows 21 files and 99.8 KB, matching the selfcheck digest. I'll confirm the submission.