MTP 关键在于接受率
摘要
一位用户在 M4 Max Studio 上使用 mlx-vlm 对 Gemma 4 进行了 MTP(多令牌预测)基准测试,发现它在代码生成方面表现出色(速度快 1.53 倍,接受率 66%),但对 JSON 输出不利(速度慢 50%,接受率仅 8%),对长篇散文则影响中性,表明当令牌接受率低于 50% 时,MTP 的优势便荡然无存。
所以我对 MTP 相关内容感到非常兴奋,特别是因为 Gemma4 已经成为了我日常使用的工具。我下载了最新的 mlx-vlm 进行了一些测试,结果却让人失望。
| 工作负载 | MTP 关闭 | MTP 开启 | 结果 | 草稿接受率 |
|---|---|---|---|---|
| 代码生成 | 75 tok/s | 114.8 tok/s | 1.53× 更快 | 66% 槽位 |
| 长篇散文 | 75 tok/s | 71.1 tok/s | 0.95×(持平)| 31% 槽位 |
| JSON 输出 | 51.3 tok/s | 25.6 tok/s | **0.50× 更慢** | 8% 槽位 |
- 代码生成是典型的"写一些 Python 函数来做 X"
- 长篇散文是"写一篇 800 字关于唐代纸币的论文"
- JSON 输出是我的核心用例,我给 LLM 一个项目列表,按照某些规则让它们按相似性分组,然后以结构化形式输出。*
所以如果你想用于本地编程,MTP 非常好。如果不是,可能就不太理想。我的回归测试似乎表明,一旦令牌接受率低于 50%,开销就会抵消掉收益。所有测试都在配备 Gemma4-26b-a4b 的 M4 Max Studio 上进行。
*给各位开发者的彩蛋:Gemma 的 JSON 结构指令跟踪能力相当不错,我发现使用结构化输出会让令牌生成速度下降约 20%。所以更快的做法是稍微接受一些"不那么规范"的 JSON,然后在运行时处理它;因此这些都是关闭 json_schema 的情况下测试的,毕竟 mlx-vlm 本身也不支持 spec-decode 的 json_schema。
相似文章
LLaMA.cpp的多令牌预测(MTP)——Gemma 4速度提升40%
llama.cpp中新的多令牌预测(MTP)实现为Gemma 4模型带来了40%的速度提升,已在MacBook Pro M5Max上测试。文章提供了量化GGUF模型和补丁源代码的链接。
MLX 上新的 Gemma 4 MTP?
Google 发布了用于 Gemma 4 的多 token 预测草稿器,通过推测性解码加速推理,但目前对 MLX 的支持尚未确认或不可用。
@ivanfioravanti: llamacpp 即将支持 MTP!
llamacpp 即将支持多令牌预测(MTP),提升推理效率。
@rohanpaul_ai: atomic[.]chat 让 Gemma 4 26B 在 LLaMA.cpp 中的运行速度更快,在 MacBook Pr… 上的 token 生成速度提升约 40%
atomic.chat 优化了 Gemma 4 26B 在 LLaMA.cpp 中的推理性能,在 MacBook Pro M5 Max 上通过多 token 预测(MTP)推测解码实现了约 40% 的 token 生成提速。这对运行桌面应用、编程智能体和本地私有助手的本地 AI 用户来说是一个重大利好。
在 12GB 显存下,使用 Qwen3.6 35B A3B 与 llama.cpp MTP 实现 80 tok/sec 的速度和 128K 上下文
一名用户分享了一份配置方案,该方案在使用 llama.cpp 和多令牌预测(MTP)的情况下,能在 12GB 显存的 GPU 上让 Qwen3.6 35B A3B 模型实现超过每秒 80 个令牌的生成速度。帖子中包含了基准测试结果以及用于优化性能的具体命令行参数。