d20 Bench · Study 1
Which local model can keep a live interaction moving?
Baseline study of English SRD 5.2.1 rules questions, by Erol Can Akbaba.
With the source passages supplied, only three configurations met the 5-second median bar and got more than half the answers fully correct. All three were Gemma 4.
The product question sets the speed target
This study looks at one job in interactive narrative systems such as game master agents and tabletop role-playing assistants: applying precise rules knowledge live, inside a conversation. I use the openly licensed rules of Dungeons & Dragons (SRD 5.2.1) as the test domain; the name d20 refers to the twenty-sided die the game rolls. For these systems, correct rulings and fast responses both matter: a wrong ruling misleads the players, and a slow one stalls the conversation.
A player describes an action. The game master (GM) agent takes 30 seconds just to say “roll Persuasion.” That delay is unusable in a live session, where play involves many such steps. My target is about 5 seconds per step on average, but quicker is better. Usability research puts the limit for keeping a user's attention on a dialogue at about 10 seconds [1]. I set the 30-second hard cutoff deliberately. In my judgment, a model that takes 30 seconds to settle a simple rules question even 1% of the time invites players to switch off, and one that routinely takes 30 seconds loses them for good.
For this reason, I picked Gemma 4. Every model answered each question twice: once on its own, and once with the oracle passages, the rules passages the task authors used to write that question. With oracle passages, Gemma 4 26B-A4B with thinking off had a 2.13-second median completion time. Thinking on reached the study's highest count of fully correct answers, 113/120, at a 6.08-second median, just beyond the intended live-use target. Across every tested configuration, oracle passages raised mean claim scores and reduced median time and mean output tokens. This makes the study a useful foundation for a retrieval series: it establishes what these configurations achieved with the oracle passages, and what a retrieval system must match or improve.
Quality and completion time therefore have to be read together. So do median and the 95th percentile (p95): the median describes a typical request, while p95 shows the slower end of the observed distribution. A low median cannot excuse a tail that repeatedly interrupts play.
What was tested
The baseline contains 25 configurations and 6,000 answer records, from the same 120 cases answered with and without oracle passages.
All models ran locally on a single NVIDIA RTX 3090 (24 GB VRAM) in October 2026. I ran each one the way a typical user would, in LM Studio with its defaults and each provider's recommended settings, and with no tuning of the inference setup. VRAM usage was not tracked.
All aggregate results below cover the full 120-case suite per study configuration. The repository exposes 18 human-reviewed public cases and their 900 answer records. The other 102 cases remain private and contribute only aggregates.
The lead measure is fully correct answers: every required claim satisfied and no material error. A few answers couldn't be graded as clearly right or wrong; those are left out, so some counts are out of fewer than 120. Mean claim score is secondary. It sums the points earned for required claims, out of 100, with no deduction for errors. An answer can earn every claim point and still add a wrong rule, in which case it isn't fully correct.
Comparisons are grouped by total parameters: small, roughly 2.7–5.1B; medium, 8.0–9.7B; large, 24–31B. Mixture-of-experts models use only part of their weights for each token: Gemma 4 26B-A4B has about 25.8B total and 3.8B active parameters. The active parameter count is what matters for speed [2, 3], provided the model fits in VRAM. Runtime and configuration differences remain confounds.
Completion time includes recorded request attempts and retries, excluding model loading and grading. The tables use all outcomes, including failures and capped outputs. Output tokens are recorded totals per response; separate thinking-token counts are sometimes unknown. See Methods for prompts, budgets and grading.
Oracle passages improved every configuration
All 25 configurations had higher mean claim scores, lower median completion times and fewer mean and median output tokens with oracle passages provided to the model. The result supports context injection as a practical quality and efficiency intervention, which fits with the retrieval-augmented generation literature [4].
Oracle passages improved quality and reduced time and output
off/on: thinking off/on · on (low): on at low effort · low/native: cannot turn thinking off; low effort/thinking on
Static data table and text alternative
| Configuration | Size | Mean claim /100 | Median s | Mean tokens |
|---|---|---|---|---|
| LFM2.5 2.6B · native | small | 28.40 → 74.03 | 8.31 → 4.99 | 2392.0 → 1734.0 |
| Granite 4.2 3B · off | small | 33.86 → 84.56 | 11.63 → 6.87 | 2866.7 → 1832.6 |
| Granite 4.2 3B · on | small | 38.88 → 90.58 | 26.37 → 8.51 | 5508.4 → 2508.2 |
| Qwen3.5 4B · off | small | 36.69 → 87.37 | 6.11 → 3.57 | 2916.6 → 986.5 |
| Qwen3.5 4B · on | small | 40.59 → 95.38 | 83.78 → 32.70 | 11715.9 → 5193.2 |
| K2 Horizon 3.7B · low | small | 22.10 → 70.70 | 5.07 → 3.27 | 6853.4 → 2106.6 |
| Gemma 4 E2B · off | small | 29.57 → 79.84 | 2.09 → 1.76 | 464.8 → 380.0 |
| Gemma 4 E2B · on | small | 28.83 → 86.84 | 4.52 → 3.86 | 960.3 → 837.2 |
| Gemma 4 E4B · off | medium | 35.90 → 87.12 | 5.01 → 3.99 | 517.6 → 383.7 |
| Gemma 4 E4B · on | medium | 39.27 → 93.66 | 9.31 → 7.02 | 1058.3 → 801.7 |
| LFM2.5-8B-A1B · native | medium | 27.63 → 71.41 | 9.91 → 4.07 | 4046.9 → 1729.9 |
| Granite 4.2 8B · off | medium | 41.09 → 88.83 | 22.38 → 9.41 | 3264.1 → 1685.1 |
| Granite 4.2 8B · on | medium | 44.58 → 93.97 | 37.74 → 18.47 | 4734.8 → 2971.9 |
| Qwen3.5 9B · off | medium | 51.88 → 89.24 | 7.62 → 4.86 | 1701.4 → 749.7 |
| Qwen3.5 9B · on | medium | 45.30 → 96.63 | 83.02 → 26.66 | 9077.4 → 3577.9 |
| LFM2.5-24B-A2B · native | large | 41.93 → 95.08 | 23.84 → 10.76 | 5959.3 → 2868.5 |
| Gemma 4 26B-A4B · off | large | 48.72 → 94.59 | 3.14 → 2.13 | 389.2 → 255.3 |
| Gemma 4 26B-A4B · on | large | 51.24 → 99.08 | 17.42 → 6.08 | 2754.9 → 892.6 |
| Qwen3.8 27B · off | large | 53.67 → 95.16 | 14.21 → 7.71 | 836.3 → 456.8 |
| Qwen3.8 27B · on (low) | large | 53.88 → 98.42 | 27.74 → 11.28 | 1735.0 → 709.6 |
| Granite 4.2 30B · off | large | 44.07 → 95.24 | 40.14 → 27.07 | 1406.6 → 825.6 |
| Granite 4.2 30B · on | large | 45.55 → 95.92 | 71.84 → 52.04 | 2336.3 → 1493.3 |
| Muse Glimmer · low | large | 60.07 → 98.86 | 27.29 → 16.39 | 912.8 → 581.0 |
| GLM-4.7 Flash · off | large | 35.87 → 70.81 | 4.11 → 3.11 | 473.3 → 356.2 |
| GLM-4.7 Flash · on | large | 45.73 → 90.22 | 28.83 → 13.77 | 3885.2 → 2061.9 |
The public case d20-en-pilot-t01-003 asks whether a willing character can fail a saving throw without rolling. Gemma 4 E2B with thinking off insisted on a roll without oracle passages. With the oracle passage, it correctly allowed voluntary failure. Its score rose from 0 to 100 and the answer became fully correct, while time fell from 1.76 to 0.70 seconds and output from 356 to 130 tokens.
In d20-en-pilot-t11-006, Qwen3.5 4B, thinking off, fabricated restrictions for Knock and its interaction with Arcane Lock. With oracle passages, it correctly distinguished unlocking a lock from suppressing the magical lock and described the spell's loud sound; its score rose from 0 to 100, with a fully correct answer.
Under the 5-second bar, Gemma 4 leads
With oracle passages, 10/25 configurations had a median at or below 5 seconds. Rows are sorted by fully correct answers, with lower median time breaking ties. Here, off/on mean thinking off/on; native marks models that cannot turn thinking off, and low marks reduced thinking effort.
| Size class | Configuration | Fully correct / assessed | Median s | p95 s | Mean output tokens |
|---|---|---|---|---|---|
| Large | Gemma 4 26B-A4B on | 113/120 | 6.08 | 15.68 | 892.6 |
| Large | Qwen3.8 27B on (low) | 102/119 | 11.28 | 22.27 | 709.6 |
| Medium | Qwen3.5 9B on | 99/120 | 26.66 | 77.80 | 3,577.9 |
| Large | Gemma 4 26B-A4B off | 96/120 | 2.13 | 4.56 | 255.3 |
| Large | Muse Glimmer low | 96/120 | 16.39 | 27.46 | 581.0 |
| Medium | Gemma 4 E4B on | 91/120 | 7.02 | 11.06 | 801.7 |
| Large | Qwen3.8 27B off | 90/120 | 7.71 | 14.14 | 456.8 |
| Small | Qwen3.5 4B on | 90/120 | 32.70 | 94.70 | 5,193.2 |
| Large | GLM-4.7 Flash on | 82/120 | 13.77 | 44.25 | 2,061.9 |
| Medium | Gemma 4 E4B off | 78/119 | 3.99 | 8.77 | 383.7 |
| Small | Gemma 4 E2B on | 76/120 | 3.86 | 6.57 | 837.2 |
| Small | Granite 4.2 3B on | 76/119 | 8.51 | 45.17 | 2,508.2 |
| Large | LFM2.5-24B-A2B native | 73/119 | 10.76 | 29.95 | 2,868.5 |
| Large | Granite 4.2 30B on | 69/119 | 52.04 | 97.29 | 1,493.3 |
| Medium | Granite 4.2 8B off | 63/120 | 9.41 | 46.69 | 1,685.1 |
| Medium | Granite 4.2 8B on | 63/117 | 18.47 | 97.16 | 2,971.9 |
| Large | Granite 4.2 30B off | 62/115 | 27.07 | 72.33 | 825.6 |
| Small | Gemma 4 E2B off | 58/120 | 1.76 | 4.36 | 380.0 |
| Small | Qwen3.5 4B off | 51/120 | 3.57 | 16.17 | 986.5 |
| Medium | Qwen3.5 9B off | 49/116 | 4.86 | 19.40 | 749.7 |
| Small | Granite 4.2 3B off | 49/119 | 6.87 | 37.39 | 1,832.6 |
| Small | K2 Horizon 3.7B low | 33/119 | 3.27 | 89.81 | 2,106.6 |
| Medium | LFM2.5-8B-A1B native | 32/120 | 4.07 | 14.34 | 1,729.9 |
| Small | LFM2.5 2.6B native | 32/120 | 4.99 | 21.39 | 1,734.0 |
| Large | GLM-4.7 Flash off | 30/120 | 3.11 | 6.07 | 356.2 |
Bold rows: median at or below 5 seconds.
Only three configurations clear the median bar with a majority fully correct
off/on: thinking off/on · on (low): on at low effort · low/native: cannot turn thinking off; low effort/thinking on
Static values: see the full oracle table immediately above. All 120 requests have timing and token measurements for each configuration. The CSV table also includes counts above 30 seconds.
I picked Gemma 4 because of the combination of fully correct answers, short times and few output tokens. Among the configurations with a median at or below 5 seconds, Gemma 4 26B-A4B off had the most fully correct answers and the lowest mean output tokens. Its p95 was also below the target. That is a stronger live-use result than passing the median filter alone: on consumer-grade hardware, even its slower responses stay within the target.
Dense models read all their weights for each generated token; mixture-of-experts models read only the active experts alongside shared weights [2, 3]. In the public answers, Gemma 4 26B-A4B, with 3.8B active parameters, generated about 130 tokens per second, compared with about 24–33 tokens per second for the dense roughly 30B models without speculative decoding on the same GPU. I see this smaller active workload as the main reason Gemma clears my 5-second bar with thinking off, alongside its short answers.
K2 shows why the tail matters: its 3.27-second median accompanies an 89.81-second p95. It exceeded the 30-second cutoff in 8/120 requests.
Thinking can buy quality, or consume the session
For Gemma 4 26B-A4B with oracle passages, thinking on is a clear quality gain: it increased fully correct answers from 96/120 to 113/120. Median time rose from 2.13 to 6.08 seconds, p95 from 4.56 to 15.68 seconds, and mean output tokens from 255.3 to 892.6. The highest fully correct count in the study therefore misses the median target, and the gain has to be weighed against the wait.
Thinking adds waiting time; the quality return varies
off/on: thinking off/on · on (low): on at low effort · low/native: cannot turn thinking off; low effort/thinking on
Static data table and text alternative
| Model | Size | Fully correct | Median s | p95 s | Mean tokens |
|---|---|---|---|---|---|
| Granite 4.2 3B | small | 49/119 → 76/119 | 6.87 → 8.51 | 37.39 → 45.17 | 1832.6 → 2508.2 |
| Qwen3.5 4B | small | 51/120 → 90/120 | 3.57 → 32.70 | 16.17 → 94.70 | 986.5 → 5193.2 |
| Gemma 4 E2B | small | 58/120 → 76/120 | 1.76 → 3.86 | 4.36 → 6.57 | 380.0 → 837.2 |
| Gemma 4 E4B | medium | 78/119 → 91/120 | 3.99 → 7.02 | 8.77 → 11.06 | 383.7 → 801.7 |
| Granite 4.2 8B | medium | 63/120 → 63/117 | 9.41 → 18.47 | 46.69 → 97.16 | 1685.1 → 2971.9 |
| Qwen3.5 9B | medium | 49/116 → 99/120 | 4.86 → 26.66 | 19.40 → 77.80 | 749.7 → 3577.9 |
| Gemma 4 26B-A4B | large | 96/120 → 113/120 | 2.13 → 6.08 | 4.56 → 15.68 | 255.3 → 892.6 |
| Qwen3.8 27B · off → on (low) | large | 90/120 → 102/119 | 7.71 → 11.28 | 14.14 → 22.27 | 456.8 → 709.6 |
| Granite 4.2 30B | large | 62/115 → 69/119 | 27.07 → 52.04 | 72.33 → 97.29 | 825.6 → 1493.3 |
| GLM-4.7 Flash | large | 30/120 → 82/120 | 3.11 → 13.77 | 6.07 → 44.25 | 356.2 → 2061.9 |
Granite 4.2 30B gained much less: with oracle passages, fully correct counts went from 62/115 (thinking off) to 69/119 (thinking on), while median time rose from 27.07 to 52.04 seconds. Neither mode approaches the live-use target.
The public case d20-en-pilot-t03-009, about damage after stabilization and run without oracle passages, makes the cost concrete. Thinking on reduced the score from 20 to 10, increased time from 94 to 795 seconds, and increased output from 2,256 to 11,321 tokens. The longer answer invented rules, including negative hit points; without grounding, thinking turned into excessive rumination, a pattern also reported for other reasoning models [5].
Qwen3.5 4B illustrates both sides. With oracle passages, thinking increased fully correct answers from 51/120 to 90/120, but median time rose from 3.57 to 32.70 seconds, beyond the 30-second cutoff. On the public spell-slot case d20-en-pilot-t10-008, the score fell from 100 with thinking off to 93 with thinking on, time rose from 15 to 123 seconds, and output from 2,080 to 15,656 tokens. Both answers had a material error. The thinking off answer met every required claim while also asserting a false blanket prohibition after Bonus Action spellcasting.
Thinking is a less reliable route to quality than supplying oracle passages, and it also changes output budgets and runtime. For knowledge-heavy questions, the right evidence reliably improves accuracy, while extra thinking brings uneven gains [6, 7]. The advantage of oracle passages in this study fits that pattern.
A high average can conceal wrong rules
With oracle passages, Muse Glimmer with low thinking effort averaged 98.86 claim points, close to Gemma 4 26B-A4B thinking on at 99.08. Their fully correct counts were 96/120 and 113/120 respectively. Muse had material errors in 24/120 answers; Gemma had them in 2/120. Those similar averages describe different risks for a workflow that will act on the explanation.
Similar claim means can accompany different error counts
off/on: thinking off/on · on (low): on at low effort · low/native: cannot turn thinking off; low effort/thinking on
Static data table and text alternative
| Configuration | Size | Mean claim /100 | Fully correct | Material errors |
|---|---|---|---|---|
| LFM2.5 2.6B · native | small | 74.03 | 32/120 | 87/120 |
| Granite 4.2 3B · off | small | 84.56 | 49/119 | 69/119 |
| Granite 4.2 3B · on | small | 90.58 | 76/119 | 43/119 |
| Qwen3.5 4B · off | small | 87.37 | 51/120 | 68/120 |
| Qwen3.5 4B · on | small | 95.38 | 90/120 | 28/120 |
| K2 Horizon 3.7B · low | small | 70.70 | 33/119 | 81/118 |
| Gemma 4 E2B · off | small | 79.84 | 58/120 | 57/120 |
| Gemma 4 E2B · on | small | 86.84 | 76/120 | 33/120 |
| Gemma 4 E4B · off | medium | 87.12 | 78/119 | 36/119 |
| Gemma 4 E4B · on | medium | 93.66 | 91/120 | 23/120 |
| LFM2.5-8B-A1B · native | medium | 71.41 | 32/120 | 86/120 |
| Granite 4.2 8B · off | medium | 88.83 | 63/120 | 57/120 |
| Granite 4.2 8B · on | medium | 93.97 | 63/117 | 54/117 |
| Qwen3.5 9B · off | medium | 89.24 | 49/116 | 63/116 |
| Qwen3.5 9B · on | medium | 96.63 | 99/120 | 19/120 |
| LFM2.5-24B-A2B · native | large | 95.08 | 73/119 | 45/119 |
| Gemma 4 26B-A4B · off | large | 94.59 | 96/120 | 16/120 |
| Gemma 4 26B-A4B · on | large | 99.08 | 113/120 | 2/120 |
| Qwen3.8 27B · off | large | 95.16 | 90/120 | 28/120 |
| Qwen3.8 27B · on (low) | large | 98.42 | 102/119 | 16/119 |
| Granite 4.2 30B · off | large | 95.24 | 62/115 | 52/115 |
| Granite 4.2 30B · on | large | 95.92 | 69/119 | 49/119 |
| Muse Glimmer · low | large | 98.86 | 96/120 | 24/120 |
| GLM-4.7 Flash · off | large | 70.81 | 30/120 | 89/120 |
| GLM-4.7 Flash · on | large | 90.22 | 82/120 | 26/120 |
In d20-en-pilot-t05-010, LFM2.5 2.6B with oracle passages correctly separated negotiating from reading body language. It earned 100 claim points. It also invented an Intelligence-versus-Willpower check for Influence and extended the restriction on simultaneous actions to the whole turn. The answer is not fully correct and has a material error.
That distinction matters in an interactive loop: the system can choose the right action while teaching or enforcing a wrong rule. Claim score measures required content; fully correct also checks whether the answer added material errors.
Inspect the evidence
Start with the study index for the offline comparison and public case explorer. The aggregate results contain every condition; public answer records contain the five examples above, their scores, request timings and tokens.
Read Methods, Limitations, the data dictionary and provenance for measurement definitions and the public/private boundary. The source rules retain their SRD attribution.
Next: measure the gap from retrieval to oracle
The next study is in progress: BM25 retrieval variants with Gemma 4 at several sizes.
References
- Nielsen, J. Response Times: The 3 Important Limits. Excerpt from Usability Engineering, chapter 5. Academic Press, 1993.
- Fedus, W., Zoph, B. & Shazeer, N. Switch Transformers: Scaling to Trillion Parameter Models with Simple and Efficient Sparsity. JMLR, 2022.
- Jiang, A. Q. et al. Mixtral of Experts. 2024.
- Lewis, P. et al. Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks. NeurIPS, 2020.
- Chen, X. et al. Do NOT Think That Much for 2+3=? On the Overthinking of o1-Like LLMs. 2024.
- Trivedi, H., Balasubramanian, N., Khot, T. & Sabharwal, A. Interleaving Retrieval with Chain-of-Thought Reasoning for Knowledge-Intensive Multi-Step Questions. ACL, 2023.
- Zhao, J. X., Hooi, B. & Ng, S.-K. Test-Time Scaling in Reasoning Models Is Not Effective for Knowledge-Intensive Tasks Yet. COLM, 2026.