随着大模型时代的到来,模型参数量、训练数据量、计算量等各方面急剧增长。参数规模方面,在过去的几年里,语言模型的参数规模从数亿增长到数千亿,甚至达到万亿级别。例如OpenAI的GPT-3拥有175B参数,而GPT MoE参数规模到达了1.8T;数据量方面,训练一个大模型通常需要达到T级别tokens;另外,由于参数规模和数据量庞大,随之带来的是巨大的计算量。那么如何对大模型中的各种参数(如模型参数量、计算量、训练时长、训练所需CPU数量、显存大小等)进行估算呢,闲言少叙,我们直接给出各种参数估算的依据或公式,仅供大家参考!

图片

大模型训练相关参数估算

1.模型参数量计算

模型涉及的各种参数如下:

P:参数量

L:模型层数

h:隐藏层维度

V:词表大小

L层Transformer模型可训练参数量为L ( 12h² + 13h ) + Vh,当隐藏层维度h较大时,可忽略一次项,模型参数量可以近似为:

P ≈ 12 * L * h²

图片

因此,可估算不同版本LLama模型参数量,如下表所示:

图片

以GPT-3 175B模型架构为例,模型层数为96,隐藏层维度为12288,估算模型模型参数P ≈ 12 * L * h² = 174B,与模型给定参数基本一致。

2.计算量估算

可以近似的认为,在一次前向传递中,每个token,每个模型参数,需要进行2次浮点数运算 ,即一次乘法运算和一次加法运算。一次训练迭代包含了前向传递和后向传递, 后向传递的计算量是前向传递的2倍,因此,在一次训练迭代中,对于每个token,每个模型参数,需要进行2 x 3 = 6次浮点数运算。

我们以GPT3-175B模型训练为例,对于GPT3,每个token,每个参数进行了6次浮点数运算,再乘以参数量以及总token数就得到了总的计算量。GPT3的模型参数量为 174.6B,训练数据量为300B tokens。

所以,

GPT3训练的总计算量 = 6 x token数 x 模型参数量 = 6 x 174.6 x 10****9 x 300 x 109= 3.1428 x 1023 Flops

注:为方便计算,后面GPT3的模型参数量均按175B计算。

使用激活重计算技术可以用来减少中间激活显存,需要进行一次额外的前向传递,因此,在开激活重计算时,相当于有2次前向传递和1次后向传递(后向传递的计算量是前向传递的2倍),使用激活重计算的一次训练迭代中,对于每个token,每个模型参数,需要进行2 x 4 = 8次浮点数运算。在给定训练token数、硬件环境配置的情况下,

训练的总计算量= 8 x token数 x 模型参数量

3.训练时间估算

针对文本大模型AI训练侧算力存在如下对应关系:

图片

因此,可以得出:

图片

以GPT3-175B为例,假设有1024张40GB显存的A100,在300B tokens的数据上训练175B参数,A100的峰值性能为312TFlops,设GPU利用率为0.45(在百卡以上集群,GPU利用率约为30%~50%),则所需要的训练时间为34天。

训练时长 = ( 8 x 175 x 109 x 300 x 109) / (1024 x 312 x 1012 x 0.45) ≈ 2921340秒 ≈ 34天

4.训练所需CPU数量的估算

由前面AI训练侧算力供需关系模型,可以看出,在模型参数、预训练数据量一定的情况下,对于给定型号的GPU,训练时长越短,所需的GPU数量就越多,建设成本也就越高;反过来,GPU数量越少,训练时长也会拉长,等待成本也就越高。比较理想的情况就是,尽量提升GPU的峰值性能(如从英伟达A100到H100,再到B100,峰值性能从312TFlops到990TFlops,再到2250TFlops)、提升GPU利用率,然后在GPU数量和训练时长之间找一个平衡点。

图片

以GPT3-175B为例,在300B tokens的数据上训练175B参数量的GPT3,40GB显存A100的峰值性能为312TFlops,设GPU利用率为0.45,期望30天完成(训练时长2592000秒)

则需要的A100的数量= (8 x 175 x 109 x 300 x 109) / (2592000 x 312 x 1012x 0.45) ≈ 1154块

5.显存需求估算

显存需求主要取决于参数量和精度。显存需求分为推理显存需求和训练显存需求。

  • 推理显存估算

推理期间使用显存的主要是模型参数量,其它因素主要是前向计算开销,通常是模型参数权重的20%左右(经验估算),因此,推理显存公式如下:

推理显存 ≈ 1.2 x 模型参数量 x 精度(通常为2或4个字节)

  • 训练显存估算

