浪潮信息刘军:如何用更少GPU更快地完成2457亿参数巨量模型训练?

近年来,BERT、GPT-3等大规模预训练模型取得了巨大成功,引领语言模型进入巨量时代,算力、数据、参数规模快速朝着极致化的方向发展,也为模型训练和部署带来巨大挑战。在近日举行的2021 NeurIPS MeetUp China上,浪潮信息副总裁、AI&HPC产品线总经理刘军基于2457亿参数的“源1.0”中文语言模型,分享了浪潮人工智能研究院在巨量模型训练与计算性能提升方面的领先实践。

谈及巨量模型训练,刘军表示:“训练工作中最复杂也最具挑战的技术点在于如何行之有效地完成数千万级参数的模型训练”。当前,GPU显存最高为数十GB左右,而训练这样训练数据集达5TB、参数量达2457亿的大模型需要的GPU显存高达几TB,显然无法在单个显卡或一台GPU服务器上完成。因此,巨量模型训练工作,需要在模型算法、分布式训练、大规模集群计算等各个层面进行协同设计、优化,才能保证模型训练过程收敛。

浪潮人工智能研究院需要将“源1.0”训练所需的巨大算力并行分布到几千张GPU上。模型训练时最常采用的是数据并行分布式计算策略,但这只能满足小模型的训练需求。对于像“源 1.0”这样的巨量模型而言,需要专门设计算法来解决训练中的显存占用问题,同时还要兼顾训练过程中的GPU计算资源的利用率。

为此,浪潮采用了张量并行、流水线并行和数据并行的“三合一”并行策略。首先,将266台AI服务器共计2128个GPU芯片分成7组,每组38台AI服务器放置一个完整的“源1.0”大模型,其次,每组的38个服务器,采用流水并行每个服务器放置1/38的模型(2个Transformer Layer),一共76层;最后,在每台服务器内采用张量并行,按照Transformer结构的每一层进行均匀切分。在此过程中,浪潮人工智能研究院也通过“增加序列长度”、“减少模型层数”、“增加隐藏层大小”、“增加节点中微批次大小”等模型结构策略,提升训练效率。

Model

Layers

Hidden size

Global BS

Micro BS

Sequence

Length

t

p

d

GPUs

Yuan 1.0

76

16384

3360

1

2048

8

38

7

2128

“源1.0”的模型结构以及分布式策略

最终,浪潮人工智能研究院完成2457亿参数的“源 1.0”模型训练,总计训练1800亿个tokens,模型收敛的交叉熵为1.64。相较于GPT-3的1750亿参数,“源1.0”是其参数量的1.404倍。GPT-3使用10000块GPU、花了30天训练完成1750亿参数,“源1.0”在2128个GPU集群上跑了16天完成了训练,使用更少GPU更快完成训练,大幅提升计算效率。

“源1.0”消耗的总算力为4095 PetaFlop/s-day,每个GPU的实际训练性能达到140 TFlops,GPT-3消耗的总算力为3640 PetaFlop/s-day,其单GPU计算性能为12 TFlops;而微软和英伟达打造的5300亿参数量的MT-NLG模型用了4480个A100 GPU,其单GPU计算性能为113 TFlops,也低于“源1.0”。

image_5011443_23980367.jpg

“源1.0”与 GPT-3 的参数量、算力对比。

浪潮人工智能研究院在实现更高计算效率的同时,也探索优化大规模AI计算集群架构。当前,如MT-NLG等大规模深度学习模型需要在计算集群中采用8x200Gbps的IB互联架构,而“源1.0”在集群架构设计上采用了2x200Gbps的高速网络实现节点互联,“我们在实践发现,通过一定的优化工作,可以使用更少网络设备数量,取得更佳的计算性能。”刘军表示。

巨量模型是当前人工智能研究的热点,当前的巨量模型远没有达到模型能力的极限,增大模型参数量和训练数据量仍然将带来模型精度的持续提升。对于巨量模型的发展趋势,刘军表示,“巨量模型的计算量已经超过PetaFlop/s-day的阶段,进入到ExtraFlop/s-day的阶段。1 ExtraFlops等于1000 PetaFlops,因此可以说,GPT-3的计算量是3.64ExtraFlop/s-day,‘源1.0’的计算量则是4.095 ExtraFlop/s-day。从十年的尺度来看,今天我们还处于巨量模型起步阶段,人类对计算的追求是没有极限的,目前巨量模型消耗的计算量可能仅仅是未来一台电脑的计算量。”刘军对巨量模型的未来发展充满信心。

稿源:美通社

最新文章