Opens a larger view. Escape closes it.
11 min read

Ten models, four domains

I ran ten language models on my 16GB card against the same questions in four domains, and the card's memory decided which build I could keep.

I spent two weeks benchmarking ten language models, all running on my own machine. Each one got the same questions across the four things my local coaching system covers - Hindustani classical music, tennis, photography and career coaching.

The one I kept is Google’s Gemma4 26B-A4B, a Mixture of Experts model, in a Quantization-Aware Training build. It was the fastest of the ten that gave me usable output. For sessions that need harder reasoning I use gemma4’s 12B, with extended thinking switched on.


Table of contents

  1. What I was trying to solve
  2. The ten models
  3. Speed and VRAM, the full table
  4. Hindustani classical music
  5. Tennis coaching
  6. Photography, text coaching
  7. Career coaching
  8. Photography, visual critique
  9. The thinking mode question
  10. The MoE detour
  11. Extended conversations and OOM
  12. What I chose
  13. What I learnt

What I was trying to solve

The previous article describes the system, a Hindustani classical music practice companion that runs locally and draws on a Wikipedia retrieval database of 1,385 articles. It’s a retrieval-augmented generation setup that answers in the voice of one of two lineages - the Dagarvani bani when I’m practising dhrupad on the surbahar, or the Etawah gharana when it’s khayal.

I started on qwen3.6:27b, and it worked. With thinking on it managed around 16 tokens per second - a full reply took 30–50 seconds. With the knowledge base out of the picture it got a fact wrong, putting the Dagarvani bani in the Maihar gharana of Allauddin Khan, a different lineage altogether. The bigger problem was memory. The model took up nearly all of the card’s VRAM, leaving hardly any room for the context to grow over a long conversation. So I wanted to know whether any model beat it on quality or on speed, ideally both.

The ten models

Everything ran locally under Ollama on Bazzite Linux, on an AMD Ryzen 7 9850X3D with an RX 9070 XT (16GB of GDDR6). The models fell into three groups. Dense models came first, qwen3.6:27b (the baseline), qwen3:14b, gemma4:12b, gemma4:31b, gemma4:e4b, and phi4-reasoning:plus. Then there were the deepseek-r1 variants. I dropped those after reading that their training was tuned for maths and code, when what I needed was nuance in language. Last were the Mixture of Experts models, two quantization builds of gemma4’s 26B-A4B, and Qwen3’s 30B-A3B from HuggingFace.

Community benchmarks had gpt-oss:20b as the fastest model anyone had run on my exact GPU, at 101 tokens per second. On mine it ran just as fast, with empty output every time. It uses MXFP4, and Ollama can’t yet pull the content out of it properly.

Speed and VRAM, the full table

All of these numbers come from the RX 9070 XT (16GB GDDR6, ROCm, Ollama 0.30.10). Speed is how fast it generated a 280-token response. Wall time runs from sending the prompt to the last token.

ModelSizeVRAM usedSpeedWall time (280t)ThinkingStatus
gemma4:26b QAT (Unsloth UD-Q4_K_XL)14.4 GB13.8 GB85–91 tok/s~4sno, template missingRecommended
gpt-oss:20b12.8 GB—101 tok/s——Empty output
Qwen3 30B-A3B Q3_K_M13.1 GB—100 tok/s—yesBroken output, Q3 too aggressive
gemma4:26b Q4_K_M (ggml-org)16.8 GB13.4 GB57–59 tok/s~5syesOut of memory after the first query
phi4-reasoning:plus10.4 GB—43 tok/s~9syesNeeds a system prompt
qwen3:14b8.6 GB8.6 GB37 tok/s~8syes, 1,500 tokens neededWorks
gemma4:12b7.0 GB7.5 GB36 tok/s~9syes, 1,500 tokens neededRecommended
gemma4:e4b8.9 GB—41–72 tok/s~7syes, 1,500 tokens needed8B quality ceiling
qwen3.6:27b (baseline)16.2 GB14.3 GB16 tok/s~18syesWorks
gemma4:31b18.5 GB16 GB7 tok/s~40syesBest prose

Hindustani classical music

I asked two music questions. One needed real knowledge of raag grammar - how the slow oscillation Darbari Kanada puts on komal Ga ought to shape phrasing down in the lower octave. The other asked about the Dagarvani idea of dwelling in a note and how to handle an aalap that starts to feel restless.

