蒸留(Knowledge Distillation)

Knowledge Distillation

知識蒸留(Knowledge Distillation)とは、大きく複雑なモデル(教師モデル)の知識を、小さく軽量なモデル(生徒モデル)に転移させるモデル圧縮手法です。2015年にHintonらによって提案されました。

蒸留の仕組み

教師モデルのソフトマックス出力(ソフトラベル)を生徒モデルの学習目標として使用します。ハードラベル(正解0/1)よりもソフトラベル(確率分布)の方がクラス間の類似性などの「暗黒知識(Dark Knowledge)」を含んでおり、より豊富な情報を伝達できます。

表:蒸留(Knowledge Distillation)の要点まとめ
ひとことで言うと大きな教師モデルの判断の仕方を、小さな生徒モデルに教え込む軽量化手法。
どこで使うスマホ・エッジ端末への搭載、推論コストの削減、応答速度の改善。
注意点教師モデルの誤りも受け継ぐ。精度は多少落ちる。

温度パラメータ

ソフトマックスの温度Tを高くすることで出力分布を「柔らかく」し、クラス間の関係性をより明確に伝えます。温度T=1が通常のソフトマックス、T>1で分布がより均一になります。

図:蒸留のしくみ
1教師モデル大きく高精度
▶
2確率分布を出力「猫70%犬20%」
▶
3生徒が真似する正解+迷い方を学ぶ
▶
4小さくても高精度ゼロから学習より良い

活用場面

モバイルデバイスへのモデルデプロイ、推論速度の高速化、大規模モデル(LLM)の小型化などで広く利用されています。GPT-4からGPT-4-miniへの蒸留なども実例として知られています。