跳到主要内容
起居室老虎
返回

SeeDNorm: Self-Rescaled Dynamic Normalization

3,002 字约 11 分钟

原文:arXiv:2510.22777 · Cai et al., 2025

摘要: Normalization 层是神经网络的核心组件。在 transformer 中,主流的 RMSNorm 把向量约束到单位超球面上,随后通过一个可学习的缩放系数 γ 做逐维度重缩放,以维持模型的表征能力。然而,RMSNorm 在前向传播中丢弃了输入的范数信息,而一个静态的缩放因子 γ 可能不足以容纳输入数据的广泛变异性与分布漂移,从而限制了性能的进一步提升——尤其在大语言模型频繁遭遇的 zero-shot 场景下。为解决这一局限,我们提出 SeeDNorm:它根据当前输入动态调整缩放系数,从而保留输入范数信息,实现数据相关的、自重缩放(self-rescaled)的动态归一化。在反向传播中,SeeDNorm 保留了 RMSNorm 依据输入范数动态调整梯度的能力。我们对 SeeDNorm 的训练优化给出了详细分析,并针对应用时可能出现的不稳定问题提出了相应的解决方案。我们在不同规模模型上验证了 SeeDNorm 的有效性,涵盖大语言模型预训练以及有监督/无监督的计算机视觉任务。在仅引入极少量参数、对模型效率影响可忽略的前提下,SeeDNorm 相比以往常用的 RMSNorm、LayerNorm 等归一化层,以及 DyT 这类逐元素激活替代方案,取得了一致的性能优势。

1. Intro

Normalization 稳定训练、加速收敛,通过对激活施加统计正则来防止梯度爆炸/消失,是 LLM 和 CV 大规模架构里不可或缺的基础模块。

但本文认为,这种稳定是有代价的:LayerNorm/RMSNorm 会丢弃或削弱 input norm 信息,限制表达力、破坏 ”尺度相关特征”(scale-related features)的保留。虽然引入了可学习参数来恢复部分表达力,但这些参数是静态、输入无关(input-independent),在 zero-shot 泛化这类场景下就力不从心。

saturation activation(tanh 及其动态变体 DyT)。这类函数把输出约束在固定范围内,因而能保留输入的相对尺度/范数。但两个致命缺陷:(1) 极端区域的梯度消失;(2) 反向传播时无法像 RMSNorm 那样按输入范数动态调整梯度,导致优化低效、收敛慢。

能否设计一个方法,同时兼顾——训练稳定性、优化效率、以及保留 input norm 信息?‘

Contributions:

  1. 提出一个泛化 RMSNorm 的动态 normalization 层,根据当前输入自适应调整缩放系数,保留范数信息、提升对数据变异与分布漂移的适应性;
  2. 对前向与反向梯度做详尽分析,论证相对现有 normalization 与动态激活的优势,并给出增强训练稳定性的技巧;
  3. 在 dense 与 MoE 结构的 LLM、以及 CV 任务上做大量实验,证明一致的加速收敛与性能提升,且参数与计算开销极小。

image.png

常见的 Norm 有:

  1. BN,沿着 Batch 维度在每个 Channel 内部做归一化。BN 在 CV/CNN 里流行,因为它与卷积对齐(同一 kernel 在所有空间位置和 batch 样本上处理同一 channel),并能平滑 loss landscape。但 BN 不适合序列建模,还会在 batch 内跨样本泄漏上下文信息,故 LLM/生成模型很少用。
  2. 解决 BN 在序列任务的问题,改为沿特征维 对每个样本单独归一化,与 batch size 无关,广泛用于语言建模和 transformer。
  3. 相比 LN 省掉均值减法,只按 root mean square 归一。训练稳定、性能有竞争力,尤其在大规模 transformer。

文章认为上述 Norm 的共同局限:稳定性是靠牺牲 input scale 信息换来的,潜在限制表达力。

近期提出的 Saturation activation / DyT,用激活函数 + 可学习标量 α 替代输入相关统计量,保留 γ、β。DyT 在前向显式保留了 x 的范数,用 tanh 约束极端值,把输入向量映射到半径 √D 的超球面内以增强稳定性。但存在梯度消失:

∇xDyT(x)=α·sech2(αx)·diag(γ)∇_x \text{DyT}(x) = α·\text{sech}²(αx)·\text{diag}(γ)

,当 γ 太小、α 过大或过小、或 x 过大时梯度趋 0;而且 sech2(x)\text{sech}²(x) 是 1/x1/x 的高阶无穷小,反传到前面层仍会梯度消失。此外可以证明:在输入范数恒定的假设下 RMSNorm 与 DyT 在对 x 的梯度上等价——反过来说明 DyT 缺乏 RMSNorm 那种按输入范数自适应调整梯度的能力。

