2024年大模型时代的异构计算平台报告-百度智能云
大模型时代的异构计算平台GPT-3开启大模型时代01超大模型训练对基础设施的需求02软硬结合的联合优化03大模型发展推动基础设施演进04演讲提纲01GPT-3开启大模型时代32条样本即可达到BERT的效果提升20%提升40%1750亿模型带来了质的效果飞跃以OpenAI GPT-3为例大模型带来质的效果飞跃超大规模模型逐渐具备使用处理各种新任务的通用能力注:基于GPT-3的实验分析数学计算阅读理解多轮问答SAT 考试新词构造指代推理大模型带来AI通用性显著提升爆款应用拉动大模型训练需求AIGC文生图ChatGPT大模型训练需要足够数据与算力ELMo(90M)BERT(340M)ERNIE 1.0(110M)GPT-2(1.5B)ERNIE 2.0(330M)T5(11B)Turing-NLG(17B)GPT-3(175B)ERNIE 3.0(10B)ERNIE 3.0 Titan(260B)ViT(630M)V-MOE(15B)ViT-G(2B)SwinV2(3B)DALL-E(1.2B)CogView(4B)ERNIE-VILG(10B)Plato-XL(11B)0.050.55505002017/8/142018/9/182019/10/232020/11/262021/12/31模型大小(十亿参数)(蓝色:语言模型;绿色:中文语言模型;橘色:多模态模型;黄色:视觉模型)Jared, et al. 2020.模型参数演进Scaling Law三要素以GPT-3为例,1750亿参数模型、3000亿词语,计算量314ZFlops02超大模型训练对基础设施的需求从AI框架入手,解决大模型的技术挑战传统训练:小模型、小样本,单卡训练梯度更新前向计算反向计算Training DataGPU 0大模型的变化:参数量与计算量激增ZFLOPs计算量GPT-3: 314 ZFLOPs大规模参数175B 参数算力墙A100算力312TFLOPS单卡需要32年需要分布式加速存储墙千亿参数需要2TB存储单卡显存80GB,放不下需要更多存储空间对模型和数据进行切分算力墙 —— 数据并行GPU 0GPU 1梯度更新前向计算反向计算梯度更新前向计算反向计算梯度同步Training Data数据并行:• 对数据集进行切分,不同卡模型相同,数据不同• 由于数据不同,所以不同卡计算的梯度也不同• 为了迭代中多卡参数一致,需要引入梯度同步• 梯度同步过程即多卡把各自梯度求平均的过程常见梯度同步策略:同步更新 vs 异步更新策略异步更新同步更新实现节点异步上报局部梯度,更新并获取全局梯度,不等待其他节点节点间阻塞等待,同步上报局部梯度,并同步更新全局梯度,常用AllReduce实现加速比无阻塞,100%结合通信重叠等优化,在高性能网络下,可以做到95%+收敛性存在梯度滞后、部分更新等问题收敛较稳定数据并行中主要研究方向就是梯度同步,常见评价指标如下:• 加速比 = 多卡全局吞吐 / (单卡吞吐 * 卡数)• 收敛性 = 精度收敛到一定范围的时间目前大模型训练主要采用同步更新策略存储墙 —— 流水线并行流水线气泡mini-batch 1反向需要等前向完成,导致Device 1空等通过调整不同mini-batch数据执行顺序,减少气泡每张卡保存部分层,通过点对点Send/Recv同步激活与梯度;将数据切分成mini-batch传入流水线Layer 0(前向)Layer 1(前向)Layer 2(前向)Layer 2(反向)Layer 1(反向)Layer 0(反向)Layer 0(前向)Layer 1(前向)Layer 1(反向)Layer 0(反向)Layer 2(前向)Layer 2(反向)GPU 0GPU 0GPU 1Send / RecvSend / Recv存储墙 —— 张量并行对于单层参数仍然过大问题,可以将单层操作切分到多卡进行f = Identity g = AllReduceXX GEMM AGELUY GEMM BYZDropoutXX GEMM A1GELUY1 GEMM B1Y1ZDropoutGPU 0GPU 0XX GEMM A2GELUY2 GEMM B2Y2ZDropoutGPU 1fXXZ1Z2g把GEMM操作的权重切分,每张卡处理一部分矩阵乘结果,最后通过AllReduce汇聚结果存储墙 —— 分组参数切片梯度更新GPU 0GPU 1梯度更新梯度同步模型参数优化器状态模型层优化器模型参数优化器状态模型层优化器冗余冗余在每次梯度同步后,多卡上的模型参数、优化器状态会保持一致,造成存储上的冗余,浪费显存数据并行的显存冗余:数据并行中的每张卡都会保存一份完整的模型参数、梯度及优化器状态分组参数切片将参数与优化器状态在参与数据并行的卡间切分,计算时按需通信同步,时间换空间梯度更新GPU 0GPU 1梯度更新梯度同步模型参数模型层模型参数模型层假设有N卡参与数据并行,每卡显存可节省为 1 / NBroadcast通信(参数广播)broadcast通信(状态广播)优化器状态优化器优化器状态优化器大模型加速 —— 减少计算量当数据量足够大时,参数越多的模型精度越好;而参数量增加造成计算量增加,需要更多资源如何保证参数规模的同时,减少计算量?条件计算,根据条件(路由)激活部分参数;将模型参数拆分成多个子网络(专家网络)模型权重样本样本单样本激活所有参数样本样本专家网络1专家网络2专家网络3Gating Network / Router单样本按条件激活部分参数(上图中单样本计算量减少1/3)减少计算量 —— 混合专家模式基于条件计算范式,将模型抽象为多个专家,每卡处理不同的样本,并独立计算路由• 每张卡处理不同的数据分片(shard 1 .. shard E)• 在Gating计算过程考虑所有设备• 每张卡的样本可能被其他所有卡计算,同时可能接受其他卡的样本• 通过全局All2All操作将数据放置到对应的设备• 同参数量的模型,效果不如混合并行策略的模型(序号代表Gating后适合放置的卡;颜色表示当前所在的卡)0123012301230123Device 0Device 1Device 2Device 30000111122223333All2All并行策略实战 —— 飞桨4D混合并行训练飞桨 4D 混合并行框架高效流水并行编排策略参与节点张量并行机内8卡AllReduceSharding机内8卡Broadcast流水并行多机一组,机间同号卡P2P通信数据并行多组数据并行(多机一个单元)大模型,堆叠 Transformer 层,天然适合切分按 Transformer 层切分,称为流水线并行(PP)竖切Transformer层内大MatMul 切分,称为模型并行(MP)横切将训练数据切分加速训练,称为数据并行(DP)纵向扩展模型参数分组,减少显存占用(Sharding)模型切分竖切、横切、纵向扩展千亿模型训练配置硬件资源 —— 大模型训练对算力和通信的需求切分方式通信操作通信量(单卡)通信卡数计算时间对集群的需求模型并行(MP)AllReduce百 GB/PP 数量单机 8 卡秒级机内高速互联流水并行(PP)
2024年大模型时代的异构计算平台报告-百度智能云,点击即可下载。报告格式为PDF,大小9.81M,页数42页,欢迎下载。
