ナレッジ・ディスティレーションがAIモデルを圧縮して推論を高速化し、精度を向上させ、エッジ・デバイスの展開を効率化する方法をご覧ください。
知識蒸留は、機械学習で使用されるモデル圧縮技術であり、大規模で複雑なモデル(「教師」)から、より小規模で単純なモデル(「生徒」)に知識を伝達する。目標は、教師モデルと同等の性能を達成するために、生徒モデルを訓練することである。生徒モデルの方がパラメータが少なく、計算コストが低い。これは、リソースに制約のあるデバイスや、高速な推論時間を必要とするアプリケーションにモデルを導入する場合に特に有効です。
Knowledge Distillationのコアとなる考え方は、ハードラベル(ground truth)に加えて、あるいはその代わりに、教師モデルのソフトアウトプット(確率)を生徒モデルのトレーニングターゲットとして使用することである。教師モデルは、多くの場合、膨大なデータセットで事前に訓練されており、データ内の複雑な関係を捉え、うまく汎化することができる。このようなソフトターゲットから学習することで、生徒モデルは単にハードラベルのみから学習するよりも豊富な情報を学習することができます。このプロセスでは、教師が推論を行う際にソフトマックス関数の「温度」を高くして確率分布を柔らかくし、生徒によりニュアンスのある情報を提供することがよく行われます。
知識蒸留にはいくつかの利点があり、様々なAIアプリケーションにおいて価値ある技術となっている:
ナレッジ・ディスティレーションの実社会での応用は広く行われている:
ナレッジ・ディスティレーションはモデル圧縮の手法であるが、モデル刈り込みや モデル量子化といった他の手法とは異なる。モデル刈り込みは、重要度の低い接続(重み)を削除することでモデルのサイズを小さくする。一方、モデル量子化は、メモリと計算量を少なくするためにモデルの重みの精度を下げる。一方、知識蒸留は、より大きなモデルの知識を使用して、ゼロから新しいより小さなモデルを学習します。これらの技術は組み合わせることもできる。例えば、蒸留されたモデルをさらに刈り込んだり、量子化したりして、さらに大きな圧縮と効率を達成することができる。ソニーのMCT(Model Compression Toolkit)のようなツールや OpenVINOのようなツールを使用して、エッジ展開のための蒸留後にモデルをさらに最適化することができます。