CoolFace
Modelpublic

GianniDPC/Qwen3.6-27B-IQ4_XS-pure-with-MTP-GGUF

sourceHugging Faceapache-2.0updated 4mo agoView on Hugging Face
24likes428downloads
Model Card

Qwen3.6-27B IQ4_XS Pure with MTP GGUF

This GGUF combines the Ununnilium IQ4_XS pure quantization of Qwen3.6-27B with the MTP (Multi-Token Prediction) head extracted from the unsloth IQ4_XS MTP build, enabling native speculative decoding at a compact file size.

File

FileSizeQuantization
qwen3.6-27b-IQ4_XS-pure-with-MTP-IQ4.gguf~13.57 GBBody: IQ4XS, MTP: IQ4NL/Q5K/Q80 mix

What's Inside

  • —Body (851 tensors): IQ4_XS quantization via llama-quantize --pure from Ununnilium's build, using the unsloth imatrix for calibration
  • —MTP head (15 tensors): Extracted from unsloth/Qwen3.6-27B-MTP-GGUF (IQ4_XS variant), preserving the original mixed quantization:
  • —attn_q, attn_k, attn_output, ffn_gate/up/down → IQ4_NL
  • —attn_v → Q5_K
  • —nextn.eh_proj → Q8_0
  • —Norm tensors → F16

Why This Exists

The Ununnilium pure GGUF strips MTP tensors to save space, but that means speculative decoding can't use the trained native draft head. This file grafts the MTP head back in, restoring native MTP speculative decoding while keeping the aggressive IQ4_XS body quantization for VRAM efficiency.

Provenance

Quickstart

llama.cpp

bash
llama-server -hf GianniDPC/Qwen3.6-27B-IQ4_XS-pure-with-MTP-GGUF:IQ4_XS \
  --spec-type draft-mtp \
  --spec-draft-n-max 3 \
  --spec-draft-p-min 0.75

LM Studio

Search for GianniDPC/Qwen3.6-27B-IQ4_XS-pure-with-MTP-GGUF and load the file. Enable speculative decoding in settings with draft-mtp type.

llama-cpp-python

python
from llama_cpp import Llama

llm = Llama.from_pretrained(
    repo_id="GianniDPC/Qwen3.6-27B-IQ4_XS-pure-with-MTP-GGUF",
    filename="qwen3.6-27b-IQ4_XS-pure-with-MTP-IQ4.gguf",
    n_gpu_layers=-1,
    n_ctx=131072,
    speculative="draft-mtp",
    speculative_n_draft=3,
)

Recommended Server Flags

bash
llama-server \
  --model qwen3.6-27b-IQ4_XS-pure-with-MTP-IQ4.gguf \
  --ctx-size 131072 \
  --n-gpu-layers 99 \
  --parallel 1 \
  --batch-size 2048 \
  --ubatch-size 128 \
  --cache-type-k q4_0 \
  --cache-type-v q4_0 \
  --threads 6 \
  --threads-batch 12 \
  --flash-attn on \
  --no-mmap \
  --spec-type draft-mtp \
  --spec-draft-n-max 3 \
  --spec-draft-p-min 0.75 \
  --temp 0.8 \
  --top-p 0.95 \
  --top-k 20 \
  --min-p 0.0

MTP Performance

Tested on AMD Radeon RX 7800 XT (16 GB VRAM) with Vulkan backend:

MetricValue
Cumulative token acceptance~82%
Draft acceptance rate~92%
Generation speed~42-65 t/s (varies by workload)
Prompt processing~100-120 t/s

Acceptance rates above 60% mean MTP provides a net speedup. The ~82% cumulative token acceptance observed in testing indicates strong speculative decoding performance.

Model Architecture

ParameterValue
Architectureqwen35
Parameters27B
Layers64 + 1 MTP
Hidden size5120
FFN size17408
Attention heads24 Q / 4 KV
Context length262,144 (native)
Vocab size248,320

Caveats

  • —MTP support requires llama.cpp build with draft-mtp speculative decoding support (PR #22673 or newer)
  • —The MTP head was trained against the original Qwen3.6-27B trunk; acceptance may vary if the body has been further fine-tuned
  • —Vision/MTP combination has been fragile in llama.cpp testing; use text-only first
  • —--parallel 1 is required when using MTP (parallel slots not yet supported)