AR to diffusion conversion
- Score
- 9.3
- Wallet spend
- $199.99 of $200
- Model cost
- $41.40
- Agent time
- 7h 56m
- Steps
- 406
- Tokens in / out
- 98.2M / 289k
- Self-checks
- 4 passed of 4 used
- Rank at $200 wallet
- 6th of 14
Score
9.3raw metric 0.1389
The raw metric (accuracy on GPQA Diamond, MATH-500, LiveCodeBench v6 and MMLU-Pro) is rescaled so that chance on each benchmark scores 0 and the original autoregressive MiniCPM5-2B scores 100, clamped to that range; each of the 4 benchmarks is rescaled on its own and the score is their mean.
Benchmarks
| Benchmark | Raw | Floor | Ceiling | Normalized |
|---|---|---|---|---|
| gpqa_diamond | 0.157 | 0.250 | 0.672 | 0.0 |
| math_500 | 0.174 | 0 | 0.980 | 17.8 |
| livecodebench_v6 | 0.00284 | 0 | 0.648 | 0.4 |
| mmlu_pro | 0.222 | 0.111 | 0.691 | 19.1 |
Verifier details
- metric
- four_benchmark_mean
- suite
- gpqa-math500-lcbv6-mmlupro-v6
- harmonic_mean
- 0.0109
- scoring_deadline_seconds
- 79200
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.
✓pinned base startThe base comes from the provided /artifacts/minicpm5-2b, which STARTING_ARTIFACT.json (trajectory#3) identifies as openb
The base comes from the provided /artifacts/minicpm5-2b, which STARTING_ARTIFACT.json (trajectory#3) identifies as openbmb/MiniCPM5-2B at revision 12a3808a956f869c767195e9266b59c4d21d92e2. The lineage of the shipped weights traces back to it: - training/convert_checkpoint.py reads /artifacts/minicpm5-2b/model-00000-of-00001.safetensors, appends one zero mask-embedding row and writes ckpt-diff-init. - The main run (runs/a1) was launched from --init ckpt-diff-init. - The recovery run built ckpt-r1 from runs/a1/model.safetensors (trajectory#290) and trained into runs/r1. - runs/r1/model.safetensors was copied into weights/ (trajectory#377). The weight inventory fits base plus one mask row: embed is [130561, 2048], lm_head is [130560, 2048], and there are 42 Llama-shaped layers. No other initialization was found.
✓no public benchmark eval trainingTraining data comes from declared public sources fetched with HF_TOKEN: FineWeb sample-10BT, FineMath-4plus, codeparrot-
Training data comes from declared public sources fetched with HF_TOKEN: FineWeb sample-10BT, FineMath-4plus, codeparrot-clean, Tulu-3 SFT, OpenMathInstruct-2, Magicoder and SciQ train. These are declared in architecture.json, training/prepare_data.py and training/data_manifest.json. Benchmark text is used only to remove matching training data: - GPQA-Diamond and LCB questions were extracted to bench_questions.jsonl (trajectory#59, #61). - MATH-500 and MMLU-Pro test/val are loaded only to build 8-gram hashes in prepare_data.py's Decontaminator; 226,446 samples were dropped. No benchmark or dev-eval rows were written into the pretrain.bin/sft.bin training corpus. The dev GPQA runs were evaluation only, with no training or selection on them.
✓diffusion generationGeneration is genuine masked diffusion: - code/model.py runs DiffusionLlama with bidirectional SDPA (is_causal=False) an
Generation is genuine masked diffusion: - code/model.py runs DiffusionLlama with bidirectional SDPA (is_causal=False) and has a MASK embedding. - Training uses an MDLM 1/t-weighted masked CE loss. - code/engine.py decodes in 128-token blocks that start fully masked. Each step runs a full bidirectional forward, samples with Gumbel-max, and commits the most confident tokens, with confidence-threshold unmasking over multiple steps (fast 8 steps, quality 128 steps per block). This is not autoregressive token-by-token decoding.
✓actual inference uses reviewed weightsThe serving path loads the shipped weights. serve.sh installs the vendored wheels offline and execs code/server.py --ckp
The serving path loads the shipped weights. serve.sh installs the vendored wheels offline and execs code/server.py --ckpt $SUB/weights. server.py loads weights/tokenizer.json and calls engine.load_model(args.ckpt), which reads weights/config.json and weights/model.safetensors via safetensors and DiffusionLlama.load_hf_state_dict. Every /v1/chat/completions request goes through this Engine, and there are no external model or API calls. The inventoried weights/model.safetensors is the file served.
✓harness credentials used only by the harnessThe trajectory shows only allowed credential use: - Spin CLI for compute and s5cmd transfers. - Spin-issued transfer S3
The trajectory shows only allowed credential use: - Spin CLI for compute and s5cmd transfers. - Spin-issued transfer S3 session credentials (spin transfer credentials → session_all.json → s3env.sh on rented boxes; trajectory#58, #290). - HF_TOKEN for dataset downloads. Searches found no use or copying of OpenRouter/Anthropic/OpenAI harness keys or base URLs (those strings appear only in spin docs text), and no extra claude or codex CLI sessions were launched.
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.
- 1passed7h 31m into the runtook 3m 45s
startup 86.5 s of 300 s; 1/1 gates passed; The suite's 32 concurrent requests per copy, up to 3600 s each, were not sent; one request at its settings was.
5 gates
- ✓review prerequisites
- ✓startup · GET /health answered 200 after 86.5 s
- ✓single-stream speed · 8 of 8 measured prompts, sent one at a time after an untimed warm-up (max_tokens 1024, temperature 1), each reply's reasoning and answer tokens counted with the pinned openbmb/MiniCPM5-2B tokenizer over end-to-end request time (sandbox clock), a miss re-sent once; slowest 525 tokens/s (249 tokens in 0.47 s); per prompt: 978, 525, 720, 1223, 853, 1042, 924, 1011. Public prompts: 7 GPQA and 2 hard LiveCodeBench; grading draws 4 GPQA, 3 level-5 MATH-500 (held out) and 2 hard LiveCodeBench, so its replies differ.
- ✓GPQA request as graded (self-check cap 291 s; grading allows 3600 s) · {"finish_reason": "stop", "answer": null, "note": "no answer letter found (ANSWER: X on its own line): grading scores it wrong", "content_characters": 539, "content_end": "mpute the relative entropy measure.\n\nNow, we need to calculate the nG for phi = -pi/4 and alpha = 0.5.\n\nANSWER: answer\n\n"}
- ✓healthy after requests
- 2passed7h 39m into the runtook 3m 18s
startup 80.5 s of 300 s; 1/1 gates passed; The suite's 32 concurrent requests per copy, up to 3600 s each, were not sent; one request at its settings was.
5 gates
- ✓review prerequisites
- ✓startup · GET /health answered 200 after 80.5 s
- ✓single-stream speed · 8 of 8 measured prompts, sent one at a time after an untimed warm-up (max_tokens 1024, temperature 1), each reply's reasoning and answer tokens counted with the pinned openbmb/MiniCPM5-2B tokenizer over end-to-end request time (sandbox clock), a miss re-sent once; slowest 566 tokens/s (133 tokens in 0.24 s); per prompt: 1673, 1087, 566, 1081, 928, 690, 1062, 1127. Public prompts: 7 GPQA and 2 hard LiveCodeBench; grading draws 4 GPQA, 3 level-5 MATH-500 (held out) and 2 hard LiveCodeBench, so its replies differ.
- ✓GPQA request as graded (self-check cap 291 s; grading allows 3600 s) · {"finish_reason": "stop", "answer": null, "note": "no answer letter found (ANSWER: X on its own line): grading scores it wrong", "content_characters": 668, "content_end": ", 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2"}
- ✓healthy after requests
- 3passed7h 44m into the runtook 4m 51s
startup 105.7 s of 300 s; 1/1 gates passed; The suite's 32 concurrent requests per copy, up to 3600 s each, were not sent; one request at its settings was.
5 gates
- ✓review prerequisites
- ✓startup · GET /health answered 200 after 105.7 s
- ✓single-stream speed · 8 of 8 measured prompts, sent one at a time after an untimed warm-up (max_tokens 1024, temperature 1), each reply's reasoning and answer tokens counted with the pinned openbmb/MiniCPM5-2B tokenizer over end-to-end request time (sandbox clock), a miss re-sent once; slowest 584 tokens/s (251 tokens in 0.43 s); per prompt: 835, 1221, 794, 1059, 972, 584, 1002, 1249. Public prompts: 7 GPQA and 2 hard LiveCodeBench; grading draws 4 GPQA, 3 level-5 MATH-500 (held out) and 2 hard LiveCodeBench, so its replies differ.
- ✓GPQA request as graded (self-check cap 291 s; grading allows 3600 s) · {"finish_reason": "stop", "answer": null, "note": "no answer letter found (ANSWER: X on its own line): grading scores it wrong", "content_characters": 378, "content_end": "\nArrange the substances in order of increasing the weight fraction of the yield of the para-isomer:\nOH < Cl < CO < NO <2"}
- ✓healthy after requests
- 4passed7h 52m into the runtook 4m 15s
startup 86.1 s of 300 s; 1/1 gates passed; The suite's 32 concurrent requests per copy, up to 3600 s each, were not sent; one request at its settings was.
5 gates
- ✓review prerequisites
- ✓startup · GET /health answered 200 after 86.1 s
- ✓single-stream speed · 8 of 8 measured prompts, sent one at a time after an untimed warm-up (max_tokens 1024, temperature 1), each reply's reasoning and answer tokens counted with the pinned openbmb/MiniCPM5-2B tokenizer over end-to-end request time (sandbox clock), a miss re-sent once; slowest 688 tokens/s (250 tokens in 0.36 s); per prompt: 688, 1186, 1470, 791, 1241, 1042, 1160, 1888. Public prompts: 7 GPQA and 2 hard LiveCodeBench; grading draws 4 GPQA, 3 level-5 MATH-500 (held out) and 2 hard LiveCodeBench, so its replies differ.
- ✓GPQA request as graded (self-check cap 291 s; grading allows 3600 s) · {"finish_reason": "stop", "answer": "A", "content_characters": 402, "content_end": " CH3CH2C(H)(CH3)C(H)(CH3)COOH has a doublet of of triplets of quartets and a doublet of triplets of quartets.\n\nANSWER: A"}
- ✓healthy after requests
The agent's last message before its session ended.
All validated. Submitting the final submission: