LLM 基础概念大模型基础激活函数FFN速答 · 约 6 分钟更新 2026-09-28

SwiGLU 是什么?为什么现代大模型都用它替 ReLU/GELU?

一句话结论

SwiGLU 是带有门控机制的激活函数结构。它在 FFN 里用两个线性投影分别生成内容和门控信号再相乘,通过可学习的乘性开关控制信息通过,同等参数预算下表达能力更强。

先这样答

SwiGLU 全称是 Swish 门控线性单元——它与传统激活函数最大的不同在于引入了门控机制。在 Transformer 的前馈网络中,传统做法是输入经过一个线性层接激活函数,再接第二线性层。使用 SwiGLU 时,输入会经过两个并行的线性投影,一个生成内容特征,另一个经 Swish 变换生成门控信号,最后两者逐元素相乘。

现代大模型替换 ReLU 或 GELU 的核心原因在于表达能力的差异。ReLU 和 GELU 这类无门控的单调激活函数只对输入做非线性变换。GLU 家族通过逐元素相乘的操作,多出了一条可学习的乘性开关,就像阀门一样控制信息流向。这种机制让网络能根据输入动态控制哪些信息可以选择性地通过。

引入额外投影层会让前馈网络从传统的两个权重矩阵变成三个,改变了参数的排布方式。为维持代价平衡,工程上通常会按比例缩小隐藏维度,在保持总参数预算不变的前提下,这种结构能提供更强的表达力,实验收益稳定。

在面试官面前可以这样收束:SwiGLU 替代传统激活函数的根本原因在于门控机制的信息筛选能力,在同等参数量下,它比单纯的无门控非线性映射表现更好。

面试官会怎么追问

  • 「既然 FFN 从两个矩阵变成了三个,参数量变大了怎么处理?」 通常会通过缩小隐藏层维度来对齐总参数量。传统前馈网络的隐藏维度一般是模型维度的四倍,使用 SwiGLU 后会将隐藏维度的扩张比例相应下调。这样既保留了门控机制的优势,又不会增加额外负担。

  • 「为什么用 Swish 作为门控函数,而不是直接用 Sigmoid 做传统的 GLU?」 Swish 函数在负半轴有一小段非单调区域,允许少量负梯度回传,有助于缓解神经元死亡问题。实验表明,Swish 配合门控线性单元在多数语言模型训练中的收敛效果比纯 Sigmoid 更稳定。

  • 「你提到门控机制是关键,它具体是怎么控制信息流的?」 门控信号由输入数据经过线性投影和激活函数计算得出。当它与内容特征逐元素相乘时,值接近零的特征维度会被抑制,值接近一的维度会被保留。这使得模型可以依赖当前上下文,动态决定哪些特征对当前任务有用并让其通过。

回答的坑

  • 把优势归结为曲线更光滑,这是偏离核心的答法,重点应当放在 GLU 结构多出来的乘性开关上。
  • 认为 SwiGLU 增加了模型的总参数量,实际上做法是通过压缩隐藏维度来维持同等参数预算,比较的前提是参数量一致。
—— 本题完 ——