DeepSeek今日连开3源!针对优化的并行策略,梁文锋本人参与开发

ops/2025/2/28 5:47:19/
aidu_pl">

DeepSeek开源周第四天,直接痛快「1日3连发」,且全都围绕一个主题:

优化并行策略

  • DualPipe:一种创新的双向流水线并行算法,能够完全重叠前向和后向计算-通信阶段,并减少“流水线气泡”。它通过对称的微批次调度,优化了并行计算效率。
  • Expert Parallelism Load Balancer (EPLB):用于MoE的负载均衡算法,通过复制高负载专家并智能地分配专家到不同GPU上,确保计算资源的均衡利用。它包含两种政策:层次化负载均衡和全局负载均衡。
  • Profiling Data:训练和推理框架的性能分析数据,展示了通信-计算重叠策略和底层实现细节。

这三者中,DualPipe从时间上优化了计算与通信的调度,EPLB从空间上平衡利用计算资源,Profiling Data则提供了前两者在实际应用中效果的可视化证据。

DualPipe的开发团队中包括梁文锋本人

发布后10分钟不到,3者在GitHub上的星标已经破300了,且其中DualPipe的星标飙升最快。

而DeepSeek一发推,网友的留言也排山倒海一般扑面而来,几乎都是不吝溢美之词:

好活!令人兴奋!
优化策略可以重新定义行业的性能。

Day 4,直接1日3连发

DualPipe

DualPipe是在DeepSeek-V3中首次出现双向流水线并行算法,现在代码完全开源。

它实现了前向与后向计算-通信阶段的完全重叠,还减少了流水线气泡(即某些设备在某些时刻空闲等待)。

DualPipe采用了双向微批次调度策略,其核心特点是:

  • 对称设计:反向方向的微批次与前向方向对称排列,形成一种几何平衡的调度结构
  • 计算-通信重叠:两个共享黑色边框的单元格表示相互重叠的计算和通信过程
  • 双向并行:同时在两个方向上推进微批次,最大化硬件利用率

传统流水线并行方法如1F1B(one-forward-one-backward)在处理多GPU场景时会产生大量气泡。

DualPipe通过重新安排微批次执行顺序,和对称结构缓解这个问题。

EPLB

EPLB适用于V3/R1的专家并行负载均衡器,解决MoE模型在分布式训练和推理中的负载不平衡问题。

在MoE架构中,不同的输入会激活不同的专家,可能导致某些专家过载,进一步造成不同GPU的利用率不平衡。

EPLB采用“redundant experts”(冗余专家)策略

识别高负载专家→复制多个副本分配到不同GPU→在推理时动态分配输入到负载较轻的专家副本。

并带有两种普通的策略:

  • 分层负载平衡,专家并行较小的预填充阶段使用。
  • 全局负载平衡,在专家并行规模较大的解码阶段采用。

V3/R1中的计算通信重叠分析数据

开源第四弹的part 3,DeepSeek公开分享了来自训练和推理框架的分析数据,以帮助社区更好地了解通信计算重叠策略和低级实现细节

GitHub上注明,分析数据是使用PyTorch Profiler捕获的。

下载后,开发者可以通过导航到Chrome浏览器中的chrome://tracing(或Edge浏览器中的edge://tracing)将它进行可视化。

Attention please——DeepSeek模拟了一个绝对平衡的MoE路由策略进行分析。

首先,训练阶段。

训练配置文件数据演示了DeepSeek在DualPipe中,对一对单独的向前和向后数据块的重叠策略。

每个数据块包含4个MoE 层。

并行配置与DeepSeek-V3预训练设置一致EP64、TP1具有4K序列长度。

为简单起见,在profilng期间不包括PP通信。

其次,推理阶段。

1)预填充。

对于预填充,配置文件使用EP32和TP1(与DeepSeek V3/R1的实际在线部署一致),提示长度设置为4K,每个GPU的批量大小为16Ktokens。

在预填充阶段,DeepSeek利用两个微批次来重叠计算和多对多通信,同时确保注意力计算负载在两个微批次之间平衡

