---
license: apache-2.0
library_name: mlx
base_model: Qwen/Qwen3.6-35B-A3B
base_model_relation: quantized
pipeline_tag: image-text-to-text
tags:
- qwen
- qwen3_5_moe
- mixture-of-experts
- hybrid-attention
- mlx
- apple-silicon
- quantized
- mxfp4
- vision
- multimodal
- video
- multi-token-prediction
- speculative-decoding
- jang
- osaurus
quantization_config:
family: mxfp4
profile: MXFP4
group_size: 32
bits: 4
---

# Qwen3.6-35B-A3B-MXFP4-MTP
**Qwen3.6-35B-A3B** quantized to native MXFP4 for Apple Silicon, with the
vision tower and the native Multi-Token-Prediction head preserved and enabled.
| | |
|---|---|
| Source | [Qwen/Qwen3.6-35B-A3B](https://huggingface.co/Qwen/Qwen3.6-35B-A3B) |
| License | Apache-2.0, inherited from upstream |
| Format | MXFP4 (`mx.quantize`, affine, `group_size=32`) |
| Architecture | `qwen3_5_moe` — 40 layers, 256 routed experts, top-8, ~3B active |
| Modality | image + video + text |
| Context | 262,144 |
| Bundle size | 21.53 GB |
| MTP | native head preserved, **enabled** (`num_nextn_predict_layers=1`) |
## Quantization
4-bit affine linears via MLX-native `mx.quantize` (`mode="mxfp4"`,
`group_size=32`). Norms, router gates, expert biases and the full vision
tower are kept in fp16 passthrough (643 passthrough tensors). MTP linears
are quantized to MXFP4; MTP norm/control tensors stay fp16. This is the
smallest bundle in the MoE line — the same model as the MXFP8 variant at
roughly 60% of the size.
## Multi-Token Prediction
This bundle keeps Qwen3.6's native MTP module and runs it as a
**self-speculative draft head**: the MTP head proposes tokens that the main
model verifies in a single pass, so decoded output stays **bit-identical to
plain autoregressive decoding** — only faster.
Recorded on an **M5 Max** (vMLX runtime, 96-token deterministic prompt,
output verified equal to baseline at every depth):
| Draft depth | tok/s | Speedup |
|---|---|---|
| Baseline (MTP off) | 83.9 | 1.00× |
| D1 | 108.8 | 1.30× |
| D2 | 126.0 | 1.50× |
| **D3 (default)** | **131.2** | **1.56×** |
> Absolute tok/s depends on free memory and system load. The **speedup
> ratio** — baseline vs. MTP measured back-to-back under identical
> conditions — is the stable figure.
## Vision, MTP and caching together
This bundle preserves the full Qwen3.6 VL tower alongside the native MTP
head, so image/video input, MTP speculative decode and prefix/KV caching
all run in the same session — a combination not every MTP-enabled Qwen
build exposes. The VL stack is the same one verified on the MXFP8 sibling.
## Loading
Loads via stock MLX tooling on Apple Silicon — the `mxfp4` weights are
native `mx.quantize` affine, no JANG runtime required for the core model.
```python
from mlx_vlm import load, generate
model, processor = load("OsaurusAI/Qwen3.6-35B-A3B-MXFP4-MTP")
```
The MTP draft path is exercised by an MTP-aware runtime (vMLX); other
runtimes load and decode the main model normally and ignore the MTP head.
## Variants
| Variant | Arch | Format | Size | Best MTP speedup |
|---|---|---|---|---|
| [Qwen3.6-27B-MXFP4-MTP](https://huggingface.co/OsaurusAI/Qwen3.6-27B-MXFP4-MTP) | dense | mxfp4 | 14.4 GB | 1.85× (D2) |
| [Qwen3.6-27B-MXFP8-MTP](https://huggingface.co/OsaurusAI/Qwen3.6-27B-MXFP8-MTP) | dense | mxfp8 | 27.1 GB | 1.83× (D3) |
| **Qwen3.6-35B-A3B-MXFP4-MTP** (this) | MoE | mxfp4 | 21.5 GB | **1.56× (D3)** |
| [Qwen3.6-35B-A3B-MXFP8-MTP](https://huggingface.co/OsaurusAI/Qwen3.6-35B-A3B-MXFP8-MTP) | MoE | mxfp8 | 35.0 GB | 1.71× (D3) |
## Credits
- **Quantization toolchain:** [JANG](https://github.com/jangq-ai/jang) by Jinho Jang <eric@osaurus.ai>
- **Base model:** Qwen3.6-35B-A3B by [Qwen](https://huggingface.co/Qwen)