Megatron-LM论文要点
本文主要是对李沐老师的b站分享做一下自己的理解和总结。
李沐老师b站分享
模型结构无非就是那样,相比而言,想要训练更大的模型而又能平稳进行,是一项非常高超的技术!
nvidia
跟gpipe类似,也是模型并行,但是在任务切割上面跟gpipe不一样。
gpipe: transformer也可以,cnn也可以,比较通用的方式。把不同的层放到不同的gpu,加入数据并行,成为流水线并行。
Megatron-LM:只针对特别大的使用transformer的语言模型,层中间切开,然后放到不同的gpu上。==》层切开的方法,通常命名为张量并行。
〉83亿的语言模型,使用了512块GPU,76%的分布式性能。
39亿的bert,层归一化layer norm的位置。
引言:军备竞赛
之前也有类似的工作,但是需要编译,现在这个方式更简单pytorch代码改动一点就可以了,不需要编译。
系统的文章,取舍,牺牲了通用性。
MLP层并行
MLP输入
X
X
X,实际输入是3D的东西,改成2D的形式,方便讲解:行数是批量大小*序列长度
b
∗
l
b * l
b∗l,列数
k
k
k是隐藏层大小。
σ
(
X
⋅
A
)
⋅
B
=
Y
\sigma(X·A)·B=Y
σ(X⋅A)⋅B=Y
σ
\sigma
σ一般是GeLU。
https://docs.nvidia.com/deeplearning/nemo/user-guide/docs/en/stable/nlp/megatron.html