Kullback-Leibler ダイバージェンスに基づく損失関数で、2 つの確率分布間の差異を測定する。LLM では知識蒸留(教師モデルの出力分布を生徒モデルに転写)や、RLHF における方策制約(元のモデルからの逸脱防止)に広く使われる。非対称性を持ち KL(P||Q) ≠ KL(Q||P) である点が特徴。
KL Divergence(Kullback-Leibler ダイバージェンス)は、確率分布 P と Q の間の「情報量の差」を測定する非対称な距離尺度である。P を真の分布、Q を近似分布として:
D_KL(P || Q) = Σ P(x) * log(P(x) / Q(x))
LLM の文脈では、知識蒸留(Distillation)と RLHF/DPO のアライメント制約の 2 つの主要用途がある。2024-2026 年の LLM 開発では、大規模モデルの軽量化(蒸留)とアライメント制約として不可欠な損失関数となっている。
教師モデル(大規模)の出力確率分布を生徒モデル(小規模)に学習させる:
L_distill = α * T^2 * D_KL(P_teacher/T || P_student/T) + (1-α) * L_CE
| 蒸留ペア | 教師 | 生徒 | 性能保持率 | パラメータ削減 |
|---|---|---|---|---|
| Llama 3.1 70B → 8B | 70B | 8B | 92% | 88.6% |
| Gemma 2 27B → 2B | 27B | 2B | 85% | 92.6% |
| GPT-4 → Phi-3 |
| 非公開 |
| 3.8B |
| 80% |
| 99%+ |
| Mistral Large → 7B | 123B | 7B | 88% | 94.3% |
アライメント時にモデルが元の SFT モデルから大きく逸脱しないよう KL ペナルティを課す:
R_total = R_reward - β * D_KL(π_θ || π_ref)
変分オートエンコーダーの潜在空間を標準正規分布に近づける:
L_VAE = L_reconstruction + β * D_KL(q(z|x) || p(z))
F.kl_div(log_q, p, reduction='batchmean') — 入力は log 確率と確率| 距離尺度 | 対称性 | 用途 | 特徴 |
|---|---|---|---|
| KL Divergence | 非対称 | 蒸留, RLHF | 最も標準的 |
| Jensen-Shannon | 対称 | GAN | KL の対称化版 |
| Wasserstein | 対称 | W-GAN | 分布の形状を考慮 |
| Total Variation | 対称 | 理論解析 | 最大確率差 |
| f-Divergence | 非対称 | 一般化フレーム | KL, χ^2 等を統一 |
Q1: 蒸留で Forward KL と Reverse KL のどちらを使うべきですか? A: 標準は Forward KL(D_KL(P_teacher || P_student))。教師の出力分布全体をカバーする mode-covering な学習となり、生徒が教師の多様な出力パターンを学習できる。Reverse KL は生徒が自信のある領域に特化する mode-seeking 学習で、特定タスクへの特化が目的なら有効。
Q2: KL ペナルティの β はどう調整しますか? A: PPO では β=0.01-0.1 が標準。β が小さいとアライメントは効くが reward hacking リスク増加、大きいと SFT モデルから動かず学習が進まない。動的 β 調整(KL 値のターゲットに応じて β を増減)が InstructGPT で提案され、実践的に有効。
Q3: KL Divergence が無限大になる場合の対処法は? A: Q(x)=0 かつ P(x)>0 の箇所で発生。対処として label smoothing(Q に微小な一様分布を混合)、またはクリッピング(Q の最小値を 1e-8 に制限)を適用する。蒸留では温度 T を上げることで教師の出力が滑らかになり、ゼロ確率問題が緩和される。