录屏回看
本章概要
多节点大模型推理不是单一的并行或加速问题,而是在模型容量、请求负载、硬件拓扑和服务目标共同约束下进行的系统优化。本章依次讨论阶段资源组织、模型静态布局、MoE 运行时执行路径和投机解码,并以 SLO 约束下的 goodput 作为统一评价目标。1. 问题定义、系统边界与决策框架
本节不展开具体优化机制,而是定义后续各节共同使用的问题边界、决策层次和评价口径。1.1 统一优化问题:可部署、可达标与可扩展
多节点推理系统需要同时回答三个问题:1.2 系统输入与请求生命周期
任何方案比较都必须固定或明确以下输入,否则实验结论不能直接横向比较:Prefill 与 Decode 的阶段关系
1.3 决策层次及其依赖关系
多节点推理可以分为四个相互依赖的决策层次:多节点推理的模型布局与运行时路由
1.4 统一评价指标与比较口径
在线推理首先关注服务结果指标:TTFT 和 TPOT 的 SLO attainment 同时达到目标时,系统能够支持的最大请求到达率。该定义是本章的主要评价口径,但完整评估还应覆盖以下层次:
1.5 本章路线
后续内容按系统决策顺序展开:- 第 2 节比较 Prefill/Decode 共置、Chunked Prefill 和分离部署;
- 第 3 节从容量约束出发,分析模型与状态的静态布局;
- 第 4 节在既定布局上分析 MoE 的运行时通信、负载均衡和专家副本;
- 第 5 节分析减少 Decode 串行调用的投机解码;
- 第 6 节给出复杂度预算、验证闭环与核心结论。
2. Prefill/Decode 资源组织
Prefill 与 Decode 共享模型状态,却具有不同的计算形态和延迟目标。本节先说明共置部署的阶段干扰,再比较 Chunked Prefill 与 PD 分离两类资源组织方式。数据参考 AI Infra Learning Docs — PD 分离 与 DistServe。2.1 阶段特征与共置干扰