证明:令

r=xRMS(x),x∈ℝ1×D;r=\frac{x}{\mathrm{RMS}(x)},\quad x\in\mathbb{R}^{1\times D};

则

∇xr=IRMS(x)−xTxD⋅RMS3(x).\nabla_x r=\frac{I}{\mathrm{RMS}(x)}-\frac{x^Tx}{D\cdot\mathrm{RMS}^3(x)}.

由于 RMS(x)=1D‖x‖\mathrm{RMS}(x)=\frac{1}{\sqrt{D}}\|x\|,我们从梯度等价的角度进行推导:

∇xr=D‖x‖(I−xTx‖x‖2)=1RMS(x)(I−(DxT)(Dx)D‖x‖2)=1RMS(x)(I−rTrD).\nabla_x r=\frac{\sqrt{D}}{\|x\|}\left(I-\frac{x^Tx}{\|x\|^2}\right)=\frac{1}{\mathrm{RMS}(x)}\left(I-\frac{(\sqrt{D}x^T)(\sqrt{D}x)}{D\|x\|^2}\right)=\frac{1}{\mathrm{RMS}(x)}\left(I-\frac{r^Tr}{D}\right).

给定 RMS(x)\text{RMS}(x) 是一个常数,将其记为 cc。每个位置上的操作 rd=xd/RMS(x)r_d=x_d/\mathrm{RMS}(x) 可以被视为独立计算,上式可以写成如下逐元素微分方程:

drddxd=1c(1−rd2D).\frac{dr_d}{dx_d}=\frac{1}{c}\left(1-\frac{r_d^2}{D}\right).

求解:

drddxd=1c(1−rd2D)⇒DD−rd2drd=1cdxd.\frac{dr_d}{dx_d}=\frac{1}{c}\left(1-\frac{r_d^2}{D}\right)\Rightarrow\frac{D}{D-r_d^2}dr_d=\frac{1}{c}dx_d.

对方程两侧积分,为了记号方便,默认将微分方程中的所有积分常数设为 0:

∫DD−rd2drd=∫1cdxdD⋅12Dln⁡|D+rdD−rd|=1cxdln⁡|D+rdD−rd|=2xdcD|D+rdD−rd|=e2xdcD.\begin{align*} \int \frac{D}{D-r_d^2}dr_d&=\int \frac{1}{c}dx_d\\ D\cdot\frac{1}{2\sqrt{D}}\ln\left|\frac{\sqrt{D}+r_d}{\sqrt{D}-r_d}\right|&=\frac{1}{c}x_d\\ \ln\left|\frac{\sqrt{D}+r_d}{\sqrt{D}-r_d}\right|&=\frac{2x_d}{c\sqrt{D}}\\ \left|\frac{\sqrt{D}+r_d}{\sqrt{D}-r_d}\right|&=e^{\frac{2x_d}{c\sqrt{D}}}. \end{align*}

由于 −D<rd<D-\sqrt{D}<r_d<\sqrt{D},上式左侧必然大于 0,因此可以去掉绝对值符号。然后我们有:

D+rdD−rd=e2xdcD⇒rd=D⋅e2xdcD−1e2xdcD+1\frac{\sqrt{D}+r_d}{\sqrt{D}-r_d}=e^{\frac{2x_d}{c\sqrt{D}}}\Rightarrow r_d=\sqrt{D}\cdot\frac{e^{\frac{2x_d}{c\sqrt{D}}}-1}{e^{\frac{2x_d}{c\sqrt{D}}}+1}

由于tanh⁡(z)=ez−e−zez+e−z\tanh(z)=\frac{e^z-e^{-z}}{e^z+e^{-z}},我们有:

rd=D⋅e2xdcD−1e2xdcD+1=D⋅exdcD−e−xdcDexdcD+e−xdcD=D⋅tanh⁡(xdcD).r_d=\sqrt{D}\cdot\frac{e^{\frac{2x_d}{c\sqrt{D}}}-1}{e^{\frac{2x_d}{c\sqrt{D}}}+1}=\sqrt{D}\cdot\frac{e^{\frac{x_d}{c\sqrt{D}}}-e^{-\frac{x_d}{c\sqrt{D}}}}{e^{\frac{x_d}{c\sqrt{D}}}+e^{-\frac{x_d}{c\sqrt{D}}}}=\sqrt{D}\cdot\tanh\left(\frac{x_d}{c\sqrt{D}}\right).