ModelSpeedFactual accuracyDomain vocabularyQuality
gemma4:31b7 tok/scorrectvazan, gambhir, nyasa5 of 5
gemma4:26b QAT85 tok/scorrectandolan, mandra saptak4.5 of 5
qwen3:14b37 tok/scorrectAdequate4 of 5
gemma4:12b36 tok/swrong, called the surbahar bowedGood4 of 5
qwen3.6:27b16 tok/swrong, put Dagarvani in the Maihar gharanaAdequate4 of 5

qwen3.6:27b made the Maihar mistake again. gemma4:12b called the surbahar a bowed instrument, when it’s plucked. Both went away as soon as the knowledge base returned the right passages. They still show holes in what these models learnt in training. Neither mistake came from the QAT or the 31B.

The 31B’s prose was the best of the lot. It used vazan and nyasa in context and without showing off. The single best line from any model, though, came from the 12B, answering the restlessness question, “your mind is living in the next phrase while your voice is still in the current one.”


Tennis coaching

The tennis pair were a diagnosis of a match that fell apart (won 6-3, then lost the second set 3-6 from 3-1 up, after tightening) and a technique question on keeping topspin on the forehand while moving sideways at full stretch.

ModelSpeedDiagnosisTechnical adviceQuality
gemma4:31b7 tok/s”Shift from Process to Outcome”Specific, biomechanically correct5 of 5
gemma4:26b QAT85 tok/s”Loss Aversion Trap”Good structure4.5 of 5
gemma4:12b36 tok/s”Success Trap”Solid4 of 5
qwen3:14b37 tok/sStructured, slightly genericGood drills4 of 5
qwen3.6:27b16 tok/sGood, used emojisAdequate3.5 of 5

Every model has seen plenty of tennis in training, and the gaps here were narrower than in music. Of the five diagnoses the 31B’s “Shift from Process to Outcome” was the sharpest, and its forehand drill used the right biomechanical terms. The QAT came close on depth.


Photography, text coaching

Text only here, on black and white technique. One question asked how to keep neighbouring greys apart on industrial buildings under a flat overcast sky. The other asked how to get better at Zone System pre-visualisation.

ModelSpeedTonal analysisZone System vocabularyQuality
gemma4:31b7 tok/s”colour from luminance”, preciseAnsel Adams’ “score vs performance” analogy5 of 5
gemma4:26b QAT85 tok/s”local contrast over global contrast”Solid Adams reference4.5 of 5
gemma4:12b36 tok/s”texture as proxy for value”, excellentGood4 of 5
qwen3:14b37 tok/sMentioned a polarising filter, genericStandard Zone System explanation3 of 5
qwen3.6:27b16 tok/sGood but textbookAdequate3 of 5

Here the smaller models began to differ more visibly. gemma4:12b’s “texture as proxy for value” is exactly what someone shooting black and white at expert level needs to hear. The 31B reached for Ansel Adams’ own “score vs performance” analogy and applied it to pre-visualisation correctly. The QAT kept up at 85 tokens per second.


Career coaching

Two questions again - one from a software engineer seven years in who wants to move into AI product management, the other from a mid-level engineer with three weeks to position for a promotion.

ModelSpeedStrategic depthActionabilityQuality
gemma4:26b QAT86 tok/s”change the narrative of how the work is presented”Concrete 30-day framing4.5 of 5
gemma4:31b7 tok/s”already operating at the next level”Specific visibility tactics4.5 of 5
gemma4:12b36 tok/s”executing tasks well vs owning outcomes”Good structure4 of 5
qwen3:14b37 tok/sSolid framingPractical steps4 of 5
qwen3.6:27b16 tok/sStrong narrative arcGood tactics4 of 5

Of the four, career is the most generic. Every model knew enough, and the scores sat closer together here than anywhere else. At 86 tokens per second against 7, the QAT gave me comparable advice twelve times sooner.


Photography, visual critique

Seven vision-capable models got the same standard greyscale gradient and a request for a critique covering contrast, composition and tonal range.

