开源推荐
morning
GitHub 热门项目:DualPipe
摘要
GitHub项目:DualPipe 仓库地址:https://github。
the
and
DualPipe
for
forward
2026-05-19
1 阅读
GitHub Trending
GitHub 项目:DualPipe
仓库地址:https://github.com/deepseek-ai/DualPipe
星级:2954 | 作者:deepseek-ai
项目描述:一种用于 DeepSeek V3/R1 训练中计算通信重叠的双向管道并行算法。
===================================================
自述文件内容:
# 双管
DualPipe 是[DeepSeek-V3 技术报告](https://arxiv.org/pdf/2412.19437) 中介绍的一种创新的双向管道并行算法。它实现了前向和后向计算通信阶段的完全重叠,也减少了管道气泡。有关计算-通信重叠的详细信息,请参阅[配置文件数据](https://github.com/deepseek-ai/profile-data)。
### 时间表

两个方向上 8 个 PP 列和 20 个微批次的 DualPipe 调度示例。
反向的微批次与正向的微批次是对称的,因此
为了简单起见,我们省略了它们的批次 ID。由共享黑色边框包围的两个单元格
计算和通信相互重叠
## 双管V
DualPipeV 是一个简洁的 V 形时间表,源自 DualPipe,使用“切半”程序,由 Sea AI Lab 在其[博客文章](https://hackmd.io/@ufotalent/r1lVXsa9Jg) 中以“切半”形式介绍。感谢他们如此高效的日程安排!
### 时间表

4 个 PP 等级(8 个 PP 阶段)和 10 个微批次的 DualPipeV 调度示例。
## 管道气泡和内存使用对比(基于相同PP阶段数)
|方法|泡泡|每个设备的参数 |每台设备的激活 | #设备|
|------------------------|----------------------------------|----------------------------------|------------------------|----------|
| 1F1B | (*PP*-1)(?+?) | 1× | *PP* | *PP* |
| ZB1P | (*PP*-1)(?+?-2?) | 1×| *PP* | *PP* |
|双管 | (*PP*/2-1)(?&?+?-3?) | 2×| *PP*+1 | *PP* |
|双管V | (*PP*/2-1)(?&?+?-3?) | 2×| *PP*+1 | *PP*/2 |
*PP* 表示 pp 级数(偶数)。
? 表示前向块的执行时间,? 表示前向块的执行时间
完整的向后块,?表示“权重向后”块的执行时间,?&?
表示两个相互重叠的前向和后向块的执行时间。
## 快速入门
其用法如下例所示:
````bash
python 示例/example_dualpipe.py
python 示例/example_dualpipev.py
````
注意:对于实际应用程序,您需要实现针对您的特定模块定制的自定义“overlapped_forward_backward”方法。
## 要求
- PyTorch 2.0 及以上版本
## 开发人员
DualPipe 由 Jiashi Li、Chengqi Deng 和 Wenfeng Liang 创建和开发。
## 引文
````bibtex
@misc{deepseekai2025deepseekv3技术报告,
title={DeepSeek-V3技术报告},
作者={DeepSeek-AI},
年={2025},
eprint={2412.19437},
archivePrefix={arXiv},
PrimaryClass={cs.CL},
网址={https://arxiv.org/abs/2412.19437},
}
````