DistServe 中 Prefill 对 Decode batch 的干扰
实验观察: 在该实验中,prompt 从 128 增至 1024 token 后,混合 batch 的 Decode 延迟倍率由约 1.8× 增至 12.6×。该结果说明长 Prefill 会显著放大阶段干扰,但 12.6× 不是 PD 分离的通用加速比。
2.2 独立 Prefill Pool 与 Decode Pool
Prefill/Decode 分离部署(disaggregated prefill and decoding,以下简称 PD 分离)将请求拆成两个阶段执行:- Prefill Pool 处理完整 prompt 并建立 KV cache;
- Decode Pool 接收中间状态并继续逐 token 生成;
- Scheduler 选择两类 Worker,并协调阶段交接。
Prefill/Decode 分离后的请求路径
PD 分离不等于“Prefill 一定用大 batch,Decode 一定用小 batch”。 它提供的是独立寻找两个阶段计算饱和点和 SLO 边界的能力。DistServe 报告,在其特定模型、请求分布、TTFT/TPOT SLO 和目标 SLO attainment 下,PD 分离支持的最大请求到达率最高提升 7.4×。这是该实验定义下的 goodput 提升,不是所有场景的裸吞吐都提高 7.4×。
2.3 KV cache Handoff 的新增成本
两个资源池通常各自承载模型权重或模型并行实例,因此分离还会增加权重驻留、实例预热和容量碎片。阶段边界不仅要交接 KV cache,还要传递当前生成位置、采样参数、停止条件和已生成 token ID 等请求元数据。Handoff 延迟可以粗略拆成固定开销与按数据量增长的传输开销: 其中, 是每次 Handoff 在批量数据传输前后的固定延迟,包括调度决策、控制元数据交换、源端与目标端同步、通信操作启动和首字节网络延迟;它不表示模型加载或 Worker 冷启动。 是 KV cache 大小, 是端到端有效带宽。 若只比较请求关键路径上的延迟,PD 分离成立的必要条件可近似写为: 其中 表示共置部署中被隔离掉的阶段干扰,后两项表示分离后新增的调度与排队时间。额外权重副本、容量碎片和运维复杂度不属于同一延迟量纲,应通过 goodput、GPU 数量或总体成本单独评估。 DistServe 对 OPT-175B 做过理想化估算:若每个 token 的 KV cache 约为 4.5 MB,2048 token 对应约 9.2 GB;若八条 64 GB/s 链路可被该传输并行且充分利用,理论传输时间约为 17.6 ms。17.6 ms 不是一般部署的实测值。 它假设聚合带宽充分兑现、没有 Host 中转和链路争用。生产环境应测量 P95/P99 Handoff 延迟,并确认 GPUDirect RDMA 等直接路径真正生效。进一步地,Mooncake 将 KV cache 视为可在 GPU VRAM、CPU DRAM 和 SSD 之间路由、复用和分层存储的集群资源,用于缓解跨池交接与缓存复用问题。该架构同时引入分层存储、传输调度和一致性管理,不等同于基础 PD 分离。
2.4 Chunked Prefill:保留共享资源池
PD 分离不是唯一方案。SARATHI 将长 prompt 划分为受每轮 token 预算限制的分块(chunk),每轮先安排延迟敏感的 Decode token,再用剩余预算执行 Prefill:2.5 方案选择与采用条件
PD 分离更适合以下场景:- 共置部署已经出现明显的 Prefill/Decode 干扰;
- TTFT 与 TPOT 都有严格 SLO;
- 集群足够大,可以独立调节两个资源池;
- KV cache 能通过高带宽路径传输,且隔离收益大于 Handoff 成本。
3. 超大 MoE 模型的静态布局与混合并行
阶段资源组织确定请求在哪里执行;本节进一步确定模型权重、专家、上下文和请求如何映射到 GPU。配置需要同时满足容量、单请求延迟、服务吞吐和互联拓扑约束。3.1 容量可行性与切分维度
并行配置首先必须通过容量可行性检查。Kimi K3 的公开参数可以量化超大 MoE 的部署压力:案例边界: 以上卡数只用于说明容量下限,不代表 Kimi K3 的实际部署配置。数据来源:Kimi K3 官方技术博客与 Kimi K3 技术报告。GPU 显存规格来自 NVIDIA 官方页面:A100 80GB、H200 141GB 和 DGX B200;B200 单卡 180GB 由 DGX B200 的 8 GPU、总计 1,440GB HBM3e 计算得到。容量下限只回答“至少需要多少设备”,不能决定采用哪种并行方式。不同策略对应不同的超限维度,初始选择可依据以下映射:
切分维度: TP 切层内权重与计算,SP 切 TP 组内非 TP 区域的训练激活,PP 切层间,EP 切专家,DP 切请求,CP 切 Attention 上下文。四种集合通信的语义与典型用途如下:
3.2 Tensor Parallelism(TP):层内并行与集合通信约束
结论: TP 让多张 GPU 同时计算同一层,从而分摊权重并缩短计算时间;代价是几乎每层都要同步,因此只能在高速互联域内有效扩展。TP 将同一层中的权重矩阵按行或按列切分。每张 GPU 只保存并计算其中一部分,随后通过集合通信合并局部结果。TP 的特点是 计算和通信都发生在每一层内部。所有参与设备必须保持接近同步:其中一张 GPU 或一条链路变慢,整组设备都会等待。因此,TP 的性能上限很大程度上由互联带宽和集合通信延迟决定。
经典案例:Megatron-LM 的 Attention 与 MLP 张量并行
经典 Megatron-LM 将 Transformer 中成对出现的线性层组织为“列并行输入投影 + 行并行输出投影”。设 TP group 包含 个 rank,输入 hidden state 在各 rank 上保持一致。
Megatron-LM 在 MLP 与 Self-Attention 中的张量并行
TP 与 SP 的前向、反向通信量
TP 与 SP 的前向、反向通信量
- 将 、 和 按输出维度切分,每个 rank 计算一组完整 attention head 的 、 和 ;
- 每个 rank 在本地完成 、softmax 和与 的乘法,head 内计算不需要跨 rank 通信;
- 将输出投影 按输入维度切分,每个 rank 得到部分结果 ;
- 对部分结果执行 All-Reduce:
Sequence Parallelism:切分非 TP 区域的激活
经典 TP 切分 Attention 和 MLP 的大矩阵乘,但 LayerNorm、Dropout 和残差连接仍在各 TP rank 上保存完整的 激活。Megatron-LM 的 Sequence Parallelism(SP)沿 sequence 维度切分这些非 TP 区域,使每个 rank 只保存约 的边界激活;进入 TP 区域时恢复完整 sequence,离开 TP 区域时再切回 sequence shard。
Megatron-LM 中 Tensor Parallelism 与 Sequence Parallelism 的组合
实现边界: 这里的 SP 是 Megatron-LM 中与 TP 配合使用、以降低训练激活显存为目标的 Sequence Parallelism,不等同于为超长上下文切分 Attention 计算的 Context Parallelism。通信量采用等尺寸边界张量与理想 Ring Collective 模型;QKV/门控投影融合、重计算、梯度累积、collective 算法和框架融合方式均可能改变实际通信字节数与关键路径。来源:原始 SP 论文 与 Megatron Core Tensor Parallel API。
TP 同时解决容量和延迟问题
TP 有两个常见动机:- 容量需求:单层权重或单个 MoE 专家无法放入一张 GPU;
- 延迟需求:希望多张 GPU 并行完成同一层计算,缩短单个模型实例的前向时间。
TP 的有效范围由互联拓扑决定
把高频集合通信限制在最快的互联域内,并在节省的计算时间无法覆盖新增通信时间之前停止扩大 TP。因此,常见部署将 TP group 限制在单个 8-GPU 节点或一个 NVSwitch 域内,再使用 PP、EP 或 DP 实现跨节点扩展。
3.3 Pipeline Parallelism(PP):模型容量与流水线延迟
结论: PP 让不同设备保存不同层,主要解决整个模型放不下的问题;单个 token 仍要依次经过全部 stage,因此它通常不用于降低 Decode 延迟。PP 将连续的 Transformer 层分配给不同 GPU 或 GPU 组。例如,一个 60 层模型可以被拆成三个 stage:
Pipeline Parallelism 的层间切分
Prefill 与 Decode 中的 PP 差异
3.4 Expert Parallelism(EP):专家布局与激活通信
结论: EP 将不同专家分布在不同 GPU 上,以满足 MoE 专家权重的容量约束;每个 MoE 层因此需要执行 token activation 的分发与结果回收。EP 是 MoE 特有的并行方式。假设一个 MoE 层有 16 个专家,分布在 4 张 GPU 上,每张 GPU 保存 4 个专家。gating network 为每个 token 选择 top-k 专家后,系统需要完成两次数据重排:
- Dispatch:把 token 的激活向量发送到目标专家所在的 GPU;
- Combine:专家计算完成后,把结果送回原来的 token 顺序并合并。
Expert Parallelism 的 Dispatch 与 Combine
All-to-All 通信量模型与数值例子
All-to-All 通信量模型与数值例子

