Gemma 4 的多 token 预测:LLM 推理加速不该只盯着量化
如果你最近还在把“LLM 推理优化”等同于量化,我建议停一下。 量化当然重要,尤其是本地部署和消费级 GPU 场景。但 Google 刚发的 Gemma 4 多 token 预测(Multi-Token Prediction, MTP)让我更确信一件事:下一轮推理加速的主战场,不只是在“把模型压小”,而是在减少大模型被调用的次数。 Google 在官方博客里说,Gemma 4 通过 MTP drafters 在推理阶段最高可以做到 up to 3x faster。这个数字本身很抓眼球,但我更关心它背后的工程含义:如果草稿器能一次猜中多个后续 token,大模型就不必老老实实一个 token 一个 token 地跑完整前向传播。 说白了就是:以前是大模型每吐一个字都要“亲自审批”;现在是小模型先写一小段,大模型批量盖章。 为什么“一个 token 一次前向”这么浪费 自回归 LLM 的默认解码方式很朴素:给定上下文,预测下一个 token;把这个 token 拼回上下文,再预测下一个。这个循环看起来合理,但对硬件很不友好。 每生成一个 token,模型都要访问大量权重。对于 27B、70B 这种规模,瓶颈往往不是矩阵乘法算不动,而是显存带宽和调度开销被小步循环吃掉。你可以把它理解成:GPU 明明适合一次搬一大车货,结果我们让它每次只送一个快递。 这也是为什么我之前写 DFlash + DDTree 投机解码 时,最看重的不是某个 benchmark 数字,而是“平均接受长度”。只要一次验证能接受更多 token,大模型前向次数就会下降,吞吐自然上来。 Gemma 4 的 MTP 走的是同一条大方向,但实现路径更靠近模型训练本身。 传统 speculative decoding 通常需要一个独立的小 draft model。经典论文 Speculative Sampling 的思路就是:小模型先生成候选,大模型并行验证,最后用修正过的采样过程保证输出分布不变。这套方法很漂亮,但工程上有两个麻烦:你要维护两个模型,还要处理 tokenizer、KV cache、调度和显存布局。 MTP 的反直觉之处在于,它不一定非要靠“另一个完整小模型”来猜。Meta 的论文 Better & Faster Large Language Models via Multi-token Prediction 提出,在训练时让模型不只预测下一个 token,而是同时预测未来多个 token。技术上可以看成在共享 trunk 上接多个输出 head,训练目标从“只看一步”扩展到“顺手看几步”。 ...