Gated Activation 与 ReGLU

 

1 标准前馈层回顾

Transformer 前馈层(Feed-Forward Layer, FFN)是注意力块外的主要非线性单元,通常由两层线性映射加一次激活构成

1.1 基础公式

\[FF(x) = \text{ReLU}(x W_1) W_2 = \max(0, xW_1) W_2\]

1.1.1 关键组件

  • $x$:来自自注意力或上一层输出的输入向量。
  • $W_1$:升维线性变换,产生中间隐空间。
  • $\max(0, \cdot)$:共享阈值的 ReLU 激活。
  • $W_2$:把激活后的特征投影回原始维度。

ReLU 固定使用零阈值,所有神经元以同一规则开关,难以针对不同 token 动态调节信息流。

2 门控机制的引入

为提升自适应能力,Gated Linear Units(GLU) 及其变体在激活阶段增设门分支,让 FFN 学会对不同特征分配不同“通行证”。

2.1 数学化表达

门控的核心替换是:

\[\max(0, xW_1) \rightarrow \max(0, xW_1) \otimes (xV)\]

2.1.1 表达含义

  • $\otimes$:逐元素乘,确保每个维度都能独立调节。
  • $xV$:额外线性层生成的门控信号,可视作“输入相关的滤波器”。
  • 结果:输出不再只由主分支决定,而是由门分支控制通过比例。

3 ReGLU 流程

ReGLU 选择保持主分支的 ReLU 激活,同时使用线性门分支,得到:

\[FF_{\text{ReGLU}}(x) = \left(\max(0, xW_1) \otimes (xV)\right) W_2\]
模型 第一层输出 是否门控 额外参数
标准 FFN $\max(0, xW_1)$
ReGLU $\max(0, xW_1) \otimes (xV)$ $V$

3.1 设计直觉

  • 门信号依赖输入 $x$,不同 token 激活不同通道。
  • 结构保持残差拓扑不变,却显著改善梯度流。
  • 额外参数 $V$ 成本小,却提供更细粒度的特征选择能力。

4 GLU 家族与实践

不同激活函数对应不同 GLU 变体,常见组合如下:

变体 激活函数 定义
GLU sigmoid $(xW_1) \otimes \sigma(xV)$
GeGLU GELU $\text{GELU}(xW_1) \otimes (xV)$
ReGLU ReLU $\max(0, xW_1) \otimes (xV)$
SwiGLU Swish $\text{Swish}(xW_1) \otimes (xV)$

LLaMA、PaLM、Chinchilla 更偏好 SwiGLU,T5 使用 ReGLU,而 GPT 早期版本仍沿用标准 FFN。

4.1 典型应用提示

  • 变体选择要在训练稳定性、硬件友好度、推理延迟之间权衡。
  • SwiGLU 常带来更强表达力,但 ReGLU 参数更少、实现更轻量。