← 课程库
语言模型与架构模块三 · Transformer 详细配置公式13 分钟

详细配置:RMSNorm、Pre-Norm、GELU/Swish

现代大模型在原始 Transformer 上改了哪些「小」地方

学完这节你能:
  • 区分 LayerNorm 与 RMSNorm
  • 理解 Pre-Norm 与 Post-Norm 的区别
  • 知道 GELU/Swish 与 ReLU 的差别

原始 Transformer 到现代 LLM,架构没大变,但几处配置几乎成了标配:RMSNorm、Pre-Norm、GELU/SwiGLU。这些是高频考点。

LayerNorm:xμσγ+βRMSNorm:xRMS(x)γ,  RMS(x)=mean(x2)\text{LayerNorm}: \dfrac{x - \mu}{\sigma}\,\gamma + \beta \qquad \text{RMSNorm}: \dfrac{x}{\text{RMS}(x)}\,\gamma,\; \text{RMS}(x)=\sqrt{\text{mean}(x^2)}
RMSNorm 省去了减均值 μ,只用均方根归一化,更省算力。
  • RMSNorm vs LayerNorm:RMSNorm 去掉了「减均值」这一步,只做均方根缩放,计算更快,效果相当。
  • Pre-Norm vs Post-Norm:Pre-Norm 把归一化放在子层「之前」(残差更直接),训练更稳,是大模型主流;Post-Norm 放在「之后」。
  • GELU/Swish vs ReLU:ReLU 在负区恒为 0;GELU/Swish 在负区有平滑的非零输出,更利于梯度流动。
✗ 常见误解✓ 正确理解
LayerNorm 和 RMSNorm 计算完全相同。RMSNorm 省略了减均值(中心化)步骤。
GELU 和 ReLU 一样,负区恒为 0。GELU 在负区有平滑非零输出。
Pre/Post-Norm 只是叫法不同,位置无影响。归一化放在子层前/后,会显著影响训练稳定性。
RMSNorm 手算
x=[3, 4],γ=1
RMS = √((3²+4²)/2) = √(25/2) = √12.5 ≈ 3.54
RMSNorm(x) = x / RMS ≈ [0.85, 1.13]
LayerNorm 会先减均值 3.5 再除标准差——RMSNorm 省掉了「减均值」这一步
自测关于归一化与激活配置,正确的是:
自测变式(换数字再算):x=[1, 2, 2],RMS(x)=√(mean(x²)) 约为:
// 带走一句话

现代配置:RMSNorm(免减均值)、Pre-Norm(更稳,主流)、GELU/Swish(负区平滑非零)。

独立练习

做到这些,才算完成本节

  1. 对同一个向量分别手算 LayerNorm 与 RMSNorm,指出均值中心化造成的差异。
  2. 输入全零、常数和大幅值向量,检查 epsilon 对数值稳定性的影响。
  3. 不看正文重写公式,并逐项说明符号、形状和单位。
  4. 改变一个条件,判断公式结果应增大、减小还是不变。
学习记录

记录本节阅读进度

建议先独立回答自测。读完记录不等于已经掌握。

继续下一课
← 上一课
三大主流架构:编码器-解码器 / 因果 / 前缀解码器
下一课 →
高效注意力:MQA、GQA、MLA 与 KV 缓存

学完不要急着赶进度:去练习自测,或完成对应的阶段实验