Fix the settings before you swap the local model

One flag took Gemma 4 from 52% to 100% on a Strix Halo

Contributors

Damen Knight, Senior Principal Automation Engineer

Gemma 4 ships with reasoning turned on, and on short verifiable tasks that default cost me up to 48 accuracy points and 6x to 8x the money. One flag fixed it. The 12B and the 26B went from about 52% to 100% on my easy suite, and a right answer got up to 19x faster.

I measured 27 local models on a Strix Halo with a power meter running. Each one answered 190 small tasks with checkable answers, and I priced the electricity at my California summer rates: 34 cents per kilowatt-hour off-peak and 58 cents on-peak. I ran every task twice, under two different prompts.

Tell the model it can think

I ran every task once with the instruction to answer immediately with no explanation, and once with the instruction to work through the problem however it liked and put the answer on the last line.

ModelTold to answer immediatelyTold it can thinkGain
qwen3-30b-a3b-instruct56.8%97.9%+41 points
mistral-small-24b57.9%98.9%+41
qwen3-coder-next61.1%97.9%+37
devstral-2-123b62.1%98.9%+37
qwen3-4b-instruct47.4%83.2%+36
gemma-3-27b62.1%97.9%+36
llama4-scout56.8%92.6%+36
gemma-3-12b53.7%86.3%+33
qwen3-next-80b-a3b61.1%91.6%+31
llama31-8b46.3%73.7%+27
gemma-3-4b48.4%71.6%+23
phi-462.1%84.2%+22

The gain runs from 22 to 41 points, and the token counts stay in the low hundreds, so it barely moves the cost. qwen3-30b-a3b-instruct goes from a coin flip to 98% because I stopped telling it to be brief.

Letting a model think costs almost nothing. Running a model trained to think costs about 6x more per right answer. qwen3-30b-a3b-thinking costs 5.8x its own instruct sibling on the same tasks, and qwen3-4b-thinking costs 6.4x its sibling. On these tasks, that extra spend returned nine accuracy points at 4B and minus three at 30B.

One caution. Room to think pays off when a model uses the room and then stops. trinity-nano picked up nine points from the invitation but went from 61 tokens a task to 1,181 to get them, a 19x spend for a nine-point gain. phi-4-reasoning went down 26 points, because the free-form prompt let it spiral past the token cap on tasks it had answered correctly when forced to be brief.

Switch Gemma 4's reasoning off with one flag

Gemma 4 cannot be talked out of reasoning. Asked to answer in one line with no explanation, it emitted reasoning on 95 of 95 tasks in both prompt conditions. On my 4,096-token budget, the 12B and the 26B spent the whole thing thinking and handed back nothing on roughly half the questions.

You can switch it off. Use --reasoning off in llama.cpp, or enable_thinking: false through the chat template. Both worked on my build. An open upstream issue reports the opposite, though it is titled for Qwen3.5 and the Gemma 4 reports inside it contradict each other. Check yours rather than trusting any of us. If the flag took, tokens per answer fall off a cliff and you will see it in the first response.

ModelReasoningPassTokens/answer$/1kSeconds/answer
gemma-4-12bon52.6%4,6531.208254.5
gemma-4-12boff100.0%2560.18515.6
gemma-4-26b-a4bon51.6%5,0161.063195.8
gemma-4-26b-a4boff100.0%2450.13010.3
gemma-4-31bon85.3%1,7822.468218.5
gemma-4-31boff100.0%1990.39428.7

One flag made Gemma 4 up to 48 accuracy points better, 6x to 8x cheaper, and up to 19x faster on short verifiable work. All three reach a perfect score. This is a lopsided gain: the 12B and 26B jump about 48 points each, and the 31B only 15, because it was less budget-starved to begin with. The prompting trick above was the best thing I'd found until this, and it tops out at 41 points.

Reasoning itself is worth having. Google publishes GPQA Diamond numbers for all three models, 78.8, 82.3, and 84.3, against the 61, 67, and 70 I measured with reasoning off. Some of that gap comes from my Q4_K_M weights and my 100-question subset rather than the flag, and I never ran GPQA with reasoning on to separate them.

The useful version isn’t "turn it off." The default suits one of two regimes. On short verifiable work, a model that reasons burns your budget solving something that wasn't hard. On genuinely hard work, you want it back on. Which side of that line your workload sits on decides the setting, so check it before you blame the model.

One trap sits next to this flag. --reasoning-budget 0 looks like it does the same job and doesn't. It empties the API's reasoning field while the model keeps reasoning in the ordinary content field, so anything counting reasoning tokens reports silence.

Also in this series: what a correct answer costs at each difficulty level, across all 27 models.

Check whether your model stops talking when told to

The terse prompt says to answer immediately, in one line, with no explanation. Twelve of the 27 models emitted reasoning anyway, and 11 of those did it on all 95 tasks without an exception. Here they are, sorted by what they spend:

ModelTerse tasks with reasoningAvg tokens per terse answerIn the reasoning field?
phi-4-reasoning0/952,811no
gemma-4-26b-a4b95/951,664yes
qwen3-4b-thinking95/951,411yes
gemma-4-12b95/951,403yes
qwen3.6-35b-a3b95/951,184yes
trinity-mini95/951,066yes
ornith-35b95/95932yes
gemma-4-31b95/95905yes
qwen3-30b-a3b-thinking95/95884yes
qwen3-8b25/95260yes
nemotron-3-super-120b95/95245yes
gpt-oss-20b95/95243yes
gpt-oss-120b95/95192yes

