核心原则:初始化权重使激活值的方差在各层之间近似恒定。如果每一层放大信号(方差增长),激活值爆炸。如果每一层减弱信号(方差缩小),激活值消失。Xavier初始化将权重设为方差2/(fan_in + fan_out)。Kaiming初始化将方差设为2/fan_in,考虑到ReLU将一半的值置零。
现代Transformer通常使用缩放初始化:注意力和FFN层中的输出投影权重的标准差按1/√(2×num_layers)缩放。这防止了残差流因多层贡献的累积而增长过大。GPT-2和许多后续模型使用这种“缩放初始化”方法。一些架构(如muP/最大更新参数化)通过数学推导的缩放规则更进一步。
对于大多数实际用途,从头初始化很少见——你从预训练权重开始并微调。但初始化对新组件仍然重要:LoRA适配器、新的分类头或扩展的词汇嵌入。LoRA的B矩阵零初始化(使适配器一开始是恒等映射)和新token嵌入的适当初始化(通常复制现有嵌入的均值)是常见的模式,防止新组件在微调开始时破坏预训练模型。