EAGLE-3: Scaling up Inference Acceleration of Large Language Models via Training-Time Test
文章标题:EAGLE-3: 通过训练时测试扩展大语言模型推理加速
作者/机构:Yuhui Li (北京大学, 滑铁卢大学), Fangyun Wei (微软研究院), Chao Zhang (北京大学), Hongyang Zhang (滑铁卢大学, Vector Institute)
A1 主要贡献
本文的核心问题是现代大语言模型(LLM)因其自回归特性而导致推理成本高昂且速度缓慢。现有的推测采样方法如EAGLE通过在特征层面进行自回归并重用目标模型的顶层特征来加速,但研究发现,扩大训练数据对EAGLE的性能提升有限。本文识别出这一瓶颈源于EAGLE的特征预测约束。
为解决此问题,本文提出了EAGLE-3,其研究目标是通过改进草稿模型(draft model)的架构,使其能充分利用扩大训练数据带来的好处,从而实现更高的推理加速比。
本文的主要创新点和贡献如下:
* 新颖的“训练时测试”架构:EAGLE-3放弃了原有的特征预测约束,转而直接预测词元(token)。它在训练过程中模拟多步生成过程,这一技术被称为“训练时测试”。这项改进使得草稿模型的设计具有完全的灵活性。
* 多层特征融合:不再仅仅依赖于目标模型的顶层特征,EAGLE-3通过融合来自目标模型的低、中、高层特征,捕获了不同层次的丰富语义信息,为草稿模型提供了更优质的输入。
* 发现了推理加速的规模法则(Scaling Law):得益于新的架构设计,本文观察到,随着草稿模型训练数据的增加,EAGLE-3的加速比也成比例提升。这种规模效应在以往的工作中从未被发现过,如图1所示。
* 显著提升的推理加速性能:实验表明,相比EAGLE,使用大约8倍数据训练的EAGLE-3在延迟上实现了约1.4倍的提升。在批处理大小为1时,EAGLE-3最高可达6.5倍的加速比。在生产级框架SGLang中,即使在批处理大小为64时,EAGLE-3也能带来1.38倍的吞吐量提升。
A3 背景知识/关键Observation/设计原则
推测采样(Speculative Sampling)
推测采样的工作流程。推测采样【[21] Yaniv Leviathan, Matan Kalman, and Yossi Matias. 2023. Fast inference from transformers via speculative decoding. In International Conference on Machine Learning. PMLR】是一种无损的LLM加速技术,它交替进行起草(drafting)和验证(verification)两个阶段。起草阶段成本低,而验证阶段可并行化。我们用$t_i$表示第$i$个词元,用$T_{a:b}$表示词元序列$t_a, t_{a+1}, \dots, t_b$。当前缀为$T_{1:j}$时,推测采样的两个阶段如下:
- 起草阶段:推测采样利用一个草稿模型(通常是与目标模型同系列但参数量更小的模型)自回归地生成$k$个词元,形成草稿$T_{\hat{j+1}:j+k}$,同时记录下每个词元的概率$p̂$。
- 验证阶段:推测采样调用目标模型来评估草稿$T_{\hat{j+1}:j+k}$并记录其概率$p$。然后,推测采样从前到后依次决定是否接受草稿词元。对于词元$\hat{t}_{j+i}$,其接受概率为$min(1, p_{j+i}(\hat{t}_{j+i})/p̂_{j+i}(\hat{t}_{j+i}))$。如果词元被接受,则继续处理下一个词元。否则,从分布$norm(max(0, p_{j+i} - p̂_{j+i}))$中采样一个词元来替换$\hat{t}_{j+i}$,并丢弃草稿中余下的所有词元。【[21] Yaniv Leviathan, Matan Kalman, and Yossi Matias. 2023. Fast inference from transformers via speculative decoding. In International Conference on Machine Learning. PMLR】的附录A.1证明了推测采样与普通的自回归解码在分布上是一致的。
EAGLE 和 EAGLE-2
EAGLE的核心思想。由于草稿模型容量有限,难以精确逼近大规模的目标模型。EAGLE利用目标模型的顶层特征作为额外信息,并在特征层面进行自回归,从而简化了起草过程。EAGLE在特征层面进行自回归,然后使用目标模型的LM head来获取草稿词元。由于词元层的采样结果是隐藏的,特征层面的自回归引入了不确定性。EAGLE通过将上一个时间步的词元序列(即采样结果)输入到草稿模型中来解决这个问题。与普通推测采样的链式草稿不同,EAGLE在同一位置生成多个草稿词元,形成树状草稿。在验证阶段,EAGLE使用树状注意力机制(tree attention)来并行验证草稿树。有趣的是,EAGLE启发了DeepSeekv3【[25] Aixin Liu, et al. 2024a. DeepSeek-v3 technical report. arXiv preprint arXiv:2412.19437.】预训练中使用的多词元预测技术,而后者又启发了EAGLE-3中新的架构设计。
EAGLE-2的改进。EAGLE【[24] Yuhui Li, Fangyun Wei, Chao Zhang, and Hongyang Zhang. 2024c. EAGLE: Speculative sampling requires rethinking feature uncertainty. In International Conference on Machine Learning】和Medusa【[2] Tianle Cai, et al. 2024. Medusa: Simple LLM inference acceleration framework with multiple decoding heads. arXiv preprint arXiv: 2401.10774.】等方法使用树状草稿,但其草稿树的结构是预定义、静态且与上下文无关的。起草的难度与上下文密切相关,静态的草稿树会导致资源浪费。EAGLE-2【[23] Yuhui Li, Fangyun Wei, Chao Zhang, and Hongyang Zhang. 2024b. EAGLE-2: Faster inference of language models with dynamic draft trees. In Conference on Empirical Methods in Natural Language Processing】使用草稿模型的置信度来近似接受率,并据此动态生成草稿树,在起草阶段结束时对草稿树进行剪枝。EAGLE-3也采用了EAGLE-2中提出的上下文感知动态草稿树。
A2 方法细节
推理流程
EAGLE-3的推理阶段概述。与其他推测采样方法一致,EAGLE-3交替进行起草和验证阶段。EAGLE-3与EAGLE的区别在于起草阶段,我们通过图5中的一个例子来介绍。假设前缀是“How can”。在预填充(prefill)阶段或上一个验证阶段,目标模型会进行一次前向传播以生成下一个词元“I”。我们记录下目标模型前向传播过程中的低、中、高层特征序列,分别表示为$l$、$m$和$h$。我们将$k$维的向量$l$、$m$和$h$拼接成一个$3k$维的向量,然后通过一个全连接(FC)层将其降维至$k$维,得到一个融合了不同层信息的特征$g$。这里的$k$指的是目标模型的隐藏层大小。
多步草稿生成的输入处理。我们的目标是在前缀“How can I”之后生成一个草稿词元序列。如果只输入$g_{how}$和$g_{can}$,草稿模型无法获知随机采样过程。因此,与EAGLE【[24] Yuhui Li, Fangyun Wei, Chao Zhang, and Hongyang Zhang. 2024c. EAGLE: Speculative sampling requires rethinking feature uncertainty. In International Conference on Machine Learning】类似,我们引入采样出的词元“I”的嵌入(embedding)$e_I$。拼接后的向量通过一个FC层降维至$k$维,随后输入到一个单层解码器中,产生输出$a$。最后,我们将$a_I$输入到LM head中并进行采样,得到草稿词元“do”。
草稿模型自身输出的循环利用。在第1步,前缀是“How can”,我们重用了目标模型中的$g_{how}$和$g_{can}$。在第2步,前缀变为“How can I”。理想情况下,我们应该重用目标模型中的$g_{how}$、$g_{can}$和$g_I$。然而,这是不可能的,因为词元“I”尚未经过目标模型验证,我们无法获得$g_I$。作为替代,我们使用上一步草稿模型的输出$a_I$来代替$g_I$,并将$a_I$与采样结果“do”的嵌入$e_{do}$拼接起来,作为第1步草稿模型的输入。在第3步,我们同样无法获得$g_{do}$,因此使用$a_{do}$作为替代,将$a_{do}$与$e_{it}$拼接作为草稿模型的输入。后续步骤也遵循同样的方法。
草稿模型训练
训练时测试的核心机制。EAGLE草稿模型的输入是(或至少近似是)目标模型的顶层特征$f_1, f_2, \dots, f_t$。相比之下,EAGLE-3草稿模型的输入可能包含来自目标模型的特征$g_1, g_2, \dots, g_t$,也可能包含来自草稿模型自身的输出$a_{t+1}, a_{t+2}, \dots, a_{t+j}$。因此,我们需要训练草稿模型以适应不同的输入。在训练过程中,我们执行测试步骤,即生成$a$并将其反馈给草稿模型进行进一步的训练。
注意力机制的适应性修改。EAGLE-3中草稿模型的核心是一个Transformer解码器层。除了自注意力操作外,没有其他组件与上下文交互,因此在训练或测试期间无需进一步修改。唯一需要稍作修改的组件是自注意力,我们将在下面详细描述。
动态注意力掩码的实现。虽然实际输入是特征,但为清晰起见,我们使用词元作为输入来描述该过程。如图6所示,原始训练数据是一个长度为3的序列“How can I”,上下文具有正常的顺序依赖关系。因此,注意力掩码是一个标准的下三角矩阵。这三个位置的输出是“are”、“we”和“do”,它们与“how”、“can”和“I”具有树状的上下文关系。因此,当将输入“are”、“we”和“do”送入第2步时,注意力掩码需要相应调整,如图6右上角所示。所有的注意力掩码都是对角矩阵,除非使用原始训练数据作为键(key)。在这种情况下使用矩阵乘法会导致巨大的计算浪费,因此我们可以使用向量点积来仅计算相应位置的注意力得分。
与HASS方法的对比。HASS【[41] Lefan Zhang, Xiaodan Wang, Yanhua Huang, and Ruiwen Xu. 2024. Learning harmonized representations for speculative sampling. arXiv preprint arXiv:2408.15766.】和EAGLE-3都对注意力机制做了类似的修改以在训练中模拟测试过程,但这并非EAGLE-3的主要焦点。两种方法的动机、方法和结果截然不同。HASS的动机是减轻EAGLE中因不准确的特征预测导致的误差累积。HASS仍然执行特征预测,包含一个特征预测损失$l_{fea}$,并且草稿模型的输入必须是顶层特征。相比之下,EAGLE-3的动机是移除不必要的约束以增强模型的表达能力。EAGLE-3不再要求草稿模型的输出去拟合目标模型的顶层特征,从而避免了误差累积。在移除了特征预测后,EAGLE-3的输入变得完全自由,并被替换为融合了不同层语义信息的特征。特征预测损失的移除也使我们能够发现一种新的推理加速规模法则,这在以前从未被发现过。图2也显示了EAGLE-3和HASS的加速比,EAGLE-3表现出明显更优的性能。
A4 实验环境
-
模型架构:
- 目标模型:Vicuna 13B, LLaMA-Instruct 3.1 8B, LLaMA-Instruct 3.3 70B, DeepSeek-R1-Distill-LLaMA 8B。
- 草稿模型:EAGLE-3的草稿模型核心是一个Transformer解码器层。
-
数据集:
- 训练数据:ShareGPT(约6.8万条)、UltraChat200K(约46.4万条),以及针对推理模型DeepSeek-R1-Distill-LLaMA 8B额外使用的OpenThoughts-114k-math数据集。
- 评估任务与数据集:
- 多轮对话:MT-bench
- 代码生成:HumanEval
- 数学推理:GSM8K
- 指令遵循:Alpaca
- 摘要:CNN/Daily Mail
-
硬件配置:
- 实验在H100 GPU、A100 GPU、RTX3090 GPU上进行。具体配置因实验而异(例如,SGLang测试在单张H100上进行,vLLM测试在RTX3090上进行)。
-
软件配置:
- 代码实现:基于Huggingface的transformers库和PyTorch后端。
- 对比框架:SGLang v0.4.4 和 vLLM。
- 优化器:AdamW,beta值为(0.9, 0.95),梯度裁剪值为0.5,学习率为5e-5。
A4 实验结果
有效性
- 实验内容:在五个任务和四个目标模型上,评估EAGLE-3与多种基线方法(包括普通自回归、标准推测采样、Medusa、EAGLE、EAGLE-2等)的加速比和平均接受长度。
- 实验结果:如表1和图1所示,EAGLE-3在所有任务和目标模型上均取得了最高的加速比和平均接受长度。与普通自回归生成相比,EAGLE-3提供了约3.0x-6.5x的加速,比EAGLE-2提升了20%-40%。在HumanEval任务上加速效果最好,高达6.5x。
- 分析结论:EAGLE-3的架构改进显著提升了性能。任务特性会影响加速效果,例如代码生成任务中的固定模板使得草稿生成更容易,从而获得更高加速比。
训练时测试的有效性
- 实验内容:在MT-bench上,比较EAGLE和EAGLE-3在输入包含不同数量的自预测特征/值时的接受率(n-α)。
- 实验结果:如图7所示,EAGLE-3的接受率远高于EAGLE。随着草稿模型自身输入数量的增加,EAGLE的接受率显著下降,而EAGLE-3的接受率几乎保持不变。
- 分析结论:这证明了“训练时测试”技术的有效性,它成功地解决了因使用模型自身估计值作为输入而导致的性能下降问题(即误差累积问题)。
消融研究
- 实验内容:在MT-bench上,针对LLaMA-Instruct 3.1 8B模型,分别评估EAGLE-3的两项关键改进:“移除特征预测约束”和“使用融合特征”的独立贡献。
- 实验结果:如表2所示,移除特征约束和使用融合特征这两项改进都显著提升了平均接受长度和加速比。
- 分析结论:两项改进都是EAGLE-3性能提升的关键因素,证明了其设计的合理性。
在SGLang框架中的性能
- 实验内容:由SGLang团队在生产级框架SGLang中,使用单个H100 GPU和LLaMA-Instruct 3.1 8B模型,评估EAGLE-3在不同批处理大小下的吞吐量提升。
- 实验结果:如表3所示,EAGLE在批处理大小为24时吞吐量就开始下降,而EAGLE-3即使在批处理大小为64时,仍能实现38%的吞吐量提升。表4显示了批处理大小为1时的吞吐量数据。
- 分析结论:推测采样通常被认为会降低大批量下的吞吐量,但EAGLE-3通过其高效设计,在高度优化的生产级框架中依然能带来显著的吞吐量增益。
在vLLM框架中的性能
- 实验内容:在生产级框架vLLM中,使用RTX3090和LLaMA-Instruct 3.1 8B模型,研究EAGLE-3对大批量吞吐量的影响。
- 实验结果:如表5所示,EAGLE在批处理大小为24时达到最大吞吐量提升,而EAGLE-3在56时达到最大提升。
- 分析结论:EAGLE-3在大批量场景下相比EAGLE展现出更强的可扩展性和性能优势。
A5 结论
本文介绍了EAGLE-3,它在EAGLE的基础上进行了两项关键改进。首先,它移除了特征预测约束,通过“训练时测试”技术直接预测草稿词元。其次,它用融合目标模型低、中、高层特征的方法取代了仅使用顶层特征的方式,以获取更丰富的信息。通过这些改进,EAGLE-3能够持续从训练数据的增加中获益,实现了最高达6.5倍的推理加速。
A6 附录
实现细节
- Vanilla:使用Huggingface.transformers库中的模型,后端为PyTorch,并预先分配了KV缓存。其他方法也以此为基础。
- (标准)推测采样:使用HuggingFace Transformers库中的辅助生成(assisted generation)功能。
- PLD, Lookahead, Medusa, and Hydra:使用默认设置和官方发布的权重。
- EAGLE:Vicuna和LLaMA2-Chat的草稿模型使用官方发布的权重,而LLaMA3-Instruct的草稿模型使用ShareGPT数据集进行训练(与Medusa和Hydra保持一致)。
- EAGLE-2:对于7B(8B)、13B和70B的原始LLM,草稿词元总数分别设置为60、50和48,草稿树深度为6,扩展阶段选择10个节点。
- EAGLE-3:EAGLE-3的草稿模型实现了显著更高的接受率,这使得我们可以将草稿树的深度从6增加到8,同时保持节点数量与EAGLE-2相同。
方法细节中的引用汇总
-
引用文献: [21] Yaniv Leviathan, Matan Kalman, and Yossi Matias. 2023. Fast inference from transformers via speculative decoding. In International Conference on Machine Learning. PMLR.
- 引用位置: A3 背景知识/关键Observation/设计原则- 推测采样(Speculative Sampling)
- 引用描述: 介绍推测采样是一种无损的LLM加速技术,并引用该文献来支撑其基本原理和正确性证明。
-
引用文献: [24] Yuhui Li, Fangyun Wei, Chao Zhang, and Hongyang Zhang. 2024c. EAGLE: Speculative sampling requires rethinking feature uncertainty. In International Conference on Machine Learning.
- 引用位置: A3 背景知识/关键Observation/设计原则- EAGLE 和 EAGLE-2; A2 方法细节- 推理流程
- 引用描述: 介绍EAGLE方法的核心思想,即利用目标模型的顶层特征进行特征层面的自回归。在方法细节部分,将其与EAGLE-3的设计进行对比。
-
引用文献: [2] Tianle Cai, et al. 2024. Medusa: Simple LLM inference acceleration framework with multiple decoding heads. arXiv preprint arXiv: 2401.10774.
- 引用位置: A3 背景知识/关键Observation/设计原则- EAGLE 和 EAGLE-2
- 引用描述: 将Medusa与EAGLE并列,说明它们都使用了树状草稿结构。
-
引用文献: [25] Aixin Liu, et al. 2024a. DeepSeek-v3 technical report. arXiv preprint arXiv:2412.19437.
- 引用位置: A3 背景知识/关键Observation/设计原则- EAGLE 和 EAGLE-2
- 引用描述: 提到EAGLE启发了DeepSeek-v3预训练中的多词元预测技术,而后者又启发了EAGLE-3的设计。
-
引用文献: [23] Yuhui Li, Fangyun Wei, Chao Zhang, and Hongyang Zhang. 2024b. EAGLE-2: Faster inference of language models with dynamic draft trees. In Conference on Empirical Methods in Natural Language Processing.
- 引用位置: A3 背景知识/关键Observation/设计原则- EAGLE 和 EAGLE-2
- 引用描述: 介绍EAGLE-2对EAGLE的改进,即引入上下文感知的动态草稿树,并说明EAGLE-3采纳了这一设计。
-
引用文献: [41] Lefan Zhang, Xiaodan Wang, Yanhua Huang, and Ruiwen Xu. 2024. Learning harmonized representations for speculative sampling. arXiv preprint arXiv:2408.15766.
- 引用位置: A2 方法细节- 草稿模型训练
- 引用描述: 将EAGLE-3与HASS进行详细对比,指出两者都修改了注意力机制来模拟测试过程,但动机、方法和结果均有本质区别,以此凸显EAGLE-3的创新性。
💬 评论讨论
欢迎在这里分享您的想法和见解!