Transformer的组件更新——GLU、RoPE和RMSNorm
面对序列问题,在越过了架构之争(状态架构和并行架构)后,首先来看主流常用的并行架构,也就是以Attention为主的架构。基于这个架构,模型能够很容易扩大参数规模(scalable),只需要简单地堆叠,就能够让模型挖掘序列之间更复杂的关系。
所以,基于该架构的发展驱动就是,如何更高效地进行计算。这个高效计算可以分多个层次:
- 顶层:基于并行的思路,优化序列并行计算,提供一个更好的计算方式。例如,位置信息利用,长程关系利用等。
- 中层:Attention计算不够高效,随着序列的增长,传统的Attention计算和内存消耗会随着序列增长而平方增长,需要提高计算效率。
- 底层:硬件需要更好地支持相关Attention的计算,包括各种Attention的变种计算,需要提供更好的硬件支持。
当前主要瞄准的是顶层和中层的改良。对这些改良做一个快速的介绍,尝试理解这些改良对比原始的Attention is all you need是更好的。
其实对于顶层和中层的改良,还可以从数据和计算成本的视角来理解:如果计算成本高,虽然可能在较短的序列中捕捉更复杂的关系,但也就意味着看到的数据少;而如果计算成本低,则可以在单位时间内看到更多更长的数据。但至于如何平衡里面的关系,则具有领域性,经验性。
所以现在所理解到的改良,有一些可能是在相同的长度下,计算复杂提取局部信息所带来的提升;也有减少复杂度,靠数据长度来捕获信息从而提升,两条路都有一定的道理。
接下来就针对现代的Attention模型的一些改进如GLU、RoPE和RMSNorm,快速看一下这些改进的思路是什么。
1 GLU(Gated Linear Units)
传统的Attention的FFN本质上是一个非线性变换,即
其中
但在这个基础上,加入门控网络(感觉有点类似Dropout)有:
对比公式(2),多了一个门控变量
SiLU(SwiGLU)和GELU
接下来,激活函数也有改变,传统的激活函数是ReLU激活函数为:
而现代的激活函数希望能够更好地利用0附近的数值,这是因为,传统的ReLU激活函数在负数方面的梯度为0,从而导致激活函数更新不够高效,所以就有这么两个激活函数:
其中
2 RoPE(Rotary Position Embedding)
除此之外,传统的Attention采用的是绝对位置编码,在一开始的序列的嵌入向量输入的时候就增加了位置信息,但这种位置信息从深度学习神经网络的视角来看可能在后续的传播之中会逐渐衰减。
所以论文[6]提出一种嵌入在Attention计算里面的编码,从计算过程来看,就相当于在两个向量之间还存在一个距离的衰减,换句话说,在计算QK的相似度的时候,除了考虑两个词向量之间的相似度之外,还要考虑两个词之间的位置衰减。其核心思路是,每一个Attention输入的内容都应该考虑其向量和位置信息,并且在计算以后也仍然保持这样的信息。
这样就把两个向量之间的位置距离给编码进去了,一般情况下,
这个式子就表示单元圆上两个角度的变化(事实上也可以不是单位圆)。而这里的
这个也满足解析几何中一个二维向量变化的性质,在这里不再展开其矩阵性质
但是在这里,个人认为该方法更精确地应该叫做“分组旋转”,是因为它将一个向量的元素两两分组,每一个分组上能够有一个相对性。事实上,如果将向量本身就看做是一个
3 RMSNorm
而对于正则化的一个主流改进RMSNorm[5],实际上其改进并不是让模型能够在已有的长度上有更好的表现,甚至在论文中也明确讲了,最终收敛和原始的结构是差不多的,但是它的好处是,整体的计算成本下降了。所以我们可以换句话说,在更少的计算下达到了之前一样的效果,这就意味着,我们可以扩展我们的数据,使其在一样的计算成本下看到更多的数据,从而让模型更接近数据本身。
原本的形式是层归一化(Layer Normalization, LN),需要在数据上进行均值和方差上的调整,这是因为数据在往下传递的时候会发生偏移,导致数值不稳定。而在这里,我们之考虑方差上的调整即有:
其中
参考文献
[1] Dauphin Y N, Fan A, Auli M, et al. Language modeling with gated convolutional networks[C]//International conference on machine learning. PMLR, 2017: 933-941.
[2] Ramachandran P, Zoph B, Le Q V. Searching for activation functions[J]. arXiv preprint arXiv:1710.05941, 2017.
[3] Shazeer N. Glu variants improve transformer[J]. arXiv preprint arXiv:2002.05202, 2020.
[4] Hendrycks D, Gimpel K. Gaussian error linear units (gelus)[J]. arXiv preprint arXiv:1606.08415, 2016.
[5] Zhang B, Sennrich R. Root mean square layer normalization[J]. Advances in neural information processing systems, 2019, 32.
[6] Su J, Ahmed M, Lu Y, et al. Roformer: Enhanced transformer with rotary position embedding[J]. Neurocomputing, 2024, 568: 127063.
- 标题: Transformer的组件更新——GLU、RoPE和RMSNorm
- 作者: Wings
- 创建于 : 2026-05-22 10:00:00
- 更新于 : 2026-05-22 15:55:18
- 链接: https://www.wingslab.top/深度学习/Transformer的组件更新——GLU、RoPE和RMSNorm/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。