Draft for the Dory team · feedback welcome · Tue 20 Oct 2026

Dory1.0-4B, measured from the outside

An independent re-run of Dory1.0-4B in an open vLLM harness: first Dory alone against its model card, then beside 18 other small open-model configurations on 10 benchmarks. Short version: the card's own numbers reproduce at every loop count, and the second loop is where the gain is. Dory's strengths are competition math, instruction following and question answering over long documents. Against the two larger models the post compares it with, Dory at 4 loops is level with Qwen3.5-9B and behind Gemma 4 26B-A4B on a seven-benchmark index, and trails both on MMLU-Pro, GPQA, SimpleQA and MRCR; the post's claim rests on an index that includes agentic tasks, which we did not run. Everything needed to check or reproduce a number is in the collapsed sections. The full write-ups: Dory against its card and the small models showdown.

✓
The card reproduces
GPQA: ours 69.6 / 72.3 / 73.2 (every run pooled) against the card's 69.19 / 72.41 / 72.16 at 1 / 2 / 4 loops
+2.7 ± 0.9
GPQA points from the 2nd loop
2 → 4 loops: +0.9 ± 0.6
79.1
IFBench at 4 loops
Qwen3.5-9B 66.7 here, 59 on the card
#5 of 21
Dory (2 loops) on a 7-benchmark index
1 loop #9, 4 loops #4

What we found

Reproduces

The card's numbers

GPQA Diamond, IFBench and AA-LCR at 1, 2 and 4 loops: all nine land within 1.1 points of the card, once measured with enough repeats and with NVIDIA's IFBench metric (the mean strict fraction).

The loop

Pays once

The second loop is worth +2.7 ± 0.9 on GPQA (every run pooled), +4.3 ± 1.1 on IFBench and +8.7 ± 3.1 on AA-LCR (experiment 2), and +8.5 ± 1.7 on competition math and +10.2 ± 2.3 on LiveCodeBench (this run). From 2 to 4 loops nothing these sets resolve: GPQA +0.9 ± 0.6, IFBench +0.2 ± 0.8, math +1.2 ± 1.1, LiveCodeBench -1.9 ± 2.2. AA-LCR is too noisy to say: +0.7 ± 2.7 over experiment 2's draws, 66.0 → 74.0 in this run's single draws. The card says the same.

Strength

Instruction following

IFBench 74.9 / 78.3 / 79.1 at 1 / 2 / 4 loops in this run (74.2 / 78.6 / 78.8 over experiment 2's 6–7 repeats): first of 21 configurations at 4 loops (tied with Gemma 4 26B-A4B). At 1 loop it already leads Qwen3.5-9B by 8 points. IFNovel, 22 constraint types written for this test: 84.3 / 92.7 / 93.3 in this run, one repeat each (87.3 / 89.1 / 89.5 over experiment 2's two).

Strength

Competition math and code

Competition math 79.1 / 87.6 / 88.8 and LiveCodeBench 60.2 / 70.3 / 68.4 at 1 / 2 / 4 loops. On math, Dory at 2 loops is ahead of every other model of 10B or fewer here (the next best: Granite 4.2 8B 83.9), and every larger mixture-of-experts model reads lower: Qwen3.6-35B-A3B 86.6, Gemma 4 26B-A4B 83.1, Nemotron 3.5 Lightning 30B-A3B 81.3, GLM-4.7-Flash 79.7, LFM2.5-24B-A2B 77.4, gpt-oss-20b (high) 73.4. On code, one model of 10B or fewer scores higher than Dory: Granite 4.2 8B (75.0), against 70.3 at 2 loops.

Strength

Reasoning over long documents

AA-LCR 74.0 at 4 loops, the highest of all 20 configurations in this run (one draw; 72.7 averaged over 3 draws across both experiments).

Weakness

Verbatim retrieval from long conversations

OpenAI MRCR: 25.3 / 32.4 / 39.0 at 1 / 2 / 4 loops, against 93.7 for Qwen3.5-4B and 96.3 for Qwen3.5-9B. Loops help, but the gap is large.

Weakness

Knowledge

MMLU-Pro 77.7, GPQA 73.2 (every run pooled) and SimpleQA 3.4 at 4 loops, below Qwen3.5-4B (80.0, 78.4, 5.6) and Qwen3.5-9B (83.1, 82.2, 8.1). Loops add little here: MMLU-Pro 75.1 → 77.7.

