深度学习大模型训练

大模型算法的出现

Transformer

有了Transformer的基础架构后,在18年推出了BERT预训练模型,之后的所有大模型都是基于Transformer结构和BERT的预训练机制。后面比较有意思的就是使用Transformer机制的视觉大模型ViT和引入专家决策机制的MoE。

Attention is all you need

该模型可以高度并行地工作,所以在提升翻译性能的同时训练速度也特别快。

BERT

Google发布的首个预训练大模型BERT,从而引爆了预训练大模型的潮流和趋势

GPT-3

模型尺寸增大到了1750亿,并且使用45TB数据进行训练。GPT-3主要聚焦于更通用的NLP模型,解决当前BERT类模型的两个缺点:对领域内有标签数据的过分依赖:虽然有了预训练+精调的两段式框架,但还是少不了一定量的领域标注数据,否则很难取得不错的效果,而标注数据的成本又是很高的。对于领域数据分布的过拟合:在精调阶段,因为领域数据有限,模型只能拟合训练数据分布,如果数据较少的话就可能造成过拟合,致使模型的泛华能力下降,更加无法应用到其他领域。

T5

重要作用是给整个NLP预训练模型领域提供了一个通用框架,把所有任务都转化成一种形式

训练上述大模型的主流方法

分布式并行加速

并行训练主要分为数据并行、模型并行、流水线并行、张量并行四种并行方式,通过上述四种主要的分布式并行策略来作为大模型训练并行的主要策略。

算法模型架构

内存与计算优化

大模型训练目标

超大模型训练的总体目标就是提升总的训练速度,减少大模型的训练时间。

单卡速度

单卡速度既然是运算速度和数据IO的快慢来决定,那么就需要对单卡训练进行优化,于是主要的技术手段有精度训练、算子融合、梯度累加来加快单卡的训练性能。

加速芯片数量

理论上,AI芯片数量越多,模型训练越快。但是,随着训练数据集规模的进一步增长,加速比的增长并不明显。如数据并行就会出现局限性,当训练资源扩大到一定规模时,由于通信瓶颈的存在,增加计算资源的边际效应并明显,甚至增加资源也没办法进行加速。这时候需要通讯拓扑进行优化,例如通过ring-all-reduce的通讯方式来优化训练模式。

多卡加速比

多卡加速比既然由计算、通讯效率决定,那么就需要结合算法和集群中的网络拓扑一起优化,于是有了数据并行DP、模型并行MP、流水线并行PP相互结合的多维度混合并行策略,来增加多卡训练的效率。

libai

你可能感兴趣的:(微信小程序,leetcode,java)