知識蒸留(ティーチャー・スチューデント)(チシキジョウリュウティーチャースチューデント)
大規模な教師モデルの出力確率分布(ソフトラベル)を用いて小規模な生徒モデルを訓練し、モデル圧縮を実現する手法。
知識蒸留(ティーチャー・スチューデント)
知識蒸留(Knowledge Distillation)は、大規模で高精度な教師モデル(Teacher)の「知識」を、小規模で軽量な生徒モデル(Student)へ転移するモデル圧縮手法です。Hintonら(2015年)が提唱した概念で、LLM時代に入ってから特に重要性が増しています。
なぜソフトラベルが有効なのか
通常の学習では正解クラスのみを1とするハードラベルを使います。しかし教師モデルのソフトラベル(各クラスへの確率分布)には「猫と虎の類似性」「動詞と名詞の文脈的近接性」など、ハードラベルでは失われる豊富な構造情報が含まれています。この情報を生徒モデルへ伝えることで、少ないパラメータでも高い汎化性能を実現できます。
温度パラメータとKLダイバージェンス
蒸留の損失関数には通常、教師と生徒の確率分布のKLダイバージェンスを最小化する項が含まれます。温度パラメータτ(τ>1)でソフトマックスを平滑化することで、本来低確率なクラスの情報も生徒に伝達されます。
import torch.nn.functional as F
# 温度スケーリング済みソフトラベルのKLダイバージェンス
student_logits_scaled = student_logits / temperature
teacher_logits_scaled = teacher_logits / temperature
distillation_loss = F.kl_div(
F.log_softmax(student_logits_scaled, dim=-1),
F.softmax(teacher_logits_scaled, dim=-1),
reduction='batchmean'
) * (temperature ** 2)
LLMへの応用
LLM蒸留は主に以下の形態で行われます。
ブラックボックス蒸留
教師LLMのAPIから出力テキストを収集し、生徒モデルのSFTデータとして利用。Alpaca(GPT-3.5→LLaMA-7B)やDeepSeek-R1-Distill(R1→7B/14B/32B)が代表例。
ホワイトボックス蒸留
教師モデルのlogitsや中間層表現にアクセスして損失計算。精度は高いが教師モデルへの直接アクセスが必要。MiniLMやTinyBERTがこのアプローチを採用。
シーケンスレベル蒸留
教師が生成したシーケンスを生徒の学習データとして使うSimple Sequence-Level KD。生成品質は高いが多様性が低下しやすい。
代表的な蒸留済みモデル(2025年)
- DistilBERT: BERT-baseの40%サイズで97%性能維持
- TinyLlama-1.1B: Llama-2-7Bを蒸留
- DeepSeek-R1-Distill-7B: DeepSeek-R1から推論特化蒸留
- Phi-4-mini: Phi-4から3.8Bへ蒸留
LoRA蒸留とアダプタ転移
2025年のトレンドとして、フルモデルではなくLoRAアダプタ形式で教師の知識を生徒へ転移する手法が注目されています。AdaLoRAやLLaMA-Adapterがこのアプローチを発展させており、ベースモデルを凍結したまま数百MBのアダプタだけで蒸留効果を得られます。
まとめ
- 知識蒸留はソフトラベルによるクラス間関係の転移がコア
- 温度パラメータτで知識の豊富さを制御
- LLMではブラックボックス/ホワイトボックス/シーケンスレベルの3形態
- 2025年はDeepSeek-R1蒸留系モデルが推論タスクで特に注目