Where the post and card hold, and where they don't

The post: “We just released Dory - a 4B looped nGPT model, which outperforms much larger models (Qwen3.5-9B and Gemma4-26B-A4B). More intelligence per token and fewer tokens to solve problems. 4 checkpoint formats: BF16, MXVF8, NVFP4 and GGUF.” The model card adds its own guidance on loop count and caching. Each claim against what we measured:

Level with Qwen3.5-9B, behind Gemma 4 on these benchmarks

“Outperforms much larger models (Qwen3.5-9B and Gemma4-26B-A4B)”

The claim rests on the card's chart of Artificial Analysis index v4.3.2 estimates, which the card calls internal and possibly different from official scores: 18.4 at 4 loops against 12.5 and 16.4. On the card's own columns Dory at 4 loops leads both models on IFBench, AA-LCR, SWE-bench Verified, τ³-bench (Banking) and GDPval, trails both on GPQA, HLE, AA-Omniscience and Terminal-Bench, and splits on SciCode. We ran no agentic tasks. On our seven-benchmark index Dory at 4 loops reads 69.1, against 67.6 for Qwen3.5-9B (+1.5 ± 1.1, level within error) and 72.1 for Gemma 4 26B-A4B (-2.9 ± 1.1, behind). Benchmark by benchmark, it is ahead of Qwen3.5-9B on competition math, IFBench, IFNovel (written for this project) and AA-LCR and behind on MMLU-Pro, GPQA, SimpleQA and MRCR; ahead of Gemma 4 26B-A4B on competition math, IFNovel (written for this project) and AA-LCR and behind on MMLU-Pro, GPQA, SimpleQA, LiveCodeBench and MRCR (beyond two standard errors, paired by question; the rest unresolved).

Per token yes, per GPU-second no

“More intelligence per token”

Each loop adds compute to every token, and the second loop buys +2.7 ± 0.9 on GPQA and +8.5 ± 1.7 on competition math, with answers 9–16% shorter on GPQA, IFBench and AA-LCR. But in matched H200 jobs a 2-loop token took 1.6× the GPU time of a 1-loop token, so a 2-loop answer cost 1.5× as much; a 4-loop token takes 2.4–3.1× (B200, H200, H100). At 1 loop Dory decodes about as fast as Qwen3.5-4B: 6,783 against 7,328 tokens/s on one H200, on GPQA and IFBench with answers of up to 32K tokens, batch 256.

Holds, smaller on single questions

“Fewer tokens to solve problems”

Answers are 9–16% shorter at 2 loops and 11–18% at 4 (GPQA, IFBench, AA-LCR), against the card's 20–60% on multi-turn agentic tasks, which we did not run. Most of the saving comes with the second loop.

Depends on one grading convention

The card's IFBench comparison columns

86–94% of the Qwen models' IFBench answers start with whitespace, the blank line after their reasoning. Graded as returned, our harness lands within 0.1–2.3 points of the card's Qwen numbers, so the card's columns reproduce. With the whitespace stripped, as this harness does for every model, Qwen gains 6–7 points, and Dory's lead over Qwen3.5-9B drops from 19.2 to 12.4 points (the card shows 20): the convention accounts for about a third of the gap. Dory and Gemma 4 are unaffected.

Holds

“Most of the accuracy gain from looping comes from the second loop”

From 2 to 4 loops GPQA moves +0.9 ± 0.6, IFBench +0.2 ± 0.8, competition math +1.2 ± 1.1 and LiveCodeBench -1.9 ± 2.2; AA-LCR's single draws are too noisy to say. The card suggests 4 loops when accuracy matters more, “particularly for agentic tasks”, which we did not test.

Holds

“The accuracy with last-loop caching stays close to the per-loop mode with nearly unchanged output lengths”

At 4 loops, last-loop caching changes GPQA by +0.3 ± 0.9 and IFBench by +0.8 ± 0.9, and output lengths by +0.7% and +1.4%. It also serves 1.38× the tokens per second on an H200, because the smaller cache fits twice the batch.

The card's numbers, re-measured GPQA, IFBench, AA-LCR at 1, 2, 4 loops

