教師・生徒蒸留(キョウシセイトジョウリュウ)
大規模な教師モデル(Teacher)の知識を小規模な生徒モデル(Student)に転写する機械学習の手法。Hintonらが2015年に提案した基礎的な知識蒸留フレームワークで、モデル圧縮とエッジデプロイの基盤技術として広く採用されている。
教師・生徒蒸留とは
教師・生徒蒸留(Teacher-Student Distillation)は、Geoffrey Hinton、Oriol Vinyals、Jeff Dean が2015年の論文「Distilling the Knowledge in a Neural Network」で体系化した知識蒸留の基本フレームワークである。大規模で高精度な教師モデルの出力を「ソフトラベル」として利用し、小規模な生徒モデルを効率的に訓練する。
基本メカニズム
ハードラベル vs ソフトラベル
通常の学習では正解ラベル(ハードラベル、例: [0,0,1,0])のみを使うが、教師・生徒蒸留では教師モデルの出力確率分布(ソフトラベル、例: [0.05, 0.10, 0.75, 0.10])を学習信号として使う。ソフトラベルには「猫と犬は似ている」「猫と車は似ていない」といったクラス間の関係性情報(暗黒知識: Dark Knowledge)が含まれており、これが蒸留の効果の源泉である。
温度パラメータ(Temperature)
Softmax の温度パラメータ T を高く設定すると、出力確率分布が平滑化される。T=1 では自信のある予測にほぼ全確率が集中するが、T=5〜20 程度にすると低確率クラスの情報も明確になり、暗黒知識の転写が促進される。
| 温度 T | 効果 | 適用場面 |
|---|---|---|
| T=1 | 通常の Softmax | 推論時 |
| T=3〜5 | 穏やかな平滑化 | 一般的な蒸留 |
| T=10〜20 | 強い平滑化 | クラス数が多い場合 |
損失関数
生徒モデルの学習には2つの損失を加重平均する。
- 蒸留損失: 教師のソフトラベルと生徒の出力間の KL ダイバージェンス(温度 T で平滑化)
- タスク損失: 正解ハードラベルとの交差エントロピー(温度 T=1)
一般的に蒸留損失の重み α=0.7〜0.9、タスク損失の重み (1-α)=0.1〜0.3 が良い結果を示す。
代表的な成功事例
BERT → DistilBERT
Hugging Face が開発した DistilBERT は、BERT-Base(1.1億パラメータ)を教師として6層の生徒モデル(6,600万パラメータ)を蒸留した。パラメータ数40%削減、推論速度60%高速化を達成しながら、GLUE ベンチマークで教師の97%の性能を維持した。
GPT-4 → GPT-4o-mini
OpenAI の GPT-4o-mini は GPT-4 レベルの能力を持ちながら大幅にコスト効率が高い。教師・生徒蒸留の原理が応用されていると推測されている。
画像分類での圧縮
ResNet-152(教師、6,000万パラメータ)から MobileNet-V2(生徒、350万パラメータ)への蒸留で、ImageNet Top-1 精度が直接学習時の72%から76%に向上した事例がある。
発展的な蒸留手法
| 手法 | 特徴 | 転写対象 |
|---|---|---|
| 出力蒸留(Vanilla) | Hinton の原型 | 最終層の確率分布 |
| 特徴蒸留(Feature) | FitNets(2015) | 中間層の特徴マップ |
| 注意蒸留(Attention) | AT(2017) | Attention マップ |
| 関係蒸留(Relational) | RKD(2019) | サンプル間の関係性 |
FAQ
Q1: 教師モデルが大きいほど蒸留効果は高いですか?
必ずしもそうではない。教師と生徒のサイズ差が大きすぎると「キャパシティギャップ」が生じ、生徒が教師の知識を吸収しきれない。中間サイズの「Teaching Assistant」モデルを挟む多段蒸留で緩和できる。
Q2: 蒸留に必要なデータは元の訓練データと同じですか?
元の訓練データが理想的だが、ラベルなしデータや合成データでも蒸留は可能である。教師モデルの出力自体がラベルの役割を果たすため、正解ラベルがなくても蒸留損失の計算は成立する。
Q3: 蒸留は何回も繰り返せますか?
可能だが、世代を重ねるごとに情報が劣化する。一般的に2〜3段の多段蒸留までが実用的な限界とされている。