DeepSpeed-MoE 在 8 到 64 张 GPU 上的推理扩展
实验观察: 增加 GPU 只有在专家并行通信和 kernel 实现同步优化时才能转化为有效扩展;GPU 数量本身不保证延迟下降或单卡吞吐稳定。
单 token 稀疏性与集群级设备利用率
从单个 token 看,它只访问少数专家,计算确实是稀疏的;从高并发服务的聚合视角看,不同 token 会选择不同专家,一批请求很可能让大多数甚至全部专家同时工作。 这两个结论并不矛盾:- 算法视角:每个 token 的计算量是稀疏的;
- 系统视角:在常规低延迟部署中,专家权重仍需在设备侧可用;高并发下,多数 GPU 可能同时活跃并持续参与 All-to-All。
EP 与动态路由的职责边界
Gating 结果通常不会完全均匀。如果某些专家收到的 token 明显更多,它们会成为热点;而一个 MoE 层必须等待相关专家完成后才能继续,因此最慢专家会决定整层延迟,这就是 straggler effect。 这里需要区分两个层次:- EP 是静态放置问题:哪些专家保存在哪些 GPU 上;
- 动态路由是运行时调度问题:当前 token 如何到达专家,热点如何限流、复制或迁移。
3.5 Context Parallelism(CP):序列切分与跨设备通信
结论: CP 将一个请求的序列位置分到多张 GPU,分摊超长上下文的计算和状态;但全局 Attention 仍需跨卡交换信息。超长上下文会同时带来两类压力:
- Prefill 的 Attention 计算量和延迟快速增长;
- KV cache 随序列长度增长,可能超过单卡容量。
Context Parallelism 的序列切分与 K/V 交换
经典 CP 方法与实现流程
自回归 Transformer 中,每个 Query 需要访问此前所有相关 Key/Value。CP 方法都沿 sequence 维度分摊输入,但必须通过通信恢复全局 Attention 依赖。常见实现包括全量收集、环形分块、sequence—head 维转置和二维混合;Striped Attention 则针对因果 Ring 的负载不均改进数据布局。术语说明: DeepSpeed-Ulysses、Ring Attention 和 USP 的论文通常使用 Sequence Parallelism 描述长序列 Attention 切分;本章按 Megatron 的术语将它们归入 CP,因为它们切分 Attention 上下文。这里的 SP 专指 3.2 节中复用 TP group、切分非 TP 区域训练 activation 的 Megatron Sequence Parallelism。
经典 CP 方法的执行流程
经典 CP 方法的执行流程

Ring Attention 的 Query 固定与 K/V 环形传递
a2a+p2p 和 Hierarchical CP 采用相近的工程分层思想。方法差异与选型
cp_comm_type:all_gather 对应全量 K/V 收集,p2p 对应 Ring 路径,a2a 对应 Ulysses 式 sequence/head 转置,a2a+p2p 对应分层混合。选择时应同时考虑上下文长度、CP degree、Q/KV head 数、节点内外网络差异以及计算能否覆盖通信。
CP 的能力边界: 上述方法都分摊了每设备的 Attention 状态与计算,但没有改变精确全注意力 的全系统总计算复杂度。它们主要改变的是每卡显存、计算分配和通信方式。对短 prompt 或逐 token Decode,Query 计算量较小,通信更难被隐藏,CP 不一定带来延迟收益。NVIDIA 工程实现参考:Megatron Core Context Parallelism。
CP 与 SP 的职责边界及组合
CP 和 SP 都沿 sequence 维度切分数据,但目标和执行阶段不同:组合边界: SP 主要减少训练 activation 的长期存储,CP 主要分摊 Attention 上下文。二者组合后,SP 的 All-Gather 只恢复 CP-local sequence,而不是全局 sequence;全局依赖仍由 CP 通信完成。
3.6 Data Parallelism(DP):实例复制与请求吞吐扩展
结论: DP 不再切分单个请求,而是复制完整模型实例,让不同副本并行处理不同请求。它提高整体吞吐,但不会缩短某个请求的模型路径。推理中的 DP 与训练中的 DP 目标不同:
- 训练 DP 复制模型,并通过梯度同步保持副本一致;
- 推理 DP 让不同副本独立处理不同请求,副本之间通常不需要同步前向结果。
DP 对请求吞吐与单请求延迟的影响
如果一个副本可以处理 10 req/s,8 个相互独立的副本在理想情况下可以接近 80 req/s。但某个请求仍然只由其中一个副本处理,因此其模型前向路径没有变短。3.7 Hybrid Parallelism:配置顺序、拓扑映射与验证
结论: 高频、细粒度通信应留在最快的互联域;跨节点尽量使用频率更低、消息更大的通信。混合并行是在容量、延迟、吞吐和物理拓扑之间寻找可行解。生产环境中的超大 MoE 通常组合多种并行方式:TP、PP、EP 和 CP 共同满足单实例的容量与延迟约束;训练时可在 TP group 内叠加 SP 以分摊激活;单实例配置稳定后,再通过 DP 扩展请求吞吐。

Megatron-LM 中 Tensor Parallelism 与 Pipeline Parallelism 的组合
实验观察: TP 与 PP 并非二选一:TP 在层内形成高频通信组,PP 沿模型深度传递激活,两类通信应映射到不同层级的物理互联。
64-GPU Rank Mesh 示例
64-GPU Rank Mesh 示例
混合并行的配置顺序
并行策略不存在脱离硬件和负载的固定最优值,但可以按以下顺序缩小搜索空间:- 先满足容量约束:确定权重和最大 KV cache 是否能放入目标设备;
- 让 TP 停留在高速互联域内:扩大到继续增加 GPU 不再降低端到端延迟为止;
- 训练 activation 成为瓶颈时叠加 SP:复用 TP group 分摊非 TP 区域的激活,并验证更多 collective 的延迟;
- PP 保持最小:只在 TP/EP 后模型仍放不下时增加 stage;
- MoE 尽量用 EP 分布专家:同时控制 All-to-All 范围和每个专家的 token 数;
- 仅为超长上下文增加 CP:用实测判断通信成本是否值得;
- 最后通过 DP 扩吞吐:复制已经调优好的模型实例。
硬件拓扑会改变最优组合
配置验证指标
改变并行配置后,至少需要同时观察:- 端到端 TTFT、TPOT 和 goodput;
- Tensor Core 利用率和 kernel 执行时间;
- NVLink/NIC 吞吐与集合通信占比;
- pipeline bubble 和 GPU 空闲区间;
- 不同专家收到的 token 数及最长尾部延迟;
- 单卡显存余量和 KV cache 可用容量。
4. MoE 执行路径:路由、通信与负载均衡
EP 定义逻辑专家到物理 rank 的静态布局,模型 Gating 为 token 选择逻辑专家,Runtime Router 再将 token-to-expert assignment 映射到具体 rank 或等价副本。对于包含远端 assignment 的 MoE 层,系统还需在 EP group 内完成 Dispatch 和 Combine;因此,关键路径同时受专家放置、通信拓扑和负载分布影响。本节依次分析执行路径、通信优化、负载均衡和运行时反馈控制。4.1 模型 Gating 与 Runtime Routing
MoE 系统中经常把两件不同的事都称为路由:结论: Gating 决定“应该调用哪个专家”,Runtime Router 决定“怎样到达这个专家”。性能优化首先应在不改变逻辑专家选择的范围内进行。在每个 MoE 层中,完整路径是:
MoE 层的 Gating、Dispatch、Expert 与 Combine
- 减少跨慢速链路的数据量,并通过分块流水使通信与专家计算重叠,尽可能将通信时间移出关键路径;
- 让各专家的完成时间尽量接近,而不只是让 token 数在统计上平均。
Kimi K3:在 896 个专家中动态选择 16 个
根据前述 Kimi K3 公开配置,若每个相关 MoE 层对每个 token 选择 16 个路由专家,且不计共享专家或其他固定分支,则包含 个 token 的一次层执行会产生: 个 token-to-expert 分配。即使完全均衡,每个专家平均也只能收到: 个 token。batch 较小时,单个专家收到的 token 较少,通信与 kernel 启动成本难以摊薄;batch 增大后,专家 GEMM 和消息粒度通常更有利,但总通信量、显存占用和热点专家的绝对排队长度也随之上升。因此,最优 batch 取决于固定开销的摊销收益能否覆盖带宽、容量和尾延迟成本。 Kimi K3 使用 Quantile Balancing 改善训练期专家分配,但训练阶段的均衡机制不能证明线上推理同样均衡。真实业务中的主题、请求长度和并发不断变化,仍需通过专家级 token 数、队列时间与 All-to-All 耗时验证运行时负载。4.2 通信优化:拓扑感知与通信计算重叠
结论: All-to-All 优化不是单纯追求更高峰值带宽,而是同时减少跨慢链路流量、增大消息粒度,并让传输与专家计算重叠。1. 让路由和专家放置感知拓扑 节点内 NVLink/NVSwitch 的带宽和延迟通常明显优于跨节点 InfiniBand 或 RoCE。路由系统可以先在本地高速互联域内完成交换,只有目标专家不在本地时才产生跨节点流量。 这种层级化通信需要同时设计:
- 哪些逻辑专家及其副本放在同一 GPU、节点或机架;
- Runtime Router 是否优先选择本地可用的等价副本;
- All-to-All 是一次全局执行,还是拆分为节点内重排和节点间交换。

