AWS · ML 博客

在 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 头:

您可以直接从 JumpStart 模型中心部署这些模型,并预配置 P-EAGLE。无需手动训练草稿器、自定义容器或 vLLM 配置。本教程将演示使用 Qwen3-Coder-30B-A3B-Instruct 的部署过程。

前提条件

要遵循本教程,您需要:

步骤 1:打开 Amazon SageMaker Studio 并导航到 JumpStart

  1. 打开 Amazon SageMaker AI 控制台。
  2. 选择您的用户配置文件。
  3. 选择 Open Studio
  4. 在 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 实时推理端点在运行时会产生费用,无论它们是否正在积极处理请求。为避免不必要的成本,请在不再需要时删除端点。

要删除端点,请执行以下步骤:

  1. 导航到 Amazon SageMaker Studio 控制台,然后在左侧边栏中选择 Deployments > Endpoints
  2. 从列表中选择端点。
  3. 从右上角的操作栏中选择 Delete
  4. 在确认对话框中,选择“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 通过引入两个可学习参数来解决这种依赖关系,这两个参数代表未来位置的缺失输入:

P-EAGLE 论文的理论分析表明,仅 attention 就提供了足够的位置信息,从而消除了对特定位置隐藏状态的需求。有了这些占位符,所有 K 个草稿位置可以并行构建,并在一次前向传播中通过草稿器的 transformer 层进行处理。

逐步草稿过程

每个 P-EAGLE 草稿迭代分两步进行。

步骤 1 – 目标模型前向传播。 目标模型处理当前上下文并生成一个新 token(标准自回归生成)。在此过程中,P-EAGLE 从目标模型的多个层(层 2、L/2 和 L-1,拼接为 3d 维度)捕获隐藏状态。这些隐藏状态编码了目标模型在最近生成位置上的上下文理解。

步骤 2 – 并行草稿生成。 草稿器同时构建 K 个输入位置:

所有 K 个位置一起通过 N 个 transformer 层(实践中草稿器使用 4 层,仅占目标模型参数的 2-5%),然后通过语言模型头,同时生成 K 个草稿 token 预测。然后,目标模型使用标准推测解码接受标准,在单次验证前向传播中验证所有 K 个候选 token。

并行草稿的实际优势

从顺序草稿到并行草稿的转变对部署有几个实际影响:

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 工作流。

译自 AWS · ML 博客 · 录于 二〇二六年六月十七日