How to use from the
Use from the
llama-cpp-python library
# !pip install llama-cpp-python

from llama_cpp import Llama

llm = Llama.from_pretrained(
	repo_id="ubergarm/Qwen3.6-27B-GGUF",
	filename="",
)
llm.create_chat_completion(
	messages = [
		{
			"role": "user",
			"content": "What is the capital of France?"
		}
	]
)

ik_llama.cpp imatrix Quantizations of Qwen/Qwen3.6-27B

NOTE ik_llama.cpp can also run your existing GGUFs from bartowski, unsloth, mradermacher, etc if you want to try it out before downloading my quants. Only a couple quants in this collection are compatible with mainline llamma.cpp/LMStudio/KoboldCPP/etc as mentioned in the specific description, all others require ik_llama.cpp.

Some of ik's new quants are supported with Nexesenex/croco.cpp fork of KoboldCPP with Windows builds. Also check for ik_llama.cpp windows builds by Thireus here..

These quants provide best in class perplexity for the given memory footprint.

Big Thanks

Shout out to Wendell and the Level1Techs crew, the community Forums, YouTube Channel! BIG thanks for providing BIG hardware expertise and access to run these experiments and make these great quants available to the community!!!

Also thanks to all the folks in the quantizing and inferencing community on BeaverAI Club Discord and on r/LocalLLaMA for tips and tricks helping each other run, test, and benchmark all the fun new models! Thanks to huggingface for hosting all these big quants!

Finally, I really appreciate the support from aifoundry.org so check out their open source RISC-V based solutions!

Quant Collection

Perplexity computed against wiki.test.raw. (lower is "better")

Perplexity Chart KLD Chart

These two are just test quants for baseline perplexity comparison and not available for download here:

  • BF16 50.103 GiB (16.002 BPW)
    • PPL over 580 chunks for n_ctx=512 = 6.9066 +/- 0.04552
  • Q8_0 26.622 GiB (8.502 BPW)
    • PPL over 580 chunks for n_ctx=512 = 6.9063 +/- 0.04551

NOTE: If the models are split, the first file is much smaller and only contains metadata, that is on purpose, its fine!

IQ5_KS 18.532 GiB (5.919 BPW)

PPL over 580 chunks for n_ctx=512 = 6.9341 +/- 0.04578

This ik_llama.cpp exclusive quant is likely among the best quality available for 24GB full offload.

👈 Secret Recipe
#!/usr/bin/env bash

custom="
# 64 Repeating Layers [0-63]

## Gated Attention/Delta Net [Blended 0-63]
blk\..*\.attn_gate\.weight=q6_0
blk\..*\.attn_qkv\.weight=q6_0
blk\..*\.attn_output\.weight=q6_0
blk\..*\.attn_q\.weight=q6_0
blk\..*\.attn_k\.weight=q6_0
blk\..*\.attn_v\.weight=q6_0
blk\..*\.ssm_alpha\.weight=q8_0
blk\..*\.ssm_beta\.weight=q8_0
blk\..*\.ssm_out\.weight=q8_0

# Dense Layers [0-63]
blk\..*\.ffn_down\.weight=iq5_ks
blk\..*\.ffn_(gate|up)\.weight=iq5_ks

# Non-Repeating Layers
token_embd\.weight=q6_0
output\.weight=q8_0
"

custom=$(
  echo "$custom" | grep -v '^#' | \
  sed -Ez 's:\n+:,:g;s:,$::;s:^,::'
)

    #--dry-run \
numactl -N ${SOCKET} -m ${SOCKET} \
./build/bin/llama-quantize \
    --custom-q "$custom" \
    --imatrix /mnt/data/models/ubergarm/Qwen3.6-27B-GGUF/imatrix-Qwen3.6-27B-BF16.dat \
    /mnt/data/models/ubergarm/Qwen3.6-27B-GGUF/Qwen3.6-27B-BF16-00001-of-00002.gguf \
    /mnt/data/models/ubergarm/Qwen3.6-27B-GGUF/Qwen3.6-27B-IQ5_KS.gguf \
    IQ5_KS \
    128

smol-IQ4_NL 15.405 GiB (4.920 BPW)

PPL over 580 chunks for n_ctx=512 = 7.0040 +/- 0.04646

This mainline compatible custom mix using quantization types hopefully optimized for Vulkan/ROCm (and possibly Mac)?