ModelSizeVRAMSpeedSaw the imageQuality
Qwen2.5-VL 7B5.6 GB~5 GB116 tok/syes4 of 5
Qwen3-VL 8B5.7 GB2.5 GB84 tok/syes4 of 5
MiniCPM-V 4.55.7 GB4.7 GB54 tok/syes4 of 5
Pixtral 12B7.4 GB~8 GB43 tok/syes3.5 of 5
gemma4:12b7.0 GB7.5 GB49 tok/syes4 of 5
gemma4:e4b8.9 GB—41 tok/sno, ignored the imagenone
llama3.2-vision:11b7.3 GB——no, a 500 error from the servernone

Qwen2.5-VL was quickest, at 116 tokens per second, and it and Qwen3-VL both read the tonal structure of the image accurately. MiniCPM-V 4.5 picked up that it was a gradient and described the move from shadow to highlight in specific terms. Pixtral 12B is good with artistic and photographic work, and its critique was competent, though no better than the two Qwen models here. gemma4:e4b got the file, seemed to throw it away, and then asked me for the photograph I’d just sent it.

For critiquing real photographs, Qwen3-VL:8b is the main model. MiniCPM-V 4.5 is there when very high-resolution analysis matters - it takes images up to 1.8 megapixels and gets by on fewer visual tokens than most.


The thinking mode question

Turning thinking on made the answers to nuanced questions better every time, and it was expensive. With a 300-token budget the thinking regularly used up every token before any visible answer appeared, and getting something useful took 1,200–1,500 tokens.

Scenariogemma4:12b + thinkinggemma4:26b QAT (no think)
Token budget1,500350
Speed30 tok/s85 tok/s
Wall time~51s per turn~8s per turn
QualityComparableComparable

Put side by side, 51 seconds a turn against 8 means the thinking 12B is over six times slower, for answers of about the same quality. On hard analytical questions the thinking made the 12B noticeably better, just not often enough to beat the bigger QAT answering straight away.


The MoE detour

The gemma4:26b at the standard Q4_K_M (16.8GB) needed 13.4GB of VRAM. After its first response it ran out of memory and crashed. The KV cache grew with the conversation history until it filled whatever VRAM was left.

The QAT build is 14.4GB, smaller though it’s the same model. It needed 13.8GB of VRAM and stayed stable for the full ten turns of the test. The QAT left 3.1GB free for the KV cache, where the standard one left less than 1GB.

Qwen3’s 30B-A3B MoE did worse, at Q3_K_M from HuggingFace. Three-bit quantization is aggressive, and it hurt the model so much that its raw reasoning spilled into the output in place of a properly formatted answer.


Extended conversations and OOM

The last test was a practice session of ten exchanges in a row, each one building on the one before. Of everything I measured, this told me the most.

gemma4:12b + thinkinggemma4:31b + thinking
num_ctx65,536 tokens32,768 tokens
Speed30 tok/s6–7 tok/s
Avg time per turn51s242s
Full 10-turn session~8.5 min~40 min
OOM events00
Response quality4.5 of 55 of 5

Neither model ran out of memory over the ten turns, and both kept giving substantive answers to the end. The 31B kept its musical vocabulary a little more precise, with vazan and nyasa still turning up naturally in the later turns. The 12B was done in 8.5 minutes and the 31B took 40, and for daily use that small gain in quality isn’t worth the wait.


What I chose

Daily sessions run on the gemma4:26b QAT. It comes from Unsloth’s HuggingFace repository by way of Ollama’s direct HuggingFace integration (hf.co/unsloth/gemma-4-26B-A4B-it-qat-GGUF:UD-Q4_K_XL). It does 85–91 tokens per second with 64K of context and needs 13.8GB of VRAM, and a response takes 4–8 seconds. It took over both the fast tier and the deep reasoning tier - those used to be two separate models. For careful reasoning I switch to gemma4:12b, thinking on, with a budget of 1,500 tokens, at about 51 seconds a turn. Critiques of actual photographs go to Qwen3-VL 8B, with MiniCPM-V 4.5 as the high-resolution alternative. gemma4:31b stays installed for the odd session when prose quality is all I care about.


What I learnt

A smaller model that thought for 900 tokens was no more accurate than a bigger one that answered in 300. That model is an MoE. MoE cuts the compute per token and does nothing for memory. On a card with limited VRAM holding a long conversation, storing the whole model ate whatever it saved on compute. The QAT build beat the standard Q4_K_M build every time, smaller, faster and about as accurate. Qwen2.5-VL, at 5.6GB and 116 tokens per second, beat gemma4:12b at image analysis although it’s the smaller model.