DeepSpeed-MoE 的分层 All-to-All
实验观察: 分层 All-to-All 不改变逻辑 assignment;其主要作用是利用节点内快链路完成局部重排,并聚合跨节点消息,减少慢链路上的小消息和中间转发。只有结合专家副本或放置优化时,跨节点 assignment 的比例才可能进一步下降。“优先本地”不能覆盖模型的路由分数。如果为了减少通信而把 token 送到不同权重的低分专家,模型输出可能发生变化。只有路由到 同一专家的等价副本 时,局部性优化才不会改变模型语义。 2. 将通信分块并与计算重叠 将 Dispatch 拆成多个 chunk 后,专家可以在首批输入到达时启动计算,并与后续 chunk 的传输形成流水:
- TP/EP 通信组是否与 NVLink、NIC 和 NUMA 拓扑一致;
- 跨节点路径是否真正启用了 GPUDirect RDMA;
- 多端口 InfiniBand/RoCE 是否正确使用多 Rail 或 Bonding;
- All-to-All 是否被单个全局 Barrier 串行化;
- 通信与专家计算是否在时间线上真实重叠;
- 是否存在少数链路长期拥塞,而其他链路空闲;
- 压缩带来的网络收益是否覆盖转换开销和精度损失。
4.3 负载均衡:基于完成时间的优化目标
结论: MoE 层的延迟由最慢专家决定。均衡 token 数只是手段,真正要均衡的是包含排队、通信和计算在内的完成时间。
训练均衡与线上负载的差异
训练阶段可以加入 Load-Balancing Loss 和 Gating Noise,鼓励模型更均匀地使用专家。但线上流量并不服从训练数据的稳定分布:某一时段的请求可能集中在代码、数学或某个垂直领域,使相关专家持续过热。 例如,假设热点专家所在 GPU 的利用率达到 99%,而其他 GPU 平均仅为 60%。即使集群平均利用率不高,MoE 层仍需等待热点专家完成,其他设备的空闲也无法自动转化为更高吞吐。 设专家 收到的 assignment 数为 ,一个直观的负载偏斜指标是: 表示按 assignment 数完全均衡,数值越大说明热点越严重。但 assignment 数相同也不保证完成时间相同,因为不同 rank 的排队、链路和 kernel 效率可能不同。在忽略通信与专家计算重叠时,MoE 层关键路径可以粗略表示为: 最慢专家的排队与计算时间位于关键路径上。因此,运行时应同时观察 assignment 数、队列时间和专家服务时间,而不是只看平均 GPU 利用率。Capacity Factor
Capacity Factor 为每个专家设置一个 batch 内的容量上限。设:- batch 中有 个 token;
- 每个 token 选择 个专家;
- 总共有 个专家;
- Capacity Factor 为 。