👈 Secret Recipe
#!/usr/bin/env bash

custom="
# 64 Repeating Layers [0-63]

## Gated Attention/Delta Net [Blended 0-63]
blk\..*\.attn_gate\.weight=iq4_nl
blk\..*\.attn_qkv\.weight=iq4_nl
blk\..*\.attn_output\.weight=iq4_nl
blk\..*\.attn_q\.weight=iq4_nl
blk\..*\.attn_k\.weight=iq4_nl
blk\..*\.attn_v\.weight=iq4_nl
blk\..*\.ssm_alpha\.weight=q8_0
blk\..*\.ssm_beta\.weight=q8_0
blk\..*\.ssm_out\.weight=q8_0

# Dense Layers [0-63]
blk\..*\.ffn_down\.weight=iq4_nl
blk\..*\.ffn_(gate|up)\.weight=iq4_nl

# Non-Repeating Layers
token_embd\.weight=iq4_nl
output\.weight=q8_0
"

custom=$(
  echo "$custom" | grep -v '^#' | \
  sed -Ez 's:\n+:,:g;s:,$::;s:^,::'
)

    #--dry-run \
numactl -N ${SOCKET} -m ${SOCKET} \
./build/bin/llama-quantize \
    --custom-q "$custom" \
    --imatrix /mnt/data/models/ubergarm/Qwen3.6-27B-GGUF/imatrix-Qwen3.6-27B-BF16.dat \
    /mnt/data/models/ubergarm/Qwen3.6-27B-GGUF/Qwen3.6-27B-BF16-00001-of-00002.gguf \
    /mnt/data/models/ubergarm/Qwen3.6-27B-GGUF/Qwen3.6-27B-smol-IQ4_NL.gguf \
    IQ4_NL \
    128

MTP IQ4_KS 15.113 GiB (4.752 BPW)

(Should be the same as IQ4_KS without blk.64.* MTP tensors below)

Tested on ik_llama.cpp PR1736 with -mtp --draft-max 4 --draft-p-min 0.75

👈 Secret Recipe
#!/usr/bin/env bash

custom="
# 64 Repeating Layers [0-63] + blk.64 MTP/nextn tensors

## MTP/nextn tensors
## No way to make imatrix data for blk.64.*
## Keep q8_0 for best MTP spec-decoding acceptance rate
## Adds ~430.41 MiB extra size over non-MTP quants
blk\.64\..*\.weight=q8_0

## Gated Attention/Delta Net [Blended 0-63]
blk\..*\.attn_gate\.weight=iq4_ks
blk\..*\.attn_qkv\.weight=iq4_ks
blk\..*\.attn_output\.weight=iq4_ks
blk\..*\.attn_q\.weight=iq4_ks
blk\..*\.attn_k\.weight=iq4_ks
blk\..*\.attn_v\.weight=iq4_ks
blk\..*\.ssm_alpha\.weight=q6_0
blk\..*\.ssm_beta\.weight=q6_0
blk\..*\.ssm_out\.weight=q6_0

# Dense Layers [0-63]
blk\..*\.ffn_down\.weight=iq4_ks
blk\..*\.ffn_(gate|up)\.weight=iq4_ks

# Non-Repeating Layers
token_embd\.weight=q6_0
output\.weight=q8_0
"

custom=$(
  echo "$custom" | grep -v '^#' | \
  sed -Ez 's:\n+:,:g;s:,$::;s:^,::'
)

    #--dry-run \
numactl -N ${SOCKET} -m ${SOCKET} \
./build/bin/llama-quantize \
    --custom-q "$custom" \
    --imatrix /mnt/data/models/ubergarm/Qwen3.6-27B-GGUF/imatrix-Qwen3.6-27B-BF16.dat \
    /mnt/data/models/ubergarm/Qwen3.6-27B-GGUF-mtp/Qwen3.6-27B-BF16-00001-of-00002.gguf \
    /mnt/data/models/ubergarm/Qwen3.6-27B-GGUF-mtp/Qwen3.6-27B-MTP-smol-IQ4_KS.gguf \
    IQ4_KS \
    128
# renamed it to remove `-smol` before upload

IQ4_KS 14.693 GiB (4.693 BPW)

PPL over 580 chunks for n_ctx=512 = 6.9740 +/- 0.04599

👈 Secret Recipe
#!/usr/bin/env bash

