type
Post
status
Published
date
Jun 13, 2026
slug
LLM-MTP
summary
在 DeepSeek-V4,MiMo-V2,Minimax-M2,Qwen3-Next,GLM-4.5 的最新技术报告里,有一个被共同采用的技术模块MTP(Multi-Token Prediction)。NTP 已经是 LLM 核心了,那这个 MTP作用是什么?为什么被多家 LLM 采用。
最早听说还是 DeepSeek-V3 的技术报告里,看到名字的第一眼,以为是一个 token 输入,同时并行输出多个位置 token 的概率,有这个误解也很正常。最早的时候,MTP 在 LLM领域就是在 Meta 的 paper “Better & Faster Large Language Models via Multi-token Prediction”中被定义的。
tags
LLM
category
LLM
icon
password
priority
3
在 DeepSeek-V4,MiMo-V2,Minimax-M2,Qwen3-Next,GLM-4.5 的最新技术报告里,有一个被共同采用的技术模块MTP(Multi-Token Prediction)。NTP 已经是 LLM 核心了,那这个 MTP作用是什么?为什么被多家 LLM 采用。
维度 | DeepSeek-V4 | MiniMax-M2 | MiMo-V2-Flash | GLM-4.5 | Qwen3-Next |
架构血统 | 「与 V3 完全相同,无修改」 | 「following DeepSeek-V3」 | 引 Gloeckle + DeepSeek + 其他 | 仅引 Gloeckle(结构归 DeepSeek 家族) | 引 DeepSeek-V3 + Gloeckle + ProphetNet |
模块结构 | 级联 MTP module(沿用 V3) | 级联 MTP module(沿用 V3) | 级联 head + 轻量化(dense FFN + SWA) | 一个 MoE 层当 MTP 层 | native MTP module(内部接线未展开) |
预测深度 K | 1(Pro 与 Flash 均是) | 预训练 1,退火期扩到 3 | 预训练 1,后训练复制为 K 步,发布 3 层 | 1(# MTP Layers=1) | 未披露(部署侧多步:sglang 3 步 / vllm 2 token) |
MTP loss 权重 | 0.3,LR decay 起降为 0.1 | 0.3,decay 阶段退火到 0.1 | Stage 1 为 0.3,Stage 2/3 为 0.1 | 0.3(前 15T token)退火到 0.1 | 未披露 |
投机解码 | 可用可不用 | 三模块多步投机解码 | 原生 draft model,2.6× 加速 | 明确支持(无接受率/加速数) | 高接受率 draft;多步训练保持训练/推理一致 |
RL 阶段协同 | 未披露 | top-K KL 散度协同训练 | 强调 RL rollout 加速(损失内协同未披露) | 未披露 | 特别优化了 MTP 多步推理性能,通过训练推理一致的多步训练 |
最早听说还是 DeepSeek-V3 的技术报告里,看到名字的第一眼,以为是一个 token 输入,同时并行输出多个位置 token 的概率,有这个误解也很正常。最早的时候,MTP 在 LLM领域就是在 Meta 的 paper “Better & Faster Large Language Models via Multi-token Prediction”中被定义的。
这个论文里确立了2 点:
- teacher forcing 下的 NTP 容易陷入在局部模式上、忽略"难的决策",样本效率低,所以 MTP 的引入是为了辅助训练,提升效果的。
- MTP 模块本身是self-speculative decoding, 一个 token 输入,过了主 Transformer 后,并行多个 head 输出后面 k 个 token,每一个 head 都是一个 Transformer block。这在decode 的时候,可以充当 draft model,获得 3 倍加速。

这是一个很符合直觉的设计,但到了 DeepSeek-V3,这两个作用依旧存在,但MTP 的模型架构发生了很大的变化。DeepSeek-V3 paper 里有一句很明确的对比:
"Different from Gloeckle et al. (2024), which parallelly predicts D additional tokens using independent output heads, we sequentially predict additional tokens and keep the complete causal chain at each prediction depth."

meta 的 paper 里,实际也对比了并行架构和 casual 架构,结论是效果持平,他们选择了投机解码性能更好的并行架构。但实际上,名字都是 casual,实际确大不同。

如图,meta 的 casual 是仅仅传递上一个 block 的 hidden state,没有把解码后的下一个 token embedding放进输入。DeepSeek的 MTP 每个 depth 都是干净的 fully-conditioned next-token 任务,这在 decoding 时更复杂,因为要把 next-one token 解码出来,才能估计出next-two。但是 DeepSeek 主要是使用它来提升 pre-train 的效率,Draft Model 是他的可选项。
Our MTP strategy mainly aims to improve the performance of the main model, so during inference, we can directly discard the MTP modules and the main model can function independently and normally.
为什么 MTP 有效,DeepSeek 的解释是能把训练信号变得稠密,提升数据效率,提前规划未来 token 预估。但用了两个“may”显得非常的严谨和不自信。
On the one hand, an MTP objective densifies the training signals and may improve data efficiency. On the other hand, MTP may enable the model to pre-plan its representations for better prediction of future tokens.
Meta 有一个互信息解释,X,Y代表连续两个 token,NTP 的数据熵是H(X)=H(X|Y) + I(X;Y),而 MTP 的第二个 Y 没有看到 X,H(X) + H(Y) = H(X|Y) + 2·I(X;Y) + H(Y|X),多了一倍的互信息,只能通过在 X 决策时提前解决 Y 的问题,使模型更准地预测那些对后文有约束力的 token。但是这个解释放到 DeepSeek 那又不对了,它不存在看不见 X 的 H(Y)!都是 MTP,Meta 改 loss 的权重结构,DeepSeek 改梯度的注入位置。
MiniMax说法是“提供更丰富的训练信号”,并给了 ablation study。加 MTP 后 MATH 、KorBench 14.1→15.0、HumanEval有提升,而 MMLU和 ARC-Challenge 基本持平,他们的结论是 MTP 在各 benchmark 上一致有提升,且 reasoning-heavy 任务收益最大。

Meta 的 paper 有个非常有趣的 insight,MTP 有效性与参数量相关。小容量的模型反而有害,突破阈值之后收益扩大,且模型 size 越大增益越明显。

先说一下 MTP 的投机解码是怎么做的,以及为什么会有价值。在 LLM decode 阶段,NTP 每次吐一个 token,这带来了一个问题,decode 阶段是极度 memory-bound,它要不断地去拉取 prefill 的 KV Cache,但计算的 batch 却是请求数 x 1 token。MTP 作为 draft model,每一个 token 预估只过一个 Transformer block,它以更快的速度解码K 个 token。然后组成一个请求数 x k 的 batch给到主模型做一次前向算出概率,MTP 猜对了就接受,MTP猜错了就仅接受第一个 token,然后从下一个 token 位置继续这个循环。
乍一看,猜错的代价很高,不仅额外跑了 MTP,还有一次主模型前向。但语言的特点就是充满了低熵的 token,MTP接受率在85%~90%,少数情况走了冤枉路,额外浪费了算力,大多数情况下,因为MTP 的轻量加上大 Batch 多 token 计算,主模型突破memory-bound而获得额外加速。MiMo 获得了2.6倍的加速。

各家在预训练阶段都是K=1,即设置一个 block 的 Transformer 做 MTP,loss 权重设置为 0.3,退火到 0.1。但Minimax 和MiMo 使用MTP作为 draft model 进行投机解码,均为 K=3,额外的两份权重哪里来呢?
答案是复制,但是复制的细节不同,MiMo 的MTP 和主模型异构,采用了轻量化(dense FFN + SWA)结构,每个 block 仅0.33B,它是复制预训练时的那个 k=1 的 block。而Minimax 的 MTP 和主模型(FFN+Attention)完全同构,它选择复制的是主模型的最后一层,而非预训练的那个 MTP。复制的时机也不同,MiMo 是在后训练开始的时候才复制,Minimax 在退火时就复制了权重,先冻结主模型直到loss 稳定,再打开联合训练。而它们在 post-train 的 RL里都做了联合的训练,即MTP 参与了 RL 的 Rollout 里,避免接受率会随分布漂移而崩。
再讲讲 MTP 的模型结构细节,很多人说它像一个RNN——每一个 MTP block 向后传递hidden state,也输入上一个 token的 embedding。确实很像,这把我住了了MTP 的基本输入输出。
反而容易被忽略的,是它仍然是一个内部结构非常标准的Transformer,比如 MiMo 的模型在MTP 中仅用了SWA(Sliding Window Attention),它有独立的KV Cache,之所以仅用 SWA 是作为 draft model,在解码的时候可以少取KV Cache,进一步减缓memory-bound。它独立于主模型,可以自由地选择它的 Attention 策略。
准确的说法是分两个轴看:沿深度(k=1, 2, 3)像一条级联 RNN,每一级吃上一级的输出;而在同一个 k 内、跨序列位置,它就是标准 Transformer,带自注意力和 KV。

把经典的 MTP 图纵向堆叠,以 t2 位置为 Case,一次前向的的流出如图所示。主模型在预估 t3,MTP-1 在预估 t4,额外输入了t3 的 token embedding,MTP-2 在预估t5,额外输入了 t4 的 embedding。token embedding 和 hidden state的融合采用了RMSNorm 和 Linear Projection。输出的 Output Head 共享,输入 embedding 共享。
最后,用多快好省来形容 MTP 非常贴切:
- 多:multi-token predict 就是一次前向多个 token。
- 快:作为投机解码的 draft model 使用,1.8~3 倍加速。
- 好:作为 pre-train 的辅助 loss,提升了 coding及复杂推理任务效果。
- 省:把decode memory-bound 的算力浪费给省了回来。
reference
Better & Faster Large Language Models via Multi-token Prediction
DeepSeek-V3 Technical Report
The MiniMax-M2 Series: Mini Activations Unleashing Max Real-World Intelligence
MiMo-V2-Flash Technical Report
DeepSeek-V4: Towards Highly Efficient Million-Token Context Intelligence