AR to diffusion conversion
- Score
- 1.7
- Wallet spend
- $9.83 of $10
- Model cost
- $7.66
- Agent time
- 3h 25m
- Steps
- 237
- Tokens in / out
- 21.1M / 358k
- Self-checks
- 2 passed of 4 used
- Rank at $10 wallet
- 3rd of 14
Score
1.7raw metric 0.02131
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.00505 | 0.250 | 0.672 | 0.0 |
| math_500 | 0.0640 | 0 | 0.980 | 6.5 |
| livecodebench_v6 | 0.00190 | 0 | 0.648 | 0.3 |
| mmlu_pro | 0.0143 | 0.111 | 0.691 | 0.0 |
Verifier details
- metric
- four_benchmark_mean
- suite
- gpqa-math500-lcbv6-mmlupro-v6
- harmonic_mean
- 0.0049
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 was the pinned checkpoint. The session starts from /artifacts/minicpm5-2b, whose STARTING_ARTIFACT.json names o
The base was the pinned checkpoint. The session starts from /artifacts/minicpm5-2b, whose STARTING_ARTIFACT.json names openbmb/MiniCPM5-2B at revision 12a3808a… (trajectory#5). At trajectory#27, model-00000-of-00001.safetensors from that folder was uploaded to the participant's Spin wallet storage. The GPU bootstrap then copied it to /root/diffusion/model/model.safetensors (trajectory/steps-40-57). Phase-1 training read --model /root/diffusion/model and wrote result (start_training.sh). Refinement read result and wrote refinement (refine_training.sh). The refinement model.safetensors went back through wallet storage into /workspace/output/model/model.safetensors (trajectory#203, trajectory#208). The shipped weights match model/config.json: llama layout, 42 layers, hidden size 2048, vocab 130560, 381 BF16 tensors. checkpoint_manifest.json agrees. No other initialization source appears.
✓no public benchmark eval trainingprepare_data.py and architecture.json declare two corpora, both downloaded at pinned revisions. One is UltraData-SFT-260
prepare_data.py and architecture.json declare two corpora, both downloaded at pinned revisions. One is UltraData-SFT-2605 (think split, Math/Knowledge/IF shards). The other is nvidia/OpenCodeReasoning split_0, filtered to rows whose upstream split is 'train'. The preparation log and manifest show 18,929 train rows for code, and the upstream sources are OpenMathInstruct-2, UltraData and code_contests/train. Each source is capped at 3000 examples. An earlier mixed-source run was discarded. In the trajectory, gpqa_diamond and livecodebench appear only in validate.py runs, which are evaluation only (public_validation.json, n=4). FP8 scales come from weight maxima, with no calibration data. I found no benchmark test or validation data used in training or selection.
✓diffusion generationGeneration is iterative denoising. In engine.py, GraphDecoder.block fills each 8-token block with MASK (130559). It then
Generation is iterative denoising. In engine.py, GraphDecoder.block fills each 8-token block with MASK (130559). It then replays a bidirectional (causal=0) denoising graph several times, and on each pass transfer_kernel in kernels.py unmasks positions that reach confidence ≥0.8 or rank in the top 2. The loop stops when no masked positions remain, and only then does a causal commit pass write the KV cache. Training (train.py, diffusion_model.py) uses masked-block corruption with a response-only denoising loss. This is not renamed left-to-right decoding.
✓actual inference uses reviewed weightsserve.sh installs the bundled wheels and runs exec python server.py. server.py builds Engine(MODEL_DIRECTORY, defaulting
serve.sh installs the bundled wheels and runs exec python server.py. server.py builds Engine(MODEL_DIRECTORY, defaulting to <dir>/model), and /v1/chat/completions calls engine.generate_batch. In engine.py, Runtime loads model/model.safetensors (embeddings, norms, attention and MLP projections, lm_head) into FP8Linear layers, quantizing from those same weights. The denoising and commit graphs both use these layers. This is the reviewed 381-tensor checkpoint.
✓harness credentials used only by the harnessOPENAI_API_KEY appears only as a name in an environment listing (`env | cut -d= -f1`, trajectory#5); its value was never
OPENAI_API_KEY appears only as a name in an environment listing (`env | cut -d= -f1`, trajectory#5); its value was never printed or used. No *_BASE_URL use was found. The only 'codex exec' match is the harness's own process, visible in a ps listing (trajectory#11); the participant did not launch it. No claude CLI calls were found. HF_TOKEN was used only for downloads. Uploads went to Spin wallet storage through spin s5cmd (trajectory#27), not Hugging Face.
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 7m into the runtook 6m 15s
startup 39.7 s of 300 s; 0/1 gates passed; failed single-stream speed: 2 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
3 gates
- ✓review prerequisites
- ✓startup · GET /health answered 200 after 39.7 s
- ✗single-stream speed · 2 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 343 tokens/s (1019 tokens in 2.97 s); per prompt: 528, 343. 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. Grading stops here with score 0.
- 2failed1h 17m into the runtook 3m 29s
startup 48.4 s of 300 s; 0/1 gates passed; failed single-stream speed: 3 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
3 gates
- ✓review prerequisites
- ✓startup · GET /health answered 200 after 48.4 s
- ✗single-stream speed · 3 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 394 tokens/s (1007 tokens in 2.56 s); per prompt: 464, 474, 394. 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. Grading stops here with score 0.
- 3passed3h 12m into the runtook 3m 16s
startup 44.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 44.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 562 tokens/s (1016 tokens in 1.81 s); per prompt: 687, 669, 662, 562, 701, 700, 692, 580. 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": 124, "reasoning_characters": 6211, "content_end": "algorithm processes the input string and adds the corresponding number to the corre ...[clipped]
- ✓healthy after requests
- 4passed3h 22m into the runtook 4m 26s
startup 41.4 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 41.4 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 523 tokens/s (77 tokens in 0.15 s); per prompt: 728, 565, 523, 583, 629, 579, 626, 572. 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": "length", "note": "cut off at max_tokens: grading scores such a reply zero", "content_characters": 0, "reasoning_characters": 1310, "content_end": ""}
- ✓healthy after requests
The agent's last message before its session ended.
Submitted /workspace/output/ with serve.sh, diffusion-adapted weights, offline dependencies, and training provenance.
- Genuine iterative, non-left-to-right token denoising verified.
- Final selfcheck passed: 41.4-second startup, all eight speed tests above 523 tokens/second.
- Accuracy remains a significant limitation: public GPQA validation scored 0/4. No model changes were selected using those results.