SAVRN
Search Contact SAVRN

Open-weight model · Image and text to text

Qwen3.8-27B-iMatrix-NVFP4-MTP-GGUF

by Michał Piszczek cdiamond/Qwen3.8-27B-iMatrix-NVFP4-MTP-GGUF

I built this quant because the ready-made FP4 file answered the wrong question. It was fast, but on my short WikiText-2 control it scored 6.4949 PPL. Plain Q40 scored 6.3798.

Parameters
Context
Weights18.1 GB
Licenseapache-2.0
AccessOpen weights
Monthly Downloads3.6M

Model Card

By Michał Piszczek, published under apache-2.0, revision ac343e8f44ca.

I built this quant because the ready-made FP4 file answered the wrong question. It was fast, but on my short WikiText-2 control it scored 6.4949 PPL. Plain Q40 scored 6.3798. The first higher-quality hybrid went too far the other way: good perplexity, 34.19 tok/s, and no comfortable room for 256K plus vision. This is the build that survived both gates. It is a 17.1 GB, 5.01 BPW mixed-precision GGUF of Qwen/Qwen3.8-27B. It keeps large, tolerant matrices in native NVFP4 and spends more bits on selected attention, Gated DeltaNet, and late FFN tensors. The trained MTP layer remains embedded in the same GGUF. This is not a fine-tune. I built the private calibration workload from 5,472 messages…

Read Michał Piszczek's full model card

I built this quant because the ready-made FP4 file answered the wrong question. It was fast, but on my short WikiText-2 control it scored 6.4949 PPL. Plain Q4_0 scored 6.3798. The first higher-quality hybrid went too far the other way: good perplexity, 34.19 tok/s, and no comfortable room for 256K plus vision.

This is the build that survived both gates.

It is a 17.1 GB, 5.01 BPW mixed-precision GGUF of Qwen/Qwen3.8-27B. It keeps large, tolerant matrices in native NVFP4 and spends more bits on selected attention, Gated DeltaNet, and late FFN tensors. The trained MTP layer remains embedded in the same GGUF.

This is not a fine-tune. I built the private calibration workload from 5,472 messages across 296 real sessions in my Hermes agent setup. The 153,600 processed tokens covered coding, infrastructure work, tool calls, and mixed Polish-English conversation. I used llama-imatrix to rank tensor sensitivity; the corpus and raw importance matrix are not distributed or embedded in the model.

The complete experiment, including the builds that lost, is here: Qwen3.8 27B at 256K: 50 TPS on a 24 GB GPU.

Files

File Bytes Purpose
Qwen3.8-27B-iMatrix-NVFP4-MTP.gguf 17,125,207,136 Target model and one embedded MTP layer
mmproj-Qwen3.8-27B-F16.gguf 927,607,488 Optional vision projector, unchanged from the upstream conversion
recipe/tensor-types.txt small Tensor overrides used for the final hybrid
SHA256SUMS small Release checksums

The checksum was generated after public metadata replaced the private build metadata.

Quant recipe

The base file is mostly NVFP4. These parts are protected:

  • all Q, K, V, and output matrices in the 16 full-attention layers: Q5_K;
  • selected high-importance DeltaNet QKV, gate, and output matrices: Q5_K;
  • late FFN down projections in layers 54, 57-63: Q6_K;
  • matching late FFN gate and up projections: Q5_K;
  • token embeddings: Q6_K;
  • output head: Q8_0;
  • embedded MTP weights: NVFP4.

The exact regular expressions are in recipe/tensor-types.txt. I used the importance matrix to choose where precision was worth its VRAM and kernel cost. NVFP4 block quantization itself does not consume the matrix.

The resulting short-control PPL was 6.1197. Q4_1 scored 6.1127 on the same sample. That 0.11% gap is smaller than the error of this short check, so I treat them as tied rather than claim a quality win.

Measured results

Hardware:

  • GPU0: NVIDIA RTX PRO 4000 Blackwell SFF Edition, 24 GB GDDR7 ECC, 192-bit memory interface, 432 GB/s rated memory bandwidth, 70 W maximum board power, 24,467 MiB reported capacity, sm120a;
  • GPU1, optional and used only for vision in this profile: NVIDIA RTX 2000 Ada, 15,996 MiB, sm89;
  • Debian 13, CUDA 12.9.86, GCC 14.2;
  • main model, MTP, recurrent state, CUDA graphs, and target KV on GPU0;
  • optional F16 vision projector on GPU1.

All throughput rows below were measured on GPU0. The 70 W figure is NVIDIA's board-power limit, not a power reading captured during these runs. I did not measure energy at the wall, so this release makes no tokens-per-joule claim.

