为什么说大模型训练很难?

当前深度学习领域最火的就是大模型了,随着模型规模的不断增加,从之前的多层感知机,到如今的庞然大物,从最初的数亿参数到如今的数千亿参数,大模型的训练变得愈发困难,而且需要的资源也很多。接下来我们就来说说大模型训练难的几个因素。

                                                           近年来大模型的发展

一、硬件要求

我们从市场的反应就可以看出一点门道。现在赚钱的科技公司不多,英伟达可以说是人工智能大时代最赚钱的公司。之前只是一个专门做游戏的公司,做着做着,AI爆发了,需要的芯片也爆发了,而英伟达也就此坐上了头把交椅。2022年11月ChatGPT诞生,而后英伟达就走上了暴富之路,一年内暴涨了200%多

                                                               英伟达股价

所以,做大模型训练难的第一个因素就出来了,那就是对于硬件的要求,或者说对于GPU的要求。人工智能的底层是需要大量的高性能硬件作为支持的,现在的大模型尤其需要更高性能的芯片去做训练,也是美国急于限制我们的一点。尽管目前国内也涌现出了一批厂商制造芯片,比如昇腾,昆仑芯,但其实还是任重道远。像英伟达4090一断供,就会延缓了我们AI学术界和工业界的开发,但反过来也会促进我们进一步去攻克这一技术难关。

而AI又为什么一定需要GPU呢?答主粗略地归结为GPU拥有大量的并行处理单元,专门为浮点运算优化的架构。其实神经网络的运行归根结底是大量的矩阵进行运算,而矩阵计算恰恰是最适合并行的,矩阵并行比循环快上很多。下面是吴恩达老师的一节PPT,就揭示了一层神经网络的计算方式。

                                                      神经网络的矩阵运算

而大模型可不止这四个神经元,3个输入和1个输出,而是以B,十亿为单位的,可想而知计算会更加复杂。那么,存储这些变量和计算这些变量就会对GPU的显存也提出了更高的要求。所以才说大模型训练难的第一个要求会是硬件的要求。

二、 预训练和微调

如果你想重新预训练一个垂直领域的大模型,那么大概要分成两个阶段,第一个就是得在大量的垂直领域的语料库中重新对大模型进行预训练,第二个阶段才是在垂直领域的下游任务上微调。

一个通用领域的大模型是不可以直接用来做垂直领域的专家的,所以预训练+微调几乎就是现有的迁移大模型的范式。其次,在垂直领域的微调还有可能导致大模型出现灾难性遗忘,还需要进行记忆回放

像AI Scholar的实验所示,在任务1训练完成后对任务2进行训练时,我们可以看到任务1的性能明显下降,也就是模型更记住了现在的知识,而忘记了之前学习的知识。

                                                              灾难性遗忘 

有时候,进行多分类的任务也是如此,对所有数据打乱训练,和按顺序训练所有类别,是会有非常明显的差异的。

而微调也分全量微调部分微调。全量微调就是全部参数都会参与梯度更新,这就涉及到了硬件要求等问题,会让一般人根本无法训练。因为此,也是诞生了LoRA这项技术,冻结大模型,而训练一个小量的可训练网络,来完成下游任务。

                                                              LoRA 训练方法


三、 集群调度和通信开销

这一点题主说了,大模型训练难的原因还有一个就是集群调度和通信开销问题。训练大模型一般都不是在一张GPU上训练的,而是需要多张卡进行分布式训练,将模型参数和计算负载分布到多个计算节点上。

据  NVIDIA 估算,如果要训练175B参数量的GPT-3 ,用 8 张 V100 的显卡,训练时长预计要 36 年;即使用 512 张 V100 ,训练也需要将近 7 个月;如果拥有 1024 张 80GB A100, 那么完整训练  GPT-3 的时长可以缩减到 1 个月。

所以你有一张显卡其实还不够,还需要庞大的GPU集群,而且这么多卡,基本也是需要多台计算机才可能装得下。这无疑会让小公司和小实验室望而却步。而且如何调度这么多个集群也是一个问题,pytorch框架对集群的操作也还存在着一些痛点。

                                                                    多卡多机

另外就是通信上的开销。各计算节点之间要频繁地交换网络参数,大模型的参数量很大,也就意味着就算用物理层来通信也会是一笔不小的开销。

四、 数据收集和预处理

大模型训练难的原因还在于数据。数据是人工智能的驱动,没有数据,人工智能也没办法应用。而大模型由于参数量大,需要的数据也是不可估算的。像ChatGPT,就是从网上爬取了大量的文本进行预训练。其次,还通过外包公司对数据大量的数据进行了人工的判定和标注

                                                           Instruct GPT 流程

OpenAI拥有的资源来说,一般人也是比不了的,甚至是没有大量对话和文本数据的大企业也望尘莫及。可以说ChatGPT的成功还来自于其自身的数据鸿沟,给他们打造了一个坚实的壁垒。

所以人工智能时代,谁拥有高质量数据,谁也会拥有话语权。像中文文本数据集,目前也涌现了不少人来做,但是能不能达到ChatGPT的水准,还是不好说。

五、 训练时间成本

除了数据准备过程中的成本,还有训练时间的成本。还是引用那句话,

据 NVIDIA 估算,如果要训练175B参数量的GPT-3 ,用 8 张 V100 的显卡,训练时长预计要 36 年;即使用 512 张 V100 ,训练也需要将近 7 个月;如果拥有 1024 张 80GB A100, 那么完整训练 GPT-3 的时长可以缩减到 1 个月。

即使拥有1024张卡都要训练1个月,可想而知要有多少时间成本放到这上面,再加上如果要做一些改进,如果效果不好,1个月基本就是白费了。这对于现在什么都要求尽快弄出来的环境,实在是有点难以有信心将大量的时间花费在模型的训练上。

六、 总结

感谢大家看到这里,以上就是答主总结的一些大模型训练难的几方面原因了,包括硬件要求,与训练和微调,集群调度和通信开销,数据收集和预处理,训练时间成本。

当然还有一些原因可能没有办法想到,或者其中有一些原因说得不够详细和准确,还请大家在评论区友善交流啦。


**END**

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。

AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

这份完整版的大模型 AI 全套学习资料已经上传至CSDN官方,朋友们如果需要**扫描下方微信二v码获取全套资料**【保证100%免费】
 

 

  • 14
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值