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