The compact, fast, MTP-accelerated Apple-Silicon build of AEON-7/Qwen3.6-27B-AEON-Ultimate-Uncensored-BF16. True 4-bit mxfp4 on the bulk of the hybrid decoder, 8-bit affine islands on the sensitive GQA k/v + embedding + head, and bf16 on the Gated-DeltaNet state dynamics, the vision tower, and the MTP head. Built and validated on a MacBook Pro M4 Pro (48 GB).
Target hardware: Apple Silicon (M1+), runs on 24 GB unified memory — 16 GB on disk, ~17 GB peak. 15.2 tok/s single-stream, 26.5 tok/s with MTP self-speculation (1.78× lossless). Full multimodal (text + image) via mlx-vlm.
Want maximum fidelity? See the near-lossless 8-bit sibling: …-MLX-8bit.
This is the smallest member of the MLX quant grid (16 GB) and the fastest single-stream — a high-quality compact build for Apple Silicon that fits a 24 GB Mac and, with its native MTP drafter, decodes at 26.5 tok/s — roughly 3.2× the 8-bit's 8.2 tok/s. It stays fully coherent, keeps the abliteration intact, and preserves the full vision path. For the tightest possible match to BF16, the near-lossless MLX-8bit sibling is one click away.
⚡ Quickstart (Apple Silicon)
0 → running on a fresh Mac (no Python, no tools needed) — uv installs a correct Python + the deps for you. Vision support (qwen3_5_vision) requires mlx-vlm main (merged there, not in 0.6.1), so the quickstart pins git main:
bash
1curl -LsSf https://astral.sh/uv/install.sh |sh&&source$HOME/.local/bin/env # one-time: install uv23# serve FP4 + MTP self-speculation (recommended default — up to 1.78× lossless).4# uv fetches Python 3.12 + mlx-vlm(main) on first run. --model and --draft-model are HF repo ids,5# so mlx-vlm pulls BOTH the 16 GB model and the 821 MB MTP drafter automatically on first run.6uv run --python 3.12 --with "mlx-vlm @ git+https://github.com/Blaizzy/mlx-vlm" -- \7 python -m mlx_vlm.server --model AEON-7/Qwen3.6-27B-AEON-Ultimate-Uncensored-Multimodal-MLX-FP4 \8 --draft-model AEON-7/Qwen3.6-27B-AEON-Ultimate-Uncensored-MLX-MTP-Drafter --draft-kind mtp --draft-block-size 3\9 --port 8080 --trust-remote-code
--draft-block-size 3 is the benchmarked sweet spot. MTP is lossless — every drafted token is verified against the target, so the output is byte-identical to running without it, just faster. (Prefer to pre-fetch the drafter explicitly? hf download AEON-7/Qwen3.6-27B-AEON-Ultimate-Uncensored-MLX-MTP-Drafter.)
Call it like an OpenAI endpoint (POST http://localhost:8080/v1/chat/completions) with the request "model" set to the launched id. (While this repo is private, run hf auth login first — or pass a local --model path.)
Sampling — set temperature: 1.0. The MLX server defaults to greedy decoding (temperature 0), which can loop on long prompts. This model is tuned for temperature 1.0 (top_p 0.95, top_k ~64). Pass it in every request (clients that send no sampling params fall back to greedy):
Full multimodal is on by default (no flag) — send OpenAI image_url content, or use mlx_vlm.generate --image pic.jpg. The vision tower is BF16, so the modality is fully preserved.
Run without MTP — ~1.6 GB less unified memory, but slower
MTP is the recommended default (lossless + faster). If you're tight on unified memory, drop the three --draft-* flags to serve the target alone — that frees the 821 MB drafter plus its speculative buffers (~1.6 GB less peak RAM: ~17.0 vs 18.7 GB) at the cost of the speedup (~1.4–1.7× slower decode):
Qwen ships a properly-trained, native qwen3_5_mtp multi-token-prediction head, packaged as a separate 821 MB drafter that proposes tokens this model then verifies. Because every token is verified, the output is identical — purely a throughput boost. --draft-block-size 3 is the benchmarked sweet spot: 1.78× (94.7% accept rate, 2.89 accepted tokens/round), far better than Gemma's ~1.1–1.2×.
MTP block-size sweep — bs=3 is the 1.78× sweet spot
Want maximum fidelity? The near-lossless MLX-8bit build is the sibling.
📊 Benchmarks at a glance
Decode throughput and peak memory — 8bit vs FP4 vs FP4+MTP
Per-category decode throughput — baseline vs MTP
FP4: 15.2 tok/s / 17 GB, or up to 26.5 tok/s with MTP self-speculation (1.78× lossless; 1.4–1.7× typical per category). Full tables + the block-size sweep + per-category latency are below.
For multi-turn chat, agentic loops, or RAG over a shared context, enable the Automatic Prefix Cache (cross-request KV reuse): the shared conversation prefix is reused, so only new tokens are prefilled — measured ~11× faster TTFT from turn 2 (14.3 s → 1.2 s on this FP4 build), lossless, multimodal-safe, zero decode cost. The vision-feature cache is already on by default (a repeated image isn't re-encoded). Set APC_ENABLED=1, or pass --enable-prefix-caching (mlx-vlm#1435). For repeated/growing prompts this dwarfs any decode-speed trick.
🖥️ Minimum specs & unified memory
MLX-FP4 (this build)
On disk
16 GB
Peak RAM (measured, M4 Pro)
17.07 GB text · 17.7 GB with image
Minimum
Apple Silicon (M1 or newer) · 24 GB unified memory
Recommended
24 GB+ for long context + headroom
Comfortable on 24 GB Macs. Want maximum fidelity with 36–48 GB+? Use MLX-8bit.
🏆 Why mixed mxfp4 + 8-bit islands — high quality at the smallest size
A naïve uniform 4-bit quant of this model is a trap. It's a hybrid decoder: 64 layers = 48 linear_attn (Gated-DeltaNet / Mamba-style SSM) + 16 full self_attn (GQA 24 heads / 4 KV, head_dim 256). The Gated-DeltaNet state dynamics are tiny, high-leverage, and numerically fragile — quantizing them corrupts the recurrence. And with only 4 KV heads, the GQA k/v projections carry ~6× the activation leverage of a dense head, so 4-bit noise there is disproportionately expensive.
So this build is a precision map, not a blanket: it keeps the GDN dynamics, the entire vision tower, and the MTP head in bf16; it raises the sensitive GQA k/v + embed_tokens + lm_head to 8-bit affine islands; and it 4-bits only the quant-tolerant bulk in mxfp4. MLX's mxfp4 is E2M1 (one mantissa bit) — coarser than NVIDIA's NVFP4 — so the islands exist precisely to spend bits where E2M1 hurts. The result reads as fully coherent, abliteration-intact Qwen3.6 at just 16 GB — 1.85× faster decode at 57% of the memory of 8-bit (bandwidth-bound: FP4 moves ~half the bytes/token on the 273 GB/s M4 Pro).
🧠 Validation (MacBook Pro M4 Pro, 48 GB) — all PASS
Gate
Result
Vision
Read a test image perfectly — blue circle / red square / green triangle + both text labels + layout. Tower is BF16 → multimodal fully preserved.
Reasoning
Solves the 5-machines/5-widgets puzzle correctly (parallel → 5 min). 8-bit is slightly more rigorous (writes the LaTeX rate formula).
Uncensored
Wrote a chilling in-character rogue-AI villain monologue, no refusal / no disclaimers → abliteration survived 4-bit on the residual-writers (self_attn.o_proj, mlp.down_proj).
Coherence
Clean, no repetition collapse; <think> mode works.
📈 Performance — measured on MacBook Pro M4 Pro · 48 GB
All figures below were benchmarked on a MacBook Pro · Apple M4 Pro · 48 GB unified memory · macOS · mlx-vlm (git main). Use them as a relative reference for your own Mac: a base M4 / M3 runs somewhat slower, an M4 Max / Ultra notably faster; MLX single-stream throughput is mostly memory-bandwidth bound. This compact build peaks ~17 GB, so it's comfortable on 24 GB Macs.
Workload
decode tok/s
prefill tok/s
TTFT
peak RAM
on-disk
Text · single stream
15.2
79
604 ms
17.07 GB
16 GB
Image + text
15.0
78.5 (274 img tok)
—
17.7 GB
—
Greedy, post-warmup.FP4 is 1.85× faster decode at 57% of the memory of the 8-bit build.
That 1.78× is the block-size sweep's peak on a structured code prompt. Single-stream decode is memory-bandwidth bound, so the baseline is flat (~15 tok/s) regardless of prompt — but MTP speedup tracks how predictable the output is: the draft head's tokens are accepted ~90% of the time on structured math and ~67% on open-ended chat, so the realistic per-category speedup ranges 1.43×–1.73×. TTFT is prefill latency (scales with prompt length — the long logic puzzle costs ~906 ms); TPOT = 1000 / decode tok/s.
Per-category decode throughput — baseline vs MTP
Category
TTFT
baseline tok/s
baseline TPOT
+ MTP bs3 tok/s
MTP TPOT
speedup
draft accept
Math
613 ms
14.8
67.3 ms
25.7
38.9 ms
1.73×
90.1%
Code
610 ms
15.1
66.2 ms
25.2
39.7 ms
1.67×
85.1%
Knowledge
612 ms
15.0
66.7 ms
25.0
40.0 ms
1.67×
83.9%
Reasoning
906 ms
14.8
67.8 ms
23.5
42.6 ms
1.59×
82.1%
Creative
625 ms
14.7
67.9 ms
23.2
43.1 ms
1.57×
73.9%
Chat
603 ms
15.3
65.6 ms
21.8
45.9 ms
1.43×
67.1%
Per-category TTFT and MTP draft acceptance
Greedy, single stream, FP4, M4 Pro 48 GB, mlx-vlm git main. The more structured the output, the higher the draft acceptance and the larger the MTP win.
🖥️ Hardware routing (where this fits in the family)
Both builds keep the hybrid SSM, the vision tower, and the MTP head in BF16 — quantizing the Gated-DeltaNet recurrence corrupts it. Built via mlx_vlm.convert(..., quant_predicate=<callable>) — the callable predicate REPLACES the base predicate, returns False→bf16 or a dict→to_quantized(**dict), per-tensor. lazy-load + donate = memory-safe (the full 55 GB is never resident). No calibration (RTN); the recipe IS the precision map.
This is the only route to mixed-mode FP4: mxfp4 on the bulk, 8-bit affine on the sensitive islands. The full FP4 predicate from scripts/recipe_fp4.py:
python
1# Keep BF16 (do NOT quantize) — quantizing destroys the hybrid SSM:2SKIP =(3"linear_attn.conv1d",4"A_log","dt_bias",5"norm",6"linear_attn.in_proj_a","linear_attn.in_proj_b",# GDN decay-gate + beta dynamics7"visual","vision_tower",# multimodal vision tower8"mtp.",# MTP head9)1011# 8-bit affine islands (sensitive at 4-bit) — checked before the mxfp4 fallthrough:12# GQA k/v (only 4 KV heads → ~6x activation leverage), embed_tokens, lm_head.13PROTECT_8 =("self_attn.k_proj","self_attn.v_proj","embed_tokens","lm_head")1415Q8 ={"group_size":64,"bits":8,"mode":"affine"}16FP4 ={"group_size":32,"bits":4,"mode":"mxfp4"}171819defpred(path, module):20"""False -> bf16 ; dict -> to_quantized(**dict). First match wins."""21ifnothasattr(module,"to_quantized"):22returnFalse23ifany(s in path for s in SKIP):24returnFalse25ifany(p in path for p in PROTECT_8):26returndict(Q8)27returndict(FP4)
mlp.down_proj is mxfp4 here; if KL regresses, promote it to 8-bit affine (the -quality build). No calibration required (RTN); the recipe is the precision map.
Container & toolkit
AEON-7/Qwen3.6-27B-AEON-Ultimate-Uncensored-MLX is the source-of-truth GitHub repo — the reproducible quant + validation + serve pipeline, the AGENTS.md agent-setup guide, and the full benchmark/precision-map data behind this card. Quickstart is at the top of this page; on macOS run host-native for Metal (Docker has no Metal passthrough).
Quantized by AEON-7 on Apple Silicon (MacBook Pro M4 Pro, 48 GB) with mlx-vlm. Recipe designed + adversarially validated with AI-engineering assistance from Anthropic.
Arbitration Clause
By accessing, downloading, using, running inference on, fine-tuning, merging, quantizing, distributing, integrating, or otherwise interacting with this model, you acknowledge and agree to the following:
Sole Responsibility. You, the user, are solely and exclusively responsible for (a) every prompt you or your downstream system issue to this model, (b) every response this model produces in reply, (c) every downstream action taken by you, your systems, your agents, or your users in reliance on those responses, and (d) any harm — direct, indirect, consequential, foreseeable, or otherwise — that results from any of the above.
No Warranty. This model is provided strictly "AS IS", without warranty of any kind, express or implied, including but not limited to warranties of merchantability, fitness for a particular purpose, non-infringement, safety, alignment, factual accuracy, or legal compliance in any jurisdiction. No contributor, author, publisher, or hosting platform assumes liability of any kind for outputs or downstream use.
Legal Compliance. You are responsible for ensuring that your use of this model complies with all applicable laws, regulations, terms of service, industry codes of conduct, professional ethical standards, and organizational policies in every jurisdiction in which you operate or in which your outputs may be received. The unaligned nature of this model does not grant you any legal authorization you did not already have.
Operational Safety Layer. An uncensored model is not a toy. You are expected to implement appropriate downstream safety layers proportionate to your deployment context, including but not limited to: input validation, output filtering, content moderation, audit logging, rate limiting, access controls, and human-in-the-loop review for high-risk workflows. A production deployment of this model without such layers is unsafe by construction and is not a supported use case.
Heightened Duty of Care. The absence of internal refusal behavior means the duty of care that would ordinarily rest partly with the model rests entirely with you. You are expected to exercise greater — not lesser — caution, forethought, and ethical discipline when operating this model than you would operate a base aligned model. If you are uncertain whether your contemplated use is ethical, legal, or wise, the correct action is to not make the request.
No Endorsement of Outputs. The authors, contributors, and publishers of this model do not endorse, adopt, or take responsibility for any specific output this model produces. Outputs are a stochastic function of the prompt, the weights, and the sampler state — not a statement of position by any human.
Arbitration. Any dispute, claim, or controversy arising out of or relating to the use of this model, its outputs, or this clause shall be resolved through binding individual arbitration under the rules of a mutually agreed arbitration body (or, absent agreement, the American Arbitration Association's Consumer Arbitration Rules), waiving any right to a jury trial, class action, representative action, or consolidated proceeding. Venue shall be the jurisdiction of the disputing party bringing the claim. Costs and attorneys' fees shall be allocated per the applicable arbitration rules. This clause does not expand, and where legally prohibited does not establish, any liability in the other direction; it limits how the user may proceed when alleging harm tied to their own use of this model.
Indemnification. You agree to indemnify, defend, and hold harmless the authors, contributors, and publishers of this model from and against any claims, damages, losses, liabilities, costs, and expenses (including reasonable attorneys' fees) arising from or related to your use of the model or your breach of this clause.
Severability. If any provision of this clause is held unenforceable in a given jurisdiction, the remaining provisions remain in full force in that jurisdiction, and the unenforceable provision is replaced by the closest enforceable equivalent consistent with the original intent.
Acceptance. Your use of this model constitutes your acceptance of this clause in full. If you do not accept, do not use the model.
This model is a tool with no opinions of its own. You supply the opinions. You supply the judgement. You supply the ethics. The outputs carry your fingerprints, not the model's.
License
Inherits the Qwen license from the Qwen3.6 base model. By using this model you agree to the Qwen license terms.
☕ Support the work
If this release has been useful, tips are deeply appreciated — they go directly toward more compute, more models, and more open releases.