CoolFace
Modelpublic

Brooooooklyn/Qwen3.5-9B-UD-Q6_K_XL-mlx

sourceHugging Faceapache-2.0updated 6mo agoView on Hugging Face
0likes76downloads
Model Card

Qwen3.5-9B — UD-Q6KXL (mlx-node)

6-bit base mixed-precision quantization of Qwen/Qwen3.5-9B for Apple Silicon, using the **Unsloth Dynamic** quantization strategy via mlx-node.

Original (BF16)This Model
Size~18 GB9 GB
FormatSafeTensors (sharded)SafeTensors (single file)
PrecisionBF16 uniformMixed 6/8/8/8/8-bit + BF16

All Variants

RepoGGUF EquivalentSizeDecode (tok/s)Speedup vs BF16
Brooooooklyn/Qwen3.5-9B-UD-Q2_K_XL-mlxUD-Q2KXL5 GBTBDTBD
Brooooooklyn/Qwen3.5-9B-UD-Q3_K_XL-mlxUD-Q3KXL6 GBTBDTBD
Brooooooklyn/Qwen3.5-9B-UD-Q4_K_XL-mlxUD-Q4KXL8 GBTBDTBD
Brooooooklyn/Qwen3.5-9B-UD-Q5_K_XL-mlxUD-Q5KXL9 GBTBDTBD
Brooooooklyn/Qwen3.5-9B-UD-Q6_K_XL-mlxUD-Q6KXL9 GBTBDTBD
Brooooooklyn/Qwen3.5-9B-UD-Q8_K_XL-mlxUD-Q8KXL10 GBTBDTBD

Benchmarked on Apple M3 Max 128GB, multi-turn chat (Turn 4 decode, steady-state).

Per-Tensor Bit Assignments (N=6)

WeightBitsRationale
embed_tokens8-bitKLD ~0.15 — very low sensitivity
lm_head8-bitKLD ~0.05 — safest tensor
self_attn.q/k/v_proj8-bit + AWQKLD ~1.5–2.9, AWQ via layernorm
linear_attn.in_proj_qkv/z8-bit + AWQKLD ~2.9, AWQ via layernorm
self_attn.o_projbf16NOT AWQ-correctable
linear_attn.out_projbf16KLD ~6.0 — worst tensor
down_proj8-bit"Slightly more sensitive"
gate_proj, up_proj6-bit"Generally ok" at low bits

Quantization Strategy

Based on Unsloth Dynamic 2.0 per-tensor KLD analysis. Sensitive layers get higher bits with AWQ correction, while FFN weights are aggressively quantized. imatrix AWQ pre-scaling amplifies important weight channels and fuses inverse scales into preceding layer norms (zero inference overhead).

AWQ-correctable projections (q/k/v, inprojqkv/z) are quantized at 8-bit via input_layernorm. Non-AWQ-correctable projections (oproj, outproj) are kept at bf16.

Usage

typescript
import { loadModel } from '@mlx-node/lm';

const model = await loadModel('./Qwen3.5-9B-UD-Q6_K_XL-mlx');

const result = await model.chat(
  [{ role: 'user', content: 'Explain the hybrid attention mechanism in Qwen3.5.' }],
  { maxNewTokens: 2048, temperature: 0.6, enableThinking: false },
);
console.log(result.text);

How It Was Made

bash
mlx convert \
  -i Qwen3.5-9B \
  -o Qwen3.5-9B-UD-Q6_K_XL-mlx \
  -q --q-bits 6 --q-recipe unsloth \
  --imatrix-path imatrix_unsloth.gguf

Acknowledgments

  • —[Unsloth](https://unsloth.ai) — Quantization strategy based on their per-layer KLD benchmarks and Dynamic 2.0 methodology
  • —[Qwen Team](https://huggingface.co/Qwen) — For the Qwen3.5 model family
  • —[Apple MLX](https://github.com/ml-explore/mlx) — For the Metal-accelerated ML framework

License

Apache 2.0 (inherited from base model).