Qwen 3.6 27B en 35B MTP versus standaard op een 16 GB GPU
MTP versus standaard decoding op de RTX 4080 — echte benchmarks
Ik heb de prestaties van speculatief decoderen (Multi-Token Prediction, MTP) getest in Qwen 3.6 27B en 35B op een RTX 4080 met 16 GB VRAM.
Voor een bredere kijk op tokensnelheden en VRAM-compromissen over meer modellen op dezelfde hardware, zie LLM-benchmarks voor 16 GB VRAM met llama.cpp.

Wat MTP (Multi-Token Prediction) is
Multi-Token Prediction is een vorm van speculatief decoderen die direct in bepaalde modelcheckpoints is ingebouwd. In plaats van één token per forward pass te voorspellen, beschikt het model over extra “MTP-koppen” die in één stap meerdere toekomstige tokens voorstellen en deze vervolgens parallel verifiëren. Als de gokken worden geaccepteerd, stijgt de effectieve doorvoersnelheid zonder dat de outputkwaliteit verandert.
De Qwen 3.6-familie wordt geleverd met zowel standaard GGUF-bestanden als MTP-geactiveerde varianten. In llama.cpp wordt MTP geactiveerd via:
--spec-type draft-mtp --spec-draft-n-max 3
--spec-draft-n-max is de belangrijkste instellingsparameter. Deze bepaalt hoeveel speculatieve tokens de MTP-kop bij elke stap voorstelt. Hogere waarden geven een potentiële snelheidsboost, maar kosten extra VRAM voor de conceptbuffers — een reële beperking op kaarten met 16 GB.
Wat en hoe ik heb getest
Ik heb getest hoe de twee Qwen 3.6-modellen zich gedragen met MTP ingeschakeld versus standaard decoderen op een GPU met 16 GB VRAM (RTX 4080).
Om modelgewichten en KV-cache in de VRAM te passen, heb ik sterk gequantiseerde varianten gebruikt:
Qwen3.6-27B-UD-IQ3_XXSenQwen3.6-27B-UD-IQ3_XXS-MTPQwen3.6-35B-A3B-UD-IQ3_SenQwen3.6-35B-A3B-UD-IQ3_S-MTP
Per run worden twee contextbudgetten bijgehouden:
- Gem. Ctx — de contextgrootte waarbij llama.cpp ongeveer 14,8 GB VRAM bezigt, waardoor andere apps (Xorg, GNOME Shell, Cursor) een comfortabele buffer van ~500 MB overhouden.
- Max Ctx — de grootste context die llama.cpp kon toewijzen, gegeven dat dezelfde desktopapps al ~500 MB VRAM bezetten.
Een belangrijke reden om de gemiddelde context op een praktisch doel te houden, is dat Hermes Agent — die ik gebruik als primaire AI-assistent die op deze machine verbinding maakt met llama.cpp — standaard minimaal 64 K context vereist en modellen met een kleiner window bij het opstarten afwijst. Modellen onder deze drempel kunnen niet genoeg werkgeheugen onderhouden voor multi-step tool-calling workflows. Voor llama.cpp betekent dit het doorgeven van --ctx-size 65536 of meer. Elke MTP-configuratie die de gemiddelde bruikbare context significant onder 64 K comprimeert, is daarom niet geschikt voor dagelijkse Hermes-werklasten, wat betekent dat de Gem. Ctx-getallen in de tabellen hieronder de meest beslissende zijn.
Beze KV-cache-quantiseringeniveaus zijn getest: q8 (hogere kwaliteit, meer VRAM) en q5 (lagere VRAM, langere context). Wees er bewust van dat de overgang van q8 naar q5 KV-cache een merkwaardige kwaliteitsdaling kan veroorzaken — in mijn tests was de degradatie significant genoeg om q5 ongeschikt te maken voor mijn werklasten. De snelheids- en contextgetallen voor q5 zijn opgenomen voor volledigheid, maar je moet de responskwaliteit op je eigen taken testen voordat je ervoor kiest.
Qwen 3.6 27B MTP vs. Standaard
KV Cache q8
| MTP max 1 | MTP max 2 | MTP max 3 | MTP max 4 | Standaard (IQ3_XXS) | |
|---|---|---|---|---|---|
| Prompt Speed | 148 t/s | 151 t/s | 148 t/s | 147 t/s | 200 t/s |
| Gen Speed | 65 t/s | 75 t/s | 73 t/s | 75 t/s | 45 t/s |
| Gem. Ctx | 40 K | 40 K | 40 K | 30 K | 80 K |
| Max Ctx | 60 K | 60 K | 60 K | 50 K | 100 K |
Met q8 KV-cache levert MTP bij --spec-draft-n-max 2 ~67 % snellere generatie (75 vs 45 t/s) ten koste van het halveren van het gemiddelde contextwindow van 80 K naar 40 K. De prompt-invoersnelheid daalt van 200 naar ~150 t/s omdat MTP apparaat-naar-host-overdrachten vereist tijdens de prefill-fase.
KV Cache q5
| MTP max 1 | MTP max 2 | MTP max 3 | MTP max 4 | Standaard (IQ3_XXS) | |
|---|---|---|---|---|---|
| Prompt Speed | 145 t/s | 144 t/s | 141 t/s | 139 t/s | 191 t/s |
| Gen Speed | 57 t/s | 62 t/s | 67 t/s | 66 t/s | 41 t/s |
| Gem. Ctx | 70 K | 60 K | 60 K | 50 K | 130 K |
| Max Ctx | 100 K | 100 K | 90 K | 80 K | 160 K |
Het overschakelen naar q5 KV-cache herstelt zinvolle context: --spec-draft-n-max 1 geeft 70 K gemiddelde context bij 57 t/s — een 39 % generatiesnelheidswinst ten opzichte van standaard decoderen, terwijl het contextwindow nog steeds op een nuttige grootte blijft. Bij --spec-draft-n-max 3 daalt de context naar 60 K, maar de generatie bereikt 67 t/s (+63 %).
Qwen 3.6 27B Conclusie
MTP is echt nuttig voor het 27B dichte model. Het sweet spot op 16 GB VRAM is:
- q8 KV +
--spec-draft-n-max 2— beste ruwe snelheid (75 t/s), context daalt naar 40–60 K - q5 KV +
--spec-draft-n-max 1— beste balans tussen snelheid en context (57 t/s, 70 K gem. context)
Qwen 3.6 35B MTP vs. Standaard
Het 35B-model is een Mixture-of-Experts (MoE)-architectuur (35B-A3B betekent 35B totale parameters, ~3B actief per token). MoE-modellen profiteren doorgaans meer van MTP omdat de sparse routing de MTP-kop computationeel goedkoper houdt in verhouding tot een volledige forward pass.
KV Cache q8
| MTP max 1 | MTP max 2 | MTP max 3 | MTP max 4 | Standaard (IQ3_S) | |
|---|---|---|---|---|---|
| Prompt Speed | 277 t/s | 277 t/s | 265 t/s | 275 t/s | 368 t/s |
| Gen Speed | 186 t/s | 189 t/s | 180 t/s | 171 t/s | 146 t/s |
| Gem. Ctx | 15 K | 10 K | — | — | 80 K |
| Max Ctx | 80 K | 70 K | 60 K | 50 K | 150 K |
De MoE-architectuur levert indrukwekkende ruwe generatiesnelheid op met MTP (+27 % bij max 1, +29 % bij max 2 vs. standaard 146 t/s). Maar het praktische probleem is de gemiddelde context. Met q8 KV-cache geeft zelfs --spec-draft-n-max 1 slechts 15 K gemiddelde context — amper genoeg voor bescheiden taken. Hogere dieptes van concepten hebben überhaupt geen bruikbare gemiddelde context op een 16 GB-kaart.
Dit is de centrale VRAM-kostenvraag voor MTP op consumentenhardware: de extra conceptbuffers eten direct in de resterende VRAM-budget, en het 35B-A3B-model met q8 KV-cache laat zeer weinig marge over.
KV Cache q5
| MTP max 1 | MTP max 2 | MTP max 3 | MTP max 4 | Standaard (IQ3_S) | |
|---|---|---|---|---|---|
| Prompt Speed | 264 t/s | 266 t/s | 270 t/s | 264 t/s | 343 t/s |
| Gen Speed | 151 t/s | 147 t/s | 137 t/s | 131 t/s | 122 t/s |
| Gem. Ctx | 10 K | — | — | — | 120 K |
| Max Ctx | 120 K | 110 K | 110 K | 80 K | 200 K |
q5 KV-cache verbetert het verhaal van de gemiddelde context slechts marginaal. --spec-draft-n-max 1 geeft 10 K gemiddelde context bij 151 t/s. Standaard decoderen bij q5 geeft 122 t/s met 120 K gemiddelde context.
Qwen 3.6 35B Conclusie
Op een 16 GB GPU stoot het 35B MoE-model met MTP tegen een harde muur aan: de gemiddelde bruikbare context stort in tot 10–15 K tokens, waardoor het onpraktisch is voor echte werklasten. Standaard decoderen bij 122–146 t/s met 80–120 K context is significant nuttiger.
Als je 24 GB+ VRAM hebt, wordt de 35B + MTP-combinatie veel aantrekkelijker — het contextwindow-probleem verdwijnt en je behoudt het snelheidsvoordeel.
Het juiste --spec-draft-n-max-waarde kiezen
De vraag hoeveel speculatieve tokens je per stap moet voorstellen (--spec-draft-n-max) heeft niet één goed antwoord — het hangt af van zowel de modelarchitectuur als de beschikbare VRAM:
- Voor 27B dicht op 16 GB:
--spec-draft-n-max 2met q8 KV is het snelst,--spec-draft-n-max 1met q5 KV is het meest contextvriendelijk. - Voor 35B MoE op 16 GB:
--spec-draft-n-max 1is de enige optie die enige bruikbare context behoudt, en zelfs dan slechts marginaal. - Hogere waarden (
3,4) verhogen de VRAM-druk zonder evenredige snelheidswinsten — bij max 4 besteed je ongeveer dezelfde extra VRAM als bij max 2, maar de gen-snelheid volgt niet mee.
Hoe MTP in llama.cpp te activeren
Zorg ervoor dat je een MTP-geactiveerd GGUF gebruikt (de bestandsnaam bevat MTP). Als je nieuw bent met llama.cpp-vlaggen, dekt de llama.cpp Quickstart met CLI en Server alle basisprincipes. Start dan llama-server of llama-cli met:
llama-server \
--model Qwen3.6-27B-UD-IQ3_XXS-MTP.gguf \
--ctx-size 40000 \
-ngl 99 --flash-attn on \
--cache-type-k q8_0 --cache-type-v q8_0 \
--spec-type draft-mtp \
--spec-draft-n-max 2
Voor q5 KV-cache, vervang q8_0 door q5_1 of q5_0 en pas --ctx-size omhoog:
llama-server \
--model Qwen3.6-27B-UD-IQ3_XXS-MTP.gguf \
--ctx-size 80000 \
-ngl 99 --flash-attn on \
--cache-type-k q5_1 --cache-type-v q5_1 \
--spec-type draft-mtp \
--spec-draft-n-max 1
MTP wordt automatisch geactiveerd zodra llama.cpp de MTP-koppen in het GGUF-bestand ziet en --spec-type draft-mtp is ingesteld.
Dus standaard Qwen3.6-27B-UD-IQ3_XXS.gguf zal niet werken in MTP-modus, je hebt Qwen3.6-27B-UD-IQ3_XXS-MTP.gguf nodig.
Maar Qwen3.6-27B-UD-IQ3_XXS-MTP.gguf kan werken in zowel Speculatieve decoderen-modus als autoregressive modus.
Conclusie
Op een 16 GB GPU (RTX 4080), met deze quants, is MTP van llama.cpp een duidelijke winst voor Qwen 3.6 27B en een netto negatief voor Qwen 3.6 35B in praktisch gebruik:
Qwen 3.6 27B (IQ3_XXS) — MTP is de moeite waard:
- q8 KV + MTP max 2 → ~67 % snellere generatie, context 40–60 K (vs 80–100 K zonder MTP)
- q5 KV + MTP max 1 → ~39 % snellere generatie, context 70–100 K (vs 130–160 K zonder MTP)
- Goede balans tussen snelheid en VRAM-efficiëntie bij
--spec-draft-n-max 2
Qwen 3.6 35B (IQ3_S) — MTP is niet praktisch bij 16 GB:
- Generatiesnelheid is 27–29 % hoger, maar gemiddelde context stort in tot 10–15 K bij q8, 10 K bij q5
- Standaard decoderen bij 122–146 t/s met 80–120 K context is nuttiger voor echte taken
- De situatie verbetert aanzienlijk op 24 GB+ VRAM
Op papier is q5 KV-cache het voor de hand liggende antwoord voor het maximaliseren van het contextwindow terwijl je MTP-snelheidswinsten behoudt — maar in de praktijk kan de kwaliteitsdaling van q8 naar q5 significant zijn. Test q5 op je eigen taken voordat je het adopteert; voor mijn werklasten was de degradatie onaanvaardbaar, en q8 met een strakker contextbudget blijft het betere compromis.
Voor het bredere beeld van LLM-hostingopties en infrastructurele compromissen, zie de LLM Hosting in 2026 pijler en LLM Prestaties in 2026. Als je Qwen 3.6 sampler-instellingen afstelt naast MTP, is de Referentie voor Agentic LLM Inferentieparameters voor Qwen 3.6 en Gemma 4 een nuttige aanvulling.