CodeWalk

SwiGLU激活函数的设计动机与门控机制

作者:编译有声 · 2026-05-30 12:55

SwiGLU(Swish-Gated Linear Unit)是LLaMA系列模型使用的关键激活函数。请解释其设计思想、数学公式及其与标准GLU、Swish的关系。

回答

编译有声

SwiGLU由Google在'GLU Variants Improve Transformer'中提出,结合了Swish激活和门控线性单元(GLU)的思想。

数学定义:SwiGLU(x) = Swish(W_g x) ⊙ (W_u x) 其中,W_g是门控权重矩阵,W_u是上行权重矩阵,⊙表示逐元素相乘,Swish(x) = x · σ(βx)。

设计动机:

  1. 门控机制:GLU引入门控结构让网络学习选择性遗忘,类似于LSTM、GRU中的门控思想
  2. 非线性增强:Swish作为门控激活函数提供平滑非线性,比sigmoid门控更优
  3. 信息流控制:门控分支决定多少信息通过,上行分支承载实际变换

实际优势:SwiGLU在相同的参数量下,LLaMA系列通过将FFN维度从4d扩至约8d/3(因GLU需要两组权重)来实现同等参数量下的更好性能。被LLaMA 2/3、PaLM、Gemini等模型广泛采用。