vLLM Large Scale Serving: DeepSeek @ 2.2k tok/s/H200 with Wide-EP

发表时间: 2025-12 · Blog post by vLLM Team (blog.vllm.ai)

原文: https://blog.vllm.ai/blog/2025-12-17-large-scale-serving

作者/机构:vLLM Team

速读

一句话结论
基于 vLLM 的 V1 引擎,通过引入 Wide-EP、双批次重叠(DBO)和专家并行负载均衡(EPLB)等核心机制,成功解决了 DeepSeek 类稀疏 MoE 模型在大规模部署时的显存浪费与通信瓶颈问题,在 H200 集群上实现了单卡 2.2k tokens/s 的持续推理吞吐量。

要解决什么问题
部署像 DeepSeek-V3/R1 这样拥有 671B 总参数但每次前向传播仅激活 37B 参数的前沿模型时,传统的并行策略会遇到严重的机制卡点。首先是显存浪费问题,对于 DeepSeek 的多头潜在注意力(MLA)架构,传统的张量并行(TP)并不是最优解,因为在 TP 模式下,潜在投影(latent projections)会在不同的分片之间被重复计算和存储,导致严重的显存冗余,直接限制了可用的 KV Cache 容量。其次是通信与负载瓶颈,如果单纯增加专家并行(EP)的维度来利用稀疏激活特性,会导致跨节点通信开销剧增,使得 GPU 经常处于等待通信完成的空闲状态;同时在真实推理流量下,token 路由极度不均衡,会导致部分专家节点严重过载而其他节点闲置。最后是同步阻塞问题,在 EP 架构下,由于 token 可能被路由到任意节点,MoE 层之间必须进行严格的同步,此时如果采用常规的混流处理,单个计算密集的 Prefill(预填充)请求就会拖慢整个 EP 组的 Decode(解码)前向传播速度。

怎么做的
为了绕开上述卡点,该方案设计了四个关键部件。第一是 Wide-EP 架构,它将专家并行(EP)与数据并行(DP)结合。通过 DP 复制注意力层,使得潜在投影在各个节点上保持独立,从而避免了 TP 带来的显存重复占用问题,大幅增加了整个部署集群的有效批处理大小,并底层集成了 DeepEP 等高效 All-to-All 通信算子。第二是双批次重叠(Dual-batch Overlap, DBO),用于掩盖高 EP 维度带来的通信延迟。其核心思路是将计算与集合通信重叠:主线程创建多个微批次(microbatch)工作线程,当第一个线程发起 MoE 分发(dispatch)通信后,立即将控制权让出给第二个线程进行分发,随后交替进行结果合并(combine),通过这种微批次交替执行的机制榨干 GPU 的利用率。第三是专家并行负载均衡(EPLB)。系统在每次 MoE 前向传播时记录每个 token 的负载,并通过滑动窗口聚合 EP 节点间的统计数据;当达到设定的重平衡间隔时,负载均衡器会重新计算逻辑专家到物理专家的映射,并在不重启模型的情况下进行权重洗牌(weight shuffle),解决节点间的旱涝不均。第四是分离式服务(Disaggregated Serving),将 Prefill 和 Decode 阶段物理分离。由于 EP 组内的节点必须同步等待,分离部署避免了长文本 Prefill 请求对 Decode 节点造成的同步阻塞,同时允许为两个阶段分别配置偏向高吞吐或低延迟的专属通信内核。

效果如何
实验在采用 Infiniband 网络和 ConnectX-7 网卡的 Coreweave H200 集群上进行,模拟了生产环境下的多节点部署。由于本文主要展示 vLLM 自身的迭代收益,对比基线为此前未经过此轮深度优化(即缺少 DBO 机制、未融合 silu-mul-quant 算子、未修复 TP 注意力 Bug)的早期社区基准测试版本。量化结果显示,优化后的方案在 Decode 阶段实现了显著的性能飞跃,将单张 H200 GPU 的持续吞吐量从基线版本的约 1.5k tokens/s 提升到了 2.2k tokens/s。这一吞吐量的提升直接允许运维人员在保持目标 QPS 不变的情况下,大幅减少所需的模型副本数量,从而显著降低了单 token 的推理成本。在局限性方面,作者指出随着专家并行维度的增加,节点间的同步开销依然是一个客观存在的代价,必须依赖 DBO 等机制强行掩盖;且该方案在实际落地时,需要依赖 llm-d、Dynamo 或 Ray Serve LLM 等外部调度框架来实现完整的生产级分离式路由和部署。

主要贡献

vLLM在v0.11.0版本中彻底移除了V0引擎的遗留代码,标志着向改进后的V1引擎架构的全面迁移。针对当前代表高性能大语言模型(LLM)推理最先进水平的DeepSeek风格的分离式服务(disaggregated serving)和稀疏混合专家(MoE)模型部署,vLLM团队构建了一系列核心优化策略以进一步提升吞吐量。