由于 DyT 包含一个可学习缩放系数γγ,常数 D\sqrt{D} 可以被吸收到γγ中。类似地,1/(cD)1/(c\sqrt{D}) 也可以并入αα中。

因此,尽管 DyT 在前向传播中保留了输入范数,但与 RMSNorm 相比,它在反向传播期间失去了基于 x 的幅值动态调整梯度尺度的能力。相比之下,本文提出的方法在前向和后向阶段都保留范数信息,使模型在整个优化过程中具有数据依赖的、自重缩放梯度。

3. Self-Rescaled Dynamic Normalization (SeeDNorm)

定义:

SeeDNorm(x)=[σ(x⋅βT)⋅α+γ]⊙xRMS(x),whereRMS(x)=1D∑i=1Dxi2+ϵ.\mathrm{SeeDNorm}(x)=[\sigma(x\cdot\beta^T)\cdot\alpha+\gamma]\odot\frac{x}{\mathrm{RMS}(x)},\quad\mathrm{where}\quad \mathrm{RMS}(x)=\sqrt{\frac{1}{D}\sum_{i=1}^{D}x_i^2+\epsilon}.

对单 token x∈R1×Dx ∈ R^{1×D}:

σ(x·βT)σ(x·β^T) 用的是未归一化的原始 x,RMSNorm 把 ||x||||x|| 除掉丢了,SeeDNorm 让 ||x||||x|| 通过在 β 方向上的投影 x·βTx·β^T 重新进入前向,再经 tanh 有界化。从而实现 ”preserve input norm information”。

σ(x·βT)σ(x·β^T) 是每 token 一个标量 gate,αα 是向量,所以动态修正项 σ·ασ·α 让每个 channel 得到不同但成比例的调整(同一个标量 gate 按 α 的形状分布到各维)。γ 是静态基线,σ·α是随 token 变化的动态偏移。

可替换 transformer 里所有 normalization,包括 QKNorm。γγ 用 1 初始化、ββ 用 0 初始化,αα 由超参决定。训练时对 γ 沿用 baseline 的正则策略,默认不额外加 weight decay;但对 αα、ββ weight decay,有利训练、缓解过拟合。

3.1. Analysis of SeeDNorm

对于 Fwd,RMSNorm 原文中已经讨论了它的稳定性,此处不再进一步分析,重点讨论反向传播,即各个参数和输入的梯度。

Invariance Analysis

SeeDNorm 不严格 scale-invariant,但对输入缩放不敏感。当 x→kxx→kx:x/RMS(x)x/RMS(x) 部分里 k 约掉不变,只有 self-rescaling 矩阵从f(x)=[σ(x·βT)·α+γ]f(x)=[σ(x·β^T)·α+γ]变成f(kx)=[σ(kx·βT)·α+γ]f(kx)=[σ(kx·β^T)·α+γ]。求导:

∇xf=sech2(x⋅βT)(αT⋅β)=(1−tanh2⁡(x⋅βT))(αT⋅β).\nabla_x f=\mathrm{sech}^2(x\cdot\beta^T)(\alpha^T\cdot\beta)=(1-\tanh^2(x\cdot\beta^T))(\alpha^T\cdot\beta).

所以设计上:ββ初始化为 0 使∇f∇f初值为 0(初始等价于纯 RMSNorm),并对 αα、ββ 加 weight decay;x 接近 0 时 f 主要由 γγ 主导。

Gradient Analysis

记 s=σ(x·βT)·αs = σ(x·β^T)·α,四个梯度:

∂SeeDNorm(x)∂γ=diag(xRMS(x)) \frac{\partial\mathrm{SeeDNorm}(x)}{\partial\gamma}=\mathrm{diag}\left(\frac{x}{\mathrm{RMS}(x)}\right)

γ\gamma的梯度:只含 scale-invariant 的 x/RMS(x)x/RMS(x)(因为 kx/RMS(kx)=x/RMS(x)kx/RMS(kx)=x/RMS(x)),因此不受异常大/小 x 影响,γγ训练天然稳定,无需额外处理。

∂SeeDNorm(x)∂α=xRMS(x)⋅[σ(x⋅βT)ID×D] \frac{\partial\mathrm{SeeDNorm}(x)}{\partial\alpha}=\frac{x}{\mathrm{RMS}(x)}\cdot\left[\sigma(x\cdot\beta^T)I_{D\times D}\right]

αα的梯度:也含 x/RMS(x)x/RMS(x),但乘了 σ(x·βT)σ(x·β^T)。用 tanh 时,x 异常大时σσ 被锁在 1 内可以防梯度爆炸;x 异常小时αα梯度变小但γγ仍能正常更新。注意:αα直接乘在ββ的梯度里,ββ又直接影响αα的梯度,所以αα和ββ不能同时初始化为 0。