Look at the top row. phi-4-reasoning is the loudest model on the box, and it is not one of the 12, because it streams its thinking as ordinary output instead of into the API's separate reasoning field. A reasoning-field check calls it obedient while it writes 2,811 tokens in reply to "one line, no explanation." If I had trusted that one signal, I would have called the worst offender clean.

The models that obey answer in 14 to 15 tokens: llama4-scout, granite4-h-small, phi-4, and qwen3-next-80b-a3b. That is 14 tokens against phi-4-reasoning’s 2,811, on identical prompts. A model you cannot quiet has a cost floor you cannot design around, and the gap between the quietest and loudest here is 200x. If you pay per token in an agent loop or hold a latency budget, check this before you build on a model.

The gpt-oss pair and nemotron barely have this problem. They emit reasoning but spend a couple of hundred tokens on it. The models where it hurts combine stubbornness with volume.

Three ways expensive models fail

The models at the bottom of the cost table in the first post fail in three ways.

Verbosity. Every model in the bottom third of the cost table emits over 1,000 tokens per correct answer, and several emit over 2,000. They are mostly models trained to reason, and the reasoning draws power for every token.

Truncation. I capped generations at 4,096 tokens. phi-4-reasoning hit that cap on 78% of the free-mode tasks. It computed 4,000 tokens, drew power for all of them, and produced no usable answer. Those tokens cost exactly as much as productive ones, which is most of why it sits at $5.57 per thousand answers.

Spiraling. The worst case is a model that gets stuck. trinity-nano scored zero out of 14 on the constraint puzzles when I let it reason freely, because 12 of the 14 ran to the token cap producing text like "Let me think about this differently. Let's see if there's a way to arrange them..." and never reached an answer. It averaged 3,574 tokens on those 14 for nothing. The same model, told to answer immediately, averaged 10 tokens and got three of them right. A model that spirals generates tokens the whole time, so every throughput metric says it's working.

Leave the token budget alone

The obvious objection to the truncation numbers is that I set the cap too low and measured my own configuration. I re-ran the worst offender in the set, plus both Arcee models, with 4x the room.

ModelCapPassHit the capTokens/answerJ/answer
trinity-mini4,09690.5%3%1,181788
trinity-mini16,38490.5%6%1,5352,081
trinity-nano4,09638.9%25%3,0311,004
trinity-nano16,38443.2%22%4,4882,895
phi-4-reasoning4,09615.8%78%21,42434,580
phi-4-reasoning16,38414.3%71%81,613320,017

More room gained nothing and cost 2.5x to 9x as much. These models fill whatever space they are given. trinity-nano still hit a cap 4x larger on 22% of tasks instead of 25%, and picked up four tasks, which is the size of my run-to-run noise.

For trinity-mini, this is a tuning result. The tight budget was better on both axes: same accuracy for a third of the energy. If you run it, cap it. trinity-nano here is Trinity-Nano-Preview, a preview release measured against finished models, so weigh that before drawing conclusions about it. trinity-mini also scores the same whichever way you prompt it: 91.6% told to be brief against 90.5% told it could think. Nearly every conventional instruct model here swings 22 to 41 points on that one instruction, so if you can't control how every call gets phrased, that insensitivity is worth money. Both Arcee models also generate cheap tokens. trinity-nano has the lowest per-token cost I measured at 0.33 J, and trinity-mini is fifth of 27. What costs trinity-mini money is how many tokens it chooses to spend, and that is the configurable kind of problem.

The phi-4-reasoning row also exposed a llama.cpp trap that cost me a mistake. My first attempt at the larger budget asked for 16,384 tokens and got 7,903. The server's -c is the total context divided across --parallel slots, so a 32,768-token context with four slots gives each request 8,192, and the cap I asked for was never reachable. Every generation topped out at the same place, and I nearly published that as a measurement. If you set a generation cap, check it against your context divided by your slot count.

The next post in this series looks at why tokens per second tells you almost nothing about what an answer costs.

Subscribe to our newsletter

Related posts

Get more AI speed from your DGX Spark with RLC Pro AI

Get more AI speed from your DGX Spark with RLC Pro AI

What a correct answer costs on a Strix Halo depends on how hard the question is

What a correct answer costs on a Strix Halo depends on how hard the question is

Fuzzball v4.3: your GPUs serve a model in one command

Fuzzball v4.3: your GPUs serve a model in one command

Your GPUs are throttled by the kernel you inherited

Your GPUs are throttled by the kernel you inherited

Built for scale. Chosen by the world’s best.

2.75M+

Rocky Linux instances

Being used world wide

90%

Of fortune 100 companies

Use CIQ supported technologies

250k

Avg. monthly downloads

Rocky Linux

9

Enterprise products

Spanning the kernel to the orchestrator

Have questions about your infrastructure?

Talk to a CIQ engineer about Rocky Linux, HPC, and AI infrastructure.

Talk to an Expert