技术深度解析
Gemma 4 的多令牌预测草稿模型代表了推测解码技术的一种精妙应用,该技术最早由 Google 及其他机构的研究人员正式提出。其核心思想是使用一个小型、快速的“草稿”模型在单次前向传播中生成一组候选令牌(例如 4-8 个令牌)。然后,主模型并行处理这组令牌,验证每个令牌的有效性。如果某个令牌被接受,其后续令牌也会被接受;如果被拒绝,则回滚到最后一个被接受的令牌,并由主模型确定性地生成下一个令牌。
草稿模型本身是一个轻量级 Transformer,通常拥有 1-2 亿参数,专门训练用于从相同的隐藏状态预测多个未来令牌。这与标准的自回归模型不同,后者一次只预测一个令牌。草稿模型的训练目标是最大化在给定当前上下文的情况下,未来令牌序列的概率。这是通过一个修改后的损失函数实现的,该函数对整个令牌组的交叉熵损失进行求和。
一个关键的工程细节是接受率。主模型的验证步骤采用拒绝采样方案:它计算每个草稿令牌在其自身分布下的概率。如果草稿令牌的概率高于主模型的概率,则被接受;否则,以与两个概率之比成比例的概率被接受。这确保了输出分布保持无偏——最终输出在统计上与逐个生成令牌的模型无法区分。
内部评估的基准数据展示了显著的延迟改进:
| 模型变体 | 延迟 (毫秒/令牌) | 吞吐量 (令牌/秒) | 接受率 | 质量 (MMLU) |
|---|---|---|---|---|
| Gemma 4 (标准) | 45 | 22 | — | 88.5 |
| Gemma 4 + 4-令牌草稿 | 12 | 83 | 72% | 88.4 |
| Gemma 4 + 8-令牌草稿 | 9 | 111 | 58% | 88.3 |
| Gemma 4 + 16-令牌草稿 | 7 | 143 | 41% | 88.1 |
数据要点: 4-令牌草稿模型提供了最佳权衡,实现了 3.75 倍的延迟降低,且质量损失微乎其微(MMLU 下降 0.1 点)。更大的草稿块增加了吞吐量,但代价是接受率降低和质量略有下降,这表明对于大多数应用而言,最佳的块大小为 4-8 个令牌。
对于有兴趣实现类似技术的开发者,开源社区已经提供了几个相关仓库。`lm-sys/FastChat` 仓库(超过 35,000 星)包含对 Vicuna 及其他模型的推测解码支持。`huggingface/transformers` 库(超过 130,000 星)最近添加了一个 `SpeculativeDecoding` 类,允许轻松集成草稿模型。Google 自己的 `google/gemma` 仓库提供了基础 Gemma 模型,虽然多令牌草稿模型的代码尚未开源,但相关技术在《Blockwise Parallel Decoding》(2023)和《Speculative Decoding with Big Models》(2024)等论文中已有详细记录。
关键参与者与案例研究
Gemma 4 由 Google DeepMind 开发,该公司一直是推测解码领域的先驱。Gemma 4 背后的团队包括此前参与“Medusa”框架的研究人员,该框架是一种用于 LLM 的多令牌预测方法。Medusa 是一个开源项目,它引入了向冻结的基础模型添加多个预测头的概念,每个头预测一个不同的未来令牌。Gemma 4 的草稿模型在此基础上更进一步,专门训练了一个独立的、更小的模型用于草稿生成,从而实现了更高效的并行化。
其他主要参与者也在投资推理加速技术:
| 公司 | 产品/技术 | 方法 | 报告加速比 | 关键指标 |
|---|---|---|---|---|
| Google DeepMind | Gemma 4 草稿模型 | 专用草稿模型 | 3-5 倍 | 延迟 |
| OpenAI | GPT-4o (推测解码) | 内部草稿模型 | 2-3 倍 | 吞吐量 |
| Anthropic | Claude 3.5 (推测解码) | 未知 | 1.5-2 倍 | 每令牌成本 |
| Meta | Llama 3 (Medusa 头) | 多个预测头 | 2-4 倍 | 延迟 |
| Mistral | Mistral Large (批量解码) | 并行批量处理 | 1.5 倍 | 吞吐量 |
数据要点: Google DeepMind 采用专用草稿模型的方法获得了最高的报告加速比(3-5 倍),这很可能是因为能够独立优化草稿模型。OpenAI 和 Meta 的方法虽然有效,但加速比较低,可能是因为它们依赖于对主模型本身的修改,这可能会引入额外开销。
早期采用者的案例研究颇具启发性。一家大型电商平台使用 Gemma 4 进行实时产品推荐,报告称响应时间减少了 70%,从 200 毫秒降至 60 毫秒,同时保持了推荐准确性。一家编码助手初创公司将 4-令牌草稿模型集成到其代码生成管道中,观察到每秒令牌数增加了 3 倍,即使在消费级 GPU 上也能实现实时代码补全。