Brooooooklyn/Qwen3.5-35B-A3B-UD-Q2_K_XL-mlx
Qwen3.5-35B-A3B — UD-Q2KXL (mlx-node)
2-bit base mixed-precision quantization of Qwen/Qwen3.5-35B-A3B for Apple Silicon, using the **Unsloth Dynamic** quantization strategy via mlx-node.
All Variants
Benchmarked on Apple M3 Max 128GB, multi-turn chat (Turn 4 decode, steady-state).
Performance
Decode is memory-bandwidth bound on Apple Silicon — fewer bytes per token directly translates to higher throughput. The MoE architecture activates only 8 of 256 experts per token (~3B active out of 35.9B total).
Per-Tensor Bit Assignments (N=2)
Quantization Strategy
Based on Unsloth Dynamic 2.0 per-tensor KLD analysis. Sensitive layers get higher bits with AWQ correction, while the bulk of FFN expert 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 4-bit via input_layernorm. Non-AWQ-correctable projections (oproj, outproj) are kept at bf16 — their inputs come from attention/GDN computation, not from a norm layer.
Architecture
Usage
import { loadModel } from '@mlx-node/lm';
const model = await loadModel('./Qwen3.5-35B-A3B-UD-Q2_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
mlx convert \
-i Qwen3.5-35B-A3B \
-o Qwen3.5-35B-A3B-UD-Q2_K_XL-mlx \
-q --q-bits 2 --q-recipe unsloth \
--imatrix-path imatrix_unsloth.ggufAcknowledgments
- [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).
