PatrickStar 是一款分布式深度学习训练工具,它的设计目标是支持以 GPT、Bert 为代表的超大预训练模型训练。在性能表现上远超目前业界 DeepSpeed 效果。它可以显著降低 PTM 的使用成本,使我们在更少的 GPU 硬件上训练之前用其他框架 OOM 的模型。比如,在8x V100,240GB 内存的计算节点上,派大星成功训练了 120 亿参数模型,单 GPU 的计算效率仍高达在 47 Tflops。
PatrickStar 通过使用 CPU-GPU 异构内存空间来存储模型数据,从而降低对 GPU 的显存需求。不同于现有的异构训练方案在 CPU 和 GPU 之间静态划分模型数据,PatrickStar 以 Chunk (块)的形式更灵活地管理模型数据,这些 Chunk 动态分布在异构内存空间中,在训练过程中高效地移动,来满足当前计算的需求,从而使模型尺寸突破 GPU 的显存大小限制。 PatrickStar 和业界其他优秀数据并行方案兼容,比如,PatrickStar 使用零冗余优化器方式并行扩展到多个 GPU,并实现了理论最低的通信带宽需求和更高效的带宽利用率。派大星与模型并行,流水线并行兼容。
派大星适用场景
适用 ADAM 优化器的超大模型训练过程,例如 BERT,GPT2,GPT3 等 NLP 预训练模型,超大 CNN 等 CV 模型。
功能介绍
通过在 PyTorch 基础上,包装模型和优化器的接口来调用后台优化逻辑,可以使用仅仅几行代码获得 DNN 训练过程的端到端加速。
使用示例
未来计划
1. 吸引更多的开发者完善派大星的系统实现。将派大星与目前流行的模型并行、流水线并行结合,完成超大规模训练。
2. 根据用户反馈,增加派大星的易用性。
PatrickStar 开源地址
https://github.com/Tencent/PatrickStar
猜你喜欢: