文章摘要
DeepSeek是一种性能强大的开源大语言模型,采用多头潜在注意力和专家混合架构。为高效大规模部署,团队在Atlas Cloud的12个节点上,利用预填充解码分离和大规模专家并行技术,实现了每节点每秒52.3k输入令牌和22.3k输出令牌的速度,成本仅为官方API的五分之一,输出吞吐量提升高达5倍。
文章总结
标题:在96个H100 GPU上部署DeepSeek:PD解耦与大规模专家并行技术 | LMSYS Org
主要内容:
DeepSeek是一款广受欢迎的开源大语言模型(LLM),以其强大的性能著称。然而,由于其庞大的模型规模和独特的架构(如多头潜在注意力机制MLA和专家混合模型MoE),需要先进的系统来高效地进行大规模推理。本文详细介绍了如何通过SGLang实现DeepSeek推理系统的高性能。
实现细节:
- 硬件配置:系统在Atlas Cloud的12个节点上运行,每个节点配备8个H100 GPU。
- 技术优化:采用了预填充-解码解耦(PD Disaggregation)和大规模专家并行(EP)技术,实现了每个节点每秒处理52.3k输入token和22.3k输出token的高性能。
- 成本效益:本地部署的成本为每百万输出token 0.20美元,约为官方DeepSeek Chat API成本的五分之一。
- 性能提升:与使用相同资源的传统张量并行相比,优化后的策略将输出吞吐量提高了5倍。
技术亮点:
- PD解耦与EP支持:SGLang现已支持PD解耦和大规模EP,包括DeepEP、DeepGEMM和EPLB的全部功能。
- 高性能复制:团队成功在12个节点上复制了DeepSeek的推理系统,每个节点每秒处理52.3k输入token和22.3k输出token。
- 开源共享:所有实验和代码均已开源,供社区进一步开发和探索。
并行设计:
- 注意力层优化:采用数据并行策略(DP Attention),消除了KV缓存的重复存储,显著减少了内存开销。
- 密集FFN优化:通过数据并行(DP)而非张量并行(TP),提升了内存效率和计算效率。
- 稀疏FFN优化:采用专家并行(EP),将专家权重分布在多个设备上,解决了内存瓶颈问题。
- LM头优化:采用数据并行(DP),简化了设备间的通信,降低了内存开销。
PD解耦:
- 问题与解决方案:传统的统一调度在处理预填充和解码批次时存在效率低下的问题,PD解耦通过分离这两个阶段,实现了针对性的优化。
- 实现细节:通过Prefill Server和Decode Server的协作,实现了非阻塞传输和RDMA技术,进一步提升了GPU资源利用率。
大规模专家并行:
- DeepEP集成:DeepEP提供了两种调度模式,分别针对长输入序列和解码阶段的低延迟需求,PD解耦使得这两种模式可以在不同阶段分别使用。
- DeepGEMM集成:DeepGEMM优化了MoE模型中的矩阵乘法,分别针对预填充和解码阶段提供了高效的GEMM内核。
- 两批次重叠(TBO):通过将单个批次拆分为两个微批次,实现了计算和通信的重叠,降低了峰值内存使用。
- 专家并行负载均衡器(EPLB):EPLB通过优化专家分布,减少了GPU之间的负载不均衡,提升了系统性能。
评估:
- 端到端性能:在12个节点的集群上,SGLang的优化配置显著提升了预填充和解码阶段的吞吐量,接近DeepSeek官方报告的性能。
- 性能分析:通过详细的kernel执行时间分析,发现SGLang在预填充阶段的通信时间较长,但在解码阶段的性能与DeepSeek相当。
- TBO与EPLB的影响:TBO在预填充阶段显著提升了吞吐量,而EPLB在大规模部署中有效减少了负载不均衡,提升了系统性能。
工具包:
- Disposable Tensor:通过显式释放CUDA内存,减少了峰值内存使用,提升了整体效率。
- 专家工作负载提取与模拟:提供了分析专家工作负载分布的工具,支持模拟不同配置下的专家利用率。
局限性与未来工作:
- 延迟优化:当前的优化主要集中在吞吐量上,未来需要进一步优化首次token生成时间(TTFT)和token间延迟(ITL)。
- 序列长度限制:由于GPU资源有限,当前系统支持的序列长度较短,未来需要扩展GPU资源以支持更长的序列。
- MTP集成:SGLang支持多token预测(MTP),但尚未完全与DP注意力集成,未来需要进一步优化。
- EPLB分布:当前的EPLB实验使用了分布内数据,未来需要探索分布变化对性能的影响。
- 灵活的张量并行:当前系统仅支持纯TP或DP,未来需要支持更灵活的TP配置以优化内存使用。
- Blackwell架构支持:当前系统仅支持NVIDIA Hopper架构,未来计划扩展到Blackwell架构。
结论:
通过PD解耦、EP和精心设计的并行策略,SGLang成功复制了DeepSeek的推理框架,并实现了卓越的性能。我们的开源工作展示了SGLang在大规模LLM推理中的强大能力,欢迎社区进一步探索和扩展这一成果。
致谢:
感谢SGLang核心团队、Atlas Cloud团队、NVIDIA解决方案架构团队、LinkedIn团队、Mooncake团队、FlashInfer团队和Dynamo团队的宝贵支持和合作。
评论总结
成本分析:评论者对本地部署的成本进行了详细分析,指出每百万输出token的成本为$0.20,但质疑是否仅包含电力成本,还是也包括GPU的折旧成本。
- "By deploying this implementation locally, it translates to a cost of $0.20/1M output tokens"
- "Is that just the cost of electricity, or does it include the cost of the GPUs spread out over their predicted lifetime?"
开源呼吁:有评论者建议在标题中明确提及“开源”,以吸引更多关注。
- "Wow, please edit the title to include Open-source !"
与AWS成本的对比:评论者对比了AWS上8个H100 GPU的成本,指出每百万输入token的成本为$2,输出token为$4.70,但认为大型提供商可能不会支付AWS的按需定价。
- "A node of 8 H100s will run you $31.40/hr on AWS, so for all 96 you're looking at $376.80/hr."
- "This is actually a lot more than Deepseek r1's rates of $0.10-$0.60/million input and $2/million output."
技术优化:评论者赞赏了SGLang团队在模型预填充和解码层分离上的创新,认为这种优化使得8个H100 GPU能够更好地处理4bit量化的模型。
- "Separation of the prefill and decoding layers with sglang is quite nifty!"
- "One prefill node for 3 decode nodes is also fascinating, nice writeup."
与OpenRouter的对比:评论者指出,本地部署的成本比OpenRouter上最便宜的提供商低10倍,认为推理的利润空间比预期更大。
- "Interestingly, this is 10x cheaper than the cheapest provider on OpenRouter."
- "Inference is more profitable than I thought."
GPU利用率与成本:评论者强调,成本分析假设了100%的GPU利用率,但实际中由于区域锁定和需求波动,利用率可能仅为10-20%,因此实际利润率可能低于预期。
- "These two factors mean that GPU utilization comes in at 10-20%."
- "I would guess that even when it seems '10x cheaper', you're only seeing margins of 50%."
GB200 NVL72的性能:评论者提到SGLang团队在GB200 NVL72上的DeepSeek推理性能优化,指出其速度比H100快2.5-3.4倍,但设备成本高达$3-4M。
- "SGLang quotes a 2.5-3.4x speedup as compared to the H100s."
- "Just in case you have $3-4M lying around somewhere for some high quality inference. :)"