本文的核心创新点与优化技术包括:

  • 异步调度(Async scheduling)
  • 双批处理重叠(Dual-batch overlap)
  • 分离式服务(Disaggregated serving)
  • CUDA图模式设置为 FULL_AND_PIECEWISE
  • 默认启用DeepGEMM
  • 集成DeepEP内核
  • 专家并行负载均衡(Expert parallel load balancing)
  • 针对DeepSeek-R1的SiLU内核优化

这些优化成果已在SemiAnalysis的开源InferenceMax性能基准测试中得到验证,并在Meta、LinkedIn、Red Hat、Mistral和HuggingFace等团队的生产环境中获得了信任与应用。

实验环境与结果

实验环境配置:

  • 硬件配置:Coreweave H200 GPU集群。
  • 网络配置:使用配备ConnectX-7网卡的Infiniband进行连接。
  • 部署场景:类生产环境的多节点部署。

实验结果与分析:
近期社区基准测试表明,在上述部署环境下,每张H200 GPU的持续吞吐量达到了 2.2k tokens/s。这一结果相比早期基准测试中约 1.5k tokens/s 的表现有了显著的提升。

性能提升归因:
这种性能增益直接得益于持续的优化工作,主要包括:

  1. 内核改进:如silu-mul-quant融合、Cutlass QKV内核以及张量并行(TP)注意力机制的Bug修复。
  2. 解码阶段的优化:成功实现了用于解码的双批处理重叠(Dual Batch Overlap, DBO)。

这一性能提升使运营商能够通过整合工作负载并减少达到目标QPS所需的副本数量,从而获得直接收益,最终降低每个Token的计算成本。

预填充结果
解码结果

核心方法与技术细节

Wide-EP(宽专家并行)

部署前沿模型的考量:部署如DeepSeek-V3系列的前沿模型需要考虑两个主要因素。首先是稀疏专家激活,在DeepSeek-R1中,671B的总参数在每次前向传播中只有37B是活跃的。其次是KV缓存管理,张量并行(Tensor Parallel, TP)部署对于DeepSeek的多头潜在注意力(Multi-head Latent Attention, MLA)架构并非最优,因为潜在投影(latent projections)会在不同的分片(shards)之间重复。

专家并行(EP)模式:专家并行是一种利用上述特性来最大化有效KV缓存的部署模式,在vLLM中可以通过--enable-expert-parallel标志来支持。在这种模式下,部署中的各个rank共享一组专家。在前向传播期间,Token会在各个rank之间进行路由,以便由合适的专家进行处理。
Wide-EP Token路由

Wide-EP与数据并行的结合:Wide-EP将专家并行(EP)与数据并行(DP)结合在一起。数据并行部署可以使用mp或ray数据并行后端启动,这在Ray集群中提供了更简单的设置。与张量并行相比的优势在于,TP策略在每张H200上显示有34GB的空闲设备内存,但对于MLA模型,每个rank必须复制潜在注意力投影。而在DP部署中,注意力层被复制,使得潜在投影在各个rank之间是独立的,从而增加了整个部署的有效批处理大小(batch size)。

降低同步开销的内核集成:增加专家并行的程度会增加各rank之间的同步开销。为了解决这个问题,vLLM集成了对DeepEP高吞吐量和低延迟的all-to-all内核的支持。此外,vLLM还支持Perplexity MoE内核以及基于NCCL的AllGather-ReduceScatter all-to-all后端。
vLLM all-to-all后端

Dual-batch Overlap (DBO,双批处理重叠)

微批处理策略的集成:vLLM集成了DeepSeek的微批处理(microbatching)策略,称为双批处理重叠(DBO),可以通过命令行的--enable-dbo标志启用。该策略将计算与集合通信(collective communication)重叠,以提高GPU利用率。

DBO的执行步骤:vLLM具体通过以下步骤实现DBO:

  1. 首先,跨rank执行集合的all_reduce操作,以协商微批处理是否会有益,其最小阈值可通过--dbo-decode-token-threshold进行调整。
  2. 接着,主线程创建微批处理工作线程,这些线程负责完成CUDA图(CUDA graph)的捕获。
  3. 最后,vLLM的模块化MoE all-to-all内核基类协调微批处理工作线程的启动,在等待GPU工作完成时让出控制权。

无DBO的性能瓶颈:在没有DBO的DeepSeek解码工作负载的分析追踪中,“MoE Dispatch/Combine”部分显示,尽管计算负载很小,但在集合通信上花费了过多的时间。
未启用DBO

启用DBO后的工作流与效果:在启用DBO的相同工作负载追踪中,第一个微批处理工作线程启动并完成MoE分发(dispatch),然后立即将控制权让给第二个微批处理工作线程。接着,第二个线程完成自己的分发,完成后将控制权交还给第一个线程。最后,第一个工作线程完成其组合(combine)操作,然后再次将控制权让给第二个微批处理工作线程。这种机制在通信开销高的部署中(例如具有高专家并行度的部署)实现了更高的GPU利用率。
启用DBO后

