from google: http://arxiv.org/abs/2309.14322
本文使用小模型来验证在训练大模型时会产生的loss问题(训练不稳定),成功的在小模型上复现了这一问题,并验证了当前解决大模型的loss问题的方法,在小模型上依然有效。并成功预测了训练不稳定问题的出现。
AdamW 0.9&0.95&1e-8 梯度裁剪1 梯度惩罚1e-4 z-loss 1e-4
warmup step 5000(linear schedule lr) total step 100000(cosine-decay schedule)
min lr 1e-5
pre-norm、不使用bias、两个embedding不共享权重、RoPE、MLP(不是SwiGLU)、embedding初始化正态分布,方差1/sqrt(k)
batch size 256、seq len 512
tokenizer size 32101
bf16
随着attention logit的上涨,模型loss逐渐离谱。产生了训练不稳定的问题。
在探索主要原因之前,先定义attention = softmax(z)* V。 其中z 是QK的乘积并进行scale。
产生这个问题的主要原因是z的值较大,随着z的值变大,attention坍缩成one-hot向量,因此不再具备常规的attention性能。这种现象被称作注意力熵坍缩(attention entropy collapse)。
为了解决这一问题,提出了qk-layerNorm,顾名思义就是在计算前,对qk进行layerNorm,在一定程度上对z进行了削峰,使attention更加稳定。