核心原則:初始化權重使得激活值的變異數在各層之間大致恆定。如果每一層都放大信號(變異數增長),激活值就會爆炸。如果每一層都減弱信號(變異數縮小),激活值就會消失。Xavier 初始化將權重設為變異數 2/(fan_in + fan_out)。Kaiming 初始化將變異數設為 2/fan_in,考慮到 ReLU 會將一半的值歸零。
現代 Transformer 通常使用縮放初始化:注意力和 FFN 層中的輸出投影權重使用標準差除以 1/√(2×num_layers) 進行初始化。這防止殘差流因為來自多層的貢獻累積而變得太大。GPT-2 和許多後續模型使用這種「縮放初始化」方法。一些架構(如 muP/最大更新參數化)進一步使用數學推導的縮放規則。
對於大多數實用目的,從頭開始初始化是罕見的——你從預訓練權重開始並進行微調。但初始化對新組件仍然重要:LoRA 適配器、新的分類頭,或擴展的詞彙嵌入。LoRA 的 B 矩陣使用零初始化(讓適配器從恆等映射開始)以及新 token 嵌入的適當初始化(通常複製現有嵌入的均值)是常見的模式,防止新組件在微調開始時擾亂預訓練模型。