Test Result
Production series, 10 runs 50.441 tok/s mean, 49.420-51.397
Clean llama.cpp b10454 45.422 tok/s
Measured custom runtime on RTX PRO 4000 Blackwell SFF 55.402 tok/s, +21.97%
Target-only greedy 21.189 tok/s
Embedded MTP 59.456 tok/s, 2.81x target-only
Real context fill 261,500 input tokens + 256 generated
Full-cache prefill 226.750 tok/s
Full-cache decode 12.606 tok/s
GPU0 after full fill 23,952 / 24,467 MiB
GPU1 projector, optional vision path 982 MiB

These are separate measurements. The 55.402 tok/s runtime A/B is not the same run as the 50.441 tok/s production series. I am keeping the rows separate because multiplying unrelated best cases produces a nice number and a useless benchmark.

The 256K result is an occupied-cache measurement. The server ingested 261,500 tokens, generated another 256, did not truncate, and did not OOM. Merely allocating a 262,144-token slot is much easier.

The llama.cpp branch behind 55.402 tok/s

I locally merged six pinned pull-request heads into the runtime used for the custom-build measurement. I did not write these patches, and none had been merged into upstream llama.cpp when I prepared this release on 18 August 2026.

Pull request Author What it changed in this setup
#26001 BLSharda Chunked CUDA kernel for Gated DeltaNet prefill
#26048 kmorennv Fused NVFP4 scale handling in the MMQ epilogue
#26705 praneshgo Branchless Q4_K/Q5_K CUDA path used during speculative verification
#27173 PatrickWalther Chained MTP verification and token rollback fix
#24891 hakuhan Correct recurrent-checkpoint invalidation after tool requests
#25635 ynankani XOR-swizzled Flash Attention K/V tiles

The first three patches moved the controlled run from 45.422 to 45.866 tok/s. Adding #27173 reached 55.402 tok/s. Patch #25635 separately moved 32K prefill from 759.38 to 815.64 tok/s and hot decode from 37.26 to 38.23 tok/s. Patch #24891 is a correctness fix for long agent sessions, not a speed claim.

The exact heads are pinned in recipe/llama.cpp-patches.md. Treat that file as a benchmark manifest. Check current upstream before building; an open PR can move or become obsolete.

Run it on current llama.cpp

Use a recent llama.cpp with Qwen3.8, NVFP4, Gated DeltaNet, multimodal, and MTP support. The model was checked against clean upstream build 10454, commit 4df29be4f. Newer compatible builds should work, but record the commit when comparing performance.

For text-only use, download the main GGUF. Add the projector only if you need image input:

hf download cdiamond/Qwen3.8-27B-iMatrix-NVFP4-MTP-GGUF \
  Qwen3.8-27B-iMatrix-NVFP4-MTP.gguf \
  mmproj-Qwen3.8-27B-F16.gguf \
  --local-dir ./qwen38

A conservative text and vision profile:

CUDA_VISIBLE_DEVICES=0,1 \
MTMD_BACKEND_DEVICE=CUDA1 \
llama-server \
  --model ./qwen38/Qwen3.8-27B-iMatrix-NVFP4-MTP.gguf \
  --mmproj ./qwen38/mmproj-Qwen3.8-27B-F16.gguf \
  --device CUDA0 \
  --n-gpu-layers 999 \
  --ctx-size 262144 \
  --parallel 1 \
  --ctx-checkpoints 4 \
  --flash-attn on \
  --cache-type-k q4_0 \
  --cache-type-v q4_0 \
  --batch-size 512 \
  --ubatch-size 256 \
  --temp 0.6 \
  --spec-type draft-mtp \
  --spec-draft-n-max 1 \
  --spec-draft-backend-sampling \
  --reasoning-preserve \
  --jinja

n_max=1 is the safer starting point when output equivalence matters. It leaves performance on the table.

The measured max-throughput profile

This is the configuration behind the production measurements:

export CUDA_VISIBLE_DEVICES=0,1
export MTMD_BACKEND_DEVICE=CUDA1
export LLAMA_SPEC_CHAIN=1
export GGML_CUDA_GRAPH_OPT=1

