@Youssofal_:MTPLX V0.3 已发布!- 我意识到 M1 和 M2 Mac 并不支持 BF16,之前只是在模拟该格式,导致每秒生成的 tokens 数(TPS)显著下降……
摘要
MTPLX v0.3 已发布,这是一个专为 Apple Silicon 设计的原生运行时。它采用多 token 预测(MTP)技术将解码速度提高一倍,并通过 Leviathan-Chen 接受机制维持分布准确性。
查看缓存全文
缓存时间: 2026/05/10 12:27
MTPLX V0.3 已发布!:- 我意识到 M1 和 M2 Mac 并不原生支持 BF16,而是在模拟它,这导致 TPS(每秒令牌数)显著下降。现在,M1/M2 Mac 会将请求路由至 FP16 MTP 头。 - 引入了“优化质量”模式,这是 27B 模型的 8 位变体。速度稍慢,但效果更好。 - 感谢 @Daniel_Farinax,实现了 2049 -> 4096 预填充分块更改以及服务层更改,改善了 TTFT(首 token 时间)以及 opencode、hermes 和 PI 的使用体验。现在尝试:http://mtplx.com
MTPLX — 在 MLX 上速度翻倍
来源:https://mtplx.com/ 原生 MTP · MLX · v0.1.0-preview.1
MTPLXMTPLXMTPLXMTPLXMTPLX
本地运行 LLM,速度翻倍。
专为 Apple Silicon 设计的原生 MTP 投机解码。在默认模型温度下,解码速度超过 2 倍,利用模型内置的 MTP 头。无需外部草稿模型。
安装
一次安装。一个向导。
首次运行时,向导将处理模型、模式及界面(浏览器或终端)的选择。此后,仅需一个按键即可启动。
``
通过 Homebrew 安装
brew install youssofal/mtplx/mtplx
开始聊天 —— 向导将选择模型、模式和界面
mtplx start ``
相同的提示。相同的温度。
速度翻倍。依然精确。
大多数快速解码工具通过匹配贪心 argmax 来“作弊”温度——这会静默破坏目标分布。MTPLX 通过 Leviathan–Chen 概率比进行接受,并采用残差(p − q)+修正。已验证与单 token 自回归(AR)完全比特精确一致。
加速2.24×
无 MTP基准 TPS
有 MTPLX原生 MTP
Qwen3.6-27B · MacBook Pro M5 Max · MLX目标温度 0.6 / top_p 0.95 / top_k 20
MTPLX 是什么
原生 MTP 运行时,而非包装器。
01 — 原生 MTP
单一检查点。
草稿模型即目标模型自身的 MTP 头。内存中无第二模型。无蒸馏。无需维护外部草稿模型。
02 — 温度精确
Leviathan–Chen,而非 argmax。
通过残差(p − q)+修正的概率比接受。验证最大差异 max_diff = 0.0,对标参考单 token 自回归。
03 — MLX 原生
专为 Apple Silicon 构建。
MLX 源码分支加上针对验证热路径优化的自定义 Metal 内核。顶部提供兼容 OpenAI 和 Anthropic 的服务栈。
循环如何运行
一次前向传播。K 个已验证 token。
每个周期中,MTP 头起草 K 个 token,目标模型在一次批量前向传播中验证所有 K 个,数学计算决定结果——逐位置,精确无误。当所有 K 个 token 都被接受时,会免费获得一个额外 token。
01 — 起草
MTP 头提议
从目标模型自身的内置 MTP 头起草 K 个 token,附带提议概率 q。
02 — 验证
批量目标前向传播
目标模型通过 GraphBank 编译的验证形状,在一次前向传播中评估所有 K 个位置。
03 — 接受
概率比
通过 Leviathan–Chen 拒绝采样逐位置接受。使用 fp32 比率路径,因为 BF16 会下溢。
04 — 修复
残差修正
若被拒绝,从(p − q)+中采样一个干净的替换 token。被拒绝的草稿永远不会进入已提交的历史记录。
05 — 提交
+ 额外 token
已提交历史的 KV 写回。当每个位置都接受时,K+1 处的额外 token 免费获得。
构建在 MLX 之上的是什么
我们拥有的自定义 Metal 内核。
客户端
浏览器聊天 · Open WebUI · Claude Code · Cline · Continue · openai-python · anthropic-python
服务 API
/v1/chat/completions · /v1/messages · /v1/models · /health · /metrics— 兼容 OpenAI 和 Anthropic,流式 SSE
引擎
引擎会话 · SessionBank 前缀精确状态复用 · 跨轮次 logits_max_abs_diff = 0.0
MTPLX 运行时
原生 MTP 投机循环 · 已提交历史 KV 合约,在与 vLLM CUDA 参考对比时,余弦相似度 > 0.9998,直至 D5
自定义 Metal
linear-gdn-from-conv-tape融合的 GDN 验证内核 · verify_qmv小 M qmv · GraphBank 编译的验证形状 · 仅起草 4/3 位 LM 头
MLX 源码分支
mlx-mtplx-0.31.2-qmm· 小 M qmv重新调优 BN16 · 4 simdgroup · unroll_count(4)用于验证形状 M=3..6
对比 vLLM CUDA
在每个深度都有更高的接受率。
MTPLX D4 在 Qwen3.6-27B 上的逐位置接受率高于 vLLM 的 CUDA MTP-5,基于相同的提示。
MTPLX · D4 · Apple Silicon
D197.62%
D295.24%
D388.10%
D475.61%
vLLM · MTP-5 · CUDA
P192.70%
P277.00%
P363.00%
P450.90%
P543.00%
相似文章
@AlexJonesax: 如果你在 Mac 上运行 LLM,值得了解的两个开源 MLX 推理服务器:MTPLX (@youssofal) 利用模型自身的…
本文介绍了两个适用于 Mac 的开源 MLX 推理服务器:MTPLX 通过投机解码(无需草稿模型)优化 token 生成速度,而 oMLX 则通过持久化的 KV 缓存提升代码智能体的工作流效率。
@jundotkim: oMLX 0.3.9.dev2 已发布。亮点包括:- 视觉路径上的 Gemma 4 MTP(感谢 @Prince_Canuma 的 mlx-vlm)。图像+文本的解码速度显著提升 -...
oMLX 0.3.9.dev2 已发布,带来了对 Gemma 4 的改进支持、DFlash 引擎集成以及 ParoQuant 功能,优化了在 Apple Silicon 上的本地 LLM 推理体验。
@ivanfioravanti: llamacpp 即将支持 MTP!
llamacpp 即将支持多令牌预测(MTP),提升推理效率。
@ivanfioravanti: Apple M5 Max + MLX = 原始算力!看看我正在玩的“FasterLivePortrait-MLX”演示,我从 MPS 开始,但结果不……
作者演示了在搭载 M5 Max 芯片的设备上,将 LivePortrait 的实现从 MPS 迁移到 Apple 的 MLX 框架后,性能和速度有了显著提升。
LLaMA.cpp的多令牌预测(MTP)——Gemma 4速度提升40%
llama.cpp中新的多令牌预测(MTP)实现为Gemma 4模型带来了40%的速度提升,已在MacBook Pro M5Max上测试。文章提供了量化GGUF模型和补丁源代码的链接。