Use Qwen3.8-Flash-Next-MLX-Serve-iQ-MLX-4.7bpw instead. It is this pack re-quantized with an importance matrix collected on the bf16 model: same layout, same 75 GB, same bytes read per token, closer to bf16 (KLD median 0.0052 vs 0.0066, top-1 88.6% vs 87.9% against bf16's own logits). This pack stays up for existing installs but gets no more updates.
Switching from this pack?
ngram_table.bin(32 GB) is identical in both. Move it into the new pack's folder before downloading and the download skips it:M=~/.mlx-serve/models/ddalcu mkdir -p $M/Qwen3.8-Flash-Next-MLX-Serve-iQ-MLX-4.7bpw mv $M/Qwen3.8-Flash-Next-MLX-Serve-mixed-4-8bit/ngram_table.bin $M/Qwen3.8-Flash-Next-MLX-Serve-iQ-MLX-4.7bpw/ mlx-serve pull ddalcu/Qwen3.8-Flash-Next-MLX-Serve-iQ-MLX-4.7bpw
mlx-serve pack of Qwen/Qwen3.8-Flash-Next,
the Qwen4 preview architecture (model_type: qwen4_exp). Runs on a 128 GB Mac
with about 75 GB resident. Includes the MTP head and the vision tower (image
and video input).
Pick the pack by your Mac's memory:
| pack | resident | download | use it if |
|---|---|---|---|
| iQ-MLX-3.3bpw | 52 GB | 86 GB | 64 GB Mac |
| iQ-MLX-4.7bpw | 75 GB | 107 GB | 128 GB Mac (recommended) |
| mixed-4-8bit (this pack) | 75 GB | 107 GB | superseded by iQ-MLX-4.7bpw (same size, closer to bf16) |
| 8bit | 137 GB | 195 GB | more than 128 GB |
Download includes the n-gram table, which is mmapped and not resident (see below).
Download MLXServe.com
mlx-serve --model ddalcu/Qwen3.8-Flash-Next-MLX-Serve-mixed-4-8bit --serve
Measured on an M4 Max 128 GB with mlx-serve 26.8.11: ~75 GB resident,
decode ~60 tok/s serial and 78 tok/s with MTP (--mtp; +41% on code, a few
percent slower on prose), prefill ~730 tok/s, a needle at 24.8k tokens
recovered with sparse attention engaged. Prefix cache on, images included.
This is not a Qwen3.5-style pack. Three things around the usual GDN + MoE trunk:
The 51B table is NOT in the safetensors shards. It is one merged 4-bit table
in ngram_table.bin (32.0 GB, safetensors format, .bin so nothing
mlx-loads it). mlx-serve mmaps the file and, per token, dequantizes the 16 rows
it needs on the CPU (16 x 80 bytes) and uploads only the resulting 2560-vector.
The table never becomes resident: its cost is page cache, which the OS evicts
as needed. That is the difference between this pack and mlx-lm style packs
that ship the table as 128 quantized tensors and load it onto the GPU
(+32 GB resident, ~107 GB total for a 4-bit pack).
Expected effect: decode speed unchanged (16 tiny reads against a ~20 ms step), cold-cache prefill of very long prompts may pay up to ~1 s per 8k tokens of random reads on the SSD, warm cache is free. No user-space cache is needed, the page cache already is an LRU over exactly this access pattern.
| tensors | width |
|---|---|
| routed experts (512 x 48 layers, the 121B) | 4-bit, group 64 |
| attention, GDN, hyper-connections, indexer, shared experts | 8-bit, group 64 |
| lm_head | 8-bit, group 64 |
| embed_tokens | 4-bit, group 64 |
| n-gram table | 4-bit, group 32 (row width 160) |
| routers, inject gates, norms, convs, SSM state | bf16 |
| MTP head | same policy as the trunk |
Every (1 + w) RMSNorm has the +1 folded into the stored weight; depthwise
convs are transposed to MLX's [C, K, 1]; experts.gate_up_proj is split into
switch_mlp.gate_proj / up_proj. The vision tower ships dense bf16 in
model-vision.safetensors (~0.9 GB).
--kv-quant 8 halves the cache.--mtp or per-request "enable_mtp": true). Measured on an M4 Max
vs serial decode: code +41%, prose -4%, an 8.5k-token prompt -4%. It is
opt-in for now because the win depends on the prompt.--prefill-chunk because the
sparse-attention selection is built per chunk."enable_thinking": false turns it off).
Tools use Qwen3.8's XML call format; mlx-serve parses and schema-coerces it.model.visual.*,
dense bf16). MTP is declined on image turns (serial decode).tests/convert_qwen38_flash_next.py in the mlx-serve repo. It streams the
360 GB bf16 checkpoint shard by shard from the Hub (download, quantize, delete),
so it converts on a machine with ~150 GB free. The engine was validated against
HF transformers (trunk) and the vLLM/SGLang MTP math on a tiny random model
before the full conversion.
ngram_table.bin 32 GBmodel-00031.safetensors 1.0 GBmodel-00029.safetensors 1.0 GBmodel-00007.safetensors 944 MBmodel-00009.safetensors 944 MBmodel-00011.safetensors 944 MBmodel-00013.safetensors 944 MBmodel-00015.safetensors 944 MBmodel-00017.safetensors 944 MBmodel-00019.safetensors 944 MBmodel-00021.safetensors 944 MBmodel-00023.safetensors 944 MBmodel-00025.safetensors 944 MBmodel-00030.safetensors 944 MBmodel-00032.safetensors 944 MBmodel-00034.safetensors 944 MBmodel-00036.safetensors 944 MBmodel-00038.safetensors 944 MBmodel-00040.safetensors 944 MBmodel-00042.safetensors 944 MBmodel-00044.safetensors 944 MBmodel-00046.safetensors 944 MBmodel-00048.safetensors 944 MBmodel-00052.safetensors 944 MBmodel-00054.safetensors 944 MBmodel-00056.safetensors 944 MBmodel-00058.safetensors 944 MBmodel-00060.safetensors 944 MBmodel-00062.safetensors 944 MBmodel-00064.safetensors 944 MBmodel-00066.safetensors 944 MBmodel-00068.safetensors 944 MBmodel-00070.safetensors 944 MBmodel-00074.safetensors 944 MBmodel-00076.safetensors 944 MBmodel-00078.safetensors 944 MBmodel-00080.safetensors 944 MBmodel-00082.safetensors 944 MBmodel-00084.safetensors 944 MBmodel-00086.safetensors 944 MBmodel-00088.safetensors 944 MBmodel-00002.safetensors 944 MBmodel-00004.safetensors 944 MBmodel-00027.safetensors 944 MBmodel-00050.safetensors 944 MBmodel-00072.safetensors 944 MBmodel-00090.safetensors 944 MBmodel-00092.safetensors 944 MBmodel-00094.safetensors 944 MBmodel-00096.safetensors 944 MBmodel-00098.safetensors 944 MBmodel-vision.safetensors 898 MBmodel-00099.safetensors 843 MBmodel-00100.safetensors 675 MBmodel-00089.safetensors 616 MBmodel-00055.safetensors 612 MBmodel-00010.safetensors 612 MBmodel-00026.safetensors 612 MBmodel-00045.safetensors 611 MBmodel-00018.safetensors 609 MBmodel-00051.safetensors 609 MBmodel-00081.safetensors 609 MBmodel-00071.safetensors 609 MBmodel-00063.safetensors 609 MBmodel-00037.safetensors 609 MBmodel-00095.safetensors 609 MBmodel-00077.safetensors 590 MBmodel-00075.safetensors 571 MBmodel-00041.safetensors 558 MBmodel-00022.safetensors 558 MBmodel-00057.safetensors 558 MBmodel-00012.safetensors 558 MBmodel-00059.safetensors 556 MBmodel-00047.safetensors 554 MBmodel-00039.safetensors 554 MBmodel-00083.safetensors 554 MBmodel-00014.safetensors 554 MBmodel-00020.safetensors 554 MBmodel-00033.safetensors 554 MBmodel-00065.safetensors 554 MBmodel-00067.safetensors 554 MBmodel-00085.safetensors 554 MBmodel-00073.safetensors 554 MBmodel-00003.safetensors 554 MBmodel-00091.safetensors 554 MBmodel-00097.safetensors 554 MBmodel-00005.safetensors 513 MBmodel-00093.safetensors 500 MBmodel-00035.safetensors 494 MBmodel-00016.safetensors 493 MBmodel-00087.safetensors 493 MBmodel-00069.safetensors 493 MBmodel-00028.safetensors 493 MBmodel-00008.safetensors 493 MBmodel-00024.safetensors 493 MBmodel-00043.safetensors 493 MBmodel-00053.safetensors 493 MBmodel-00061.safetensors 493 MBmodel-00079.safetensors 493 MBmodel-00049.safetensors 493 MBmodel-00006.safetensors 76 MBmodel-00001.safetensors 76 MBQwen/Qwen3.8-Flash-NextHave the files? Submit a torrent.
Submit a torrentHave the complete files and permission to share them? Replace the example folder path. The script checks the files, makes a torrent and submits its magnet and checksums. Keep your torrent client seeding. Get your community key from your settings, and read the script before running it.
curl -fsSL https://pirateface.co/package.sh | bash -s -- --repo ddalcu/Qwen3.8-Flash-Next-MLX-Serve-mixed-4-8bit ./model-folder