Downloads · 30 days
20
6% of all-time downloads
xunkutech-ai/Qwythos-9B-v2-MLX-bf16-mtp-draft
Qwythos-9B-v2-MLX-bf16-mtp-draft is a machine learning model from xunkutech-ai. Use it for the machine learning task on the model card, and read the license before you ship it in a product. It is set up for mlx. The card lists the license as apache-2.0.
This repository, xunkutech-ai/Qwythos-9B-v2-MLX-bf16-mtp-draft, contains the standalone native Qwen3.5 Multi-Token Prediction (MTP) drafter for:
Downloads · 30 days
20
6% of all-time downloads
All-time downloads
318
Public
Parameters
243M
507 MB on disk
Likes
0
Public
Click a slice to open those files.
.safetensors487 MB · 96%
From the Hugging Face model README
This repository, xunkutech-ai/Qwythos-9B-v2-MLX-bf16-mtp-draft, contains the standalone native Qwen3.5 Multi-Token Prediction (MTP) drafter for:
xunkutech-ai/Qwythos-9B-v2-MLX-bf16
The 15 BF16 MTP tensors were extracted from empero-ai/Qwythos-9B-v2, sanitized for MLX-VLM's qwen3_5_mtp drafter implementation, and saved separately so MLX-VLM can load them through the --draft-model interface.
Important: this repository is an auxiliary drafter, not a standalone language or vision-language model. Do not pass it as the main --model. Pair it with the matching Qwythos-9B-v2 MLX BF16 target model shown above.
No additional fine-tuning was performed for this repository. The weights remain bfloat16 and inherit the upstream Apache-2.0 license.
| Role | Repository | Contents |
|---|---|---|
| Target model | xunkutech-ai/Qwythos-9B-v2-MLX-bf16 | 760 BF16 main-model tensors, including the language trunk and vision tower |
| MTP drafter | xunkutech-ai/Qwythos-9B-v2-MLX-bf16-mtp-draft | 15 BF16 native MTP tensors |
The target model verifies every candidate token proposed by this drafter. Speculative decoding changes the decoding path and performance characteristics; it does not allow unverified draft tokens to become final output.
This drafter contains no language-model trunk, LM head, visual tower, image processor, or video processor. It relies on the paired target model for those components.
Qwythos-9B-v2 is an Empero AI reasoning model built on Qwen3.5-9B. According to the upstream model card, v2 applies FTPO (Final-Token Preference Optimization) to eliminate the looping and degeneration found in the earlier Qwythos release while preserving its reasoning behavior, one-million-token YaRN configuration, and multimodal-capable Qwen3.5 architecture.
The upstream v2 checkpoint restores the native MTP head that was missing from the previous export. The upstream developers also note that the restored MTP head came from the Qwen3.5-9B base and was not co-trained with the FTPO-updated main weights. Consequently, speculative acceptance may be modest and should be measured on the intended prompts and hardware.
For benchmark results, sampling guidance, capabilities, limitations, and safety information, see:
Multi-Token Prediction adds a shallow auxiliary model that proposes several future tokens from target-model hidden states. The full target model then verifies those candidates. When several candidates are accepted together, fewer full autoregressive target passes may be required.
Actual speedup depends on:
This repository does not claim a fixed speedup figure.
pip install -U mlx-vlm
or:
uv pip install -U mlx-vlm
Use an MLX-VLM release that includes the Qwen3.5 qwen3_5_mtp drafter.
Load the target and drafter by their Hugging Face repository identifiers:
mlx_vlm.generate \
--model xunkutech-ai/Qwythos-9B-v2-MLX-bf16 \
--draft-model xunkutech-ai/Qwythos-9B-v2-MLX-bf16-mtp-draft \
--draft-kind mtp \
--draft-block-size 4 \
--prompt "Explain speculative decoding with MTP." \
--max-tokens 2048 \
--temperature 0.6
The --draft-kind mtp argument explicitly selects the native MTP drafter family. The --draft-block-size 4 argument is an optional runtime override. Omit it to use the packaged default block size of 3.
If both repositories are already downloaded:
mlx_vlm.generate \
--model /path/to/Qwythos-9B-v2-MLX-bf16 \
--draft-model /path/to/Qwythos-9B-v2-MLX-bf16-mtp-draft \
--draft-kind mtp \
--draft-block-size 4 \
--prompt "Write a Python implementation of merge sort." \
--max-tokens 2048 \
--temperature 0.6
Do not merge model.safetensors from this repository into the main model directory. Current MLX-VLM expects the sanitized qwen3_5_mtp weights in a separate drafter directory.
MLX-VLM can also load the pair for server inference:
mlx_vlm.server \
--model xunkutech-ai/Qwythos-9B-v2-MLX-bf16 \
--draft-model xunkutech-ai/Qwythos-9B-v2-MLX-bf16-mtp-draft \
--draft-kind mtp \
--draft-block-size 4
If a bundled application backend does not expose --draft-model and --draft-kind mtp, it cannot use this standalone drafter through this interface. The main target model can still be loaded without speculative decoding.
Sampling parameters belong to the target-model generation request, not to the drafter repository. A starting point inherited from the upstream model card is:
generation_kwargs = {
"temperature": 0.6,
"top_p": 0.95,
"top_k": 20,
"repetition_penalty": 1.05,
"max_tokens": 16384,
}
Use a shorter generation budget for ordinary prompts. For throughput comparisons, keep the prompt, target model, sampling parameters, random seed, and generated-token count identical between drafter-enabled and target-only runs.
No visual weights, base-model attention layers, base-model MLP layers, or general-purpose output head were copied into the drafter.
The repository uses the standalone drafter structure documented by MLX-VLM:
{
"model_type": "qwen3_5_mtp",
"block_size": 3,
"tie_word_embeddings": false,
"text_config": {
"model_type": "qwen3_5_text",
"hidden_size": 4096,
"mtp_num_hidden_layers": 1,
"mtp_use_dedicated_embeddings": false,
"max_position_embeddings": 1048576,
"dtype": "bfloat16"
}
}
The packaged block_size=3 is the drafter's default speculative block setting derived from the one-layer MTP configuration. MLX-VLM permits a runtime override through --draft-block-size.
The single weight file contains:
The sanitized keys intentionally do not begin with mtp. because the entire repository is already loaded as a qwen3_5_mtp drafter.
The extracted artifact was independently checked:
Weight-file SHA-256:
c8625300dec271742b17b70471d7dbd6c9b118a9035e13d53e735b84d1d298b4
| File | Size | Description |
|---|---|---|
| config.json | 2.2 KB | Standalone qwen3_5_mtp drafter configuration |
| model.safetensors | 486.6 MB | 15 BF16 sanitized MTP tensors |
| tokenizer.json | 20.0 MB | Qwen3.5 tokenizer |
| tokenizer_config.json | 1.2 KB | Tokenizer metadata |
This drafter is designed for the matching Qwythos-9B-v2 MLX BF16 target. Using it with a different tokenizer, vocabulary, hidden size, architecture, or fine-tuned target can fail compatibility checks or produce a low candidate acceptance rate.
The drafter requires a runtime with native Qwen3.5 MTP speculative-decoding support. A runtime that merely loads ordinary MLX safetensors is not sufficient.
This MLX drafter is released under the same Apache-2.0 license as the upstream model.