在训练神经网络的过程中,占用显存的大头主要分为四部分:模型参数、前向计算过程中产生的中间激活、后向传递计算得到的梯度、优化器状态。训练大模型时通常会采用AdamW优化器,并用混合精度训练来加速训练,在一次训练迭代中,每个可训练模型参数都会对应1个梯度,并对应2个优化器状态(Adam优化器梯度的一阶动量和二阶动量)。设模型参数量为A,那么梯度的元素数量为A,AdamW优化器的元素数量为2A。在混合精度训练中,会使用float16的模型参数进行前向传递和后向传递,计算得到float16的梯度;在优化器更新模型参数时,会使用float32的优化器状态、float32的梯度、float32的模型参数来更新模型参数。因此,对于每个可训练模型参数,占用了(2+4)+(2+4)+(4+4) = 20bytes,使用AdamW优化器和混合精度训练来训练参数量为A的大模型,模型参数、梯度和优化器状态占用的显存大小为20Abytes。

训练显存 ≈ 20 x 模型参数量(字节)

以GPT-3的175B亿参数为例,推理显存估算约840GB的显存空间;训练显存估算约3500GB。

这与微软和英伟达给出的大模型状态显存估算一致,单个模型副本中每个参数量大约需要20倍于自身大小的空间占用,即至少需要3500GB的显存空间占用,而目前主流算力卡如A100、H100只有80GB的显存空间,所以,至少需要44块80GB显存的GPU才能放下一个模型副本。由于算力需求巨大,整个系统会有多个模型副本,因此,总的显存占用是很夸张的。此外,模型训练时,还需要保存激活值用于反向传播,激活值也将额外占用很大一部分空间。

图片

模型参数量与训练数据量

在大模型训练中,模型基础能力取决于训练数据量、模型参数量和算力。模型参数量越大、投入的训练数据越大,模型泛化能力越强(所谓泛化能力是指模型算法对于没有见过的样本的识别能力,可以理解为举一反三或是学以致用的能力,或者说适用性、准确性)。

但是,由于资源的限制,两者不大可能兼顾,OpenAI的研究结论是:与增加训练数据量相比,先增大模型参数量受益则会更好,用一千亿的模型训练两千亿的token和两千亿模型训练一千亿的token,后者的模型泛化能力会更高。

模型参数越多,模型能够捕捉到的数据特征和规律就越多,也就能够处理更加复杂的问题,当模型参数量增长超过一定阈值,模型能力表现出跃迁式的提升,表现出来语言理解能力、生成能力、逻辑推理能力等能力的显著提升,也就是通常所说的模型的涌现能力。百亿参数是模型具备涌现能力的门槛,千亿参数的模型具备较好的涌现能力。

模型规模一定的情况下,增加训练数据,也可以增加模型泛化能力,比如GPT-3的每个参数只训练1~ 2个token,DeepMind的研究表明,如果把一个大模型训练充分,需要把每个参数量训练20个token。也就是说,当前的很多千亿规模的大模型还需要用10倍左右数据进行训练,模型性能才能达到比较好的水平。

图片

大模型训练面临的瓶颈

在Transformer及大语言模型(LLMs)出现前,绝大部分的AI模型训练和推理,对算力、显存等硬件资源要求不高,使用单机CPU/GPU或分布式小集群即可满足需求,但是大语言模型的出现,让算力、显存、通信等方面均面临巨大的压力:

  • 算力瓶颈

进行大模型训练时,每输入一个token,整个模型中的每个参数上就要进行6~8次的浮点数运算,按本文前面的计算,如果以300B tokens的数据集来训练一个175B的GPT3模型,那么GPT3训练的总计算量达3.1428 x 1023Flops,而A100单卡算力只有312TFlops,不考虑单卡在集群中的性能折损,至少需要32年才能完成。假如希望在30天内完成训练,最简单粗暴的计算算法也需要384张卡(32 * 12 = 384张卡)才能完成,而实际上考虑集群配合、GPU利用率等因素,至少需要千卡规模才能在30天内完成。

  • 显存瓶颈

大模型训练中,显存压力非常大。以GPT-3的175B亿参数为例,前面计算得出的结果,训练显存估算约3500GB,A100、H100只有80GB的显存空间,所以,至少需要44块GPU才能放一个模型副本。

  • 通信瓶颈

由于大模型训练&推理通常都不能在单卡进行,所以我们需要多算力卡构成集群,不可避免的就存在服务器机内和机间通信,各计算单元需要频繁参数同步,通信性能将影响整体计算速度,如果通信瓶颈处理的不好,很可能导致集群规模越大,训练效率反而会降低。我们还是以GPT-3为例,一轮迭代时间在1030秒,一轮迭代内,一个GPU的TP通信量在500GB左右,单个GPU对外网络是200Gbps,超节点内网络(假如使用NVLink4)带宽450GB/s=3600Gbps,此时,TP通信使用机外网络和超节点内网络耗时分别为20秒和1.1秒,相比于迭代的1030秒而言,TP通信如果使用机外网络,通信时长的影响会非常的大,通信瓶颈成为不得不考虑的因素之一。

如何学习AI大模型?

作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

一、全套AGI大模型学习路线

AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!

img

二、640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

img

三、AI大模型经典PDF籍

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。

img

四、AI大模型商业化落地方案

img

作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。

Logo

尧米是由西云算力与CSDN联合运营的AI算力和模型开源社区品牌,为基于DaModel智算平台的AI应用企业和泛AI开发者提供技术交流与成果转化平台。

更多推荐