- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
;分布式训练是指将机器学习或深度学习模型训练任务分解成多个子任务,并在多个计算设备上并行地进行训练。图7-5给出单个计算设备和多个计算设备的示例,这里的计算设备可以是中央处理器(CPU)、图形处理器(GPU)、张量处理器(TPU),
也可以是神经网络处理器(NPU)。
图7-5单个计算设备和多个计算设备的示例;一个模型训练任务往往会有大量的训练样本作为输入,可以利用一个计算设备完成,也可以将训练任务拆分成多个子任务,分发给不同的计算设备,实现并行计算。此后,还需要对每个计算设备的输出进行合并,最终得到与单个计算设备等价的计算结果,最终实现对整个计算过程的加速。
机器学习模型快速发展,模型参数规模迅速增大的同时,对训练数据量的要求也呈指数级增长,加剧了对算力的需求,只有通过分布式训练系统才可以匹配模型不断增长的算力需求,满足机器学习模型的发展需要。分布式训练的总体目标就是提升总的训练速度,减少模型训练的总体时间。;分布式训练系统需要克服计算墙、显存墙、通信墙等挑战,以确保集群内的所有资源得到充分利用,从而加速训练过程并缩短训练周期。
·计算墙:单个计算设备所能提供的计算能力与大模型所需的总计算量之间存在巨大差异。
·显存墙:单个计算设备无法完整存储一个大模型的参数。
·通信墙:分布式训练系统中各计算设备之间需要频繁地进行参数传输和同步。由于通信的延迟和带宽限制,这可能成为训练过程的瓶颈。;数据并行性关注的问题是在大批量下,如何降低显存的开销。模型中间计算过程都会有中间状态,通常占用的空间和批量大小成正比。
在数据并行系统中,每个计算设备都有整个神经网络模型的模型副本,进行迭代时,每个计算设备只分配一个批次数
据样本的子集,并根据该批次样本子集的
数据进行网络模型的前向计算。;数据并行训练系统可以通过增加计算设备,有效提升整体训练吞吐量,即每秒全局批次数,它需要在所有计算设备中进行同步,以保证每个计算设备上最终得到的是所有进程上梯度的平均值。常见的神经网络框架中都有数据并行方式的具???实现。
由于基于Transformer结构的大模型中每个算子都依赖单个数据而非批次数据,因此数据并行并不会影响其计算逻辑。一般情况下,各训练设备中前向计算是独立的,不涉及同步问题。数据并行训练加速比最高,但要求每个设备上都备份一份模型,显存占用比较高。;解决模型并行单节点内存不足的问题,可以用以下两种形式进行切分。
(1)按模型的层切分到不同设备,即层间(算子间)并行或流水线并行。
(2)将计算图层内的参数切分到不同设备,即层内并行或张量并行。
模型并行性的基本含义是把模型本身进行切分,使得每个GPU卡只需要存模型的一部分。多个GPU配合起来完成一个完整的小批量。;流水线并行性使用了经典的管道思想。在模型计算流水线上,每个GPU只负责模型的一个分片,计算完就交给下一个GPU完成下一个模型分片的计算。当下个GPU在计算时,上一个GPU开始算下一个小批量属于它的模型分片。这里需要注意到不同模
型分片使用的参数分片
是否同步的问题,防止
流水线更新参数的问题。
图7-9流水线并行;混合并行是将多种并行策略如数据并行、流水线并行和张量并行等混合使用。通过结合不同的并行策略,可以充分发挥各种并行策略的优点,最大限度地提高计算性能和效率。;
文档评论(0)