外观
LLM 激活函数与 FFN 面试题
内容整理自学习笔记,仅供面试备考参考;不构成录用、培训或考试承诺。
1. 标准 FFN 块的计算公式
Transformer 中标准 FFN 块包含两个线性变换和一个激活函数:
其中 W₁ ∈ R^(d×4d),W₂ ∈ R^(4d×d),中间维度为标准隐藏维度的 4 倍。
2. 常见激活函数
GeLU(Gaussian Error Linear Unit)
其中 Φ(x) 为标准正态分布的累积分布函数。GeLU 可视为 ReLU 的平滑版本,在 BERT、GPT 系列中广泛应用。
近似计算:
Swish(SiLU)
SiLU 即 β=1 时的 Swish;该形式被 PaLM 等模型采用。相比 ReLU 具有平滑、非单调的特性。
3. GLU(Gated Linear Unit)及其变体
标准 GLU
GLU 引入门控机制,将输入分为两条路径,一条进行线性变换,另一条通过 Sigmoid 门控。
SwiGLU(LLaMA 采用)
- 使用 3 个可训练权重矩阵(而非 2 个)
- 中间维度约为
4d × 2/3(而非 4d),参数量与标准 FFN 基本持平 - 在 LLaMA 等模型中表现优于标准 FFN
GeGLU
4. 各模型的激活函数选型
| 模型 | FFN 类型 | 激活函数 |
|---|---|---|
| LLaMA / LLaMA2 | SwiGLU | SiLU |
| GPT 系列 | 标准 FFN | GeLU |
| PaLM | SwiGLU | Swish (SiLU) |
| ChatGLM | SwiGLU | SiLU |
| BLOOM | 标准 FFN | GeLU |
| BERT | 标准 FFN | GeLU |
5. 参数量计算示例
以 LLaMA-7B(hidden_size=4096)为例: