Transformer 與大型語言模型內部機制
均方根正規化(RMSNorm)
RMSNorm 把一個激活向量除以它的均方根大小來正規化,再用一個可學增益重新縮放。與 LayerNorm 不同,它不先減去平均值,只固定尺度而非中心。直覺上它回答「這個向量有多大?」並把那除掉,保留方向不變,而這恰好是正規化中對 transformer 最關鍵的部分。
對維度為 d 的向量 x,RMSNorm 計算 x 乘 g 除以「(d 分之一乘 x_i 平方之總和,再加 epsilon) 的平方根」,其中 g 是逐維可學縮放、epsilon 防止除以零。捨棄減平均與偏置,等於每個 token 少做一次歸約與一次減法,使它更便宜、更容易高效實作,且實證上在深層 transformer 中與 LayerNorm 相當或略勝。它幾乎總是用在前正規化(pre-norm)位置,於每個子層之前作用在殘差流上。
RMSNorm 如今是 LLaMA、Mistral 及多數現代 LLM 的預設正規化器,它的簡潔也使它對低精度與融合核心更友善。概念上的啟示是:長久以來被視為必要的重新置中其實大致可以省略;真正穩定訓練的是控制激活的尺度。
\mathrm{RMSNorm}(x) = \frac{x}{\sqrt{\frac{1}{d}\sum_{i=1}^{d} x_i^2 + \epsilon}} \odot g
以均方根縮放;不減平均,只用逐維可學增益 g。
又稱
另見