llama-server \
  --model ./qwen38/Qwen3.8-27B-iMatrix-NVFP4-MTP.gguf \
  --alias Qwen3.8-27B-iMatrix-NVFP4-256K-MTP \
  --device CUDA0 \
  --n-gpu-layers 999 \
  --fit off \
  --ctx-size 262144 \
  --parallel 1 \
  --ctx-checkpoints 4 \
  --flash-attn on \
  --cache-type-k q4_0 \
  --cache-type-v q4_0 \
  --batch-size 512 \
  --ubatch-size 256 \
  --threads 8 \
  --threads-batch 8 \
  --temp 0.6 \
  --spec-type draft-mtp \
  --spec-default \
  --spec-draft-n-max 8 \
  --spec-draft-n-min 0 \
  --spec-draft-p-min 0 \
  --spec-draft-type-k f16 \
  --spec-draft-type-v f16 \
  --spec-draft-threads 8 \
  --spec-draft-threads-batch 8 \
  --spec-draft-backend-sampling \
  --mmproj ./qwen38/mmproj-Qwen3.8-27B-F16.gguf \
  --image-min-tokens 1024 \
  --reasoning-preserve \
  --jinja \
  --metrics

--fit off is intentional. Automatic fitting can silently reduce context or change placement to keep its own safety margin, which makes a capacity result hard to interpret. Do not copy this choice blindly. Confirm the allocation on your card.

The full profile uses a second GPU for the projector. For text-only use, omit --mmproj and MTMD_BACKEND_DEVICE. Putting the F16 projector on the same 24 GB card as the full 256K allocation is likely to cross the measured memory limit.

Those runtime patches do not change the model file or its clean-upstream compatibility.

Why MTP stops at eight

On this model and GPU, n_max=8 hit a favorable verification shape. Nine candidates were no faster and cost about 150 MiB more. Ten crossed another CUDA allocation boundary. At 20, throughput fell to 30.60 tok/s.

The MTP head also preferred the lower-precision match. Requantizing only its eight weight tensors to iMatrix Q5_K added 50.625 MiB and reduced the ten-run mean from 50.441 to 48.733 tok/s. A Q5_K/Q6_K version added 69.219 MiB and fell to 37.024 tok/s. More accurate standalone draft weights agreed less often with this quantized target.

Known limitation: batch invariance

Target-only greedy decoding and MTP n_max=8 do not produce the same continuation on this quantized target. Both paths were deterministic inside their own configurations, but the max-throughput mode is not bitwise distribution-preserving relative to target-only decode. This matches the open llama.cpp batch-invariance issue #25618.

Use n_max=1 if that property matters more than throughput. Do not report the n_max=8 result as lossless speculative decoding.

Performance also depends heavily on workload and cache position. Agentic code with repeated schemas and prefixes can accept drafts well. A fresh request at the far end of 256K is a different machine, despite using the same weights.

Provenance and license

The base model and this quantized derivative use the Apache License 2.0. Keep the original attribution and license when redistributing the weights.

Identity and Version

Repository
cdiamond/Qwen3.8-27B-iMatrix-NVFP4-MTP-GGUF
Publisher
Michał Piszczek
Task
Image and text to text
Modality
Image and text
Library
Not stated by the source
Parameters
Not stated by the source
Languages
mtp
Revision
ac343e8f44caef0896f79d372ecc07ef7ab34ec8
First published
2026-08-17
Last updated
2026-08-17

Files and Weights

10 files, 18.1 GB in total. The weights are 2 files totalling 18.1 GB in gguf.

Weights2 files · 18.1 GB
Documentation4 files · 24.0 KB
Other3 files · 994 B
Repository1 file · 1.7 KB
Every file
FileTypeSizeSHA-256
Qwen3.8-27B-iMatrix-NVFP4-MTP.ggufWeights17.1 GB 15b6bb8d0eb1
mmproj-Qwen3.8-27B-F16.ggufWeights927.6 MB cbb841a9ee06
LICENSEDocumentation11.3 KB
NOTICEDocumentation491 B
README.mdDocumentation11.0 KB
recipe/llama.cpp-patches.mdDocumentation1.2 KB
CITATION.cffOther485 B
SHA256SUMSOther195 B
recipe/tensor-types.txtOther314 B
.gitattributesRepository1.7 KB

License and Download

License
apache-2.0
Access
Open weights, no gate
Download size
18.1 GB
Download from Michał Piszczek

Released by Michał Piszczek through its official repository on Hugging Face. Read the license.

Built From

Memory Requirements

PrecisionWeights in memory
As published18.1 GB

Weights only, from the published parameter count; the key-value cache and runtime add to this.

Questions About Qwen3.8-27B-iMatrix-NVFP4-MTP-GGUF

Can I use Qwen3.8-27B-iMatrix-NVFP4-MTP-GGUF commercially?

Yes. Qwen3.8-27B-iMatrix-NVFP4-MTP-GGUF is released under Apache License 2.0. The Apache License 2.0 is a permissive open-source license. It permits commercial use, modification and redistribution. It requires keeping the license and copyright notices and any NOTICE file, stating significant changes, and it includes an express patent grant from contributors.