custom="
# 64 Repeating Layers [0-63]

## Gated Attention/Delta Net [Blended 0-63]
blk\..*\.attn_gate\.weight=iq4_ks
blk\..*\.attn_qkv\.weight=iq4_ks
blk\..*\.attn_output\.weight=iq4_ks
blk\..*\.attn_q\.weight=iq4_ks
blk\..*\.attn_k\.weight=iq4_ks
blk\..*\.attn_v\.weight=iq4_ks
blk\..*\.ssm_alpha\.weight=q6_0
blk\..*\.ssm_beta\.weight=q6_0
blk\..*\.ssm_out\.weight=q6_0

# Dense Layers [0-63]
blk\..*\.ffn_down\.weight=iq4_ks
blk\..*\.ffn_(gate|up)\.weight=iq4_ks

# Non-Repeating Layers
token_embd\.weight=q6_0
output\.weight=q8_0
"

custom=$(
  echo "$custom" | grep -v '^#' | \
  sed -Ez 's:\n+:,:g;s:,$::;s:^,::'
)

    #--dry-run \
numactl -N ${SOCKET} -m ${SOCKET} \
./build/bin/llama-quantize \
    --custom-q "$custom" \
    --imatrix /mnt/data/models/ubergarm/Qwen3.6-27B-GGUF/imatrix-Qwen3.6-27B-BF16.dat \
    /mnt/data/models/ubergarm/Qwen3.6-27B-GGUF/Qwen3.6-27B-BF16-00001-of-00002.gguf \
    /mnt/data/models/ubergarm/Qwen3.6-27B-GGUF/Qwen3.6-27B-smol-IQ4_KS.gguf \
    IQ4_KS \
    128
# renamed it to remove `-smol` before upload

Quick Start

I can fit 128k context on 24GB VRAM with multimodal support and hit ~1400+ tok/sec prompt processing and ~90+ tok/sec generation with MTP depending on workload on a single 3090 Ti FE.

git clone https://github.com/ikawrakow/ik_llama.cpp.git
cd ik_llama.cpp

cmake -B build -DCMAKE_BUILD_TYPE=Release -DGGML_CUDA=ON -DGGML_CUDA_F16=ON
cmake --build build --config Release -j $(nproc)

# wget https://huggingface.co/ubergarm/Qwen3.6-27B-GGUF/resolve/main/Qwen3.6-27B-MTP-IQ4_KS.gguf
model=/mnt/ai/models/ubergarm/Qwen3.6-27B-GGUF/Qwen3.6-27B-MTP-IQ4_KS.gguf
# wget https://huggingface.co/ggml-org/Qwen3.6-27B-GGUF/resolve/main/mmproj-Qwen3.6-27B-Q8_0.gguf
mmproj=/mnt/ai/models/ubergarm/Qwen3.6-27B-GGUF/mmproj-Qwen3.6-27B-Q8_0.gguf

SLOT_SAVE_DIR="/tmp/llama-slot-cache"
mkdir -p "$SLOT_SAVE_DIR"

CUDA_VISIBLE_DEVICES="0" \
./build/bin/llama-server \
  --model "$model" \
  --alias "Qwen3.6-27B" \
  -c 131072 \
  -ctk q8_0 -ctv q8_0 \
  -ctkd q8_0 -ctvd q8_0 \
  --merge-qkv \
  -muge \
  -ngl 99 \
  -t 1 \
  -tb 1 \
  -tm 16 \
  --host 127.0.0.1 \
  --port 8080 \
  --parallel 1 \
  --jinja \
  --ctx-checkpoints 32 \
  -cram 32768 \
  --spec-type mtp:n_max=4,p_min=0.0 \
  -mtprot iq4_ks \
  --no-mmproj-offload \
  --mmproj "$mmproj" \
  --slot-save-path "$SLOT_SAVE_DIR"

If you have multiple CUDA GPUs add -sm graph when running. This keeps the mmproj on CPU/RAM and is set to 16 physical cores currently, reduce -tm 8 etc if you have less cores.

If you can't spare the extra 640MiB of VRAM you can remove -mtprot iq4_ks which will slightly slow down generation.

References

Downloads last month
10,477
GGUF
Model size
27B 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 ubergarm/Qwen3.6-27B-GGUF

Base model

Qwen/Qwen3.6-27B
Quantized
(455)
this model
Quantizations
1 model