The packs
All packs keep the model's MTP head as a calibrated sidecar and run the same exact speculative path. Optimized Speed V2 is the recommended 27B pack for local coding and agent work; Optimized Quality is the 8-bit sibling; the original Optimized Speed stays available for Macs tight on storage.
| Pack | Quant | Download | KL vs bf16 | Pick it for |
|---|---|---|---|---|
| Optimized Speed V2 | Calibrated mixed precision: 4-bit with 32-weight groups, 8-bit promotions, about 5.8 bits per weight | 19.9 GB | 0.072 | Coding, tool use, long agent sessions. Recommended on 32 GB+. |
| Optimized Quality | 8-bit (q8) | 8-bit weights. Chat lane 43 to 44 tok/s on 2.0.0 (see speeds). | ||
| Optimized Speed (original) | 4-bit | 16.4 GB | 0.135 | Tight on storage, mostly short chat. 3.5 GB smaller than V2. |
KL divergence is measured to the full-precision bf16 model on an 86k-token held-out battery, M5 Max, same engine and prompts for both Speed packs. V2 cuts quantization loss by 47 percent against the original release, and it pulls further ahead the longer an agent session runs: draft acceptance at 17k tokens of agent context is 98 / 86 / 78 percent per draft position, against 73 / 50 / 33 for the original. Speculative decoding is only as fast as its drafts are accurate, and a trunk that stays this close to full precision keeps acceptance high deep into long contexts. V2 became the recommended coding default in MTPLX 2.5.1 (3 August 2026) because it held up better as agent work got longer. The tradeoff: 19.9 GB against 16.4 GB, so cold short chats can be a few percent slower. The Qwen 3.8 27B Optimized Speed pack reuses this hand-tuned layout.
Measured speeds
All rows on an M5 Max. The pack's shipped sampler is temperature 0.6, top-p 0.95, top-k 20, the runtime contract in
mtplx_runtime.json. Every run is sampled; MTPLX has no greedy path. Version, thinking state and pack
revision are given where the source states them.
| Run | Result |
|---|---|
| Coding task, medium reasoning, mtplx serve. Optimized Speed V2. MTPLX 2.7.0, 15 August 2026, fans verified at max, single stream. Same night and task as the Qwen 3.8 27B packs. | 59.9 to 60.1 tok/s |
| Record lane: 192-token mtplx bench tune generation. Optimized Speed, depth 3, thinking off, temperature 0.6, fans verified above 7,800 RPM. 2 July 2026, twin runs 81.74 / 81.73. Logs. | 81.74 tok/s (30.37 AR, 2.69x) |
| Same day, same config: uncapped 11,390-token Flappy Bird generation, reasoning on. | 62.95 tok/s (75.5 first 128 tokens, 39.9 last 128) |
| First public number: README at tag v0.1.5, 6 May 2026. MTP depth 3, temperature 0.6, top-p 0.95, top-k 20. | 63.056 tok/s (28.156 AR, 2.24x) |
Release to release. MTPLX 2.0.0 (6 July 2026) made the Turbo profile the default: verify-specialized quantized-matmul kernels plus a compiled verify step. Same M5 Max, measured against the previous release:
| Lane | Before 2.0.0 | 2.0.0 |
|---|---|---|
| Chat lane, Optimized Speed | ~45 tok/s | 58 to 60 tok/s |
| Chat lane, Optimized Quality (q8) | 31 to 36 tok/s | 43 to 44 tok/s |
| Decode at 128k context | 17 tok/s | 20+ tok/s |
The same release cut peak memory by 8 GB at 64k context and 16 GB at 128k. Third-party: Mirai Labs' public board (trymirai.com/metrics, dataset benchmarked 1 September 2026, M5 Max 128 GB, Qwen3.6-27B) lists MTPLX 2.9.0 Speed-V2 at 55.4 tok/s, MLX 4-bit plain decode at 25.7 tok/s and llama.cpp with the Unsloth MTP GGUF at 29.7 tok/s. llama.cpp merged MTP for Qwen3-Next hybrid GDN models on 3 August 2026 (PR #25589).
RAM and Macs
- 32 GB or more: Optimized Speed V2. Its card states that mtplx start recommends it automatically on Macs with 32 GB of unified memory or more and offers smaller verified models below that; the current default on those Macs is Qwen 3.8 27B Optimized Speed.
- 16 GB: run Qwen 3.5 9B or 4B instead; the app checks your Mac before recommending anything.
- Long context: decode at 128k context measured at 20+ tok/s on 2.0.0, with peak memory down 8 GB at 64k and 16 GB at 128k in that release. The memory governor (2.10.0) prints engine budget, weights, resolved context window and session bank in the serve banner; requests that cannot fit are refused up front with HTTP 507 (2.10.2).
- Image input: PNG, JPEG and WebP with MTP intact since 1.0.3 (11 June 2026).
Install
Mac app: download the DMG and pick the Qwen 3.6 27B Optimized Speed V2 pack. The app downloads it, sets up its engine, and measures your machine to pick the fastest decoding depth.
Command line:
brew install youssofal/mtplx/mtplx
mtplx serve --model Youssofal/Qwen3.6-27B-MTPLX-Optimized-Speed-V2
mtplx pull downloads the pack ahead of time and mtplx run "hello" --model Youssofal/Qwen3.6-27B-MTPLX-Optimized-Speed-V2
answers one prompt in the terminal. Then point OpenCode, Pi, Claude Code, Cline, Cursor or anything that speaks the
OpenAI or Anthropic API at http://127.0.0.1:8000. The served model id is
mtplx-qwen36-27b-optimized-speed-v2; mtplx connect claude-code and mtplx connect opencode
print the exact client config. Setup pages for each client are in the docs. The tuned depth and
draft settings ship inside mtplx_runtime.json; MTPLX reads them on load. The Turbo profile is the default.
How it is built
V2's layout was tuned tensor by tensor against the bf16 reference:
- Most weights at 4-bit with small groups, refit against real activation statistics with error-weighted least squares instead of naive rounding.
- The tensors that hurt most at 4-bit promoted by hand: the embeddings, the output head, convolution and attention output projections, and the late MLP layers run at 8-bit, with the most sensitive layers kept in full bf16.
- The native multi-token-prediction head ships as a calibrated sidecar (
mtp/weights.safetensors). No external draft model is needed. - Activations in bf16 on every pass (fp16 on M1 and M2). The speculative path runs the same model as the autoregressive path.
The result is about 5.8 bits per weight. The runtime contract in mtplx_runtime.json records the
architecture (qwen3-next-mtp), maximum MTP depth 3, the Turbo profile, the sampler (temperature 0.6, top-p
0.95, top-k 20), and the verified hardware (Apple M5 Max, 128 GB unified memory).
Exactness
Speculation in MTPLX is exact. Drafts from the MTP head are accepted with the probability-ratio rule and rejected drafts are resampled from the residual, so what you sample is what the model would have sampled without speculation, at any temperature. The draft sampler is a speed knob only. The quantization is the one approximation, and the KL numbers above measure it.