大模型并行训练研究总结
研究背景
- 大模型发展:深度学习模型参数量呈爆炸式增长,对算力系统体系结构和系统软件提出了新要求。
- 并行训练方法:
- 数据并行(DP):将训练数据划分到多个设备,通过定期同步模型参数实现并行训练,具有较高的训练效率但需要频繁的梯度同步通信。
- 模型并行(MP):将模型划分到多个计算单元,降低了单卡显存需求但增加了通信开销。
- 张量并行(TP):将模型参数切分到不同的设备上进行计算,适用于Transformer等模型。
- 流水线并行(PP):将模型垂直分割成多个部分,数据在GPU之间按流水线方式流动,但存在设备计算空闲的问题。
- 混合并行:结合多种并行方法,实现高效模型训练,但难以找到最优策略。
大模型训练加速器
- 数据中心GPU(如A100、H100):虽然算力高,但通信带宽有限,导致实际性能差异显著。
- 非数据中心GPU:如3090、3090 NVLink集群,通过合理配置和优化,可以显著提升大模型训练的性价比。
关键技术
-
高性价比的大模型训练:
- 性价比建模方法:通过单位价格获得的吞吐量来评估性价比。
- 3090 NVLink集群:利用3090 GPU及其NVLink连接构建成本效益更高的训练环境。
-
高效率的并行训练:
- 通信计算调度:
- TriRace:多维度通信调度方法,针对混合并行训练,提升训练效率。
- Oases:自动通信计算重叠方法,适用于张量并行训练,显著减少通信开销。
- 显存优化:
- Mbapp:面向商品级GPU的流水线并行异构内存交换方法,提高显存利用率。
-
高可编程性的并行训练:
- Merak:实现模型设计与并行训练的解耦,提供灵活的并行策略生成工具,简化分布式训练过程。
总结与展望
- 提高大模型的accessibility:让更多研究者能够更便宜、更快、更方便地进行大模型训练。
- 通信优化:通信带宽落后于需求,通信优化是提高并行训练效率的关键方向。
- 大规模分布式训练技术:需要更大规模和更真实场景的测试与验证。
展望
- 并行训练框架:设想自顶向下分为6层,包括API层、任务资源获取层、任务资源抽象层、并行策略制订层、分布式计算引擎层和计算通信实现层。
- Merak框架:基于PyTorch设计,延续数据并行框架思路,提高并行训练效率。
以上总结基于提供的研报内容,涵盖了大模型并行训练的主要技术和研究成果。