Each row pools independent runs with fresh seeds; ± is the sampling standard error. GPQA pools every Dory run at that loop count: experiment 2, the showdown and, at 2 loops, three control runs. IFBench (NVIDIA's metric, the mean fraction of instructions followed, strict) and AA-LCR are experiment 2's runs.

BenchmarkLoopsCardMeasuredRepeats × questions
GPQA Diamond169.1969.6 ± 0.78 × 198
GPQA Diamond272.4172.3 ± 0.420 × 198
GPQA Diamond472.1673.2 ± 0.610 × 198
IFBench (NVIDIA metric)174.2974.2 ± 0.76 × 300
IFBench (NVIDIA metric)277.9478.6 ± 0.66 × 300
IFBench (NVIDIA metric)479.0078.8 ± 0.67 × 300
AA-LCR163.0062.7 ± 1.93 × 100
AA-LCR271.0071.3 ± 1.43 × 100
AA-LCR473.0072.0 ± 2.02 × 100
Dory against Qwen3.5-9B and Gemma 4 26B-A4B, benchmark by benchmark

Qwen3.5-9B. Dory ahead on: competition math 88.8 vs 79.7 (+9.1 ± 2.3), IFBench 79.1 vs 66.7 (+12.4 ± 2.4), IFNovel 93.3 vs 59.3 (+34.0 ± 2.9), AA-LCR 74.0 vs 63.0 (+11.0 ± 5.3). Behind on: MMLU-Pro 77.7 vs 83.1 (-5.4 ± 0.7), GPQA 73.4 vs 82.2 (-8.8 ± 2.1), SimpleQA 3.4 vs 8.1 (-4.7 ± 0.4), MRCR 39.0 vs 96.3 (-57.2 ± 3.0). Not resolved by these sets: LiveCodeBench 68.4 vs 63.2 (+5.2 ± 2.6), IFEval 93.3 vs 90.6 (+2.8 ± 1.4).

Gemma 4 26B-A4B. Dory ahead on: competition math 88.8 vs 83.1 (+5.7 ± 2.3), IFNovel 93.3 vs 85.0 (+8.3 ± 2.3), AA-LCR 74.0 vs 63.0 (+11.0 ± 5.3). Behind on: MMLU-Pro 77.7 vs 85.8 (-8.1 ± 0.7), GPQA 73.4 vs 79.7 (-6.3 ± 2.2), SimpleQA 3.4 vs 7.5 (-4.1 ± 0.4), LiveCodeBench 68.4 vs 74.7 (-6.3 ± 2.5), MRCR 39.0 vs 52.0 (-13.0 ± 3.7). Not resolved by these sets: IFEval 93.3 vs 94.6 (-1.3 ± 1.2), IFBench 79.1 vs 79.1 (+0.0 ± 2.1).

In brackets: the difference, paired by question, ± one standard error; a difference beyond two standard errors counts. Scores are this run's (Dory's GPQA here is one run; every run pooled reads 73.2 at 4 loops).

All at Dory's 4-loop setting; each model at its maker's recommended sampling with reasoning on.

IFBench graded two ways the card's comparison columns, re-graded

The showdown's raw IFBench answers, graded with AllenAI's verifiers at commit 1c40f0c1 and NVIDIA's metric. ‘As returned’ keeps the whitespace that follows the reasoning; ‘stripped’ removes it, as this harness does.

ModelCardGraded as returnedLeading whitespace strippedAnswers starting with whitespace
Dory, 1 loop74.2974.974.90%
Dory, 2 loops77.9478.378.30%
Dory, 4 loops79.0079.179.11%
Qwen3.5-4B53.8353.960.386%
Qwen3.5-9B59.0059.866.789%
Qwen3.6-35B-A3B57.4459.866.294%
Gemma 4 26B-A4B77.8979.179.10%

How Dory ranks

Index = the mean of seven benchmarks (MMLU-Pro, GPQA, SimpleQA, competition math, LiveCodeBench, IFEval, IFBench), each run by this harness with the same prompts, budgets and graders. As a check on the harness itself: of the 84 numbers the makers report for their own models in settings like ours, it lands within 3 points of 57 (median gap 2.0 points). Dory's rows are this run's single draws; its GPQA pooled over every run reads 69.6 / 72.3 / 73.2. The top ten, plus every Dory row:

#ModelIndexMMLU-ProGPQASimpleQAMathLCBIFEvalIFBenchAA-LCRMRCR
1Qwen3.6-35B-A3B72.385.984.718.186.674.790.066.271.098.6
2Gemma 4 26B-A4B72.185.879.77.583.174.794.679.163.052.0
3Nemotron 3.5 Lightning 30B-A3B69.780.576.19.681.373.693.373.262.041.8
4Dory 4B, 4 loops69.177.773.43.488.868.493.379.174.039.0
5Dory 4B, 2 loops68.777.070.63.287.670.393.978.366.032.4
6LFM2.5-24B-A2B67.977.878.95.077.464.395.476.628.019.8
7Qwen3.5-9B67.683.182.28.179.763.290.666.763.096.3
8Granite 4.2 8B66.671.863.41.783.975.093.577.148.026.6
9Dory 4B, 1 loop65.175.170.12.879.160.293.574.965.025.3
10gpt-oss-20b (high)63.675.564.15.073.469.088.769.434.017.5
Every configuration and every benchmark
#ModelIndexMMLU-ProGPQASimpleQAMathLCBIFEvalIFBenchAA-LCRMRCRIFNovel
1Qwen3.6-35B-A3B72.385.984.718.186.674.790.066.271.098.645.5
2Gemma 4 26B-A4B72.185.879.77.583.174.794.679.163.052.085.0
3Nemotron 3.5 Lightning 30B-A3B69.780.576.19.681.373.693.373.262.041.885.0
4Dory 4B, 4 loops69.177.773.43.488.868.493.379.174.039.093.3
5Dory 4B, 2 loops68.777.070.63.287.670.393.978.366.032.492.7
6LFM2.5-24B-A2B67.977.878.95.077.464.395.476.628.019.882.5
7Qwen3.5-9B67.683.182.28.179.763.290.666.763.096.359.3
8Granite 4.2 8B66.671.863.41.783.975.093.577.148.026.694.3
9Dory 4B, 1 loop65.175.170.12.879.160.293.574.965.025.384.3
10gpt-oss-20b (high)63.675.564.15.073.469.088.769.434.017.577.0
11Qwen3.5-4B63.280.078.45.674.253.390.660.359.093.747.8
12MiniCPM5-2B62.771.969.41.477.667.087.464.258.025.037.8
13GLM-4.7-Flash62.678.976.07.579.751.183.561.348.029.832.0
14Granite 4.2 3B60.767.054.20.772.860.792.876.821.014.784.0
15Ornith 1.0 9B60.682.679.76.773.647.883.550.152.083.421.7
16Nemotron 3 Nano 4B54.168.153.52.857.749.586.160.714.011.249.7
17LFM2.5-2.6B52.468.557.22.345.940.992.459.58.015.460.7
18Olmo 3 7B Think51.066.651.13.457.748.684.844.4–16.237.3
19Gemma 4 E4B49.471.256.72.138.453.086.038.538.031.226.8
20MiMo-V2.6 Distill 9B41.573.249.67.039.229.466.525.549.064.87.8
21Jamba2-3B32.248.629.03.95.317.083.537.912.022.56.0

