您的浏览器禁用了JavaScript(一种计算机语言,用以实现您与网页的交互),请解除该禁用,或者联系我们。[DataFun]:DataFunSummit非数据中心GPU上的大模型并行训练 - 发现报告

DataFunSummit非数据中心GPU上的大模型并行训练

2024-12-23李笙维DataFun测***
AI智能总结
查看更多
DataFunSummit非数据中心GPU上的大模型并行训练

并行与分布计算全国重点实验室博士研究生李笙维 DataFunSummit#2024 一、研究背景:大模型并行训练 •深度学习模型参数量呈爆炸式增长,对算力系统体系结构、系统软件提出了新的要求•大规模并行与分布计算仍然是基础模型训练的主要手段,HPC与AI融合发展•大规模训练的计算、通信、存储开销巨大,对并行模式和并行效率提出更高要求 基础模型参数量爆炸性增长 Fedus W, Zoph B, Shazeer N. Switch transformers: Scaling to trillion parameter models with simpleand efficient sparsity[J]. The Journal of Machine Learning Research, 2022, 23(1): 5232-5270. 一、研究背景:并行训练基本方法 •并行训练基本方法主要分为数据并行,模型并行,混合并行等基本形式 •数据并行(data parallelism, DP)是将训练数据划分到多个设备,多个设备之间按照一定规则定期同步模型参数实现并行训练的一种方式 •数据并行方式下每个设备计算时都会使用有完整的模型参数•数据并行将数据切分为多份,不同份的数据由不同的设备进行处理 -并行程序逻辑比较容易理解-单次迭代中模型训练的数据总量增加,使得总的训练时间减少 •缺点-为了保证收敛性,需要频繁的梯度同步通信 一、研究背景:并行训练基本方法 •并行训练基本方法主要分为数据并行,模型并行,混合并行等基本形式 •模型并行(model parallelism, MP)训练是指将智能模型划分到多个计算单元的一种训练方式•模型并行方式下每个设备上只有模型的一部分,张量并行、流水线并行均属于模型并行•模型并行将数据切分为多份,每份数据需要所有设备进行处理 •优点-降低了模型训练时对单卡的显存需求• 缺点-较大的通信开销(常见于张量并行)-较低的设备利用率(常见于流水线并行) 一、研究背景:并行训练基本方法 •并行训练基本方法主要分为数据并行,模型并行,混合并行等基本形式 •张量并行(tensor parallelism, TP)张量并行是将深度学习模型中的参数切分到不同的设备上,每个设备只负责计算部分参数,从而实现并行计算。 •模型的参数分配到不同的设备上,每个设备只负责计算部分参数。•Transformer中将嵌入层和多头自注意力机制的部分参数切分到不同的设备上进行计算。 Shoeybi M, Patwary M, Puri R, et al. Megatron-lm: Training multi-billion parameter language modelsusing model parallelism[J]. arXiv preprint arXiv:1909.08053, 2019. 一、研究背景:并行训练基本方法 •并行训练基本方法主要分为数据并行,模型并行,混合并行等基本形式 •流水线并行(pipeline parallelism, PP)将模型垂直分割成多个部分(称为“流水级”),每个流水级部署在一个或多个GPU上,数据在GPU之间按流水线方式流动。 •需要对流水线的操作进行调度,确保数据在各流水级间顺畅流动。•因为数据依赖关系,设备计算会出现空闲(idle),称为流水线气泡(bubble),影响整体硬件利用效率。 Huang Y, Cheng Y, Bapna A, et al. Gpipe: Efficient training of giant neural networks using pipelineparallelism[J]. Advances in neural information processing systems, 2019, 32. 一、研究背景:并行训练基本方法 •并行训练基本方法主要分为数据并行,模型并行,混合并行等基本形式 •混合并行(hybirdparallelism)是指结合模型结构特点或智能计算系统体系结构特点,利用多种并行训练方法进行大规模深度学习模型的多维度并行训练 •混合并行方式下每个设备上只有模型的一部分•混合并行将数据切为多份,每份数据需要部分或全部设备进行处理 -可以结合模型并行和数据并行的优点,实现高效的模型训练-应对大模型训练的主要方法缺点 •-难以找到性能优异的混合并行策略,使得混合并行的优势无法发挥出来 一、研究背景:大模型训练加速器 •数据中心GPU(A100,H100...)是目前最常见的加速器: •从算力性价比(单位价格能获得的算力)的角度,数据中心GPU有较大的劣势•然而仅从算力性价比的角度衡量并行训练的性价比并不准确,例如A100 PCIe和A100 SXM的算力性价比较为接近,然而通信带宽差距巨大,在大模型的并行训练中有较大的性能差距•数据中心GPU存在有价无市的问题 •因此,研究非数据中心GPU上的大模型并行训练更具重要意义 GPU算力的性价比可以使用Ratio of theComputation performance andCost(RCC)定义,单位为TFLOPS/$ 02 研究进展 二、研究进展小结 •围绕非数据中心GPU上的大模型并行训练问题,开展关键技术研究 •设计多维度通信调度方法,提高并行训练的通信效率 •设计通信计算重叠的联合调度方法,提高并行训练效率 •设计流水线并行的异构内存交换方法,缓解显存墙问题 •高可编程性的并行训练: •解耦模型设计与并行训练,加强多维并行训练的可编程性 2.1高性价比的大模型训练 •大模型并行训练的性价比建模方法 •并行训练下,训练性价比可以使用单位价格能获得的吞吐量:即单位数据量所需的通讯时间加计算时间乘上硬件价格的倒数 •从算力性价比角度4090GPU最高,然而4090无法使用NVLink进行带宽提升,算力性价比次高的3090可以通过相对便宜的NVLink提高带宽,据此搭建了3090NVLink集群 2.1高性价比的大模型训练 •大模型并行训练的性价比建模方法 •在考虑了NVLink价格的基础上,3090NVLink配置相对于全NVLink相连的A100-SXM配置及4090配置在大模型训练中的性价比有明显优势•该集群的建立仅供思路参考, 3090仍有着内存不足(24G)等问题•分析方法可以适用于更多种类硬件,同期工作也有在3080GPU上进行大模型训练的尝试 3090-NVLink的硬件价格估算方法 并行训练性价比对比 Lai Z, Liu Y, Wang W, et al. Rethinking the Distributed DNN Training Cluster Design from the Cost-effectiveness View[C]//2023 IEEEHPCCTang, Zhenheng, et al. "Fusionai: Decentralized training and deploying llms with massive consumer-level gpus." arXiv preprintarXiv:2309.01172 (2023). 2.2高效率的并行训练 •通信计算调度: TriRace--面向混合并行训练的多维度通讯调度方法 •非数据中心GPU情况下,通常通信带宽受限较为明显•通信调度技术是常见的降低通信开销的方法,然而混合并行训练的通信操作复杂,带来两个训练效率问题:1)通信操作多样,包括数据并行的AllReduce和流水线并行的P2P通信2)稀疏矩阵的通信开销大,对通信调度带来较大性能挑战 2.2高效率的并行训练 •通信计算调度: TriRace--面向混合并行训练的多维度通讯调度方法 •针对数据并行的AllReduce通信,根据异步流水线并行的参数更新方法,最大化重叠计算操作•针对流水线并行的P2P通信,将双向通信解耦为两个单向通信,尽可能减少关键路径上的通信数量•使用稀疏通信降低embedding的通信开销,并将以embedding各行为单位进行细粒度调度 AllReduce通信调度方法 2.2高效率的并行训练 •通信计算调度: TriRace--面向混合并行训练的多维度通讯调度方法 •相比Pipedream-2BW、Fold3D等多个训练方法,能够取得至多1.45倍的训练计算加速 Li S, Lu K, Lai Z, et al. A Multidimensional Communication Scheduling Method for Hybrid Parallel DNNTraining[J]. IEEE Transactions on Parallel and Distributed Systems, 2024. 2.2高效率的并行训练 •通信计算调度:Oases--面向张量并行的自动通信计算重叠方法 •Transformer模型的Hidden Size高速增长,张量并行成为大规模预训练模型的必需技术;但是张量并行通信开销大,影响训练效率 Transformer预训练模型的Hidden Size较大 2.2高效率的并行训练 •通信计算调度:Oases--面向张量并行的自动通信计算重叠方法 •当前主流的张量并行通信计算重叠方法为将矩阵乘法和其通信分解为多个操作•设计细粒度的通信计算调度方法,将数据在batch维度切分为互不依赖的两个子数据,他们的通信计算可以互相重叠 2.2高效率的并行训练 •通信计算调度:Oases--面向张量并行的自动通信计算重叠方法 •在显存受限的场景下,使用重计算计算技术非常必要•设计去除通信冗余的重计算调度方法,应用重计算时,将通信结果作为重计算子图的输出可以在反向过程中减少通信开销 重计算结束的位置为通信后时,可以省去该通信 2.2高效率的并行训练 •通信计算调度:Oases--面向张量并行的自动通信计算重叠方法 •Oases可以显著加速张量并行训练,相较Megatron-LM, Alpa,矩阵乘法内重叠(Wang)等方法,可以取得至多1.95倍加速T7714LaiZ,HaoY,etal.AutomatedTenT7714LaiZ,HaoY,etal.AutomatedTenT7714LaiZ,HaoY,etal.AutomatedTen 2.2高效率的并行训练 •显存优化:Mbapp--面向商品级GPU的流水线并行异构内存交换方法 •流水线并行通信量降低,适用于在商品级GPU上训练大模型•商品级GPU如3090的显存容量较小,大模型的训练要求显存优化技术(e.g.,显存交换, swap)•流水线并行的算法特点,导致流水级(设备)之间的显存分布不均衡 流水线并行适合通信资源贫乏的商品级深度学习服务器 2.2高效率的并行训练 •显存优化:Mbapp--面向商品级GPU的流水线并行异构内存交换方法 •GPU-GPU swap方法:将内存负载较重GPU的数据缓存到内存负载较轻GPU的空闲内存中,减少GPU-CPU交换操作,提高GPU内存利用率 •混合GPU-CPUswap方法:对于内存负载较重的GPU,将张量分块,部分数据块从本GPU卸载到CPU内存中,其余数据块经相邻GPU再卸载到CPU内存中,传输操作流水化,减少传输开销 2.2高效率的并行训练 •显存优化:Mbapp--面向商品级GPU的流水线并行异构内存交换方法 •相较于内存交换方法torch-offload,训练吞吐量可以提高3.04倍至4.59倍•相较于流水线并行训练方法,Mbapp能够在部分流水级显存开销超出GPU容量时支持模型训练•Mbapp可以使各流水级(工作设备)的显存消耗更加均衡 2.3高可编程性的并行训练 •Merak--实现模型