CoolFace
Modelpublic

localweights/Qwen3.5-4B-MTP-IQ4_XS-GGUF

sourceHugging Faceapache-2.0updated 5mo agoView on Hugging Face
1likes137downloads
Model Card

Qwen3.5-4B-MTP-GGUF

Qwen3.5-4B (qwen35 dense hybrid arch) with NextN/MTP head preserved. Built via the patched convert_hf_to_gguf.py from patched llama.cpp build with Qwen3.5/3.6 MTP support.

Files

FileSizePurpose
Qwen3.5-4B-MTP-bf16.gguf8.1 GBSource for further quantization. NextN tensors at blk.32.
Qwen3.5-4B-MTP-IQ4_XS.gguf2.5 GBProduction-ready quant. Fits in tiny-council slots.

Build pipeline

python convert_hf_to_gguf.py /path/to/Qwen3.5-4B \
    --outfile Qwen3.5-4B-MTP-bf16.gguf
llama-quantize Qwen3.5-4B-MTP-bf16.gguf \
    Qwen3.5-4B-MTP-IQ4_XS.gguf IQ4_XS

Required adding the qwen35 pre-tokenizer chkhsh entry to convert_hf_to_gguf.py:1531 (vendored in the fork).

Optimal serving config (RTX 3090 Ti)

Recommended `--spec-draft-n-max 2` for this model size. Larger n drops accept rate faster than throughput grows; sweet spot is shallower than the 27B/35B (which peak at n=4).

bash
llama-server -m Qwen3.5-4B-MTP-IQ4_XS.gguf \
  -ngl 999 -fa on \
  --spec-type mtp --spec-draft-n-max 2 \
  --no-mmap \
  --ctx-size 8192 -ctk q4_0 -ctv q4_0 \
  --parallel 1 --kv-unified \
  --metrics --jinja

Performance — --spec-draft-n-max sweep

Measured 2026-05-06, IQ4_XS, 3090 Ti, no thinking, 200-token decode:

nDecode tok/sAccept rate
1250100%
2290 ← peak98%
328082%
426470%
522354%
620448%
818836%

Without spec-decode (baseline): 207 tok/s. So peak MTP gives +40% vs baseline.

MetricValue
Decode (best, n=2)290 t/s
Speedup vs no-spec+40%
VRAM @ 8K ctx~2.7 GB

Tokenizer

qwen35 pre-tokenizer, 151,936 vocab. Standard chat template.

License

Apache 2.0.

Provenance

Built on Crucible: 9950X / 96 GB DDR5 / RTX 3090 Ti. Sibling: localweights/Qwen3.6-{27B,35B-A3B}-MTP-IQ4_XS-GGUF.