知識蒸留とは
知識蒸留(Knowledge Distillation)は、大規模な教師モデルの持つ「暗黙の知識」を小規模な生徒モデルに効率的に伝達する手法です。蒸留(Distillation)とも呼ばれるこの技術は、単にモデルサイズを縮小するだけでなく、教師モデルが学習したデータ間の微細な関係性を生徒モデルに受け継がせることが核心です。
ソフトターゲットの重要性
知識蒸留で使用されるソフトターゲット(教師モデルのソフトマックス出力)には、ハードラベル(正解のみ)にはない豊富な情報が含まれています。例えば、手書き数字の「7」に対して「1」に少し似ているという情報や、「9」にも一部似ているという微細な類似度が確率分布として表現されます。温度パラメータを上げることでこの情報をより明確に引き出し、生徒モデルの学習に活用します。
知識蒸留の損失関数
知識蒸留の損失関数は、通常の教師あり学習の損失(ハードラベルとの交差エントロピー)と蒸留損失(教師のソフトターゲットとのKLダイバージェンス)の加重和として定義されます。このバランスを制御するハイパーパラメータα(蒸留損失の重み)と温度パラメータTの適切な設定が、蒸留の成功に重要です。
知識蒸留の最新動向
近年は、教師モデルなしで自分自身から蒸留する自己蒸留(Self-Distillation)や、複数の教師モデルからの蒸留、オンライン蒸留(教師と生徒を同時に学習)など、多様な手法が提案されています。大規模言語モデルの分野では、GPT-4やClaudeなどの巨大モデルの出力で小型モデルを訓練する応用も広がっています。