输入“/”快速插入内容

大模型的开发训练与推理部署

4月8日修改
大模型的开发训练与推理部署
1.
大模型开发与训练
大模型的高性能训练旨在通过对模型计算显存内存通信的系统级优化,在保证模型收敛性的前提下,提高训练吞吐量,实现在有限资源下大模型高效训练的目的
系统级优化方法主要从两个方向实现:
💾
一是:设备内优化方法,包括降低浮点数的冗余表示的半精度浮点优化、混合精度浮点优化等方法、降低梯度计算过程中冗余表示的梯度检查点( Checkpointing ) 方法 , 以内存优化 的 ZeRO-Offload方法,即通过将数据和计算从 GPU 卸载到 CPU,以减少神经网络训练期间 GPU 内存占用的方法。
💾
二是多设备优化方法,也称分布式优化,即将分布在不同计算节点上的多个 GPU 一起用于训练单个模型,这类方法主要有数据并行张量并行流水线并行分组参数切片并行等多种并行加速策略,下面进行重点介绍。
1.
数据并行
💾
数据并行是每个处理器存储全量的模型参数、梯度和优化器状态,但读取不同的输入数据,在反向计算出参数梯度后,对参数梯度做AllReduce聚合,然后每个处理器独立进行参数更新。数据并行的优点是实现和使用方式简单,可以通过增加数据并行路数提高训练吞吐,是目前最为常用的分布式并行策略之一。
2.
张量并行
💾
张量并行是将神经网络中同一层的张量运算拆分成多个独立的子运算,并相应地对模型参数做切分,由不同的处理器分别执行,生成的中间结果通过分布式通信进行组合。张量并行的优点是可以充分利用多核处理器的计算能力,减少了内存访问的延迟,但需要设计高效的并行算法和通信机制来确保计算的正确性和高效性,避免通信延迟和带宽瓶颈。
3.
流水线并行
💾
这种并行策略是将神经网络中的不同层交由不同处理器执行,上下游执行器之间的数据依赖点对点通信传输。基于此技术的高效流水线并行调度策略,支持 1F1B、Interleaving 1F1B 等高效调度算法,并通过“通信-计算”重叠的方式隐藏通信时间,提高整体训练效率
4.
分组参数切片并行
💾
这种并行策略是一种特殊的数据并行方式,它可以将优化器状态、参数梯度和模型参数切分到不同的处理器上,达到节省大模型显存的目的。分组参数并行的优点是可以有效降低模型显存占用,通过增加数据并行路数提高整体训练吞吐。基于此技术的“组内参数切片+组间数据”并行,可以更合理地分配机内和机间的通信带宽,进一步提升了训练性能。
基于上述基础并行策略,不同深度学习框架的实现方法不同有的是基于 PyTorch 进行进一步封装形成单独的工具,如微软的DeepSpeed-MegatronNVIDIA 的 Megatron-LM清华大学的 BMTrain 等;飞桨PaddePaddle 框架支持四维混合并行技术,可将基础的并行策略组合使用
50%
50%