∂SeeDNorm(x)∂β=σ′(x⋅βT)((α⊙xRMS(x))T⋅x)\frac{\partial\mathrm{SeeDNorm}(x)}{\partial\beta}=\sigma'(x\cdot\beta^T)\left(\left(\alpha\odot\frac{x}{\mathrm{RMS}(x)}\right)^T\cdot x\right)

ββ 的梯度:σ′(x·βT)=1/cosh2(x)σ'(x·β^T)=1/cosh²(x)。x 异常大时 cosh 是 x 的高阶无穷小,ββ 梯度几乎为 0;x 异常小也趋向 0;两头都避免爆炸。因为ββ通常被包在σσ或 σ′σ' 里(范围受限),而 αα 是直接相乘的,所以把 ββ 初始化为 0,让 αα的梯度在训练早期从 0 起步以增强稳定;又因为几乎所有梯度都含 αα、ββ,需要用 weight decay 控制它们的尺度防止持续增大导致梯度过大。

∂SeeDNorm(x)∂x=σ′(x⋅βT)(α⊙xRMS(x))T⋅β+1RMS(x)(diag(s+γ)−(s+γ)T𝟏1×DD⋅RMS2(x)⊙(xT⋅x))\frac{\partial\mathrm{SeeDNorm}(x)}{\partial x}=\sigma'(x\cdot\beta^T)\left(\alpha\odot\frac{x}{\mathrm{RMS}(x)}\right)^T\cdot\beta+\frac{1}{\mathrm{RMS}(x)}\left(\mathrm{diag}(s+\gamma)-\frac{(s+\gamma)^T\mathbf{1}_{1\times D}}{D\cdot\mathrm{RMS}^2(x)}\odot(x^T\cdot x)\right)

x 的梯度最关键,决定它像不像 RMSNorm:x 是上一层的激活,其梯度要回传更新前面的层。理想行为是” x 大则回传梯度小,x 小则回传梯度大”。

设 x→kxx→kx 且 k 很大:第一项接近 0;s→1s→1;(kx)T(kx)/RMS2(kx)=xTx/RMS2(x)(kx)^T(kx)/RMS²(kx) = x^Tx/RMS²(x) 不变;因此整个梯度由 1/RMS(kx)=1/(k·RMS(x))1/RMS(kx)=1/(k·RMS(x)) 主导,梯度按 k 同比例缩小。

这正是 RMSNorm 的 norm-adaptive 梯度性质,也是 DyT 缺失的。k 很小时,第二项远大于第一项,同样由1/RMS(kx)1/RMS(kx)主导。结论:SeeDNorm 反传具备良好的自适应梯度调节。

3.2. Multi-Head SeeDNorm

σ(x·βT)σ(x·β^T) 与 σ′(x·βT)σ'(x·β^T) 影响 α/β/xα/β/x 三者的梯度。前面只分析了极端值,但实际训练里极端值罕见;为在非极端条件下也稳,策略是降低 x·βTx·β^T的方差。

Theorem:高维空间中,两个随机向量点积的方差正比于维度 D。 证明:假设有两个 D 维随机向量 x=[x1,x2,…,xD]x=[x_1,x_2,\ldots,x_D] 和 y=[y1,y2,…,yD]y=[y_1,y_2,\ldots,y_D]。它们的分量是独立同分布随机变量,并且满足:

𝔼(xi)=𝔼(yi)=0,Var(xi)=Var(yi)=σ2.\mathbb{E}(x_i)=\mathbb{E}(y_i)=0,\qquad\mathrm{Var}(x_i)=\mathrm{Var}(y_i)=\sigma^2.

那么 Var(x⋅yT)=Var(∑i=1Dxiyi)\mathrm{Var}(x\cdot y^T)=\mathrm{Var}(\sum_{i=1}^{D}x_iy_i),令s=x⋅yTs=x\cdot y^T,我们有:

