跳到主内容
快讯直播
AI智模界
AI 词典

SwiGLU:前馈网络里的门控激活

SwiGLU(Swish-Gated Linear Unit)是前馈网络(FFN,Feed-Forward Network)里的一种门控激活单元:它用 Swish(也叫 SiLU,Sigmoid Linear Unit)激活函数做“门”,控制另一条线性投影的信息通过多少。

普通 FFN 常写作“线性 → ReLU(Rectified Linear Unit)→ 线性”。SwiGLU 则把中间一层改成两条路:

  • 一路算 Swish(xW + b),当门控;
  • 另一路算 xV + c,当信息;
  • 两者逐元素相乘,再送去输出投影。

公式:SwiGLU(x) = Swish(xW + b) ⊗ (xV + c) 表示逐元素乘法。

打个比方:ReLU 像一扇只有开和关的闸门,输入为负就全关,正就原样放行。SwiGLU 像调音台:一路是声音信号,另一路是平滑的推子。推子根据每个样本、每个特征动态决定“这一段信息放大还是压小”。而且 Swish 曲线平滑、非单调,不像 ReLU 在负数区一刀切,所以梯度通常更顺,也少了“神经元死亡”的担心。

和相邻概念对比:

单元输出形式特点
ReLUmax(0, xW+b)简单快,硬门控,负区梯度为 0
GLU(Gated Linear Unit)(xW+b) ⊗ σ(xV+c)用 Sigmoid 门控,输出在 0~1
GeGLUGELU(Gaussian Error Linear Unit)(xW+b) ⊗ (xV+c)用 GELU 做门控,平滑
SwiGLUSwish(xW+b) ⊗ (xV+c)用 Swish 做门控,平滑且非单调

为什么它更费参数?标准 FFN 通常有两个大矩阵:升维和降维。SwiGLU 要生成“门”和“信息”两路,再加输出投影,一共三个大矩阵。若隐藏层宽度不变,参数量大致变成原来的 1.5 倍。为了公平对比,很多实现会把隐藏层宽度缩到原来的约 2/3,这样参数总量才接近标准 FFN。代价就是实现和调参更绕,推理时也多一次矩阵乘法的开销。

对从业者:想替换 FFN 激活时,SwiGLU 是常见选项;但要同时调隐藏维度,别让参数和显存悄悄膨胀。对普通人:可以把它理解成模型内部更细腻的“音量旋钮”,而不是粗暴的开关。很多大模型爱用它,本质是在用更多参数和计算,换更强的表达能力和更平滑的优化。具体模型的配置和实现细节,以官方页面为准。

AI 生成本文由 AI 基于公开信息自动生成,仅供参考。