Downloads · 30 days
2.9K
44% of all-time downloads
NovaeonStudio/Qwen3.8-35B-A3B-Distill-oQ8-fp16-mtp
Qwen3.8-35B-A3B-Distill-oQ8-fp16-mtp is a image-text-to-text model from NovaeonStudio. 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.
Downloads · 30 days
2.9K
44% of all-time downloads
All-time downloads
6.5K
Public
Parameters
36B
39.5 GB on disk
Likes
7
Trending 1
Click a slice to open those files.
.safetensors39.5 GB · 100%
How the weights are stored.
U3235.5B · 99%
From the Hugging Face model README

The fastest local model we have measured that passes our agent gate. This is a Novaeon.Studio oMLX build of empero-ai/Qwen3.8-35B-A3B-Distill: frontier‑distilled reasoning (Qwen3.8 teachers) in a sparse 35B / ~3B‑active MoE, quantized to near‑uniform 8‑bit with an fp16 router, and shipped with a native multi‑token‑prediction head that actually speeds up decoding.
It is the model every Novaeon agent runs on, 24/7, on an Apple M5 Max (128 GB). Every number on this page was measured by us on that machine, on these exact weights.

| Speed | ~120 tok/s decode (short) · 105 tok/s at 41k · 70 tok/s at 124k · 2,883 tok/s prefill at 41k |
| Agentic | 9/9 and 13/13 on two multi‑step tool‑sandbox suites · 6/6 tool‑use probes · 0 invalid tool calls |
| Agent gate | 39–40 / 43 single‑turn cases · 15–16 / 17 mitigations · IFEval avg 84.86 |
| Footprint | ~39.5 GB on disk · ~41.5 GB resident · runs next to other models on a 64 GB+ Mac |
| Context | 262,144 native · needle recall verified at 130k (and 320k in an earlier test) |
| Modalities | text + image → text (vision tower preserved) |
| Engine | oMLX (MLX, VLM engine) · also loads in mlx‑vlm |
We don't choose our agent model from leaderboards. Every candidate runs through the same internal agent gate on the same Mac, and speed is measured head‑to‑head in the same session. This build has kept its seat against every challenger so far.

| Model (local) | Golden /43 | Mitig. /17 | Agentic | Decode tok/s (same session) | Verdict |
|---|---|---|---|---|---|
| This build | 39–40 | 15–16 | 9/9 · 13/13 | 96–134 | pass — our seat |
| Gemma‑4‑26B‑A4B‑it heretic (8‑bit) | 41 | 17 | 8/9 | 82 (vs 104) | pass, ~20 % slower |
| Nemotron‑3.5‑Lightning | 34 | 16 | 11/13 | 107 (vs 96) | fails gate |
| Qwen3.8‑27B TURBO‑Fable‑Heretic oQ8 (dense) | — | 17 | 9/9 | 33 (vs 120) | invented a tool |
| Qwen3.8 dense 27B (our former "thinker") | 38 | 17 | — | ≈16 | too slow for agents |
| Qwen3.8‑35B‑A3B‑Distill APEX Abliterated | 39 | 15 | — | — | no gain |
| Qwen3.8‑35B‑A3B‑Distill Heretic oQ8 | 36 | 14 | — | — | fails gate |
| Qwen Flash‑Next (oQ3e) | 25 | — | — | — | 2 invalid tool calls |
<sub>"—" = not run on that suite. Time for all 43 golden cases: this build 45–90 s · Gemma 153 s · APEX 178 s · Flash‑Next 269 s · dense 27B 367 s. Measured Sep–Nov 2026.</sub>
Read it honestly. Gemma‑4‑26B scores two points higher on our single‑turn suite, and the dense 27B models are slightly more careful on the mitigation set — but they are 1.3× to 7× slower, and none of them beats this build on multi‑step agent work. Nemotron decodes ~11 % faster but fails the gate: it dropped parallel tool calls, looped run_python into the step limit and made ~45 % more tool calls in agent loops. For an always‑on agent worker on Apple Silicon, this build is the best speed/quality trade‑off we have measured.