Var(s)=𝔼(s2)−𝔼2(s)=𝔼(s2)\mathrm{Var}(s)=\mathbb{E}(s^2)-\mathbb{E}^2(s)=\mathbb{E}(s^2)
𝔼[s2]=𝔼[(∑i=1Dxiyi)2]=𝔼[∑i=1D∑j=1D(xiyi)(xjyj)]=∑i=1D∑j=1D𝔼[xiyixjyj]\mathbb{E}[s^2]=\mathbb{E}\left[\left(\sum_{i=1}^{D}x_iy_i\right)^2\right]=\mathbb{E}\left[\sum_{i=1}^{D}\sum_{j=1}^{D}(x_iy_i)(x_jy_j)\right]=\sum_{i=1}^{D}\sum_{j=1}^{D}\mathbb{E}[x_iy_ix_jy_j]
∑i=1D∑j=1D𝔼[xiyixjyj]=∑i=1D∑j=1Dδij𝔼[xiyixjyj]=D𝔼[xi2yi2]=D𝔼[xi2]𝔼[yi2].\sum_{i=1}^{D}\sum_{j=1}^{D}\mathbb{E}[x_iy_ix_jy_j]=\sum_{i=1}^{D}\sum_{j=1}^{D}\delta_{ij}\mathbb{E}[x_iy_ix_jy_j]=D\mathbb{E}[x_i^2y_i^2]=D\mathbb{E}[x_i^2]\mathbb{E}[y_i^2].

因此,𝔼[s2]=Dσ4\mathbb{E}[s^2]=D\sigma^4,它与维度大小成正比。

实际做法是:把 x 和 ββ 各切成 n 个 sub-vector,逐 head 算点积再拼回原维度:

MHSeeDNorm=[σ([xh1⋅βh1T,…,xhn⋅βhnT])⋅α+γ]⊙xRMS(x).(7)\mathrm{MHSeeDNorm}=\left[\sigma\left([x_{h1}\cdot\beta_{h1}^{T},\ldots,x_{hn}\cdot\beta_{hn}^{T}]\right)\cdot\alpha+\gamma\right]\odot\frac{x}{\mathrm{RMS}(x)}. \tag{7}

每个点积维度降到 D/nD/n,从而把方差压下去。这里 σσ、σ′σ' 也变成 multi-head 形式,目标是降低梯度方差。

4. Experiments

总原则:把 baseline 里所有 normalization / saturation activation 全部换成 SeeDNorm。

4.1. Large Language Models

MoE 用 OLMoE,dense 用 OLMo2。语料严格对齐原实现(OLMoE-mix-0924 / OLMo-mix-1124)。两者都用 RMSNorm,除 attention/FFN 输入外,还在 output norm、QueryNorm、KeyNorm 用。全部换成 SeeDNorm,且 QKNorm 在每个 attention head 内做。语言任务αα初始化为 1。

image.png

MoE:SeeDNorm 显著加速收敛;且随 token 增多,loss 相对 baseline 的改进越来越大,而把 OLMoE-1.3B 换成 DyT 反而收敛变慢、性能退化(loss 2.968、PPL 19.45,多数下游下降)——直接对照验证了 saturation activation 的缺陷。

Dense:收益缩小,但仍然有收益。作者解释:dense 模型不需要动态激活参数、训练更稳、每个参数被充分训练,从而削弱了 SeeDNorm 带来的加速收敛优势;但在 zero-shot(ARC-C/ARC-E)上仍显著提升。MoE 的动态架构更能放大 SeeDNorm 的优势,似乎证明动态 normalization 与动态路由(MoE)之间存在协同。

4.2. Computer Vision Tasks

SeeDNorm 无法直接替换 AdaLN,缺乏条件预测。提出:

AdaSeeDNorm(x,c)=[(σ(x⋅βT)⋅α+1)⊙xRMS(x)](1+γ(c))+η(c),where c is the condition.\mathrm{AdaSeeDNorm}(x,c)=\left[(\sigma(x\cdot\beta^T)\cdot\alpha+1)\odot\frac{x}{\mathrm{RMS}(x)}\right](1+\gamma(c))+\eta(c),\quad \mathrm{where}\ c\ \mathrm{is\ the\ condition}.

image.png

image.png

由于 DyT 已经强过 DiT baseline,作者直接与 DyT 比,cfg-scale=1.5。FID 和 loss 都优于 DyT。

Supervised(ViT、ConvNeXt):SeeDNorm 优于 DyT 和 LayerNorm(ViT-B 82.3/82.5/82.7,ConvNeXt-L 84.3/84.4/84.6)。

Self-Supervised(MAE on ViT):显示 SeeDNorm 显著加速 pretraining 收敛,fine-tune 也占优(ViT-B (MAE) 83.2/83.2/83.5)。

4.3. Ablation Study

image.png

image.png

5. Conclusion

SeeDNorm 以输入为条件动态调整缩放因子,前向纳入被 RMSNorm 忽略的 input norm 信息,增强对多样输入的适应性;反向保留按幅度动态调梯度的能力。在语言与视觉多任务上更快收敛、更优性能,呼吁更多关注改进 normalization 层本身。