LLMラベルスムージング損失(エルエルエムラベルスムージングソンシツ)
正解ラベルのone-hot分布を平滑化し、モデルの過信を抑制する正則化手法。Transformerの原論文で採用され、LLMの汎化性能向上に貢献する。
LLMラベルスムージング損失とは
ラベルスムージング(Label Smoothing)は、正解トークンの確率を1.0から (1 - ε) に引き下げ、残りの ε を他の全トークンに均等に分配する正則化技法である。2015年にSzegedyらがInception v2で提案し、2017年の「Attention Is All You Need」(Transformer原論文)で機械翻訳に採用されて広く知られるようになった。
通常の交差エントロピーではone-hotラベル(正解=1、他=0)を使うが、ラベルスムージングでは正解=0.9、他=0.1/(V-1)(V=語彙サイズ、ε=0.1の場合)のようなソフトラベルを使う。これにより、モデルが正解トークンに過度に高い確率を割り当てる過信を防ぎ、汎化性能が向上する。
数学的定義
スムージング後のターゲット分布 q'(k) は:
q'(k) = (1 - ε) × q(k) + ε / V
ここで q(k) は元のone-hotラベル、ε はスムージング係数(通常0.1)、V は語彙サイズ。損失関数は標準的な交差エントロピーだが、ターゲット分布が平滑化されている。
Transformer論文での採用
「Attention Is All You Need」では ε=0.1 のラベルスムージングを使用し、WMT 2014英独翻訳でBLEUスコアが+0.5〜1.0向上した。以降、Transformer系モデルの事前学習・ファインチューニングで広く採用されている。
| モデル | ε値 | 効果 | タスク |
|---|---|---|---|
| Transformer (原論文) | 0.1 | BLEU +1.0 | 英独翻訳 |
| BERT | 0.1 | MLM精度向上 | 言語理解 |
| T5 11B | 0.1 | SuperGLUE +0.3 | マルチタスク |
| PaLM 540B | 0.0 (不使用) | 大規模では効果限定的 | 汎用 |
| Gemma 2 27B | 0.1 | HellaSwag +0.5 | 推論 |
興味深いことに、PaLM 540Bのような超大規模モデルではラベルスムージングを使用していない。モデルサイズが十分に大きい場合、暗黙的な正則化効果(大パラメータ空間のランダム初期化)が十分であるため、追加の正則化が不要になるという仮説がある。
ε パラメータの影響
| ε値 | 効果 | リスク |
|---|---|---|
| 0.0 | スムージングなし(標準CE) | 過信・過学習 |
| 0.05 | 軽度のスムージング | 安全な開始点 |
| 0.1 | 標準設定(最も広く使用) | バランス良好 |
| 0.2 | 強いスムージング | 学習が遅くなる可能性 |
| 0.3+ | 極端なスムージング | 正解と不正解の区別が曖昧に |
ε=0.1 が事実上のデフォルトで、ほとんどの場合でチューニング不要。ε>0.2 はラベルノイズと同等になり性能が劣化するリスクがある。
過信抑制のメカニズム
Expected Calibration Error (ECE)
ラベルスムージングを使ったモデルは、予測確率と実際の正答率の一致度(キャリブレーション)が改善される。例えば、モデルが「90%の確信度」と出力した場合、実際に90%正解するようになる。これは医療AI・自動運転などの安全性が重要なアプリケーションで不可欠な性質。
知識蒸留との関係
ラベルスムージングは暗黙的な知識蒸留と解釈できる。正解以外のトークンにも小さな確率を割り当てることで、教師モデルのソフトラベルと同様の効果を得ている。Hintonの知識蒸留論文(2015年)でもこの関連性が議論されている。
実装のポイント
PyTorchでの実装
PyTorchの torch.nn.CrossEntropyLoss には label_smoothing パラメータが組み込まれており(PyTorch 1.10以降)、1行で適用できる。
Hugging Face Transformersの Trainer でも label_smoothing_factor 引数で設定可能。GPT-2/BERT/T5等のファインチューニング時にシームレスに適用できる。
損失値の解釈に注意
ラベルスムージングを使うと理論上の最小損失値が0ではなく -Σ q'(k) log q'(k) になる。モデル間の損失値を比較する際は、同じε値で統一する必要がある。
FAQ
Q1: ラベルスムージングとDropoutは併用すべき?
併用可能で、実際にTransformer原論文でも両方使用している。ただし、両方の正則化が強すぎると学習が収束しにくくなるため、Dropoutを弱めに(0.1以下)する調整が一般的。
Q2: 大規模LLMの事前学習にも効果がある?
モデルサイズが100B超になると効果が限定的になる傾向がある(PaLMの事例)。ファインチューニングでは規模に関係なく有効。
Q3: εはタスクごとに変えるべき?
ε=0.1で始めて問題がなければ変更不要。ノイジーなラベル(クラウドソーシングのアノテーション等)ではε=0.2が有効なことがある。