自回归解码已然成为大语言模型的推理标准。大语言模型每次前向计算需要访问它全部的参数,但只能得到一个 token,导致其生成昂贵且缓慢。
近日,EAGLE 团队的新作《EAGLE-3: Scaling up Inference Acceleration of Large Language Models via Training-Time Test》通过一系列优化解锁了投机采样的 Scaling Law 能力,可以 将大语言模型的推理速度提高 6.5 倍,同时不改变大语言模型的输出分布,确保无损 。同时,随着训练数据的增加,加速比还能进一步提高。
EAGLE-3 的加速效果(DeepSeek-R1-Distill-LLaMA 8B 在数学推理数据集 GSM8K 上测试,其他模型在多轮对话数据集 MT-bench 上测试):
不同方法的生成速度对比:
背景
投机采样使用一个小的模型快速生成草稿,一次生成多个 token。目标大语言模型通过一次前向计算并行验证草稿的正确性,输出正确的草稿,并确保无损。EAGLE 系列是投机采样的最快实现。
EAGLE-1 在更有规律的特征层面而不是 token 层面进行自回归,同时输入采样结果(超前一个时间步的 token)消除了不确定性,明显提升了草稿模型的准确率。EAGLE-2 利用草稿模型的置信度近似接受率,据此动态地调整草稿树的结构,进一步提升了投机采样的效率。
机器之心之前已经报道了 EAGLE-1 和 EAGLE-2 的工作:
最新的大模型通过使用越来越多的训练数据以取得更好的性能。比如说,对于 LLaMA 系列 7B(8B)大小的模型,LLaMA 1、LLaMA 2 和 LLaMA 3 分别使用了 1T、2T、15T token 训练数据,模型结构和推理成本基本不变的前提下各项指标取得了明显提升。
EAGLE-3 的作者们希望通过增加草稿模型的训练数据量以提高接受率和加速比(蓝色曲线)。遗憾的是, EAGLE-1 从训练数据增加中得到的提升非常有限(红色曲线)。
EAGLE-1 和 EAGLE-3 的加速比随着训练数据的增加而变化的趋势:
动机
EAGLE 在特征层进行自回归,再使用目标模型的分类头得到草稿 token。这种方式利用了目标模型的中间结果和信息,相比 token 层自回归有更好的性能。因为草稿模型的最终任务是预测草稿 token,EAGLE 的损失函数包括两部分,一部分是特征预测损失,另一部分是 token 预测损失。特征预测损失也可以被认为是一种约束,限制了模型的表达能力。
EAGLE-3 的作者们进行了实验验证,观察第一个草稿 token 的接受率 0-α,在数据集较小时,特征预测损失在训练数据较少时可以提高性能,但严重损害了草稿模型的 scaling up 能力。
不过,不使用特征预测损失会导致生成后续草稿 token 时的输入偏离训练分布,导致第二个草稿 token 的接受率 1-α 严重下降。为了解决这一问题, EAGLE-3 使用 “训练时测试” 模拟多步生成,从而兼顾了模型的 scaling up 能力和生成多个草稿 token 的能力
EAGLE、Medusa 等投机采样方法都重用目标模型的最后一层特征作为草稿模型的提示,但 EAGLE-3 的作者们发现这存在缺陷。大语言模型的最后一层特征经过线性变换就能得到下一个 token 的分布。对于满秩的分类头,最后一层特征和下一个 token 的分布一一对应。最后一层特征只有下一个 token 的信息,失去了目标模型的全局性质。
因此,EAGLE-3 不再使用目标模型的最后一层特征作为辅助信息,而是混合目标模型的低层、中层、高层信息来作为草稿模型的输入。
方法
与其他投机采样方法一致,EAGLE-3 交替执行草稿阶段和验证阶段。
草稿阶段以下图为例。在预填充或者上一个验证阶段,EAGLE-3 记录模型的低、中、高层特征序列,分别记为 l、m 和 h,拼接 k 维向量 l、m 和 h 得到 3k 维向量,然后通过一个全连接层将其降维到 k 维,就得到融合了不同层级信息的特征 g,其中 k 为目标模型的隐藏层维度。目标是生成以 “How can I” 为前缀的草稿 token 序列,只输入 g_how 和 g_can,草稿模型无法感知随机的采样过程。
因此 EAGLE-3 引入采样结果 I 的词向量嵌入 e_I。将 g 与对应的超前一个时间步的嵌入 e 拼接,即 g_how 与 e_can 拼接,g_can 和 e_I 拼接。将拼接后的向量通过全连接层降到 k 维,并将其输入进一个单层的 transformer 得到 a。然后,将 a 输入分类头,采样得到第一个草稿 token “do”。
在 step 1,以 “How can” 为前缀时,EAGLE-3 重用了来自目标模型的 g_how 和 g_can。
在 step 2,前缀是 “How can I”。理想的方式是重用来自目标模型的 g_how、g_can 和 g_I。但这是不可能的,因为 token “I” 还没有被目标模型检查,无法获取 g_I。EAGLE-3 用上一个 step 草稿模型的输出 a_I 替代 g_I,拼接 a_I 与采样结果 “do” 的词向量嵌入作为草稿模型 step2 的输入。
在 step 3,同样无法获得 g_do,所以使用 a_do 代替,拼接 a_do 与 e_it 作为草稿模型的输入。之后的 step 同理。
实验
EAGLE-3 在多轮对话、代码、数学推理、指令遵循、总结五项任务上分别使用 MT-bench、Humaneval、GSM8K、Alpaca、CNN/DM 数据集进行了实验,并与 7 种先进的投机采样方法(SpS、PLD、Medusa、Lookahead、Hydra、EAGLE、EAGLE-2)进行了比较。
该实验分别在 Vicuna (V), LLaMA-Instruct 3.1 (L31), LLaMA-Instruct 3.3 (L33), DeepSeek-R1-Distill-LLaMA (DSL) 上进行。
表格中的 Speedup 为加速比,τ 为平均接受长度,也就是目标模型每次前向计算能生成的 token 数。EAGLE-3 每次前向计算能生成大约 4-7 个 token,而自回归解码每次生成 1 个 token,因此 EAGLE-3 明显加速了大语言模型的生成,加速比为 3.1x-6.5x
在所有任务和模型上,EAGLE-3 的加速比和平均接受长度都是最高的,明显优于其他方法。
应用
EAGLE-3 发布第一天就被集成到 SGLang 中。在生产级框架中,EAGLE-3 也有数倍加速效果。以下实验由 SGLang 团队提供并以 LLaMA 3.1 8B(batch size=1, 1x H100)为例。
投机采样往往被认为在大 batch size 下会降低吞吐量。但是在 SGLang 这一生产级框架下,EAGLE-3 在 batch size 为 64 时仍可以提高 38% 的吞吐量,而 EAGLE 在 batch size 为 24 时就导致吞吐量下降。这里 1.00x 以 SGLang (w/o speculative) 的吞吐量作为基准。以下实验由 SGLang 团队提供并以 LLaMA 3.1 8B(1x H100)为例。
作者介绍
李堉晖:北京大学智能学院硕士,滑铁卢大学访问学者,受张弘扬老师和张超老师指导,研究方向为大模型加速和对齐。
魏芳芸:微软亚研院研究员,研究方向为具身智能、图像生成和 AI agents。
张超:北京大学智能学院研究员,研究方向为计算机视觉和大模型加速。
张弘扬:滑铁卢大学计算机学院、向量研究院助理教授,研究方向为大模型推理加速、AI 安全和世界模型。
胡桃けんじゃたいむ腿法娴熟 | 5天前 |
尼尔2b极限测试视频在线观看 |
男子疑在海底捞往火锅里小便 | 6天前 |
出包王女拉拉梨斗h全彩 |
丝袜短裙美女被勒死 | 0天前 |
BRAZZERS💋💋2 |
美女被❌到爽🔞高潮小说 | 0天前 |
禁漫♥天堂♥H漫画催眠 |
强制顶弄h囚禁强迫h | 8天前 |
总裁被cao成sao货自慰 |
成人做爰黄A片免费看直播室动漫 | 6天前 |
打纳西妲屁股打红了 |
AAA国产做受❌❌❌ | 9天前 |
在厨房里掀开麻麻裙子视频 |
电锯人第1集提前 | 3天前 |
海贼王佩罗娜口头禅太可怜了 |
金十四钗为什么不叫薇诺拉 | 2天前 |
三年级上册数学竖式题100道 |
裸男晨勃露j毛免费观看 | 2天前 |
江之岛盾子裸体自慰爆乳照 |