SwiGLU激活函数的设计动机与门控机制
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)。
设计动机:
- 门控机制:GLU引入门控结构让网络学习选择性遗忘,类似于LSTM、GRU中的门控思想
- 非线性增强:Swish作为门控激活函数提供平滑非线性,比sigmoid门控更优
- 信息流控制:门控分支决定多少信息通过,上行分支承载实际变换
实际优势:SwiGLU在相同的参数量下,LLaMA系列通过将FFN维度从4d扩至约8d/3(因GLU需要两组权重)来实现同等参数量下的更好性能。被LLaMA 2/3、PaLM、Gemini等模型广泛采用。