Surprises

  1. The loop pays most on math, code and long documents. The second loop adds +8.5 ± 1.7 on competition math, +10.2 ± 2.3 on LiveCodeBench (this run) and +8.7 ± 3.1 on AA-LCR (experiment 2), against +2.7 ± 0.9 on GPQA (every run pooled) and +4.3 ± 1.1 on IFBench (experiment 2). At 4 loops Dory reads 95.0 on AIME 2025 and 95.8 on AIME 2026, the highest here. All four math sets predate Dory's release, as they predate every model's here, so none of these scores rules out contamination.
  2. A blank line moves IFBench by 6–7 points. Whether a harness strips the answer before IFBench's verifiers see it accounts for about a third of the gap between Dory and Qwen3.5-9B on the card. Dory and Gemma 4 almost never start an answer with whitespace (under 1% of answers), and stripping leaves their scores unchanged.
  3. Two kinds of long context. Dory is among the best here at answering questions over ~100K-token documents (AA-LCR), and far behind the Qwen models at copying a passage back out of a long conversation (MRCR: 39.0 at 4 loops, #8 of 21, against 93.7–98.6 for the Qwen models). Loops help both: AA-LCR 65.0 → 74.0 and MRCR 25.3 → 39.0 from 1 to 4 loops in this run.
  4. Models without a loop match Dory on instruction following. On IFBench (Dory 79.1 at 4 loops): Gemma 4 26B-A4B (79.1). On IFNovel (Dory 93.3 at 4 loops): Granite 4.2 8B (94.3). On IFEval (Dory 93.3 at 4 loops): LFM2.5-24B-A2B (95.4), Gemma 4 26B-A4B (94.6), Granite 4.2 8B (93.5) and 3 more within one standard error. Dory's IFBench lead of 5 points or more holds against 14 of the 18 other configurations, including every Qwen model.
  5. One GPQA run is not enough. Five independent 2-loop runs of 792 answers each read 70.6, 71.3, 72.5, 73.0, 74.1. Their spread (standard deviation 1.4) is a little wider than one run's sampling error (about ±0.9) predicts. Pooled: 72.3 ± 0.4 by sampling error, ± 0.6 by the spread of runs, against the card's 72.41. Hardware and attention backend made no difference we could see (control runs on H200, H200 with FlashAttention, and B200).
  6. The released weights carry neither the gated loop update nor the loop conditioning of arXiv 2610.12582. Of the 507 tensors (revision b366b87f), only the embeddings, the LM head and its logit scale sit outside the 36 layers. Inside them, the attention layers carry an output gate (g_proj, s_gate) and the MLPs a SwiGLU gate (gate_proj, with nGPT's suv_gate and suv_up scalings), looped or not; the per-layer step sizes are nGPT's own attn_alpha and mlp_alpha. Nothing gates the update from one loop to the next. Each loop is justnorm(state + input) through the 20 shared layers, then justnorm, the same at every loop index. Yet the loop curve has the shape the paper describes.

Questions for you

  1. Did Dory train with the one-loop rank override and the late switch to mixed depth? Without the adaptive-delta gate, is nGPT's per-layer α doing the gate's job?
  2. Does NeMo Gym strip the answer before IFBench's verifiers? If not, would you re-grade the Qwen columns stripped?
  3. What loop count and sampling do you recommend per task type, beyond the card's “2 by default, 4 for agentic work”?
  4. Is the MRCR gap a known property of the 3:1 sliding-window layout? With 5 of the 9 full-attention layers inside the loop, is that why more loops help it?
  5. Which of these benchmarks, or close relatives, are in Dory's pre- or post-training data? Our likelihood probe found no sign that Dory memorised the GPQA Diamond or IFBench test items (its loss on them is higher than Qwen3.5-4B's), but it cannot see post-training on instruction-following data in general, hence the question.

Reproduce it

Everything needed to re-run or re-grade any number above, folded.

Environment and versions
  • vLLM: the Dory pull request, vllm-project/vllm#60149, at 55076950, installed over the precompiled cu130 wheel of main 153a1716 (0.32.0rc1.dev319), torch 2.14.0.
  • Image: experiment 2 ran on Modal's debian_slim Python 3.12 image; the showdown on nvidia/cuda:13.0.1-devel-ubuntu24.04 with Python 3.12, because nvcc is needed on B200, where vLLM JIT-compiles FlashInfer's attention. Both set VLLM_USE_FLASHINFER_SAMPLER=0; the vLLM build is the same.
  • Hardware: one GPU per job on Modal. Dense models ran on B200, falling back to H200 or H100. The MoE models (gpt-oss-20b, Qwen3.6-35B-A3B, Nemotron 3.5 Lightning, LFM2.5-24B-A2B, GLM-4.7-Flash) ran on H200 with moe_backend="triton", because their B200 start-ups failed in this build. Gemma 4 26B-A4B ran on B200 and H200 with Triton MoE. Each configuration's GPUs are in the settings table.
  • Weights: Dory nvidia/NVIDIA-Nemotron-Labs-Dory1.0-4B-BF16 at b366b87f; every other model pinned to its Hugging Face main commit of Tue 20 Oct 2026 (table below).
git clone https://github.com/vllm-project/vllm && cd vllm
git fetch origin pull/60149/head && git checkout 55076950b6c155f384d6766d63563c3bc20a0e3f
VLLM_USE_PRECOMPILED=1 \
VLLM_PRECOMPILED_WHEEL_COMMIT=153a17166e5d07bc38184dedeea542d2e8885e55 \
VLLM_PRECOMPILED_WHEEL_VARIANT=cu130 pip install .
Serving Dory the call behind the GPQA runs; other tasks change only the context length and batch
from vllm import LLM, SamplingParams
llm = LLM(model=DORY_PATH, max_model_len=73728,   # GPQA here; 69,632 in experiment 2, up to 196,608 for AA-LCR
          enable_prefix_caching=True, max_num_seqs=256,      # down to 4 for AA-LCR at 4 loops
          seed=zlib.crc32(run_tag.encode()) % 2**31,          # a fresh seed per launch = an independent draw
          hf_overrides={"n_recurrent_loops": k,              # 1, 2 or 4
                        "recurrent_kv_cache_mode": "per_loop"})
sp = SamplingParams(temperature=1.0, top_p=0.95, max_tokens=65536)   # the card's sampling
prompt = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
text = llm.generate([prompt], sp)[0].outputs[0].text
answer = text.rsplit("</think>", 1)[1].strip() if "</think>" in text else ""   # unclosed = no answer = wrong

Output budget: 64K tokens for GPQA, competition math, LiveCodeBench and AA-LCR (AA-LCR up to what each model's context window leaves after the ~100K-token prompt); 32K for MMLU-Pro, SimpleQA, IFEval, IFBench, IFNovel and MRCR. A reply cut at the budget, or with its reasoning never closed, scores 0. Every model ran with reasoning on, at its maker's recommended sampling.

Benchmarks, prompts and graders
BenchmarkSource (pinned)Questions × repeatsPrompt and grading
GPQA Diamondsimple-evals CSV (openaipublic)198 × 4 answer orderssimple-evals template; letter from “Answer: X”, else “answer is X”, else \boxed{X}; last match
MMLU-ProTIGER-Lab/MMLU-Pro @ b189ec763,008 (every 4th of 12,032) × 1same template, ten options
Competition mathMathArena aime_2025 @ c94da77e, aime_2026 @ d61f4868, hmmt_feb_2026 @ 589a53fe, hmmt_nov_2025 @ 118dbfb4123 × 4MathArena's instruction; last \boxed{} chosen as MathArena's parser does; integers exact, expressions by math-verify
LiveCodeBenchlivecodebench/code_generation_lite @ 0fe84c39182 (1 Jan – 30 Apr 2025) × 2LCB's chat prompt; last fenced block; lcb_runner @ 28fef95e, all public + private tests, 6 s each
IFEvalgoogle/IFEval @ 966cd895541 × 1google-research instruction_following_eval @ e6890f85; prompt-level strict
IFBenchallenai/IFBench @ 1c40f0c1300 × 2AllenAI's verifiers; mean strict fraction (NVIDIA's metric)
IFNovelwritten for this project300 × 122 constraint types not in IFEval or IFBench, with their own verifiers
SimpleQAsimple-evals CSV (openaipublic)4,326 × 1gpt-oss-120b (low effort, temperature 0) with simple-evals' grader template @ 652c89d0
AA-LCRArtificialAnalysis/AA-LCR @ 9a77ef56 (v1.1 keys)100 × 1gpt-oss-120b (medium effort, temperature 0) with AA-LCR v1.1's judge prompt
OpenAI MRCRopenai/mrcr @ f4c69fae200 (2 and 8 needles, 20 per bin, 4K–128K tokens)the dataset README's grade(): prefix check, then SequenceMatcher ratio
Checked against NeMo Gym NVIDIA's own prompt, metric and judge

The Dory card names NeMo Gym as its harness. Gym has no Dory recipe, so experiment 2 ported its Super 3.5 recipes at the commits their published numbers were made with (Gym ae8d388d for GPQA and IFBench, 5a7dd6fe for AA-LCR) and ran them beside this harness:

  • GPQA with Gym's prompt (aai/mcq-4choices) and its lenient extractor: 66.4 / 73.2 / 72.5 at 1 / 2 / 4 loops (2 repeats each, one fixed answer order per question, so position bias is in it too), against the card's 69.19 / 72.41 / 72.16.
  • IFBench: the card's number is Gym's reward, the mean over prompts of the strict fraction of instructions followed, graded by AllenAI's verifiers on the final answer. This page reports the same metric on the same 300 prompts.
  • AA-LCR: Gym's judge (Qwen3-235B-A22B-Instruct-2507, FP8) and our gpt-oss-120b judge, re-grading the same 12 complete answer sets: Gym's judge reads between 1 point lower and 2 points higher than ours (mean +0.4).
Every configuration's settings
ConfigurationWeightsSamplingChat settingsRan on
Dory 4B, 1 loopnvidia/NVIDIA-Nemotron-Labs-Dory1.0-4B-BF16temperature 1.0, top_p 0.951 loop; H200, B200
Dory 4B, 2 loopsnvidia/NVIDIA-Nemotron-Labs-Dory1.0-4B-BF16temperature 1.0, top_p 0.952 loops; B200, H200
Dory 4B, 4 loopsnvidia/NVIDIA-Nemotron-Labs-Dory1.0-4B-BF16temperature 1.0, top_p 0.954 loops; H200, B200
Qwen3.5-4BQwen/Qwen3.5-4Btemperature 1.0, top_p 0.95, top_k 20, min_p 0, presence_penalty 1.5–B200, H200
Nemotron 3 Nano 4Bnvidia/NVIDIA-Nemotron-3-Nano-4B-BF16temperature 1.0, top_p 0.95–H200, B200
Gemma 4 E4Bgoogle/gemma-4-E4B-it @ ee0ef602temperature 1.0, top_p 0.95, top_k 64enable_thinking=TrueH200, B200
Granite 4.2 3Bibm-granite/granite-4.2-3b @ e459accetemperature 1.0, top_p 0.95enable_thinking=TrueB200, H200
Granite 4.2 8Bibm-granite/granite-4.2-8b @ f8de16cdtemperature 1.0, top_p 0.95enable_thinking=TrueH200, B200
MiniCPM5-2Bopenbmb/MiniCPM5-2B @ f9740005temperature 1.0, top_p 0.95, min_p 0.0enable_thinking=TrueB200, H200
LFM2.5-2.6BLiquidAI/LFM2.5-2.6B @ 654f9463temperature 0.1, top_k 50, repetition_penalty 1.1–H200, B200, H100
Jamba2-3Bai21labs/AI21-Jamba2-3B @ 525c6c8etemperature 0.6, top_p 0.95–B200, H200
Olmo 3 7B Thinkallenai/Olmo-3-7B-Think @ d97e442dtemperature 0.6, top_p 0.95–B200, H200, H100
Qwen3.5-9BQwen/Qwen3.5-9B @ c2022362temperature 1.0, top_p 0.95, top_k 20, min_p 0.0, presence_penalty 1.5–H200, B200
MiMo-V2.6 Distill 9BXiaomiMiMo/MiMo-V2.6-Distill-Qwen-9B @ 2367e865temperature 0.6, top_p 0.95, top_k 20enable_thinking=TrueB200, H200
Ornith 1.0 9Bornith-ai/Ornith-1.0-9B @ 83dc1f5etemperature 0.6, top_p 0.95, top_k 20–B200, H200
gpt-oss-20b (high)openai/gpt-oss-20btemperature 1.0, top_p 1.0reasoning_effort=highH200
Qwen3.6-35B-A3BQwen/Qwen3.6-35B-A3B @ 995ad96etemperature 1.0, top_p 0.95, top_k 20, min_p 0.0, presence_penalty 1.5–H200
Gemma 4 26B-A4Bgoogle/gemma-4-26B-A4B-it @ 4d7ae498temperature 1.0, top_p 0.95, top_k 64enable_thinking=TrueH200, B200
Nemotron 3.5 Lightning 30B-A3Bnvidia/NVIDIA-Nemotron-3.5-Lightning-30B-A3B-BF16 @ a9904d24temperature 1.0, top_p 0.95–H200
LFM2.5-24B-A2BLiquidAI/LFM2.5-24B-A2B @ 1769516atemperature 0.1, top_k 50, repetition_penalty 1.05–H200
GLM-4.7-Flashzai-org/GLM-4.7-Flash @ 7dd20894temperature 1.0, top_p 0.95–H200
gpt-oss-20b (medium)openai/gpt-oss-20btemperature 1.0, top_p 1.0reasoning_effort=mediumH200
gpt-oss-20b (low)openai/gpt-oss-20btemperature 1.0, top_p 1.0reasoning_effort=lowH200
LFM2.5-2.6B at temperature 1.0LiquidAI/LFM2.5-2.6B @ 654f9463temperature 1.0, top_p 0.95, top_k -1, repetition_penalty 1.0–B200
Statistics

A score is the mean over questions of each question's mean over its repeats. Two error bars appear. Against the card, which measured the same questions, the yardstick is the sampling standard error: the run-to-run noise of repeats on those questions. Between loop counts or models, differences are paired by question: the spread of the per-question differences divided by √questions. Each launch is seeded from its run name, so repeats are independent draws; byte-identical texts are checked for before pooling. Long-context columns (AA-LCR, MRCR) and IFNovel are reported beside the index, not in it.

Which GPU is cheapest

The same Dory job (198 GPQA prompts × 4,096 tokens, 1 loop, batch 256) on eight Modal GPU types. Decode-bound evaluation favours memory bandwidth, so the cheapest card per hour is the most expensive per token.

GPU$ / hourOutput tokens / sMillion tokens per $
B2006.2516,7829.67
H2004.5411,0538.76
H1003.959,4988.66
A100-80GB2.502,4703.56
A100-40GB2.101,9323.31
L40S1.951,2502.31
A10G1.106582.15
L40.803931.77
What we fixed along the way
  • IFBench metric: the card's number is NVIDIA's mean strict fraction, not IFBench's prompt-level loose; experiment 1 compared the wrong one.
  • Repeats that weren't: vLLM seeded once per engine made separately launched AA-LCR “repeats” byte-identical copies; every launch now gets its own seed.
  • Math answers: the boxed answer is chosen as MathArena's parser does (an exact box beats a later decimal approximation), and math-verify gets sums written out (an exact HMMT answer left as a double sum was graded wrong).
  • LiveCodeBench: four test workers per 8-CPU grader (oversubscription had pushed correct solutions past the 6 s limit), time-limited records re-run alone, and a finished reply without a reasoning marker graded on its last code block as lcb_runner does.
  • IFEval: Google's verifiers draw a random letter for two malformed rows and langdetect samples; both are now seeded, so re-grades agree.
  • Equal budgets: MRCR kept at 32K for every model (grouping it with AA-LCR had given five models 64K), and context limits taken from each repo's config.

Seven review passes checked each benchmark's prompt, extraction and grading against the reference code and real outputs, and a sceptic tried to refute each finding; 17 of 37 held, grouped into the six fixes above.

Limitations
  • No agentic tasks. The card's Terminal-Bench, τ³-Bench, GDPval and SWE-bench columns are not run here, so this does not re-measure its Artificial Analysis index estimate.
  • Humanity's Last Exam (a gated dataset), AA-Omniscience and SciCode are not run either.
  • One draw of AA-LCR and MRCR per configuration in the showdown; AA-LCR draws of the same model differ by up to 11 points (experiment 2).
  • Context windows decide long-context budgets. A 131K-context model has much less room to think about a ~100K-token AA-LCR prompt than a 262K one; Olmo 3 (65K) cannot run it at all.
  • Some models exceed the output budgets: Ornith 1.0 9B on up to 68% of a benchmark's prompts; MiMo-V2.6 Distill 9B on up to 56% of a benchmark's prompts; Qwen3.5-4B on up to 43% of a benchmark's prompts; Qwen3.5-9B on up to 32% of a benchmark's prompts; Qwen3.6-35B-A3B on up to 29% of a benchmark's prompts; LFM2.5-2.6B on up to 28% of a benchmark's prompts; GLM-4.7-Flash on up to 24% of a benchmark's prompts; Gemma 4 26B-A4B on up to 24% of a benchmark's prompts; gpt-oss-20b (high) on up to 23% of a benchmark's prompts; Jamba2-3B on up to 18% of a benchmark's prompts; LFM2.5-24B-A2B on up to 15% of a benchmark's prompts; Olmo 3 7B Think on up to 12% of a benchmark's prompts. A cut answer scores 0, so their scores there partly measure that.
  • Vendor sampling differs: Liquid recommends temperature 0.1 for its LFM2.5 models, which ran that way; a control of LFM2.5-2.6B at temperature 1.0 is in the full report.