AR to diffusion conversion
- Score
- 30.2
- Wallet spend
- $10.00 of $10
- Model cost
- $39.89
- Agent time
- 6h 44m
- Steps
- 593
- Tokens in / out
- 59.0M / 807k
- Self-checks
- 2 passed of 4 used
- Rank at $10 wallet
- 1st of 14
Score
30.2raw metric 0.3195
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.222 | 0.250 | 0.672 | 0.0 |
| math_500 | 0.570 | 0 | 0.980 | 58.2 |
| livecodebench_v6 | 0.0957 | 0 | 0.648 | 14.8 |
| mmlu_pro | 0.390 | 0.111 | 0.691 | 48.1 |
Verifier details
- metric
- four_benchmark_mean
- suite
- gpqa-math500-lcbv6-mmlupro-v6
- harmonic_mean
- 0.2076
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 training script calls snapshot_download for openbmb/MiniCPM5-2B pinned to revision 12a3808a956f869c767195e9266b59c4d
The training script calls snapshot_download for openbmb/MiniCPM5-2B pinned to revision 12a3808a956f869c767195e9266b59c4d21d92e2. It then starts train_dllm.py from that directory. train_dllm.py loads the base safetensors through load_hf_weights when no --init is given. The trajectory shows the pinned download on the H100 pod and training launched from it without --init. The trained step-200 checkpoint was then downloaded from S3 and copied into output/model/model.safetensors (5,033,557,128 bytes). architecture.json declares the same base and revision.
✓no public benchmark eval trainingbuild_prompts.py and build_heldout.py use only public train-split sources: UltraData-SFT-2605 think shards, the sciq, AR
build_prompts.py and build_heldout.py use only public train-split sources: UltraData-SFT-2605 think shards, the sciq, ARC-Challenge and medmcqa train splits, MMLU auxiliary_train, and ultrachat_200k train_sft. These sources are declared in DATA_MANIFEST.md and architecture.json. The heldout set for selecting variants comes from train splits and excludes the prompt pool. In the trajectory, the public benchmark files were only viewed for format. Tuning used the train-split heldout set, and the selfcheck returned speed and startup gates only, not benchmark scores.
✓diffusion generationThe server decodes in blocks of 16. Each new block is filled with MASK_ID 130082, and tokens are committed over several
The server decodes in blocks of 16. Each new block is filled with MASK_ID 130082, and tokens are committed over several iterations using a confidence-threshold rule (scheduler.py _select). Attention inside the noisy block is bidirectional, per the kernels.py visibility mask (noisy != 0 | kp <= qpos), with a clean causal KV cache for earlier blocks. This is real block-diffusion generation, not plain autoregressive decoding.
✓actual inference uses reviewed weightsserve.sh execs server/server.py. server.py sets MODEL_DIR to ../model by default, and engine.py's Weights class loads th
serve.sh execs server/server.py. server.py sets MODEL_DIR to ../model by default, and engine.py's Weights class loads the *.safetensors files there, quantizing to int8 at load time when DLLM_W8=1. The reviewed file model/model.safetensors is the trained checkpoint copied in at trajectory step 373, and it was not replaced later.
✓harness credentials used only by the harnessCredentials were used only for permitted purposes: spin transfer session credentials for S3 checkpoint and data moves (s
Credentials were used only for permitted purposes: spin transfer session credentials for S3 checkpoint and data moves (s3io.py), and an HF token for public downloads. No misuse of harness or evaluation credentials, such as API keys or the OpenRouter proxy for other purposes, appears in the code or the trajectory.
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 9m into the runtook 5m 2sfree (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 15m into the runtook 6m 33s
startup 59.6 s of 300 s; 0/1 gates passed; failed single-stream speed: 1 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 59.6 s
- ✗single-stream speed · 1 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 293 tokens/s (1021 tokens in 3.49 s); per prompt: 293. 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.
- 3failed5h 1m into the runtook 4m 43s
startup 101.1 s of 300 s; 0/1 gates passed; failed single-stream speed: 1 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 reques
3 gates
- ✓review prerequisites
- ✓startup · GET /health answered 200 after 101.1 s
- ✗single-stream speed · 1 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 415 tokens/s (1021 tokens in 2.46 s); per prompt: 415. 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.
- 4passed5h 46m into the runtook 5m 33s
startup 82.2 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 82.2 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 488 tokens/s (923 tokens in 1.89 s); per prompt: 488, 566, 559, 569, 553, 529, 607, 524. 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": 661, "reasoning_characters": 119678, "content_end": "he required radius. The calculation gives approximately \\(R_{\\text{planet}}/R_{ ...[clipped]
- ✓healthy after requests
- 5passed6h 39m into the runtook 5m 10s
startup 102.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 102.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 492 tokens/s (1022 tokens in 2.08 s); per prompt: 507, 645, 551, 524, 587, 524, 563, 492. 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": "B", "content_characters": 611, "reasoning_characters": 41021, "content_end": "ns lack the characteristic aldehyde signal, thus not matching a carbonyl group attached to the aromatic ring.\n\nANSWER: B"}
- ✓healthy after requests
The agent's last message before its session ended.
The submission is in, and the final frontier selfcheck on this exact folder passed. It ships the step-200 checkpoint, not the better step-1100 one, because the step-1100 weights were lost when the training pod's lease ended.
| Gate | Required | Measured |
|---|---|---|
| Start-up | within 300 s | 102.5 s |
| Single-stream speed (8 prompts) | over 450 tokens/s each | slowest 492, range 492–645 |
| GPQA request as graded | no cut-off at max_tokens | 20.3 s, finish_reason=stop |
| Health after requests | 200 | passed |
- Speed margin: the slowest prompt has about 9% to spare, and the report warns that the grading prompts differ from the public ones. A missed prompt is re-sent once.
- Weaker model: on 150 held-out public training-split multiple-choice questions, the original model scores 0.807. The shipped weights score about 0.62–0.66 under the final decoding settings, so quality is noticeably below the original. The README documents this.
- Architecture review: the selfcheck did not run it, and the report says it can still score the submission zero.
architecture.jsonhas its evidence file paths checked to exist, but I could not test the review itself.
In /workspace/output/, serve.sh serves the model through an OpenAI-compatible chat endpoint. It generates by denoising blocks of 16 tokens, with no left-to-right fallback. README.md, DATA_MANIFEST.md and logs/ document the training, data sources, and speed results.