Speculative drafting
- Score
- 0.0
- Wallet spend
- $22.20 of $50
- Model cost
- $18.61
- Agent time
- 10h 19m
- Steps
- 288
- Tokens in / out
- 27.5M / 300k
- Self-checks
- 2 passed of 2 used
- Rank at $50 wallet
- 9th of 14
Score
0.0raw metric 0
The raw metric (mean acceptance length against Qwen3-8B) is rescaled so that untouched 4-bit Qwen3-1.7B as the drafter (acceptance length 4.6) scores 0 and an acceptance length of 7, a target set by the task author scores 100, clamped to that range.
Verifier details
- metric
- mean_acceptance_length
- tau
- 3.9212
- tokens
- 44314
- steps
- 11301
- samples
- 200
- draft_tokens
- 16
- tau_macro_over_prompts
- 4.8071
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.
✓training data provenanceThe training corpus is self-generated and its source is declared. Synthetic prompts were produced by scripts/gen_prompts
The training corpus is self-generated and its source is declared. Synthetic prompts were produced by scripts/gen_prompts.py through the Spin OpenRouter proxy, which is allowed. Qwen3-8B produced the greedy continuations, which is allowed because they are target continuations on non-split prompts. DATA_PROVENANCE.md and architecture.json both declare this. The /task/public examples served only as style exemplars (trajectory#40) and as a reported evaluation signal (public_tau in scripts/train_draft.py, uploaded in trajectory#56). Shipped public examples are allowed. Checkpoint selection used fixed_val.jsonl, which scripts/split_val.py splits from self-generated data. Searches found no download of the pinned dataset repo (frontier-ml-tasks, load_dataset, repo_type) and no use of the hidden validation/test splits.
✓non specialist initializationarchitecture.json declares the initialization as Qwen/Qwen3-0.6B at a pinned revision. scripts/setup_gpu.sh downloads it
architecture.json declares the initialization as Qwen/Qwen3-0.6B at a pinned revision. scripts/setup_gpu.sh downloads it. Round-1 training started from /workspace/models/qwen3-0.6b (trajectory#143-144). Later rounds continue from the participant's own checkpoints (scripts/start_train3.sh uses draft_out/best, scripts/start_train4.sh uses draft_out4/best). model/config.json and the model/model.safetensors tensor shapes match the Qwen3-0.6B architecture. That is a general-purpose LM, not a specialist drafter.
✓no continuation lookupserver.py loads the model and answers each /draft request by running MODEL.generate greedily (max 16 new tokens, EOS sto
server.py loads the model and answers each /draft request by running MODEL.generate greedily (max 16 new tokens, EOS stop) on the request's tokens. It has no lookup table, no cache of reference continuations, no file read keyed on prompts and no network call. serve.sh only launches server.py on the shipped model directory.
✓actual inference pathserve.sh runs server.py with --model model/. load_model in server.py dequantizes the int8 tensors in model/model.safeten
serve.sh runs server.py with --model model/. load_model in server.py dequantizes the int8 tensors in model/model.safetensors to bf16 and loads them into a Qwen3 model built from model/config.json. The weight inventory (int8 projections with F32 scales, bf16 embeddings, 753 MB) matches quantize.py and training_logs/quantize_final.log. The trajectory shows draft_out5/best being quantized to draft_q4 (trajectory#275), served and tested over HTTP (trajectory#277), then placed in output/model (trajectory#279). The served weights are therefore the trained artifact.
✓harness credentials used only by the harnessThe participant created its own Spin OpenRouter key with the spin CLI (trajectory#34) and stored it in /tmp/or_creds.jso
The participant created its own Spin OpenRouter key with the spin CLI (trajectory#34) and stored it in /tmp/or_creds.json for gen_prompts.py (trajectory#38-39). R2 transfer credentials came from spin transfer credentials (scripts/r2.py). HF_TOKEN was used only for model downloads in scripts/setup_gpu.sh. Both uses are allowed. Searches found no use of Anthropic or other harness API keys and no claude -p calls.
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 2 of 4.
- 1passed8h 0m into the runtook 2m 6s
startup 29.6 s of 300 s; 2/2 gates passed; The serving gate was projected from a sample: 76-token windows, spread from openings to ends, of the first 32 of the 40 public conversations (2,432 of the held-out set's 44,314 continuation tokens), walked under the budget scaled to them (593 s).
7 gates
- ✓review prerequisites
- ✓submission size
- ✓startup · GET /health answered 200 after 29.6 s
- ✓POST /draft · {"draft": [2528, 11, 9669, 717, 3658, 8402, 18670, 4698, 1639, 11, 15, 62, 21, 15, 17242, 11]}
- ✓held-out serving time (projected) · projected from 496 of about 9,038 held-out requests at concurrency 32: 34.0 s of serving over 36 rounds for 2,432 public continuation tokens, scaled to the held-out set's 44,314 as validate.py does, plus the smoke request's 0.3 s once; within about 10% of the held-out serving time: a few percent high for a server that answers requests one at a time, up to 10% low for one that batches the requests in flight
- ✓request failures · 0 of 496 requests failed, timed out or were malformed; each scores as an empty draft
- ✓healthy after requests
- 2passed10h 17m into the runtook 2m 4s
startup 31.4 s of 300 s; 2/2 gates passed; The serving gate was projected from a sample: 76-token windows, spread from openings to ends, of the first 32 of the 40 public conversations (2,432 of the held-out set's 44,314 continuation tokens), walked under the budget scaled to them (593 s).
7 gates
- ✓review prerequisites
- ✓submission size
- ✓startup · GET /health answered 200 after 31.4 s
- ✓POST /draft · {"draft": [2528, 11, 9669, 717, 3658, 8402, 18670, 4698, 1639, 11, 15, 62, 21, 15, 17242, 11]}
- ✓held-out serving time (projected) · projected from 494 of about 9,001 held-out requests at concurrency 32: 34.6 s of serving over 32 rounds for 2,432 public continuation tokens, scaled to the held-out set's 44,314 as validate.py does, plus the smoke request's 0.4 s once; within about 10% of the held-out serving time: a few percent high for a server that answers requests one at a time, up to 10% low for one that batches the requests in flight
- ✓request failures · 0 of 494 requests failed, timed out or were malformed; each scores as an empty draft
- ✓healthy after requests
The agent's last message before its session ended.
Adding the missing round-3/4 scripts to the evidence list and re-running assembly: