Downloads · 30 days
25
5% of all-time downloads
xunkutech-ai/Qwythos-9B-v2-MLX-oQ8-mtp
Qwythos-9B-v2-MLX-oQ8-mtp is a image-text-to-text model from xunkutech-ai. Use it for the image-text-to-text 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-oQ8-mtp, contains an oMLX-specific oQ8 quantization of xunkutech-ai/Qwythos-9B-v2-MLX-bf16-mtp. It uses 8-bit affine quantization with group size 64 and retains the mode…
Downloads · 30 days
25
5% of all-time downloads
All-time downloads
507
Public
Parameters
9.7B
10.7 GB on disk
Likes
0
Public
Click a slice to open those files.
.safetensors10.7 GB · 100%
How the weights are stored.
U329.2B · 95%
From the Hugging Face model README
This repository, xunkutech-ai/Qwythos-9B-v2-MLX-oQ8-mtp, contains an oMLX-specific oQ8 quantization of xunkutech-ai/Qwythos-9B-v2-MLX-bf16-mtp. It uses 8-bit affine quantization with group size 64 and retains the model's native Multi-Token Prediction (MTP) head for oMLX Lightning MTP.
No additional fine-tuning was performed. This artifact changes storage and inference precision only.
Compatibility notice: this embedded-MTP model is intended for oMLX. Standard MLX-VLM, MLX-LM, and LM Studio runtimes do not provide the embedded MTP loading, quantization, and Lightning MTP behavior required by this artifact. A local directory under
~/.lmstudio/modelsdoes not by itself make the model compatible with LM Studio's standard MLX runtime.
| Repository | Precision | Recommended use |
|---|---|---|
| xunkutech-ai/Qwythos-9B-v2-MLX-bf16-mtp | BF16 | Source model and highest-fidelity conversion |
| xunkutech-ai/Qwythos-9B-v2-MLX-oQ6-mtp | oQ6 with selected oQ8 projections | Minimum recommended quantization for reliable Hermes-style tool use |
| xunkutech-ai/Qwythos-9B-v2-MLX-oQ8-mtp | oQ8 | Recommended quantized variant for maximum agent reliability |
The visual tower, image special tokens, one-million-token YaRN configuration, Qwen3.5 chat template, and embedded MTP head are retained from the BF16 source.
Qwythos-9B-v2 is an Empero AI reasoning model built on Qwen3.5-9B. The v2 release applies Final-Token Preference Optimization (FTPO) to reduce repetition loops while preserving the reasoning capability of the earlier checkpoint. It also restores the native Qwen3.5 MTP head.
The upstream developers describe v2 as a hygiene and reliability release rather than a new capability tier. The restored MTP head came from the Qwen3.5-9B base and was not co-trained with the FTPO-updated main weights, so Lightning MTP acceptance remains workload-dependent.
The following values come from the upstream model card and were not independently reproduced during this quantization:
| Benchmark | Upstream Qwythos-9B-v2 result |
|---|---|
| MMLU, chain-of-thought | 83.8% |
| MMLU, 5-shot log-likelihood | 69.6% |
| ARC-Challenge | 96.4% |
| GPQA-Diamond | 49.0% |
| GSM8K | 93.6% |
| HumanEval pass@1 | 77.4% |
| Looping rate, greedy | 0.0% |
| Refusal rate | 0.0% |
See the upstream model card for its full methodology, training description, and limitations.
Install and start oMLX:
brew tap jundot/omlx https://github.com/jundot/omlx
brew install omlx
omlx start
Alternatively, point oMLX at an explicit model directory:
omlx serve --model-dir /path/to/models
Place the complete Qwythos-9B-v2-MLX-oQ8-mtp directory under the selected
oMLX model directory. Then open the oMLX Admin UI, select the model, and enable
Lightning MTP. Use the embedded Lightning MTP mode, not a separate external
draft model.
If the Lightning MTP option is unavailable, verify that:
config.json still declares mtp_num_hidden_layers: 1;language_model.mtp.* entries;Use the exact model ID shown in the oMLX Models page if it differs from the directory name.
curl http://localhost:8000/v1/chat/completions \
-H "Content-Type: application/json" \
--data '{
"model": "Qwythos-9B-v2-MLX-oQ8-mtp",
"messages": [
{
"role": "user",
"content": "Explain how native MTP speculative decoding works."
}
],
"temperature": 0.6,
"top_p": 0.95,
"top_k": 20,
"repetition_penalty": 1.05,
"max_new_tokens": 16384
}'
Clients that expose the OpenAI-standard max_tokens field instead of
max_new_tokens may use that equivalent server-supported field.
The configuration below passed all expanded Hermes tool-calling cases on this oQ8 build:
{
"temperature": 0.6,
"top_p": 0.95,
"top_k": 20,
"repetition_penalty": 1.05,
"max_new_tokens": 16384
}
For more varied responses, the following higher-temperature profile also performed well in the Hermes regression suite:
{
"temperature": 0.7,
"top_p": 0.95,
"top_k": 60,
"min_p": 0
}
The 16,384-token budget is intended for difficult reasoning, coding, long context, or agent tasks. Use a smaller limit for ordinary chat and short tool calls. The upstream model was trained to reduce repetition loops, so the 1.05 repetition penalty is conservative rather than load-bearing.
The local configuration was inspected after quantization:
Compared with oQ6, oQ8 uses more unified memory but preserves token probabilities more closely and showed the strongest tool-calling stability in the higher-temperature comparison.
These tests evaluate operational tool-calling behavior, not general benchmark
quality. They were run through a local OpenAI-compatible oMLX endpoint using
tool_choice="auto".
Each test used two real model inference turns:
The harness covered three workflows:
A run passed only when the model returned the correct tool_calls and critical
arguments. A prose claim such as "the file was updated" did not count as
success. External side effects were simulated; the test did not modify a real
production service.
The first phase used the same file workflow, the same 15 seeds, and this configuration:
temperature: 0.6
top_p: 0.95
top_k: 60
min_p: 0
| Quantization | Passed | Success rate |
|---|---|---|
| oQ4 | 10 / 15 | 66.7% |
| oQ5 | 14 / 15 | 93.3% |
| oQ6 | 15 / 15 | 100% |
The main oQ4 failure mode was a correct first read followed by prose claiming that the write had completed without an actual write tool call.
The expanded phase used temperature=0.6, top_p=0.95, top_k=20,
repetition_penalty=1.05, and max_new_tokens=16384. It did not set a seed,
so it measures repeated operational stability rather than deterministic
token-for-token equivalence.
| Quantization | File update | Service restart | Deployment rollback | Overall |
|---|---|---|---|---|
| oQ4, run 1 | 8 / 10 | 10 / 10 | 9 / 10 | 27 / 30 |
| oQ4, run 2 | 6 / 10 | 10 / 10 | 10 / 10 | 26 / 30 |
| oQ4 combined | 14 / 20 | 20 / 20 | 19 / 20 | 53 / 60 (88.3%) |
| oQ6 | 10 / 10 | 10 / 10 | 10 / 10 | 30 / 30 (100%) |
| oQ8 | 10 / 10 | 10 / 10 | 10 / 10 | 30 / 30 (100%) |
At temperature=0.7, top_p=0.95, top_k=60, and min_p=0, a paired
16-case test produced:
| Quantization | Success rate |
|---|---|
| oQ6 | 15 / 16 (93.8%) |
| oQ8 | 16 / 16 (100%) |
An additional 30-case oQ8 campaign passed 30/30, giving this build a cumulative 46/46 under the higher-temperature configuration.
No quantization level makes side-effect execution inherently safe. The calling application should require real tool calls, validate arguments, enforce permissions, and retry or escalate when a required action is missing.
The local oQ8 artifact was checked for the following properties:
config.json declares 8-bit affine quantization with group size 64;mtp_num_hidden_layers is 1;| File | Size | Description |
|---|---|---|
config.json | 3.1 KB | Qwen3.5 configuration and uniform oQ8 plan |
model-00001-of-00003.safetensors | 5.04 GB | Quantized model shard 1/3 |
model-00002-of-00003.safetensors | 5.01 GB | Quantized model shard 2/3 |
model-00003-of-00003.safetensors | 663 MB | Quantized model shard 3/3, including preserved MTP data |
model.safetensors.index.json | 121 KB | Tensor-to-shard index |
tokenizer.json | 20.0 MB | Qwen3.5 tokenizer |
tokenizer_config.json | 1.2 KB | Tokenizer metadata |
chat_template.jinja | 8.0 KB | Qwen3.5 chat and tool-calling template |
preprocessor_config.json | 390 B | Image preprocessing configuration |
generation_config.json | 163 B | Generation token configuration |
--draft-model repository.This quantized conversion is released under the same Apache-2.0 license as the upstream model.