ToPo-ToPo's picture
Drop environment-dependent speed/acceptance figures
5613611 verified
|
Raw
History Blame Contribute Delete
1.64 kB
---
license: apache-2.0
base_model: Qwen/Qwen3.8-27B
library_name: mlx
tags:
- mlx
- mlx-vlm
- speculative-decoding
- mtp
---
# ToPo-ToPo/Qwen3.8-27B-MTP-4bit
MTP (multi-token prediction) **drafter** for speculative decoding with
[`Qwen/Qwen3.8-27B`](https://huggingface.co/Qwen/Qwen3.8-27B) on Apple Silicon (mlx-vlm).
This is **not** a standalone chat model — it only works bound to a Qwen3.8-27B target model.
## Provenance
- Split from the official checkpoint's built-in `mtp.*` weights (15 tensors, isolated in
`model-00018-of-00018.safetensors`) with mlx-vlm 0.6.9:
`python -m mlx_vlm.speculative.drafters.qwen3_5_mtp.split --model Qwen/Qwen3.8-27B --output .`
- Precision: affine 4bit / group 64 — 4.501 bits/weight
- Size: 247 MB, `block_size: 3`, `model_type: qwen3_5_mtp`
## Speculative decoding notes
Gains are largest on structured output (code, JSON tool calls) and smallest on free-form prose.
Stable over 589 rounds with rejections — no rollback crash.
The bf16 and 4bit drafters accept identically under greedy decoding (quantization rarely flips
the argmax); bf16 was marginally better on code, 4bit uses less memory.
**Measure it yourself.** Speedup depends on hardware, target quantization, workload and the
mlx-vlm version — on the machine used here the reference pair
`Qwen3.6-27B-4bit` + `mlx-community/Qwen3.6-27B-MTP-4bit` showed no speedup at all, so any
number quoted elsewhere may not transfer to your setup.
## Usage
```bash
mlx_vlm.generate --model ToPo-ToPo/Qwen3.8-27B-mlx-4bit \
--draft-model ToPo-ToPo/Qwen3.8-27B-MTP-4bit --draft-kind mtp \
--prompt "..." --max-tokens 400
```