夕小瑶科技说 02月27日
DeepSeek 开源第 4 天:梁文峰亲自带队,给大模型优化并行策略
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

DeepSeek开源第四天,重点介绍了DualPipe和EPLB两项关键技术。DualPipe是一种双向流水线并行算法,通过计算-通信高效重叠,显著减少GPU空闲时间,从而提升AI训练效率。EPLB是一种用于MoE(混合专家)结构的负载均衡算法,通过复制忙碌的专家到其他GPU,实现工作量平均分配,提高系统整体效率。DeepSeek还开源了性能分析库,用户可以通过PyTorch Profiler查看DualPipe和EPLB在训练和推理中的实际表现,深入了解其优化细节。

🚀DualPipe双向流水线并行算法:通过优化正向和反向传播阶段的计算与通信流程,实现计算与通信的重叠,减少GPU空闲时间,从而显著提升AI训练效率。该算法在DeepSeek-V3的技术报告中得到验证。

⚖️EPLB专家并行负载均衡器:针对MoE结构中专家负载不均的问题,EPLB通过复制忙碌的专家到其他GPU,实现工作负载的平均分配,提高GPU利用率和系统整体效率。EPLB提供层级负载均衡和全局负载均衡两种策略,适应不同的应用场景。

📊DeepSeek Infra性能分析库:DeepSeek开源了用于性能分析的库,用户可以通过PyTorch Profiler查看DualPipe和EPLB在训练和推理中的性能数据,深入了解其优化细节。数据覆盖了训练、预填充和解码三个阶段。

原创 含萧 2025-02-27 18:42 四川

今天是 DeepSeek 开源第四天,我已经感觉像是陪着那帮搞 AI 的朋友,连轴跑了四场技术马拉松,还是冲刺跑的那种。

我那几个在大厂里搞 AI 的朋友,消息永远是‘在忙’、‘稍等’,好不容易逮着一个问两句,那边回过来的都是‘老板又催了’’、‘大老板临时把汇报会改成了 ds 专题讨论’、‘又要重新评估方案了’……deepseek 把显卡榨干的同时,顺带着把他们也榨干了。

什么“中国团队突破算力封锁”的口号啊,看“deepseek 冲击英伟达”的热闹,只看 star 星标的速度,分钟级速度刷新,就知道其实真正在暴风眼里的是那些搞模型训练的人。不光是国内的大模型团队,包括 openAI、Claude,都被迫体验了这把柴烧起来的滋味儿。

我也陪着这帮朋友跑,所以按照惯例,和大家聊聊今天的主角,分别是

DualPipe 和 Expert Parallelism Load Balancer (后面简称 EPLB)。

DualPipe:一个双向流水线并行算法。

DualPipe 开源地址:

https://github.com/deepseek-ai/DualPipe

EPLB:一种用于 MoE 的负载均衡算法。

EPLB 开源地址:

https://github.com/deepseek-ai/eplb

看这项目的名字,浓浓的技术味,我没法评,就问下你们还有谁记得前三天的项目名字?你们脑子里都记住了啥东西。

老规矩,咱们先铺个背景。

都知道,大模型得靠并行撑着。

想象一条流水线:每个工位负责一个活儿,比如这边装引擎,那边安轮子,车子顺着流水线一步步成型,总比一个人从头造到尾快多了。

AI 训练里,管道并行也是这个道理,把模型分成几块,每块扔给一个 GPU,大家同时处理不同的数据,效率蹭蹭往上涨。

但问题来了,传统管道并行有个毛病:GPU 之间得来回传数据,有时候就像接力赛跑,交棒的时候没对上,前面的人跑完了后面的人还没动。这就造成了 管道气泡——GPU 闲着没事干,白白浪费时间。

所以,今天这俩工具,是通过并行,给大模型训练和推理提速。

DualPipe:AI 训练的加速神器

这时候 DualPipe 登场了。它是个双向管道并行算法,意思是数据能双向流动——既能往前跑(处理输入),也能往后跑(反馈更新)。

