知識の蒸留
ナレッジ・ディスティレーションがAIモデルを圧縮して推論を高速化し、精度を向上させ、エッジ・デバイスの展開を効率化する方法をご覧ください。
知識蒸留は、機械学習(ML)におけるモデルの最適化と圧縮のテクニックであり、コンパクトな「生徒」モデルが、より大きく複雑な「教師」モデルのパフォーマンスを再現するように学習される。核となる考え方は、強力だが扱いにくい教師モデルから、より小さく効率的な生徒モデルに「知識」を移すことである。これにより、エッジ・デバイスや携帯電話のようなリソースに制約のある環境でも、性能を大幅に低下させることなく、高精度のモデルを展開することが可能になる。このプロセスは、大規模な最先端の研究モデルと、実用的な実世界へのモデル展開とのギャップを埋めるものです。
知識蒸留の仕組み
教師モデル(通常、大規模なニューラルネットワークまたはモデルのアンサンブル)は、最初に大規模なデータセットで訓練され、高い精度を達成する。蒸留の過程で、生徒モデルは教師の出力を模倣して学習する。訓練データ中の真実のラベルからだけ学習するのではなく、生徒は、しばしば "ソフトラベル "と呼ばれる、各予測に対する教師の完全な確率分布でも学習される。これらのソフトラベルは、教師モデルがどのように「考え」、汎化するかを明らかにするため、「ハードラベル」(正解)よりも豊富な情報を提供します。例えば、教師モデルは猫の画像を90%の信頼度で「猫」と予測するかもしれませんが、「犬」(5%)や「狐」(2%)にも小さな確率を割り当てるかもしれません。この微妙な情報は、生徒モデルがより効果的に学習するのに役立ち、しばしば難しいラベルだけで学習した場合よりも優れた汎化につながります。このテクニックは、効率的なモデルを作成するためのディープラーニングツールキットの重要な部分である。
実世界での応用
知識蒸留は、強力なAIを利用できるようにするために、さまざまな領域で広く使われている。
- 自然言語処理(NLP): BERTのような大規模言語モデル(LLM)は非常に強力だが、多くの用途には大きすぎる。DistilBERTは、BERTの蒸留バージョンの有名な例です。BERTの性能を97%以上維持しながら40%小型化し、60%高速化したもので、消費者向け機器での感情分析や質問応答などのタスクに適しています。
- エッジデバイス上のコンピュータビジョン コンピュータビジョンでは、画像分類や 物体検出のための大規模で高精度なモデルを、より小さなモデルに蒸留することができる。これにより、スマートセキュリティカメラのリアルタイムの人物検出のような複雑なビジョンタスクが、Raspberry Piのような計算能力の限られたハードウェア上で直接実行できるようになり、スピードとデータプライバシーが向上します。YOLO11のようなUltralyticsのYOLOモデルは、このようなワークフローの一部となり、より大きなモデルからの知識が、より小さく、展開可能なバージョンのトレーニングに反映されます。
知識蒸留と他の最適化手法との比較
ナレッジ・ディスティレーションは、他のモデル最適化手法と関連していますが、それとは異なります。その違いを理解することは、プロジェクトに適したアプローチを選択するための鍵であり、Ultralytics HUBのようなプラットフォームを通じて管理・展開することができます。
- モデルの刈り込み:この手法では、すでに学習済みのネットワークから冗長な接続や重要度の低い接続(重み)を取り除き、サイズを小さくする。対照的に、ディスティレーションは、教師を模倣するために、全く新しい、より小さなネットワークをゼロから訓練する。
- モデルの量子化:量子化によって、モデルの重みの数値精度が下がる(例えば、32ビットの浮動小数点数から8ビットの整数へ)。これによりモデルが縮小され、互換性のあるハードウェアでの計算が高速化される。蒸留が新しいモデルを作成するのに対して、量子化は既存のモデルの表現を変更します。量子化は多くの場合、蒸留や刈り込みと組み合わせて使用され、モデルはONNXのような形式にエクスポートしたり、TensorRTのようなエンジンで最適化したりすることができる。
- 転移学習:これは、事前に訓練されたモデルの一部(通常は特徴抽出のバックボーン)を再利用し、それを新しい、より小さなデータセット上で微調整することである。目標は、既存のモデルを新しいタスクに適応させることである。一方、ディスティレーションは、教師モデルの予測動作を、全く異なるアーキテクチャを持つ可能性のある生徒モデルに転送することを目的としています。