在 Amazon SageMaker AI 上使用 P-EAGLE 并行化推测解码
Parallelize speculative decoding with P-EAGLE on Amazon SageMaker AI
AWS 发明了 Parallel-EAGLE(P-EAGLE)并将其贡献给开源社区,这是一种将推测解码从迭代过程转变为完全并行化的方法。P-EAGLE 通过在一次前向传播中同时预测所有草稿 token,消除了顺序草稿阶段。在 NVIDIA B200 GPU 上对 Qwen3-Coder-30B-A3B-Instruct 的基准测试中,P-EAGLE 相比 EAGLE-3 吞吐量提升最高达 1.69 倍。Amazon SageMaker JumpStart 现已原生支持 P-EAGLE,适用于 GPT-OSS-120B、GPT-OSS-20B、Qwen3-Coder-30B-A3B-Instruct 和 Gemma-4-31B-IT 四个模型。
随着大型语言模型(LLM)的规模和复杂性不断增长,在最小化延迟的同时最大化推理吞吐量,仍然是企业生产部署面临的关键挑战。推测解码(Speculative decoding)是解决这一问题的有效策略之一,它利用一个轻量级的草稿模型来猜测未来的 token,然后由目标 LLM 在一次前向传播中验证这些 token。尽管像 EAGLE(Extrapolation Algorithm for Greater Language-model Efficiency,一种提升语言模型效率的外推算法)这样的先进框架已经实现了显著的加速,但它们遇到了一个隐藏的架构天花板:其草稿 token 是自回归生成的。由于每个草稿 token 都依赖于前一个 token 的输出,生成 K 个候选 token 需要 K 次顺序的前向传播通过草稿头,这导致延迟成本随推测深度线性增长。最新的迭代版本 EAGLE-3 通过直接预测 token(而非特征)以及结合目标模型多个层的表示,改进了早期版本,从而提升了草稿准确性,并使得该方法能够从更大的训练数据集中受益。然而,即使有了这些改进,根本的顺序草稿约束依然存在。推测得越深,积累的草稿开销就越大,最终会侵蚀性能增益。为了克服这一瓶颈,AWS 发明了 Parallel-EAGLE(P-EAGLE)并将其贡献给开源社区。这是一种突破性的方法,它将推测解码从迭代过程转变为完全并行化的操作。P-EAGLE 通过在一次前向传播中同时预测所有推测性草稿 token,完全消除了嵌套的顺序草稿阶段。举例说明:如果目标模型生成了 token “Paris”,EAGLE 需要四次顺序的草稿器前向传播来提议接下来的四个 token(“, known for its”)。而 P-EAGLE 则用可学习的占位符填充位置 2-4,并一次性预测所有四个 token(参见解决方案概述中的图示)。通过将草稿 token 数量与顺序前向传播的次数解耦,P-EAGLE 允许进行更深入的推测,而不会增加延迟开销。在先进高性能硬件上运行的真实世界基准测试中,这种高度并行化的方法相比原始 EAGLE 框架,吞吐量提升高达 1.69 倍。如今,Amazon SageMaker JumpStart 现已原生支持 P-EAGLE,适用于一系列流行的基础模型。SageMaker JumpStart 提供了一个精心策划的最先进开放权重模型中心,可通过单击或几行代码进行部署。通过将 P-EAGLE 的模型优化与 Amazon SageMaker AI 的全托管环境相结合,开发者现在可以部署比 EAGLE-3 快 1.69 倍的 P-EAGLE 加速推理端点,而无需管理复杂的底层 CUDA 内核或分布式服务设置。本文将指导您如何直接在 Amazon SageMaker AI 中使用 P-EAGLE。它将演示如何从 SageMaker JumpStart 目录中选择兼容模型、配置并行草稿规范,以及部署高度优化的实时 SageMaker AI 端点,以加速您的生成式 AI 应用。
基准测试
以下基准测试比较了在 NVIDIA B200 GPU 上使用 FP8 量化运行 Qwen3-Coder-30B-A3B-Instruct 时,P-EAGLE、EAGLE-3 和标准推理(无推测)的性能。结果以每秒估计总输出 token 数(OTPS)衡量。
不同并发级别下的每秒输出 token 数对比。P-EAGLE(最佳 K 值)在两个基准测试中均持续优于 EAGLE-3 和基线。
HumanEval:每秒总输出 token 数
| 并发数 | P-EAGLE K=3 | P-EAGLE K=7 | P-EAGLE K=11 | EAGLE-3 K=3 | EAGLE-3 K=7 | EAGLE-3 K=11 | 基线 | P-EAGLE / EAGLE-3 | P-EAGLE / 基线 |
|---|---|---|---|---|---|---|---|---|---|
| 1 | 665 | 1,032 | 1,167 | 651 | 905 | 955 | 294 | 1.22x | 3.97x |
| 4 | 2,205 | 3,313 | 3,710 | 2,198 | 3,044 | 3,215 | 889 | 1.15x | 4.17x |
| 8 | 3,958 | 5,786 | 6,252 | 3,979 | 5,493 | 5,589 | 1,587 | 1.12x | 3.94x |
SPEED-Bench Code:每秒总输出 token 数
| 并发数 | P-EAGLE K=3 | P-EAGLE K=7 | P-EAGLE K=11 | EAGLE-3 K=3 | EAGLE-3 K=7 | EAGLE-3 K=11 | 基线 | P-EAGLE / EAGLE-3 | P-EAGLE / 基线 |
|---|---|---|---|---|---|---|---|---|---|
| 1 | 605 | 828 | 873 | 526 | 620 | 612 | 294 | 1.41x | 2.97x |
| 4 | 2,003 | 2,656 | 2,777 | 1,777 | 2,084 | 2,059 | 889 | 1.33x | 3.12x |
| 8 | 3,596 | 4,638 | 4,680 | 3,218 | 3,762 | 3,579 | 1,587 | 1.24x | 2.95x |
| 32 | 9,748 | 10,643 | 11,537 | 8,796 | 9,607 | 10,776 | 4,452 | 1.07x | 2.59x |
| 128 | 20,337 | 23,329 | 22,191 | 19,313 | 22,845 | 22,255 | 10,943 | 1.02x | 2.13x |
P-EAGLE / EAGLE-3 比率比较了每个并发级别下最佳 P-EAGLE 配置与最佳 EAGLE-3 配置。
实时推理对比
以下屏幕录制展示了 P-EAGLE 在 Qwen3-Coder-30B-A3B-Instruct 上的实际运行情况。
Qwen3-Coder-30B-A3B-Instruct 在 Amazon SageMaker AI 端点上运行于 ml.g7e.2xlarge。P-EAGLE 并行 K=3(左)与标准推理(右)的每秒 token 数对比。
在 SageMaker JumpStart 上开始使用 P-EAGLE
Amazon SageMaker JumpStart 为具有 P-EAGLE 并行推测解码功能的基础模型提供一键式部署体验。发布时,以下四个模型提供预训练的 P-EAGLE 头:
- GPT-OSS-120B
- GPT-OSS-20B
- Qwen3-Coder-30B-A3B-Instruct
- Gemma-4-31B-IT
您可以直接从 JumpStart 模型中心部署这些模型,并预配置 P-EAGLE。无需手动训练草稿器、自定义容器或 vLLM 配置。本教程将演示使用 Qwen3-Coder-30B-A3B-Instruct 的部署过程。
前提条件
要遵循本教程,您需要:
- 一个有权访问 Amazon SageMaker AI 的 AWS 账户。
- 一个至少配置了一个用户配置文件的 Amazon SageMaker AI 域。
- 用于 SageMaker 实时推理端点的 ml.g7e.2xlarge(或等效 GPU 实例)的服务配额。
步骤 1:打开 Amazon SageMaker Studio 并导航到 JumpStart
- 打开 Amazon SageMaker AI 控制台。
- 选择您的用户配置文件。
- 选择 Open Studio。
- 在 Amazon SageMaker Studio 中,导航到左侧边栏的 JumpStart / Models。
Amazon SageMaker Studio 主页,左侧导航栏中显示 JumpStart / Models。
步骤 2:搜索与 P-EAGLE 兼容的模型
在 JumpStart 模型中心,搜索 Qwen3-Coder-30B-A3B-Instruct。这是一个高性能推理模型,具有 30 亿参数的激活混合专家(mixture-of-experts)配置,使其成为推测解码加速的候选模型。
在 JumpStart 模型中心搜索“qwen3-coder-30b”。
步骤 3:查看模型卡片
选择模型以打开其卡片页面。在这里,您可以查看模型的亮点、许可证信息和受支持的部署选项。选择右上角的 Deploy 按钮。这将打开预配置了 P-EAGLE 的一键部署流程。
Qwen3-Coder-30B-A3B-Instruct 的模型卡片,显示 Evaluate、Deploy 和 Train 操作。
步骤 4:配置部署
选择 Deploy 后,将出现端点配置页面。在底部的 Models 部分下,模型被标记为 Inference Optimized,表示已预配置 P-EAGLE 推测解码。选择模型名称右侧的右箭头以展开并查看环境变量。
部署配置页面,包含实例类型、实例数量和推理类型设置。
步骤 5:验证 P-EAGLE 推测配置
向下滚动到 Environment variables 部分。P-EAGLE 的关键配置是 SM_VLLM_SPECULATIVE_CONFIG 环境变量,它已预先填充了以下内容:
{"model": "/opt/ml/additional-model-data-sources/eagle", "method": "eagle3", "num_speculative_tokens": 3, "parallel_drafting": true}
这告诉 vLLM 推理服务器加载预训练的 P-EAGLE 草稿器头。P-EAGLE 作为 EAGLE-3 架构的并行草稿扩展原生集成。指定 "parallel_drafting": true 会激活 P-EAGLE 管道,该管道会在底层自动执行并行多 token 草稿。num_speculative_tokens 参数控制每次单次前向传播中草稿的 token 数量。
显示环境变量 SM_VLLM_SPECULATIVE_CONFIG 及 P-EAGLE 草稿器配置。
步骤 6:等待端点进入服务状态
选择 Deploy 以创建端点。SageMaker AI 会配置实例、下载模型工件和 P-EAGLE 草稿器头,并启动 vLLM 推理服务器。几分钟后,端点状态将转换为 In service(绿色),确认模型已准备好接受推理请求。
端点摘要显示在 ml.g7e.2xlarge 上状态为“In service”,推理类型为实时。
步骤 7:在 Playground 中测试端点
导航到端点页面上的 Playground 选项卡,直接从 AWS Management Console 测试推理。使用 vLLM 兼容的聊天补全格式的负载,例如:
{
"model": "qwen3-coder",
"messages": [
{
"role": "user",
"content": "What is deep learning?"
}
],
"max_tokens": 512,
"temperature": 0.3
}
选择 Send Request 以调用端点。响应将出现在右侧的 Inference Result 面板中,显示模型生成的补全内容以及延迟指标。
推理结果显示在 3,318 毫秒内成功响应,并启用了 P-EAGLE 推测解码。
端点现在已准备好为生产流量提供服务,与标准自回归解码相比,吞吐量有所提高。
步骤 8:清理
重要提示: Amazon SageMaker AI 实时推理端点在运行时会产生费用,无论它们是否正在积极处理请求。为避免不必要的成本,请在不再需要时删除端点。
要删除端点,请执行以下步骤:
- 导航到 Amazon SageMaker Studio 控制台,然后在左侧边栏中选择 Deployments > Endpoints。
- 从列表中选择端点。
- 从右上角的操作栏中选择 Delete。
- 在确认对话框中,选择“I confirm that I want to delete the endpoint”,然后选择 Delete endpoint。
Amazon SageMaker Studio 中的端点删除确认对话框。
解决方案概述
P-EAGLE 通过用可学习的占位符表示替换自回归 EAGLE 中的顺序依赖链,实现了并行草稿生成。这些占位符允许所有草稿位置同时计算,消除了推测深度与草稿器延迟之间的线性关系。
自回归 EAGLE 中的顺序依赖
在自回归 EAGLE 中,草稿一个 token 需要两个输入:(1)先前预测 token 的 token embedding,以及(2)草稿器在前一个位置产生的隐藏状态。为了预测 token t1,草稿器获取目标模型最后生成 token 的 token embedding 以及目标模型在生成该 token 时产生的隐藏状态。为了预测 t2,它需要 t1 的 embedding 和用于预测 t1 的隐藏状态,这两者只有在第一次前向传播完成后才能获得。这个链对每个后续位置重复。生成 K 个草稿 token 需要 K 次顺序的前向传播。
P-EAGLE 如何打破这个链
P-EAGLE 通过引入两个可学习参数来解决这种依赖关系,这两个参数代表未来位置的缺失输入:
- 掩码 token embedding(embmask) – 一个学习到的向量,用于替代位置 2 到 K 处未知的前一个 token embedding。它充当一个中性的“我不知道我前面是什么 token”信号,模型在训练期间学习解释该信号。
- 共享隐藏状态(hshared) – 一个学习到的隐藏状态向量,在所有多 token 预测(MTP)位置之间共享。它替代了草稿器前一个位置的隐藏状态,而该状态通常需要先前的前向传播来计算。
P-EAGLE 论文的理论分析表明,仅 attention 就提供了足够的位置信息,从而消除了对特定位置隐藏状态的需求。有了这些占位符,所有 K 个草稿位置可以并行构建,并在一次前向传播中通过草稿器的 transformer 层进行处理。
逐步草稿过程
每个 P-EAGLE 草稿迭代分两步进行。
步骤 1 – 目标模型前向传播。 目标模型处理当前上下文并生成一个新 token(标准自回归生成)。在此过程中,P-EAGLE 从目标模型的多个层(层 2、L/2 和 L-1,拼接为 3d 维度)捕获隐藏状态。这些隐藏状态编码了目标模型在最近生成位置上的上下文理解。
步骤 2 – 并行草稿生成。 草稿器同时构建 K 个输入位置:
- 位置 1(下一个 token 预测) – 使用刚生成 token 的实际 token embedding 与从目标模型捕获的隐藏状态拼接。此位置与标准自回归 EAGLE 相同:它有真实的上下文可供使用。
- 位置 2–K(多 token 预测) – 每个位置使用掩码 token embedding(embmask)与共享隐藏状态(hshared)拼接。这些学习到的占位符打破了顺序依赖。没有位置需要等待其前一个位置的输出。
所有 K 个位置一起通过 N 个 transformer 层(实践中草稿器使用 4 层,仅占目标模型参数的 2-5%),然后通过语言模型头,同时生成 K 个草稿 token 预测。然后,目标模型使用标准推测解码接受标准,在单次验证前向传播中验证所有 K 个候选 token。
并行草稿的实际优势
从顺序草稿到并行草稿的转变对部署有几个实际影响:
- 更深入的推测没有额外成本: 在自回归 EAGLE 中,将 K 从 3 增加到 7 会使草稿器延迟增加三倍。在 P-EAGLE 中,K=3 和 K=7 的成本相同:一次前向传播。P-EAGLE 在 K=7 时达到峰值吞吐量,而自回归 EAGLE-3 在 K=3 时达到峰值。
- 大规模下的一致增益: 在 NVIDIA B200 GPU 上,P-EAGLE 在 MT-Bench、HumanEval 和 SPEED-Bench 上比 EAGLE-3 提供 1.05 倍至 1.69 倍的加速,即使在高并发(c=64)下也能保持增益。
- 针对推理工作负载优化: 现代大型语言模型会产生长输出(中位数约 3,900 token,P90 约 10,800 token)。P-EAGLE 的训练框架使用一种序列分区算法,支持在长达 20K token 的序列上进行训练。这确保了草稿器与推理时看到的上下文长度相匹配,这是一个关键因素,在较短序列上训练的方法会导致接受率下降高达 25%。
- 无质量妥协: 因为推测解码会针对目标模型验证所有草稿 token,所以最终输出在数学上与目标模型自己产生的结果相同。P-EAGLE 加速了生成,而不会改变模型行为。
EAGLE 与 P-EAGLE 架构对比。 在 EAGLE(上图)中,每个草稿位置都需要前一个位置的 token embedding 和隐藏状态,从而创建一个顺序依赖链,需要 K 次前向传播才能生成 K=4 个草稿 token。P-EAGLE(下图)通过在位置 2–K 处替换为可学习的占位符([MASK] token embedding 和一个共享隐藏状态 h_shared)来打破这个链。所有草稿 token 都在一次前向传播中生成,没有顺序依赖。
结论
P-EAGLE 代表了推测解码处理草稿生成方式的根本性转变。通过用并行多 token 预测替换顺序自回归草稿管道,P-EAGLE 消除了推测深度与草稿器延迟之间的线性关系。这支持以零额外成本进行更深、更激进的推测。结果是,在生产工作负载上,吞吐量比 EAGLE-3 提升高达 1.69 倍,且输出质量不受影响。借助 Amazon SageMaker JumpStart 的原生支持,部署 P-EAGLE 加速模型现在只需一键操作。轻量级草稿器架构、可扩展的长上下文训练以及 SageMaker AI 集成的结合,使 P-EAGLE 成为生产 AI 应用实现更快推理的实用途径。
要开始使用,请打开 Amazon SageMaker AI 控制台,导航到 JumpStart,然后部署一个受支持的 P-EAGLE 模型。有关 P-EAGLE 架构和训练方法的更多信息,请参阅 arXiv 上的 P-EAGLE 论文和 vLLM 集成博客文章。要了解有关在 Amazon SageMaker AI 上部署模型的更多信息,请参阅 Amazon SageMaker AI 文档。要在您自己的数据上训练 EAGLE 头,Amazon SageMaker AI 也支持该功能,该功能于去年推出。
致谢
我们要感谢 Kyle Ulrich、Hemant Singh、Ashish Khetan、Evan Kravitz、Mike James、Xu Deng 和 Kareem Syed-Mohammed 的贡献与合作。
关于作者
Andy Peng Andy 是一位高级 ML 研究工程师,热衷于构建基于科学研究的创新产品。他为 AWS SageMaker AI 和 Bedrock、Amazon S3、AWS App Runner、AWS Fargate、Alexa AI Health & Wellness(对话式 AI)以及 AWS Payments 的关键计划做出了贡献,推动了从 0→1 孵化到大规模增长的努力。开源爱好者。
Daniel Quang Daniel 是 AWS Frontier AI Startups 团队的解决方案架构师,他帮助世界上最大和最具战略意义的 GenAI 初创公司在云上扩展其基础设施。他拥有加州大学尔湾分校的计算机科学博士学位,研究方向为机器学习和生物信息学。
Siddharth Shah Siddharth 是 AWS SageMaker 的首席工程师,专门从事大型语言模型的大规模模型托管和优化。他之前曾参与 Amazon Textract 的发布、模型托管平台的性能改进以及 Amazon S3 Glacier 的加速检索系统。工作之余,他喜欢远足、电子游戏和业余机器人技术。
Dan Ferguson Dan 是 AWS 的解决方案架构师,常驻美国纽约。作为机器学习服务专家,Dan 致力于支持客户高效、有效且可持续地集成 ML 工作流。