Switch Transformer 中 Capacity Factor 1.0 与 1.5 的路由差异
实验观察: Capacity Factor 提供的是热点缓冲空间,而不是负载均衡能力。增大容量可以减少溢出;在固定容量和 padding 型实现中,它也会增加空槽、通信与计算浪费,而 dropless 或变长 grouped GEMM 实现的代价结构可能不同。例如,一个 batch 有 个 token,Kimi K3 每个 token 选择 个专家,总专家数 。完全均衡时,每个专家平均收到 100 个 token-to-expert assignment;若 ,容量上限约为 120。 Capacity Factor 不是“负载均衡算法”,而是给热点设置缓冲边界。上限过紧会频繁溢出并可能影响模型语义;上限过松又无法有效抑制 straggler。
专家容量溢出的处理方式
专家容量溢出的处理方式
4.4 Expert Replication:热点分流与语义一致性
结论: 复制同一个逻辑专家的权重,并在等价副本之间选择负载较低者,可以用额外显存换取热点容量,而不必改选其他专家。如果某些专家在较长时间内持续过热,可以把同一组权重复制到其他 GPU,并让路由系统在多个等价副本之间分流。 这种方法有三个特点:
- 针对性强:只复制热点专家,不必复制整个模型;
- 语义相对稳定:多个副本权重完全相同时,选择哪个副本不改变专家函数;
- 消耗额外显存:副本越多,可用于其他专家和 KV cache 的空间越少。
- 所有副本从同一 Checkpoint 加载并保持权重一致;
- 路由表更新不能让在途请求丢失目标;
- 新副本需要加载、注册内存和预热,无法瞬间生效;
- 释放副本前要确认没有尚未完成的 token。
4.5 Adaptive Routing:运行时反馈控制
结论: 观测专家队列、完成时间和链路拥塞,再选择物理副本、通信路径或较慢时间尺度的专家放置;但不能把系统负载直接凌驾于模型 Gating 之上。传统 Gating 根据 token 的模型分数选择逻辑专家。Adaptive Routing 在保持这一语义边界的前提下,还会考虑专家队列、处理时间、GPU 利用率和通信拥塞。
Adaptive Routing 的运行时反馈闭环
- 在 同一专家的等价副本 之间选择负载较低者;
- 改变通信路径或 All-to-All 调度顺序;
- 调整专家物理放置,但保持权重和逻辑映射不变。
- 因主专家繁忙而改选不同权重的次优专家;
- 动态修改 gating score 或 Top-k;
- 跳过某些专家计算;
- 因容量不足丢弃 token 的专家分支。
自适应路由的控制时间尺度
自适应路由的控制时间尺度
4.6 MoE 运行时优化汇总
5. Speculative Decoding:候选生成与批量验证
自回归解码要求当前位置的输出作为下一位置的输入,因而 Target Model 调用位于串行关键路径。投机解码使用低成本方法生成多个候选,再由 Target Model 批量验证,以减少串行调用次数。结论: 投机解码的收益取决于候选生成成本、平均接受长度与批量验证效率。本节算法与案例参考 AI Infra Learning Docs — Speculative Decoding。
5.1 Draft-and-Verify
标准 Decode 生成 100 个 token,通常需要约 100 次模型前向。投机解码将部分高成本 Target Model 调用转换为以下流程:- Draft Model 顺序提出 个候选;
- Target Model 将候选视为一段短 Prefill,一次计算所有候选位置及其后一个位置;
- 从前向后接受连续候选;若某个候选被拒绝,则在该位置生成修正 token 并结束本轮;
- 若 个候选全部通过,则再从 Target 的下一个位置采样一个 bonus token,使本轮最多推进 个 token。
标准投机解码的 Draft-and-Verify 流程
5.2 接受率与平均推进长度
为建立简化分析模型,假设系统仅在前序候选全部通过时检查下一个候选,且每个被检查候选均以相同条件概率 被接受。即使首个候选被拒绝,本轮也会生成一个修正 token;若 个候选全部通过,则额外生成一个 bonus token。因此平均推进长度近似为: 当 时:
Draft 长度对采样时间、接受率和循环开销的影响
实验观察: 更长的 draft 同时增加潜在推进长度和失败浪费;最优 由任务可预测性与 Draft/Verify 成本共同决定。
平均推进 3.69 个 token 不等于 3.69× 加速。 还要扣除 Draft、验证、采样和调度成本。
5.3 Target 分布的保持
标准投机采样不是简单比较 Top-1。设 Draft 对候选 给出的概率为 ,Target 给出的概率为 ,接受概率为: Target 概率不低于 Draft 时直接接受;Draft 过度偏爱某个候选时,只按 的比例接受。候选被拒绝后,算法还需要从尚未被 Draft 覆盖的概率质量中采样修正 token。候选拒绝后的修正分布与数值例子
候选拒绝后的修正分布与数值例子
“质量无损”指标准算法理论上保持 Target Model 的输出分布。 近似接受、跳层、低精度或随机数处理差异仍可能改变结果。
5.4 候选来源与接受语义
候选生成方式与接受规则是两个需要分别分析但并非任意组合的维度:前者决定候选成本和命中率,后者决定最终输出是否严格保持 Target Model 分布。严格的接受—拒绝校正要求能够获得或构造与候选机制相匹配的 proposal 分布;只输出候选集合而没有可用概率的机制,通常需要专门校正或采用近似接受。双模型、Prompt Lookup、Self-Speculative、EAGLE 和 Medusa 的主要差异在候选来源:5.5 EAGLE:预测未来 hidden state
EAGLE-1 将 Target Model 的 LM Head 输入 hidden state 作为 feature:token、Embedding、hidden state 与 LM Head
always 或 am。仅以 为输入时,下一状态的目标分布包含多条分支;加入实际采样 token 的 embedding 后,预测条件被限定到对应分支:

EAGLE 特征不确定性消融实验
实验观察: 在该实验配置下,单独预测 feature 的结果优于直接预测 token;加入 shifted token 后,预测输入包含实际采样分支信息,准确率和端到端加速比进一步提高。实验中,加速比从 token 预测的约 1.5×,提高到 feature 的约 1.9×,加入 shifted token 后约为 2.8×。这些是特定实验结果,不是固定加速承诺。
5.6 Medusa:多头预测与候选树
Medusa 从同一个 hidden state 并行预测多个未来位置:Medusa 多头预测、候选树与 Tree Attention
Top-5 覆盖率不是线上接受率,也不是 Medusa 的核心理论。 Medusa 的完整方法是 Multiple Decoding Heads、Candidate Tree 与 Tree Attention;Tree Attention 让共享前缀的多条路径在一次 Target 前向中完成验证。Medusa 的 Typical Acceptance 会接受 Target 认为“足够典型”的候选,但不再严格保持原始采样分布,需要单独评估生成质量。
5.7 适用条件与选型指标
6. 实施闭环与核心结论
前述技术分别作用于资源组织、模型布局、运行时路径和解码算法。生产部署不应一次性叠加全部机制,而应围绕当前关键瓶颈选择最小改动,并验证收益是否覆盖新增复杂度。6.1 复杂度预算
6.2 验证闭环
建议按以下流程实施优化:- 固定比较合同:明确模型与精度、负载分布、硬件拓扑、SLO 阈值、达标率和质量要求;
- 定位关键路径:使用端到端 tracing 与 profiling 区分排队、计算、通信、KV cache 和专家热点;
- 选择最小改动:只引入直接缓解当前瓶颈的机制,避免同时改变多个变量;
- 联合测量结果:同时观察 goodput、P95/P99 延迟、GPU 数量、显存、网络、成本和输出质量;
- 验证稳定性:覆盖不同 prompt/output 长度、并发、突发流量和故障场景;
- 保留回退路径:当收益不能稳定覆盖复杂度时,能够恢复上一版配置。
常见技术问题
以下问题集中说明正文中最容易混淆的概念、适用条件和指标边界。MoE 每个 token 只激活少数专家,为什么部署时仍需要大量 GPU 和显存?
MoE 每个 token 只激活少数专家,为什么部署时仍需要大量 GPU 和显存?
Expert Parallelism、模型 Gating 和 Runtime Router 分别负责什么,哪些调整可能改变模型输出?
Expert Parallelism、模型 Gating 和 Runtime Router 分别负责什么,哪些调整可能改变模型输出?
TP 和 PP 都能降低单卡权重占用,为什么 TP 通常限制在高速互联域,而 PP 更适合跨节点?
TP 和 PP 都能降低单卡权重占用,为什么 TP 通常限制在高速互联域,而 PP 更适合跨节点?
Megatron Sequence Parallelism 为什么能节省显存,但实际训练通信量可能高于经典 TP?
Megatron Sequence Parallelism 为什么能节省显存,但实际训练通信量可能高于经典 TP?
SP 和 CP 都沿 sequence 维切分数据,核心区别是什么,能否在同一个模型实例中同时启用?
SP 和 CP 都沿 sequence 维切分数据,核心区别是什么,能否在同一个模型实例中同时启用?
什么时候应采用 Prefill/Decode 分离,什么时候保留共享资源池并使用 Chunked Prefill?
什么时候应采用 Prefill/Decode 分离,什么时候保留共享资源池并使用 Chunked Prefill?
投机解码所说的“质量无损”具体保证什么,哪些实现不在这个保证范围内?
投机解码所说的“质量无损”具体保证什么,哪些实现不在这个保证范围内?
EAGLE 与 Medusa 都用于投机解码,它们预测的对象、候选结构和训练要求有什么不同?
EAGLE 与 Medusa 都用于投机解码,它们预测的对象、候选结构和训练要求有什么不同?
Medusa 的 Top-5 覆盖率超过 80% 是否意味着线上接受率超过 80%,或一定能获得固定加速比?
Medusa 的 Top-5 覆盖率超过 80% 是否意味着线上接受率超过 80%,或一定能获得固定加速比?
Capacity Factor 是否越大越安全,它与真正的专家负载均衡有什么区别?
Capacity Factor 是否越大越安全,它与真正的专家负载均衡有什么区别?