Similar Models

Model · Image and text to text

Huihui-Qwen3.8-27B-abliterated-GGUF

Huihui.ai

This is an uncensored version of Qwen/Qwen3.8-27B created with abliteration (see remove-refusals-with-transformers to know more about it). This is a crude, proof-of-concept implementation to remove refusals from an LLM model without using TransformerLens. The newly added Huihui-Qwen3.8-27B-abliterated-GSQ-RCO series come from ISTA-DASLab/Qwen3.8-27B-GSQ-RCO-GGUF. Only layers 23 to 51 have been ablated, while the other layers remain unablated. It may come with a small disclaimer warning. The size after conversion may differ from the original GGUF. The newly added Huihui-Qwen3.8-27B-abliterated-UD series come from unsloth/Qwen3.8-27B-GGUF. Only layers 18 to 51 have been ablated(Previously…

Open weights apache-2.0 transformers

Qwen3.8-27B uncensored by HauhauCS 0/465 Refusals. This is the Aggressive variant: direct answers, no refusal behavior, and minimal preamble on hard prompts. Every text GGUF preserves Qwen3.8's native NextN head, and this release adds HauhauCS FastMTP: a specific acceleration sidecar qualified across the complete quant lineup at maximum native context. Vision is included through the separate BF16 projector. No changes to datasets or intended capabilities. This release preserves Qwen3.8-27B's text, reasoning, agentic, image, and video capabilities while applying the HauhauCS Aggressive uncensoring profile. Pick Aggressive when you specifically want the model to get to the answer without…

Open weights apache-2.0

Model · Image and text to text

Gemma-4-E4B-Uncensored-HauhauCS-Aggressive

HauhauCS

Gemma 4 E4B-IT uncensored by HauhauCS. 0/465 Refusals\ No changes to datasets or capabilities. Fully functional, 100% of what the original authors intended - just without the refusals. These are meant to be the best lossless uncensored models out there. Stronger uncensoring — model is fully unlocked and won't refuse prompts. May occasionally append short disclaimers (baked into base model training, not refusals) but full content is always generated. For a more conservative uncensor that keeps some safety guardrails, check the Balanced variant when it's available. All quants generated with importance matrix (imatrix) for optimal quality preservation on abliterated weights. KP ("Perfect")…

Open weights gemma

Model · Image and text to text

Qwen3.5-9B-GGUF

Unsloth AI

You can now also fine-tune the model locally with Unsloth. - Read our Qwen3.5 fine-tuning guide here. Over recent months, we have intensified our focus on developing foundation models that deliver exceptional utility and performance. Qwen3.5 represents a significant leap forward, integrating breakthroughs in multimodal learning, architectural efficiency, reinforcement learning scale, and global accessibility to empower developers and enterprises with unprecedented capability and efficiency. For more details, please refer to our blog post Qwen3.5. WMT24++: a harder subset of WMT24 after difficulty labeling and rebalancing; we report the averaged scores on 55 languages using XCOMET-XXL. Empty…

Open weights apache-2.0 transformers

Model · Image and text to text

Qwen3.8-Flash-Next-GGUF

Unsloth AI

As the frontier of foundation models pushes toward ever-larger parameter counts and ever-longer context windows, the question is no longer just how much we can scale, but how efficiently we can do so. Sustainable progress toward artificial general intelligence (AGI) that benefits everyone demands architectural innovation. Today, we are sharing a concrete step in that direction: Qwen3.8-Flash-Next. This experimental preview of the architecture that will underpin Qwen4 is built around a fundamental rethinking of how the core components of modern large language models (LLMs) interact at scale. The first open-weight release under this architecture is Qwen3.8-Flash-Next, which introduces: For…

Open weights other

and it does so in 4bit and 8bit. Regular and MTP (fast) NEO IMATRIX GGUFs provided. (this model is part of the Qwen 3.6 27B Fable Fusion 711 pipelines: 2200+ likes, 3 million + downloads) instruct modes (2 new - Spoon / Einstein, all use ZERO REASONING TOKENS) all switchable on the fly via API, direct and "in chat" (yes - model ctrl at the chat/message level). Model name has "plusIQ" in the name. (there is also a extra robust "tools" version too.) Extreme intelligence in a small package. Jaw dropping performance. Superior instruction following. A multi-stage and multi-model fine tune and multi-stage merge on local hardware by myself and Nightmedia. Several of my 9B Qwen 3.5 fine tunes were…

Open weights apache-2.0