用語集

知識の蒸留

ナレッジ・ディスティレーションがAIモデルを圧縮して推論を高速化し、精度を向上させ、エッジ・デバイスの展開を効率化する方法をご覧ください。

Ultralytics HUB で
を使ってYOLO モデルをシンプルにトレーニングする。

さらに詳しく

知識蒸留とは、機械学習(ML)において、より大きく複雑なモデル(「教師」)の振る舞いを模倣するために、より小さくコンパクトなモデル(「生徒」)を学習させる手法である。主な目的は、教師モデルによって学習された「知識」を生徒モデルに伝達することであり、これにより生徒は同等の性能を達成できるようになるが、サイズの縮小や推論レイテンシーの高速化など、計算要件は大幅に低下する。これにより、複雑なディープラーニング(DL)モデルは、モバイルデバイスやエッジコンピューティングプラットフォームのようなリソースに制約のある環境での展開に実用的なものとなる。この概念は、ジェフリー・ヒントン(Geoffrey Hinton)らが論文「Distilling the Knowledge in a Neural Network」で広めた。

知識蒸留の仕組み

このプロセスでは通常、事前に訓練された教師モデルが使用されます。教師モデルは、単一の強力なモデルである場合もあれば、高精度で知られるモデルのアンサンブルである場合もあります。生徒モデルは、通常、より少ないパラメータまたはより浅いアーキテクチャ(例えば、より小さな畳み込みニューラルネットワーク(CNN))を持ち、教師モデルの出力をガイダンスとして使用して学習される。訓練データからのハードラベル(グランドトゥルース)のみを使用する代わりに、学生はしばしば教師の「ソフトターゲット」(すべてのクラスにわたって教師によって予測された完全な確率分布)から学習します。これらのソフトターゲットには、教師モデルがクラス間の類似性をどのように汎化し、表現するかについての豊富な情報が含まれています。しばしば蒸留損失と呼ばれる特別な損失関数は、生徒の予測と教師のソフトターゲットとの差を最小化するために使用されます。

メリットと重要性

知識蒸留にはいくつかの重要な利点がある:

  • モデルの圧縮:より小さなモデルを作成することで、より少ないストレージスペースで済みます。
  • より速い推論:モデルの複雑さを軽減することで、リアルタイム推論アプリケーションに不可欠な迅速な予測が可能になります。
  • エネルギー効率:バッテリー駆動のデバイスや持続可能なAIの実践にとって重要です。Ultralytics 環境衛生安全ガイドラインをご覧ください。
  • エッジデバイスへの展開: Raspberry Piや NVIDIA Jetsonのような、メモリや処理能力に制限のあるハードウェア上で強力なAI機能を実現します。
  • 性能向上の可能性:生徒モデルは、教師が提供する豊富な監視信号から学習するため、ハードラベルで直接学習した同規模のモデルよりも汎化できることがある。

実世界での応用

知識蒸留は様々な領域で広く使われている:

  1. コンピュータビジョン:の複雑なバージョンのような、大規模な物体検出や 画像分割モデル。 Ultralytics YOLOVision Transformers(ViT)のような大規模な物体検出や画像分割モデルを、モバイルアプリUltralytics HUB App)や自律走行車や ロボット工学の組み込みシステムに適した軽量バージョンに蒸留することができます。例えば、Intuitivoは、知識の蒸留を使用して、大規模な基礎モデルから、数百万の自律購買ポイントのスケーリングに適した、より小さく費用対効果の高いモデルに知識を転送し、アノテーションを大幅にスピードアップしている(出典:YOLO Vision 2023 Talk)
  2. 自然言語処理(NLP): BERTや GPTのような巨大な大規模言語モデル(LLM)は、しばしば小さなバージョンに蒸留される(例えば、DistilBERTによる Hugging Face例えば、Hugging FaceによるDistilBERT)。計算予算が限られているデバイスでの感情分析や質問応答などのタスクや、チャットボットなどの低レイテンシーを必要とするアプリケーションのために使用されます。

関連概念

知識蒸留は、他のモデル最適化手法とは異なるが、関連している:

  • モデルの刈り込みすでに学習済みのネットワークから、重要度の低い重みや接続を削除してサイズを小さくする。ディスティレーション(Distillation):新しい、より小さなネットワークを学習する。
  • モデルの量子化モデルの重みの数値精度を下げ(例えば32ビットの浮動小数点数から8ビットの整数へ)、サイズを小さくして計算を高速化する。次のような積分を参照してください ONNXTensorRT.
  • 転移学習事前に訓練されたモデルの一部(通常はバックボーン)を再利用し、新しいデータセットまたはタスクで微調整する。Distillationは、教師の予測動作を潜在的に異なる生徒のアーキテクチャに転送することに重点を置く。
  • 統合学習プライバシーを重視し、生データを共有することなく、分散化されたデバイス間でモデルを学習する。Distillationはモデルの圧縮に重点を置く。

知識蒸留は、最先端のAIモデルをより利用しやすく効率的にするための強力なツールであり、大規模な研究モデルと実用的な実世界へのモデル展開のギャップを埋めるものです。Ultralytics HUBのようなプラットフォームは、以下のような潜在的に蒸留されたモデルのトレーニングと展開を容易にします。 YOLOv8YOLO11.

すべて読む