这里有一个专业名字,叫计算-通信高效重叠,同时优化正向和反向传播阶段的计算与通信流程,两者重叠,这让 GPU 可以同时干两件事(计算和通信),几乎不闲着,气泡时间大幅减少。在 DeepSeek-V3 的技术报告里说明,这招能大大提升训练效率。

贴一张全面的对比图——

1F1B(one-forward-one-backward):一种传统流水线并行策略,交替执行前向和后向传播计算,效率最低。

ZB1P(Zero-Bubble Pipeline):也是一种消除流水线空闲时间(气泡)的并行策略,改进了 1F1B。

DualPipe:就是 ds 这次创新性的流水线并行算法。

白色表示流水线气泡 Bubble,DualPipe 明显更少。

来看个对比表,直观感受一下 DualPipe 的厉害:

(注:? 是前向计算时间,? 是反向计算时间,? 是权重反向时间,?&? 是重叠的前向和反向时间。)

DualPipe 把气泡时间砍了不少,但是代价是内存加倍。

因为实现双向并行,要维护两份模型参数。(两套生产设备)

本质是用空间换取时间。虽然参数用量翻倍,但在 AI 训练里,为了速度多花点力气绝对值得。

项目里还注明了是梁文峰亲自参与了 DualPipe。

EPLB:GPU 的任务调度大师

接下来是 专家并行负载均衡器(EPLB),关于专家并行(EP)的科普,在第二天的文章DeepSeek开源第二天:拉爆MoE训练和推理有介绍。

在用 混合专家(MoE)结构里面,模型里有很多“专家”,每个专家擅长不同的活儿。当然这些专家被分到不同 GPU 上。
有的专家忙得要死,有的却闲得发慌。EPLB 就是来解决这问题的。

它会把忙碌的专家复制一份,分到其他 GPU 上,让工作量平均摊开。就像交通管理员,看到哪条道堵了就多开几条,确保车流顺畅。这样一来,每个 GPU 都能干活,既不累死也不闲死,系统效率拉满。

EPLB 有两种玩法:

层级负载均衡:当服务器节点数能整齐划分专家组时用这招。先把专家组在节点间平衡好,再在每个节点里复制专家,最后分配到具体 GPU 上。这样能少折腾点跨节点的数据传输,速度更快。

全局负载均衡:其他情况下就直接全局复制专家,分到各个 GPU 上,不分组。这招在大规模推理的解码阶段特别好使。

举个例子,想象你在管一个厨房,有的厨师忙得锅都端不过来,有的却站着发呆。EPLB 就像请了几个帮手,把活儿重新分一分,大家节奏一致,菜出得又快又好。

这样能把专家任务均匀分到 GPU 上,谁也别想偷懒。

最后聊聊 DeepSeek Infra 。

这次顺便带了一个用于性能分析的库,它让我们能一窥 DualPipe 和 EPLB 在实战中的表现。

https://github.com/deepseek-ai/profile-data

DeepSeek 用 PyTorch Profiler 记录了训练和推理的性能数据,还大方地分享了出来。

你可以下载这些数据,在浏览器里(输入 chrome://tracing 或 edge://tracing)可视化查看。

数据覆盖了三块:

训练:展示了 DualPipe 怎么在训练中叠加计算和通信。每个块有四个 MoE 层,跟 DeepSeek-V3 的预训练配置差不多,效率拉满。

预填充:这是推理阶段处理初始输入的部分,用了 EP32 和 TP1 配置,两个微批次叠加计算和通信,工作量分配得刚刚好。

解码:生成输出时用的是 EP128 和 TP1,通信通过 RDMA 异步处理,GPU 能专心算东西。

这些数据就像 AI 后台实况,让你清晰地看到每个动作是怎么完成的。

就酱,完毕。

最后分享一句话——

"The whale shares its ocean bounty, guiding all fish in its wake."



阅读原文

跳转微信打开

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

DeepSeek DualPipe EPLB 并行计算 负载均衡
相关文章