DeepSeek一口气开源3个项目,训练速度,GPU利用,优化经验

DeepSeek 的开源周已经进行到了第四天。今天这家公司一口气发布了两个工具和一个数据集:DualPipe、EPLB 以及来自训练和推理框架的分析数据。

来源丨新智元、机器之心、赛博禅心

DeepSe此次本次开源的三个项目:

  • DualPipe:一种用于V3/R1模型训练中实现计算与通信重叠的双向流水线并行算法;

  • EPLB:一个针对V3/R1的专家并行负载均衡工具;

  • 深入分析V3/R1模型中的计算与通信重叠机制。

image.png

  • DualPipe 链接:https://github.com/deepseek-ai/DualPipe

  • EPLB 链接:https://github.com/deepseek-ai/eplb

  • 计算分析链接:https://github.com/deepseek-ai/profile-data

值得一提的是,DualPipe是由 Jiashi Li、Chengqi Deng和梁文峰共同研发。

liang.png

以下是今天开源的三个项目的介绍:

01 

DualPipe

项目地址:https://github.com/deepseek-ai/DualPipe

DualPipe 是 DeepSeek-V3 技术报告中介绍的创新双向流水线并行算法。此算法实现了前向计算过程(Forward Pass)(模型处理输入数据)和后向计算过程(Backward Pass)(模型更新权重)的计算 - 通信阶段完全重叠,同时减少了 "流水线气泡" (Pipeline Bubbles)—— 即计算设备的空闲等待时间。

传统的流水线并行 (Pipeline Parallelism) 算法在处理大型模型时面临两个主要挑战:
1.计算资源的空闲等待:某些设备必须等待前一个设备完成计算才能开始工作
2.数据传输的延迟:设备间数据传输占用大量时间

DualPipe 通过双向处理巧妙解决了这些问题 —— 数据不只是从第一个设备单向流向最后一个设备,而是同时有两组数据从两端相向流动。这种双向设计使得所有设备都能保持高活跃度,显著减少了空闲等待时间。

在具有 8 个流水线并行级别(即模型分布在 8 个设备上)和 20 个微批次 (Micro-batches)(将大批量数据分成 20 个小块)的示例中,DualPipe 将两个方向的数据处理精心排布,使得计算和通信能够同时进行。

相比传统的 1F1B (One Forward One Backward)(一前向一后向,即交替执行前向和后向计算)和 ZB1P (Zero-Bubble Pipeline)(零气泡单向流水线)算法,DualPipe 在减少设备空闲时间方面表现出显著优势,尤其在设备数量较多时效果更为明显。

我知道这里不容易理解,所以画了个图

图片

02 

EPLB

项目地址:https://github.com/deepseek-ai/eplb

在使用专家并行(Expert Parallelism,EP)时,不同的专家被分配到不同的 GPU 上。由于不同专家的负载可能会根据当前工作负载而变化,保持不同 GPU 之间的负载平衡非常重要。正如 DeepSeek-V3 论文中所描述的,工程师们采用了冗余专家策略,复制高负载的专家。然后,DeepSeek 通过启发式方法将这些复制的专家打包到 GPU 上,以确保不同 GPU 之间的负载平衡。

此外,得益于 DeepSeek-V3 中使用的组限制专家路由(group-limited expert routing),DeepSeek 工程师还尽可能地将同一组的专家放置在同一节点上,以减少节点间的数据传输。

为了便于复现和部署,DeepSeek 在 eplb.py 中开源了部署的 EP 负载平衡算法。该算法根据估计的专家负载计算出一个平衡的专家复制和放置方案。请注意,预测专家负载的确切方法超出了本仓库的范围。一种常见的方法是使用历史统计数据的移动平均值。

这里也给画了个图:

图片

03 

Profile-data

项目地址:https://github.com/deepseek-ai/profile-data

DeepSeek 还开源了其训练和推理框架的性能分析数据,帮助社区更好地理解计算与通信如何有效重叠以及底层实现细节。这些数据使用 PyTorch Profiler 工具捕获,可以在 Chrome 或 Edge 浏览器的 tracing 页面直接可视化,直观呈现各项操作的执行时间和资源占用。

训练分析数据展示了 DualPipe 中单个前向和后向处理块对的重叠策略。每个处理块包含 4 个 MoE (Mixture of Experts)(混合专家模型)层,并行配置与 DeepSeek-V3 预训练设置一致:EP64(64 路专家并行),TP1(无张量并行 Tensor Parallelism),4K 序列长度。

train

推理分析则分为两部分:

1.预填充阶段 (Prefilling Stage):使用 EP32 和 TP1 配置,提示长度为 4K,每 GPU 批量大小为 16K 个 token。在预填充阶段,使用两个微批次交错进行计算和全对全通信 (All-to-All Communication),同时确保注意力计算负载在两个微批次间平衡。

prefill

2.解码阶段 (Decoding Stage):使用 EP128 和 TP1 配置,提示长度 4K,每 GPU 批量大小为 128 个请求。与预填充类似,解码也利用两个微批次重叠计算和全对全通信。但与预填充不同的是,解码期间的全对全通信不占用 GPU 计算单元(Stream Multiprocessors, SMs)—— 网络通信消息发出后,所有 GPU 计算资源被释放用于其他计算,系统在计算完成后等待通信完成。

decode

这次 DeepSeek AI 开源的这三个项目,可以说是诚意满满,直接把大模型训练和推理的效率优化秘籍都拿出来了!利好AI研究人员。

参考资料:

https://x.com/deepseek_ai/status/1894931931554558199

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值