| Prompt context | ~300 | ~41k | ~124k |
|---|---|---|---|
| Decode (tok/s) | 120 | 105 | 70 |
| Prefill (tok/s) | — | 2,883 | 1,746 |
| Time to first token | 0.24 s | 14.3 s | 70.9 s |
<sub>3 Nov 2026, oMLX 0.7.3, MTP on, thinking off, no other load. Five repeat runs on 30 Oct gave 114–134 tok/s short and 92–107 tok/s at 53k; ~216 tok/s aggregate with 4 parallel requests; cold load ≈ 1–6 s from a warm disk cache.</sub>
Why it is fast: only ~3B of 35B parameters are active per token, the hybrid attention keeps a growing KV cache on only ~10 of 40 layers, and the native MTP head drafts tokens that the model accepts often enough to lift short‑context decode by ~40 % over MTP‑off.

| IFEval | prompt‑strict | prompt‑loose | inst‑strict | inst‑loose | avg |
|---|---|---|---|---|---|
| This build | 80.22 | 83.92 | 86.33 | 88.97 | 84.86 |
Use it for
Know its limits
reason_arith, reason_cron_schedule). Turn thinking on for those, or route them to a dense model.<think> block. Strip it for end users.# oMLX (recommended, Apple Silicon) — OpenAI-compatible server
omlx serve NovaeonStudio/Qwen3.8-35B-A3B-Distill-oQ8-fp16-mtp --port 8000
# Tool calling through the OpenAI-compatible endpoint
from openai import OpenAI
client = OpenAI(base_url="http://127.0.0.1:8000/v1", api_key="local")
tools = [{"type": "function", "function": {
"name": "get_weather",
"description": "Current weather for a city",
"parameters": {"type": "object", "properties": {"city": {"type": "string"}}, "required": ["city"]}}}]
r = client.chat.completions.create(
model="NovaeonStudio/Qwen3.8-35B-A3B-Distill-oQ8-fp16-mtp",
messages=[{"role": "user", "content": "Weather in Bucharest and in Berlin?"}],
tools=tools, temperature=0.6, top_p=0.95,
extra_body={"chat_template_kwargs": {"enable_thinking": False}}, # fast, no <think>
)
print(r.choices[0].message.tool_calls) # two parallel calls
# mlx-vlm
pip install -U mlx-vlm
python -m mlx_vlm.generate --model NovaeonStudio/Qwen3.8-35B-A3B-Distill-oQ8-fp16-mtp \
--max-tokens 4096 --temperature 0.6 --top-p 0.95 \
--prompt "A snail climbs 3 m by day, slips 2 m by night, in a 10 m well. How many days to escape?"
Recommended sampling: temperature 0.6 · top_p 0.95 · top_k 20. Thinking on for hard reasoning, off (enable_thinking: false) for agent loops and latency‑critical calls — that is how we run it.
We swept the tuning levers on this build. Because the native MTP head genuinely accelerates decode under oQ8, the best profile is MTP on, with ANE prefill and TurboQuant KV off.
| Setting | Value | Why |
|---|---|---|
mtp_enabled | true | native MTP accelerates decode (~+40 % short) — real speculative acceptance under oQ8 |
mtp_num_draft_tokens | 6 | swept 4 / 6 / 8 → 6 is optimal |
a8_prefill_enabled (oMLX ≥ 0.7) | true, min 128 tokens | same 39/43 gate score, gate wall time 63 s → 25 s |
qwen35_ane_prefill_enabled | false | dispatch overhead regresses decode when MTP is active (−15 % prefill in our test) |
turboquant_kv_enabled | false | re‑tested on oMLX 0.7.x: off is as fast or faster; the KV cache is tiny anyway |
specprefill_enabled | false | first‑run gain did not repeat in A/B |
dflash_enabled | false | net decode regression in A/B |
moe_expert_offload_enabled | false | keep experts resident |
{
"max_context_window": 262144,
"mtp_enabled": true,
"mtp_num_draft_tokens": 6,
"a8_prefill_enabled": true,
"a8_prefill_min_tokens": 128,
"qwen35_ane_prefill_enabled": false,
"turboquant_kv_enabled": false,
"specprefill_enabled": false,
"dflash_enabled": false,
"moe_expert_offload_enabled": false
}
</details>
On the MTP head: empero ships the multi‑token‑prediction head natively in the checkpoint (model.safetensors.index.json maps the mtp.* tensors). oMLX recognises it (mtp_compatible: true) and it accelerates decode under oQ8. This is unusual: on other 35B‑A3B builds we tested, a "preserved" MTP head halved decode speed because drafts were almost never accepted.
<sub>Rows other than 128 GB are our estimate from the measured footprint, not tested machines.</sub>
| Mac | Fits? | Notes |
|---|---|---|
| 128 GB (M5 Max, our machine) | ✅ comfortably | room for a 27B companion, an embedder and image models at the same time |
| 64–96 GB | ✅ | ~41.5 GB resident + KV; keep long‑context jobs to one at a time |
| 48 GB | ⚠️ tight | works for short contexts with little else loaded |
| ≤ 36 GB | ❌ | use a 4‑bit build instead |
Memory stays flat with context: only ~10 of 40 layers carry a growing KV cache. Our 130k needle test peaked at ~47 GB.
| Base model | empero-ai/Qwen3.8-35B-A3B-Distill (Apache‑2.0) |
| Distilled from | Qwen3.8 2.4T‑A95B and Qwen3.8 Flash Next (teacher chain‑of‑thought; math/code weighted) |
| Architecture | Qwen3.5/3.6‑family MoE + vision encoder · 35B total / ~3B active · 256 experts (8 routed) · 40 layers · hybrid GDN linear + full attention |
| Quantization | oQ8, group size 64, float16 scales and non‑quantized weights (router fp16) · ~8.6 effective bpw · ~39.5 GB |
| MTP head | native, in‑checkpoint — recognised and accelerating under oQ8 |
| Context | 262,144 native; mRoPE with 10M theta extrapolates beyond it without YaRN (coherent recall at 320k) |
Base‑model benchmarks (reported by the base authors, zero‑shot, vs the Qwen3.6‑35B‑A3B base it distills onto):
| Task | Metric | Qwen3.6‑35B‑A3B | This distill | Δ |
|---|---|---|---|---|
| MMLU (57 subjects) | acc | 0.838 | 0.834 | −0.004 (noise) |
| ARC‑Challenge | acc_norm | 0.548 | 0.591 | +0.044 |
| ARC‑Easy | acc_norm | 0.717 | 0.766 | +0.048 |
Is it uncensored? No. This is the regular distill; we did not abliterate it. Uncensored variants we tested (Heretic, APEX Abliterated) scored lower on our agent gate.
Why 8‑bit and not 4‑bit? In our quant sweep of a sibling build, 2‑bit collapsed (13/43) and 4‑/6‑bit were not faster in practice, because with ~3B active parameters decode is already cheap. 8‑bit with an fp16 router keeps routing and tool reliability closest to the original at no real speed cost — if you have the memory.
Thinking on or off? Off for agent loops and anything latency‑critical (that is how the speed numbers are measured). On for hard math, dates and planning — it fixes most of the no‑think arithmetic slips.
Does it run outside oMLX? Yes, the weights load in mlx‑vlm. The MTP speed‑up and the tuned settings above are oMLX features.
empero-ai/Qwen3.8-35B-A3B-Distill — Apache‑2.0, by Empero. A distillation of Qwen3.8 frontier teachers into the Qwen3.6‑35B‑A3B architecture.Independent community quantization, not endorsed by Empero. All credit for the model's capabilities belongs to the base‑model and Qwen authors. The header background is an AI‑generated image.
@misc{novaeon2026qwen38distilloq8,
title = {Qwen3.8-35B-A3B-Distill oQ8-fp16-mtp: an oMLX build for Apple Silicon},
author = {Novaeon.Studio},
year = {2026},
note = {Quantization of empero-ai/Qwen3.8-35B-A3B-Distill},
url = {https://huggingface.co/NovaeonStudio/Qwen3.8-35B-A3B-Distill-oQ8-fp16-mtp}
}
<sub>novæon — Digital Business Architecture + AI · <a href="https://novaeon.studio">novaeon.studio</a></sub>