ナレッジ・ディスティレーションがAIモデルを圧縮して推論を高速化し、精度を向上させ、エッジ・デバイスの展開を効率化する方法をご覧ください。
知識蒸留とは、機械学習(ML)において、より大きく複雑なモデル(「教師」)の振る舞いを模倣するために、より小さくコンパクトなモデル(「生徒」)を学習させる手法である。主な目的は、教師モデルによって学習された「知識」を生徒モデルに伝達することであり、これにより生徒は同等の性能を達成できるようになるが、サイズの縮小や推論レイテンシーの高速化など、計算要件は大幅に低下する。これにより、複雑なディープラーニング(DL)モデルは、モバイルデバイスやエッジコンピューティングプラットフォームのようなリソースに制約のある環境での展開に実用的なものとなる。この概念は、ジェフリー・ヒントン(Geoffrey Hinton)らが論文「Distilling the Knowledge in a Neural Network」で広めた。
このプロセスでは通常、事前に訓練された教師モデルが使用されます。教師モデルは、単一の強力なモデルである場合もあれば、高精度で知られるモデルのアンサンブルである場合もあります。生徒モデルは、通常、より少ないパラメータまたはより浅いアーキテクチャ(例えば、より小さな畳み込みニューラルネットワーク(CNN))を持ち、教師モデルの出力をガイダンスとして使用して学習される。訓練データからのハードラベル(グランドトゥルース)のみを使用する代わりに、学生はしばしば教師の「ソフトターゲット」(すべてのクラスにわたって教師によって予測された完全な確率分布)から学習します。これらのソフトターゲットには、教師モデルがクラス間の類似性をどのように汎化し、表現するかについての豊富な情報が含まれています。しばしば蒸留損失と呼ばれる特別な損失関数は、生徒の予測と教師のソフトターゲットとの差を最小化するために使用されます。
知識蒸留にはいくつかの重要な利点がある:
知識蒸留は様々な領域で広く使われている:
知識蒸留は、他のモデル最適化手法とは異なるが、関連している:
知識蒸留は、最先端のAIモデルをより利用しやすく効率的にするための強力なツールであり、大規模な研究モデルと実用的な実世界へのモデル展開のギャップを埋めるものです。Ultralytics HUBのようなプラットフォームは、以下のような潜在的に蒸留されたモデルのトレーニングと展開を容易にします。 YOLOv8や YOLO11.