本文围绕一篇论文展开,探讨了 PyTorch DDP (torch.nn.parallel) 以及 Pipeline (torch. Distributed.Pipeline) 的加速混合。

论文题目:

PipeTransformer: Automated Elastic Pipelining for Distributed Training of Large-scale Models(PipeTransformer: 用于大规模模型分布式训练的自动化弹性管线)

Pipeptransformer 利用自动化弹性管线,对 Transformer 模型进行高效的分布式训练。在 PipeTransformer 中,我们设计了一个自适应的动态冻结算法,可以在训练过程中逐步识别和冻结某些层,并设计了一个弹性管线系统,可以动态分配资源来训练剩余的活动层。

具体来说,PipeTransformer 自动从管线中排除冻结层,将活动层打包到更少的 GPU 中,并分支更多的副本以增加数据并行宽度。

对 ViT(使用 ImageNet 数据集)和 BERT(用 SQuAD 和 GLUE 数据集)的评估表明,与最先进基线相比,PipeTransformer 在没有精度损失的情况下,实现了高达 2.83 倍的速度提升。

论文中还包括多种性能分析,以方便用户更全面地理解算法和系统设计。

接下来,本文将详细介绍该系统的研究背景、动机、设计思想、设计方案,以及如何用 PyTorch 分布式 API 实现该算法和系统。

 

论文地址:

http://proceedings.mlr.press/v139/he21a.html

 

源代码:

https://DistML.ai.

 

幻灯片:

https://docs.google.com/presentation/d/1t6HWL33KIQo2as0nSHeBpXYtTBcy0nXCoLiKd0EashY/edit?usp=sharing

内容中包含的图片若涉及版权问题,请及时与我们联系删除