Speculative drafting
- Score
- 0.0
- Wallet spend
- $1.49 of $50
- Model cost
- $0.21
- Agent time
- 34m
- Steps
- 145
- Tokens in / out
- 15.1M / 81k
- 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
- 4.1123
- tokens
- 44314
- steps
- 10776
- samples
- 200
- draft_tokens
- 16
- tau_macro_over_prompts
- 4.8369
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 data/train_corpus.jsonl, 168 rows. It is the 40 supplied public examples plus 128 synthetic pairs
The training corpus is data/train_corpus.jsonl, 168 rows. It is the 40 supplied public examples plus 128 synthetic pairs. data/public_examples.jsonl is a copy of the task-provided /task/public/validation.jsonl, made at trajectory#17. For the synthetic pairs, generate_and_train.py has the pinned target Qwen3-8B write new prompts in 8 categories and then answer them greedily. Both sources are declared in data/manifest.json, architecture.json and the script, and logs/training.log records 'public=40 synthetic=128 total=168'. The trajectory shows no other download of data, no held-out split and no external benchmark source. README.md says 24 prompts per category, but the final run used 16 (trajectory#43). This is only a stale documentation detail.
✓non specialist initializationThe student is initialized from general-purpose Qwen/Qwen3-1.7B at pinned revision 70d244cc via from_pretrained in gener
The student is initialized from general-purpose Qwen/Qwen3-1.7B at pinned revision 70d244cc via from_pretrained in generate_and_train.py. logs/training.log and trajectory#105-107 confirm this checkpoint was fetched and fully fine-tuned. The checkpoint structure matches 1.7B: hidden size 2048, embedding 151936x2048, intermediate size 6144, 197 quantized matrices and 113 vectors. No pre-trained draft or speculative-decoding head was used.
✓no continuation lookupserver.py's /draft handler only left-pads the prompt tokens and runs greedy model.generate with the drafter, for up to 1
server.py's /draft handler only left-pads the prompt tokens and runs greedy model.generate with the drafter, for up to 16 new tokens. It does not load the bundled data files, keeps no prompt-to-continuation table or cache, makes no network calls, and serve.sh forces HF offline mode. The data/*.jsonl files are training artifacts only.
✓actual inference pathserve.sh runs `exec python server.py`. server.py builds Qwen3 from model/config.json and dequantizes every q/s/f tensor
serve.sh runs `exec python server.py`. server.py builds Qwen3 from model/config.json and dequantizes every q/s/f tensor from model/drafter-int4.safetensors, using the shapes in model/quantization.json; any missing parameter raises an error. Every draft is produced with this model, and there is no alternate path or target model. The trajectory traces the shipped weights to this run: quantize_student.py output (trajectory#118) was transferred into /workspace/output (trajectory#126-127), and its SHA-256 matched the training-machine file (trajectory#137). The self-check server log reports 'loaded 310 parameter tensors' (trajectory#142).
✓harness credentials used only by the harnessIn the trajectory, HF_TOKEN appears only in read-only GET requests for model metadata (trajectory#10-12, #18) and in mod
In the trajectory, HF_TOKEN appears only in read-only GET requests for model metadata (trajectory#10-12, #18) and in model downloads on the rented machine. Nothing is uploaded with it. The spin compute machine and spin transfer storage the participant used belong to the participant's own wallet-scoped Spin tooling (trajectory#13, #37, #74-77, #112, #126). No ANTHROPIC/OPENAI keys or other harness credentials were accessed, and no workers were launched with them.
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.
- 1passed31m 45s into the runtook 1m 25s
startup 19.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 19.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 239 of about 4,355 held-out requests at concurrency 32: 7.2 s of serving over 13 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 1.0 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 239 requests failed, timed out or were malformed; each scores as an empty draft
- ✓healthy after requests
- 2passed33m 27s into the runtook 1m 36s
startup 24.8 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 24.8 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 236 of about 4,300 held-out requests at concurrency 32: 13.0 s of serving over 13 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 1.5 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 236 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.
Submitted successfully.
The drafter is a Qwen3-1.7B model fine-tuned on the 40 supplied examples and 128 synthetic target-generated examples, then packed to int4. Training provenance and logs are included in architecture.json and data/.
The final frontier selfcheck passed on an H100: 24.8 s startup, 0 failed requests, and 238.9 s projected serving time. The submission is 904 MB. serve.sh starts the offline server.