🌟 Qwopus3.5-9B-Coder-MTP-gguf

This is a set of custom IQ4_XS quants of Qwopus3.5-9B-Coder using mradermacher's imatrix, also mirroring mradermacher's mmproj files.

V6 is based on the newer Flash version Qwopus3-5-9B-Coder-Flash

Initially I ran this to retain the MTP heads. Then went further, experiment with uplifting certain layers and the quant sizing of the MTP layers. Very basic stuff, but the result is pretty solid: 98,304 context (don't forget to use yarn past 32K!) in ~6GB VRAM when using beellama/KVarN and initial ~60t/s on a RTX4060 with Windows 11.

Version file size tensorfile
1 Qwopus3.5-9B-Coder-MTP-IQ4_XS ~5.29GiB tensorv1.txt
2 Qwopus3.5-9B-Coder-MTP-IQ4_XS_v2 ~5.02GiB tensorv2.txt
3 Qwopus3.5-9B-Coder-MTP-IQ4_XS_v3 ~4.99GiB tensorv3.txt
4 No gguf, experimental - tensorv4.txt
5 No gguf, too large ~5.85GB tensorv5.txt
6 Qwopus3-5-9B-Coder-Flash-IQ4_XS_v6 ~5.23GiB tensorv6.txt

Tools

GGUF was produced using scripts from the root of llama.cpp's source code.

Quants were produced using llama-quantize.exe from llama.cpp's binary releases.

V6 produced using GGUFY directly from full precision shards. Thanks again qskousen!

Get a gguf (or use ggufy to do both in one step)

python convert_hf_to_gguf.py --outfile T:\_Qwen\Qwopus3.5-9B-Coder\__output\Qwopus3.5-9B-Coder-MTP-{ftype}.gguf --outtype auto --model-name Qwopus3.5-9B-Coder --verbose T:\_Qwen\Qwopus3.5-9B-Coder

V1

This version is standard iq4_xs (with imatrix, thanks mradermacher!) with the MTP layers held at BF16

llama-quantize --imatrix Qwopus3.5-9B-Coder.mradermacher.imatrix.gguf --tensor-type "blk\.32\..*=BF16" T:\_Qwen\Qwopus3.5-9B-coder\__output\Qwopus3.5-9B-Coder-MTP-bf16.gguf T:\_Qwen\Qwopus3.5-9B-coder\__output\Qwopus3.5-9B-Coder-MTP-IQ4_XS.gguf IQ4_XS 8

tensorv1.txt

V2

Try keeping a few ffn_down at Q5_K, MTP mostly Q5_K

llama-quantize --imatrix Qwopus3.5-9B-Coder.mradermacher.imatrix.gguf --tensor-type-file tensors2.txt T:\_Qwen\Qwopus3.5-9B-coder\__output\Qwopus3.5-9B-Coder-MTP-bf16.gguf T:\_Qwen\Qwopus3.5-9B-coder\__output\Qwopus3.5-9B-Coder-MTP-IQ4_XS_v2.gguf IQ4_XS 8

tensorv2.txt

V3

Can we go smaller? Yes, but it doesn't gain much.

llama-quantize --imatrix Qwopus3.5-9B-Coder.mradermacher.imatrix.gguf --tensor-type-file tensors3.txt T:\_Qwen\Qwopus3.5-9B-coder\__output\Qwopus3.5-9B-Coder-MTP-bf16.gguf T:\_Qwen\Qwopus3.5-9B-coder\__output\Qwopus3.5-9B-Coder-MTP-IQ4_XS_v3.gguf IQ4_XS 8

tensorv3.txt

V4

Proved inconclusive, no gain.

tensorv4.txt

V5

GGUF too big, eats context space on my 8GB GPU

tensorv5.txt

V6

A little big, most of the time 98K context fits. The new Flash version is extremely fast for this build, getting nearly 60t/s to start.

tensorv6.txt


inference

llama.cpp models.ini (beellama v0.4.3 - newer versions allow KVarN for MTP as well, I've not tried yet)

[*]
load-mode=none
mmproj-offload=on
ctx-size=98304
batch-size=2048
ubatch-size=512
cache-type-k=kvarn4
cache-type-v=kvarn2
cache-reuse=256
flash-attn=on
kv-offload=on
n-gpu-layers=all
fit=on
fitt=200
rope-scale=4
kv-tail-tokens=1024
spec-draft-n-max=2
ctx-checkpoints=32
cache-ram=4096
kv-unified=on

temperature=0.7
repeat-penalty=1.0
top-k=20
top-p=0.95
min-p=0.0001
reasoning=on

rope-scaling=yarn
yarn-orig-ctx=32768

[Qwopus3.5-9B-v3.5-MTP.coder_V1]
model=C:\llm\_Qwen\Qwopus3.5-9B-v3.5-MTP.coder_V1\Qwopus3.5-9B-Coder-MTP-IQ4_XS.gguf
jinja=on
chat-template-file=C:\llm\_Templates\Qwopus-9B-jackrong\chat_template.jinja
chat-template-kwargs={"preserve_thinking":"true"}
spec-type=draft-mtp
spec-draft-type-k=q8_0
spec-draft-type-v=q4_0

[Qwopus3.5-9B-v3.5-MTP.coder_V2]
model=C:\llm\_Qwen\Qwopus3.5-9B-v3.5-MTP.coder_V2\Qwopus3.5-9B-Coder-MTP-IQ4_XS_v2.gguf
jinja=on
chat-template-file=C:\llm\_Templates\Qwopus-9B-jackrong\chat_template.jinja
chat-template-kwargs={"preserve_thinking":"true"}
spec-draft-type-k=q8_0
spec-draft-type-v=q4_0

[Qwopus3.5-9B-v3.5-MTP.coder_V3]
model=C:\llm\_Qwen\Qwopus3.5-9B-v3.5-MTP.coder_V3\Qwopus3.5-9B-Coder-MTP-IQ4_XS_v3.gguf
jinja=on
chat-template-file=C:\llm\_Templates\Qwopus-9B-jackrong\chat_template.jinja
chat-template-kwargs={"preserve_thinking":"true"}
spec-type=draft-mtp
spec-draft-type-k=q8_0
spec-draft-type-v=q4_0

[Qwopus3.5-9B-v3.5.coder_MM_V3]
model=C:\llm\_Qwen\Qwopus3.5-9B-v3.5-MTP.coder_V3\Qwopus3.5-9B-Coder-MTP-IQ4_XS_v3.gguf
mmproj=C:\llm\_Qwen\Qwopus3.5-9B-Coder-mmproj-f16.gguf
jinja=on
chat-template-file=C:\llm\_Templates\Qwopus-9B-jackrong\chat_template.jinja
chat-template-kwargs={"preserve_thinking":"true"}
ctx-size=98304
rope-scaling=yarn
yarn-orig-ctx=32768
rope-scale=3

Conclusion

Prediction acceptance only dropped marginally on V3 compared to V1, still trends above 60% during coding tasks. Unable to quantify any gains from bumping 4 ff_down weights from IQ4_S to Q5_K. Next run I will try V2 again but bump all ff_down weights to Q6_K and MTP head to Q6_K/Q8_K and see where it stands.

V6 marks the first version to use empircal data to decide which layers to avoid making smaller or to make bigger. This initial run only looked for strong kurtosis.

thanks

First, thanks to the Qwen team for such a great model.

Thanks to everyone who has contributed to the bountiful tools, documents and most of all open weights.

Special thanks to mradermacher, unsloth and Jackrong!

Downloads last month
952
GGUF
Model size
9B params
Architecture
qwen35
Hardware compatibility
Log In to add your hardware

4-bit

Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for joeblowma/Qwopus3.5-9B-Coder-MTP-GGUF

Finetuned
Qwen/Qwen3.5-9B
Quantized
(3)
this model