M3-016M3: Deep Learning FoundationsActivation FunctionsMedium
Mastery:
Activation Functions: 什么是门控线性单元(GLU)家族?为什么它们有效。
📐 Mathematical Definition
⚡ Executive Summary
Core Concept: 用一路输入作为'门'乘另一路,实现输入依赖的非线性调制;表达力强于单路激活。
📌 Key Takeaways
- •SwiGLU 是 LLaMA FFN 标配
- •代价是多一个投影矩阵(参数量 +50%)
📐 Mathematical Derivations
GLU 家族的形式:GLU(x)=(xW₁)⊙σ(xW₂),即用一路线性变换的输出作为<strong>门</strong>(经激活后),逐元素乘上另一路线性变换。<strong>门控的直觉</strong>:单路激活(如 ReLU(Wx))是'对每个特征独立地做非线性';而门控是<strong>输入依赖的调制</strong>——门的值决定'让哪些特征通过、通过多少',这种<strong>乘性交互</strong>比加性/逐点非线性表达力更强(能表达特征间的条件依赖)。<strong>家族成员</strong>(按门控函数区分):<strong>SwiGLU</strong>(SiLU 门控,LLaMA 用)、<strong>GeGLU</strong>(GELU 门控)、<strong>ReGLU</strong>(ReLU 门控)、<strong>Bilinear</strong>(线性门控)。<strong>为什么有效</strong>:① 乘性交互提供更高阶的非线性(ReLU(Wx) 是分段线性,GLU 是'分段线性 × 分段线性');② 门控实现了'条件计算'的雏形(类似注意力对信息的加权);③ 实验上在同等参数量下,GLU 变体一致优于标准 FFN。<strong>代价</strong>:GLU 需要<strong>三个</strong>投影矩阵(gate/up/down),而标准 FFN 只需两个(up/down);为保持参数量可比,通常把中间维度从 4d 降到 <strong>8/3·d</strong>(因为 3×(8/3)=8=2×4),使参数量与标准 FFN 相当。
🏭 Production Trade-offs
实践要点:① <strong>SwiGLU 的结构</strong>——SwiGLU(x)=(SiLU(xW_gate)⊙xW_up)W_down;注意是<strong>门控与上投影逐元素相乘</strong>,再经下投影。LLaMA 的 FFN 即此结构,中间维度 d_ff=8/3·d(且向上取整到 256 的倍数以利硬件)。② <strong>与注意力的关系</strong>——门控与注意力都是'输入依赖的加权':注意力在<strong>序列维度</strong>上加权(token 之间),门控在<strong>特征维度</strong>上加权(特征之间);两者共同构成 Transformer 的两类动态计算。③ <strong>与 MoE 的关系</strong>——MoE 可视为'门控的极端形式'(在专家维度上硬/软选择),SwiGLU 的 gate 是连续的门控、MoE 的 router 是稀疏的门控。④ <strong>实验证据</strong>——Shazeer (2020) 的消融显示:同等参数量/计算量下,SwiGLU/GeGLU 优于标准 ReLU/GELU FFN(在 T5 等模型上);这是 LLaMA 采用 SwiGLU 的直接依据。⑤ <strong>实现注意</strong>——三个矩阵的初始化、d_ff 的取整、以及推理时的融合(gate 与 up 可合并为一次矩阵乘再拆分,提升效率)。⑥ <strong>实践建议</strong>——从零设计 FFN 时优先用 SwiGLU;若需与已有模型兼容则沿用其结构;微调时不要改动 FFN 结构(否则无法加载预训练权重)。
⚠️ Common Interview Pitfalls
- ✕保持 d_ff=4d 导致 SwiGLU 参数量超标准 FFN 50%
- ✕混淆门控(特征维度)与注意力(序列维度)的作用维度
🎯 Interviewer Follow-ups
- ?为什么 SwiGLU 需要三个矩阵?
- ?门控与注意力的关系?
📚
Associated Knowledge Base Guides & Mindmaps
Explore the comprehensive technical article, exam cards, and global architecture tree.