def deepnorm (x): lef deepnorm_init (w):
'out_proj']:
nn.init.xavier_normal_(w, nn.init.xavier_normal_(w, gain=1)
Deep Norm 可以缓解爆炸式模型更新的问题,把模型更新限制在常数,使得模型训练过程更稳定。 Layer normalization-位置篇 1LN 在 LLMs 中的不同位置有什么区别么?如果有,能介绍一下区别么? 回答:有,LN 在 LLMs 位置有以下几种:
Post-LN Pre-LN Sandwich-LN
Addition
Layer Norm FFN FFN Layer Norm FFN Layer Nomm Addition Addition Attention Addition
Attention Layer Norm Attention Layer Norm
a. 位置:layer norm 在残差链接之后 b. 缺点:Post LN 在深层的梯度范式逐渐增大,导致使用 post-LN 的深层 transformer 容易出现训练不稳 定的问题 2. Pre-LN: a. 位置:layer norm 在残差链接中 b. 优点:相比于 Post-LN,Pre LN 在深层的梯度范式近似相等,所以使用 Pre-LN 的深层 transformeri 练更稳定,可以缓解训练不稳定问题 C. 缺点:相比于 Post-LN,Pre-LN 的模型效果略差 3. Sandwich-LN: a. 位置:在 pre-LN 的基础上,额外插入了一个 layer norm b. 优点:Cogview 用来避免值爆炸的问题 C.缺点:训练不稳定,可能会导致训练崩溃。
Expectation
Pre-LN (init)
Post-LN (after warm-up) 0.5
iradi
Layer
(a)WL in the FFN sub-layers (b)W" in the FFN sub-layers