LLM推理加速新武器:一文读懂 MTP(多令牌预测)技术
什么是 MTP?
在多轮对话中,大语言模型(LLM)需要逐个生成 token —— 每次只能输出一个词。这种自回归机制是高质量生成的保证,但也成为了推理速度的瓶颈。
Multi-Token Prediction(MTP,多令牌预测) 是一种突破性的训练技术,让模型在预训练阶段就学会同时预测多个未来 token。
它最早由 DeepSeek 在 V3 版本中提出,随后 Qwen、Gemma 4 等主流模型也纷纷采用了这一架构设计。
MTP 与传统推测解码的区别
| 特性 | 传统推测解码 (Speculative Decoding) | MTP |
|---|---|---|
| Draft 模型 | 需要独立的草稿模型 | 无需额外模型,内置在主模型中 |
| 共享参数 | 两个独立模型 | 主模型 + 辅助预测头,共享嵌入层 |
| 部署复杂度 | 高(需部署两个模型) | 低(一个模型搞定) |
| 推理加速 | 1.5x~2x | 1.5x~2x |
MTP 的工作原理
训练阶段
想象你正在学习一篇课文:
- 传统训练:每次学完一个字,只猜下一个字是什么
- MTP 训练:学完一个字后,不仅要猜下一个,还要猜后面好几个字
具体来说(以 DeepSeek-V3 为例):
- 主模型处理输入序列的第 1 个 token,输出隐藏状态 h&sub1;&sup0;,用于预测第 2 个 token
- h&sub1;&sup0; 被送入 MTP 模块 1,结合第 2 个 token 的嵌入,产出新隐藏状态 h&sub1;¹,预测第 3 个 token
- h&sub1;¹ 被送入 MTP 模块 2,进一步预测第 4 个 token
- 以此类推…
每个 MTP 模块都是一个轻量级的 Transformer 块 + 额外的预测头。
推理阶段
训练完成后,在推理时可以使用“投机验证”来加速:
- 模型在一次前向传播中生成多个候选 token
- 主模型同时验证这些候选 token 是否正确
- 通过验证的 token 直接输出(无需逐个等待)
- 遇到不通过的 token 就停止,重新从该位置开始
类比理解:就像写作文时,不是写完一句检查一遍,而是整段写完后回头校对 —— 对的就得分,错的地方改一下再重来。
支持 MTP 的模型
目前已经支持 MTP 的代表性模型包括:
- DeepSeek-V3 / V4:MTP 技术的开创者
- Qwen3.5 / Qwen3.6:通义千问系列,内置 MTP 头
- Gemma 4 Assistant:Google 的 Gemma 4 系列采用专门 MTP 架构
llama.cpp 中的 MTP 支持
2026 年 5 月,llama.cpp 正式合并了 MTP 的 beta 版本支持。这意味着你可以在本地使用 GGUF 量化的 MTP 模型获得推理加速!
实测数据:
| 硬件 | 模型 | 无 MTP | 有 MTP | 提升 |
|---|---|---|---|---|
| RTX 3090 (24GB) | Qwen3.6-27B Q4 | 38 tok/s | 65 tok/s | +71% |
| Apple M4 Pro | Qwen3.5 27B Q4 | 15.3 tok/s | 23.3 tok/s | +52% |
| RTX 3090 (RunPod) | Qwen3.6-27B | 38 tok/s | 65 tok/s | 1.71x |
MTP 的局限性
虽然 MTP 加速效果显著,但也有一些需要注意的地方:
- 仅限特定模型:不是所有 LLM 都支持 MTP,需要模型在训练时就内置 MTP 头
- CUDA Graph 冲突:llama.cpp 中如果 CUDA Graph 捕获失败,MTP 反而可能导致性能下降
- 量化格式要求:需要使用专门的 MTP-GGUF 格式
- 批量推理场景受益有限:MTP 主要提升单流生成速度
未来展望
MTP 的提出标志着 LLM 推理加速从“外挂方案”走向“内建能力”的趋势。随着更多模型在训练阶段就集成 MTP 模块,以及推理引擎对 MTP 的进一步优化,我们可以期待:
- 更快的本地推理速度:无需更换硬件即可让现有模型跑得更快
- 更低的部署成本:减少了对高端 GPU 的依赖
- 更广泛的 AI 应用:加速意味着更流畅的用户体验,推动 AI 在日常场景中的应用
对于像我们这样在消费级硬件上跑大模型的爱好者来说,MTP 无疑是一个令人振奋的消息 🎉
参考来源:vLLM 文档、Google Gemma 官方文档、Sebastian Raschka LLM Architecture Gallery、NVIDIA Megatron Bridge、社区实测数据