——这意味着相同的提示可以在它们之间分配。

2)解码。

(注:相关数据尚未准备就绪,将于稍后发布)

解码方面,该配置文件采用了EP128、TP1和4K的提示长度(与实际在线部署配置非常匹配),每个GPU的批量大小为128个请求。

与预填充类似,解码还利用两个微批处理进行重叠计算和多对多通信。

但与预填充不同的是,解码期间的all-to-all通信不会占用GPU SM:

发出RDMA消息后,所有GPU SM都会被释放,系统在计算完成后等待all-to-all通信完成。

有关all-to-all实现的更多信息,请参考开源周第二弹DeepEP。

One More Thing

“大放异彩!”

对于第四弹的开源内容,网友是这么感慨的。

目前看来,DeepSeek开源周的前4天,都挺令追更群众们满意。

尤其是这次开源周全部瞄准大模型的Infra层。

追更看客们表示:

更好的团队合作不仅是团队管理优化的一部分,更是实现顶级AI性能的秘诀。
DeepSeek正在创建新的标准,大规模训练的未来就在咱们眼前!

好了,DeepSeek开源周,明天就是最后一天了,不知道会有什么压轴登场?


http://www.ppmy.cn/ops/161869.html

相关文章

MFC案例:利用双缓冲技术绘制顶点可移动三角形

案例目标:在屏幕上出现一个三角形,同时显示各顶点坐标,当用鼠标选择某顶点并拖动时,三角形随鼠标移动而变形。具体步骤为: 一、在VS2022上建立一个基于对话框的MFC应用,项目名称:DrawMovableTr…

WebRTC学习七:WebRTC 中 STUN 协议详解

系列文章目录 第一篇 基于SRS 的 WebRTC 环境搭建 第二篇 基于SRS 实现RTSP接入与WebRTC播放 第三篇 centos下基于ZLMediaKit 的WebRTC 环境搭建 第四篇 WebRTC学习一:获取音频和视频设备 第五篇 WebRTC学习二:WebRTC音视频数据采集 第六篇 WebRTC学习三…

深度学习-11.用于自然语言处理的循环神经网络

Deep Learning - Lecture 11 Recurrent Networks for Natural Language Processing 介绍文本表示用数字表示单词词嵌入(word embedding) 机械翻译编码器 - 解码器循环模型(Encoder-decoder recurrent models)双向循环网络 注意力机制(方法&am…

ASP.NET 解决 NLog、log4net 和 Serilog 在 IIS 部署后不写日志的问题

在使用 NLog、log4net 或 Serilog 等日志框架时,如果将应用程序部署到 IIS 后发现日志无法正常记录,通常是因为权限或配置问题导致的。 简单粗暴:对写log的目录给添加Everyone 权限

DeepSeek 提示词:常见指令类型

🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,精通Java编…

Go Web 项目实战:构建 RESTful API、命令行工具及应用部署

Go Web 项目实战:构建 RESTful API、命令行工具及应用部署 Go 语言因其简洁高效、并发支持强大等特点,已经成为了后端开发的热门选择之一。本篇文章将通过实战案例带领你学习如何使用 Go 构建一个简单的 RESTful API,开发命令行工具&#xf…

P9420 [蓝桥杯 2023 国 B] 子 2023

P9420 [蓝桥杯 2023 国 B] 子 2023 题目 分析代码 题目 分析 刚拿到这道题,我大脑简单算了一下,这个值太大了,直观感觉就很难!! 但是,你仔仔细细的一看,先从最简单的第一步入手,再…

算法-数据结构-图的构建(邻接矩阵表示)

数据定义 //邻接矩阵表示图 //1.无向图是对称的 //2.有权的把a,到b 对应的位置换成权的值/*** 无向图* A B* A 0 1* B 1 0*/ /*** 有向图* A B* A 0 1* B 0 0*/import java.util.ArrayList; import java.util.List;/*** 带权图* A B* A 0 1* B 0 0*/ p…