モデルの重みパラメータに減衰係数を乗じて徐々に小さくすることで、過度に大きな重みの発生を抑制し汎化性能を高める正則化手法。AdamW最適化手法と組み合わせてLLM訓練の事実上の標準となっている。
Weight Decay(重み減衰)は、ニューラルネットワークの訓練において各更新ステップでモデルの重みパラメータに減衰係数 λ を乗じて縮小する正則化手法である。L2 正則化と密接に関連するが、適応的学習率を使用する最適化アルゴリズム(Adam 等)では両者の振る舞いが異なる。
基本的な更新式は以下の通りである:
w_{t+1} = (1 - λ) * w_t - η * ∇L(w_t)w_{t+1} = (1 - λ) * w_t - η * m_t / (√v_t + ε)ここで λ は Weight Decay 係数、η は学習率、∇L は損失の勾配、m_t と v_t は Adam の 1 次・2 次モーメント推定値である。
一見すると同一に見える L2 正則化と Weight Decay だが、適応的学習率アルゴリズムでは重要な違いがある。
| 観点 | L2 正則化 | Weight Decay |
|---|---|---|
| 定義 | 損失関数に λ/2 * | |
| SGD での等価性 | 等価 | 等価 |
| Adam での等価性 | 非等価 | 非等価 |
| 勾配への影響 | 勾配に λw が加算される | 勾配とは独立に重みを減衰 |
| パラメータごとの効果 | 適応的学習率で変調される | 全パラメータに均一に作用 |
| 実装 | optimizer に weight_decay=λ(L2) | AdamW で decouple 実装 |
Adam + L2 正則化では、適応的学習率がパラメータごとに異なるため、正則化の効果もパラメータごとに不均一になる。AdamW はこの問題を解決するために Loshchilov & Hutter(2019)が提案した手法であり、Weight Decay を最適化ステップから分離(decouple)している。
主要な LLM における Weight Decay の設定値を以下に示す。
| モデル | Weight Decay | 最適化手法 | 備考 |
|---|---|---|---|
| GPT-2 | 0.01 | Adam | 初期設定 |
| GPT-3 | 0.1 | Adam | 大規模モデルで増加 |
| LLaMA | 0.1 | AdamW | β1=0.9, β2=0.95 |
| LLaMA 2 | 0.1 | AdamW | 同上 |
| PaLM | 0.1 | Adafactor | Google 独自最適化 |
| Chinchilla | 0.1 | AdamW | 計算最適スケーリング |
| Mistral 7B | 0.1 | AdamW | β1=0.9, β2=0.95 |
| Phi-2 | 0.1 | AdamW | Microsoft Research |
0.1 が事実上の標準値であることがわかる。これは経験的に多くのモデル規模・データセットで良好な性能を示す値である。
すべてのパラメータに Weight Decay を適用するわけではない。一般的に以下のようなルールが採用される。
| パラメータ種別 | Weight Decay 適用 | 理由 |
|---|---|---|
| 線形層の重み行列 | 適用する | 過学習防止の主対象 |
| バイアス項 | 適用しない | パラメータ数が少なく正則化不要 |
| LayerNorm のスケール/シフト | 適用しない | 正規化の効果を阻害する |
| Embedding 層 | モデルによる | 適用する場合と除外する場合がある |
| Position Encoding | 通常適用しない | 位置情報の学習を阻害する |
PyTorch での実装では、パラメータグループを分割して適用の有無を制御する。
Weight Decay の実効的な強さは学習率に依存する。
| 学習率スケジュール | Weight Decay の挙動 | 注意点 |
|---|---|---|
| 定数学習率 | 一定の正則化効果 | 基本的なケース |
| Cosine Annealing | 学習率低下に伴い Weight Decay の相対的影響が増大 | 訓練後半で正則化が強まる |
| Linear Warmup | Warmup 中は Weight Decay の相対的影響が大きい | 初期重みの大幅な縮小に注意 |
| Step Decay | 段階的に正則化バランスが変化 | 各段階でのチューニングが必要 |
AdamW では Weight Decay と学習率が分離されているため、学習率スケジュールの変更が Weight Decay の効果に直接影響しない。これは AdamW の大きな利点の一つである。
Fine-tuning では事前訓練とは異なる Weight Decay 設定が必要になる場合がある。
| Fine-tuning 手法 | 推奨 Weight Decay | 理由 |
|---|---|---|
| Full Fine-tuning | 0.01〜0.1 | 事前訓練知識の保持 |
| LoRA | 0.0〜0.01 | 低ランク行列のみ更新 |
| QLoRA | 0.0〜0.01 | 量子化 + LoRA |
| Prefix Tuning | 0.0 | プレフィックスパラメータのみ |
| Adapter | 0.01〜0.1 | Adapter 層のみに適用 |
Fine-tuning では一般的に事前訓練よりも小さい Weight Decay 値が使用される。これは、事前訓練で学習された重みの大きさが意味のある情報を含んでおり、過度な減衰がこの情報を破壊するためである。
Weight Decay に関する最新の研究トピックを以下に示す。
| 研究テーマ | 概要 | 期待される効果 |
|---|---|---|
| Adaptive Weight Decay | 訓練進行に応じて λ を動的に調整 | チューニング不要化 |
| Layer-wise Weight Decay | 層ごとに異なる λ を設定 | 深層ネットワークの最適化改善 |
| Decoupled Weight Decay v2 | AdamW の改良版 | さらなる汎化性能向上 |
| Weight Decay + SAM | SAM 最適化との組み合わせ | 平坦な最小値への収束 |
| Gradient-Informed Decay | 勾配情報に基づく適応的減衰 | パラメータ重要度の反映 |
LLM の文脈では 0.1 は標準的な値であり、多くの大規模モデルで良好な性能を示している。これは、LLM のパラメータ数が膨大であり、0.1 の Weight Decay でも個々のパラメータへの影響は微小であるため。小規模モデル(数百M パラメータ)では 0.01〜0.05 が適切な場合もある。
推奨しない。Adam + L2 正則化では、適応的学習率による不均一な正則化が発生する。具体的には、勾配の分散が大きいパラメータ(Adam の v_t が大きい)ほど L2 ペナルティが弱まり、意図した正則化効果が得られない。AdamW ではこの問題が解決されており、LLM 訓練では AdamW が事実上の標準である。
バイアス項は各層に 1 つずつしかなく(全結合層の重み行列と比べてパラメータ数が極めて少ない)、過学習の主要因にならない。また、バイアスに Weight Decay を適用すると、モデルの出力の平均値がゼロに引き寄せられ、表現力が不必要に制限される。LayerNorm のパラメータも同様の理由で除外される。