Expert Parallel Load Balancing (EPLB,专家并行负载均衡)

推理时的负载不平衡问题:MoE专家层在训练时针对专家间的负载均衡进行了优化,但在推理时,实际的工作负载可能会导致Token路由不平衡。在Wide-EP设置中,这意味着某些EP rank可能会保持空闲,而其他rank则在处理大批量的Token。

EPLB的引入与配置:为了缓解这个问题,vLLM实现了DeepSeek专家并行负载均衡器(EPLB)的层次化和全局负载均衡策略。EPLB通过--enable-eplb CLI标志控制,并提供可配置的窗口大小、重平衡间隔、冗余专家以及日志记录选项。
EPLB运行机制

EPLB的实现机制:在实现EPLB时,每个MoE前向传播都会记录每个Token的负载,并且一个滑动窗口会在各个EP rank之间聚合这些统计数据。当达到重平衡间隔时,负载均衡器会计算新的逻辑到物理专家的映射,并协调一次权重洗牌(weight shuffle),以便新的放置策略在不重启模型的情况下生效。

Disaggregated Serving(分离式服务)

分离式服务模式的适用性:由Hao AI Lab在2024年DistServe论文中描述的分离式预填充/解码(prefill/decode)服务模式,对于专家并行部署特别有用。
预填充/解码分离运行机制

分离式服务的优势原理:由于专家分布在各个rank上,一个请求的Token在一个rank上开始,可能需要由EP组中任何其他rank上的专家进行处理。这需要在MoE层之间进行同步(如果某个rank未使用,则进行虚拟传递/dummy passes),以便层组合(layer combine)集合操作准备好在合适的时间接收Token。这意味着单个受计算限制的预填充请求可能会延迟整个EP组的前向传播,从而放大了分离式服务的优势。此外,DeepSeek部署可以配置为专门使用适合其工作负载的DeepEP内核(高吞吐量与低延迟的区别)。

部署方案补充细节

llm-d

llm-d部署栈:llm-d是一个云原生(Kubernetes-native)的分布式推理服务栈,为大规模提供生成式AI模型服务提供了清晰的路径。llm-d帮助用户在大多数硬件加速器和基础设施提供商上,以最快的时间实现关键开源模型的最高性能(SOTA)。用户可以通过llm-d的Wide EP引导路径来复现本文中的性能结果。

Dynamo

Dynamo框架特性:Dynamo专为LLM的高吞吐量和低延迟生产部署而设计。它具备KV感知路由、用于缓存卸载的KV块管理器(KV Block Manager)以及用于动态负载匹配的规划器(Planner)等功能,这些功能使用户能够在跨更多GPU扩展时满足更严格的SLA。vLLM和Wide-EP服务在Dynamo中原生支持上述所有功能。

Ray Serve LLM

Ray Serve LLM的核心功能:基于Ray Serve原语,Ray Serve LLM为预填充/解码分离、数据并行注意力以及前缀缓存亲和性请求路由提供了头等(first-class)服务模式,重点关注模块化和在Ray集群(包括Kubernetes上的KubeRay)上的部署便捷性。

生态集成与动态扩展:其关键优势在于与更广泛的Ray生态系统(包括数据处理和强化学习RL)的无缝集成。该框架与NIXL和LMCache连接器集成以实现高效的KV传输,并利用Ray的分布式计算原语,根据负载特性实现每个阶段的独立自动扩展。该解决方案为推理工作负载提供了一个灵活且可编程的层,可以轻松扩展和组合以实现多样化的服务模式。

结论与未来展望

核心结论:

  1. vLLM已全面迁移至V1引擎,该引擎在DeepSeek风格的MoE部署中展现了极高的吞吐量,通过Wide-EP在H200上实现了2.2k tok/s的性能。
  2. Wide-EP最大化了MLA架构的KV缓存效率,同时双批处理重叠(DBO)和专家并行负载均衡(EPLB)有效减少了通信瓶颈和负载不平衡问题。
  3. 分离式预填充/解码进一步优化了MoE工作负载的部署,并可通过llm-d、Dynamo和Ray Serve LLM等多种部署选项进行落地。

未来工作展望(Roadmap):
vLLM正在持续改进中,目前正在进行的研发方向包括:

  • 弹性专家并行(Elastic expert parallelism)
  • 长上下文服务(Long context serving)
  • 通过CPU进行KV缓存传输
  • 完全确定性与批处理不变性(Full determinism and batch invariance)
  • 大型MoE优化(例如针对DeepSeek-R1和gpt-oss模型的算子融合)
  • 改进FlashInfer集成以支持最新内核(如SwapAB)
  • 在分离式服务部署中支持独立的TP大小配置
  • 针对大规模服务的GB200硬件优化