Yolo 深圳
深セン
今すぐ参加
用語集

知識蒸留

Knowledge Distillationが、より高速な推論、精度向上、エッジデバイス展開の効率化のために、AIモデルを圧縮する様子をご覧ください。

ナレッジ・ディスティレーションは モデル最適化戦略である。 機械学習における高度なモデル最適化戦略である。 生徒」モデルは、より大きく複雑な「教師」モデルの性能と動作を再現するように学習される。 「教師」モデルの性能と振る舞いを再現するように訓練される。主な目的は、汎化能力と「知識」を、重い教師ネットワークから軽い生徒ネットワークに移すことである。 を重い教師ネットワークから軽い生徒ネットワークに移すことである。このプロセスにより、リソースに制約のあるハードウェア上で エッジ・コンピューティング・デバイスのような、リソースに制約のあるハードウェア上に エッジコンピューティングデバイスのような 通常、アーキテクチャの小型化に伴う精度の大幅な低下を被ることなく。情報を圧縮することで より高速な推論レイテンシーと メモリ使用量の削減を達成することができます。

知識蒸留の仕組み

このプロセスは、"ソフトラベル "という概念に依存している。標準的な 標準的な教師あり学習では、モデルは モデルは学習データから"ハード・ラベル "を用いて学習される(例えば 例えば、ある画像は100%"猫 "で0%"犬 "である)。しかし、事前に訓練された教師モデルは、ソフト・ラベルと呼ばれる確率分布を生成する。 ソフト・ラベルとして知られる確率分布は、すべてのクラスにわたって生成されます。例えば、教師は画像を は90%が「猫」、9%が「犬」、1%が「車」であると予測する。これらのソフト・ラベルには、クラス間の関係に関する豊富な情報が含まれています。 このソフト・ラベルには、クラス間の関係に関する豊富な情報が含まれている。

蒸留の間,生徒モデルは,予測値と教師のソフトラベルの差を最小化するように学習される. を最小化するように学習される. カルバック・ライブラー発散のような特定の損失関数を使用します。これにより これにより生徒は、教師がすでに発見した「暗黙知」やデータの微妙な構造を学習することができます。 を学ぶことができる。基礎的な理解のために、研究者はしばしば以下を参照する。 ジェフリー・ヒントン(Geoffrey Hinton)の論文を参照することが多い。

通常、ライブラリは複雑な損失計算を内部で処理しますが、トレーニングのために生徒モデルを初期化すること を初期化することが実用的な最初のステップです。以下は、以下のような軽量な学生モデルをロードする方法です。 YOLO11 を使用している。 ultralytics パッケージで提供される:

from ultralytics import YOLO

# Load a lightweight student model (YOLO11n)
# 'n' stands for nano, the smallest and fastest version
student_model = YOLO("yolo11n.pt")

# Train the student model on a dataset
# In a distillation workflow, this training would be guided by a teacher model's outputs
results = student_model.train(data="coco8.yaml", epochs=5, imgsz=640)

実際のアプリケーション

ナレッジ・ディスティレーションは、効率が正確さと同じくらい重要な産業において極めて重要である。

  • モバイルコンピュータビジョン:リアルタイム推論を必要とするシナリオ 自律型 ドローンやスマートフォン上の拡張現実アプリのようなリアルタイム推論を必要とするシナリオでは、巨大なモデルを展開することは現実的ではありません。エンジニアは大規模な 効率的なバージョンに抽出する。 YOLO11nのような効率的なバージョンに抽出する。これにより、アプリケーションは クアルコムのSnapdragonのようなモバイル・プロセッサーで、バッテリーを消耗することなくアプリケーションがスムーズに動作することを保証します。 オブジェクトを正しく識別します。
  • 自然言語処理(NLP):大規模言語モデル(LLM)は、多くの場合、直接展開するには煩雑すぎる。 展開するには煩雑になりがちである。Distillationは、DistilBERTのような、より小さく高速なバージョンを作成するために使用されます。 言語モデリング機能のほとんどを保持する の言語モデリング機能のほとんどを保持する。これにより、音声アシスタントやチャットボットは、より低いレイテンシーで動作し、より良いユーザー体験を提供することができます。 体験を提供する。

関連する最適化用語の区別

知識蒸留は、モデルの効率を向上させるために使用される他のテクニックと区別することが重要である。 これらは異なる原理で動作する。

  • モデル刈り込みこの手法は この手法は、既存の学習済みネットワークから冗長なニューロンや接続(重み)を物理的に取り除き、サイズを縮小するものである。 サイズを縮小する。新しい学生アーキテクチャをゼロから学習する蒸留とは異なり、プルーニングは元のモデルの構造 を変更する。
  • モデルの量子化 例えば、32ビットの浮動小数点数を8ビットの整数に変換する。 を8ビット整数に変換する。これにより、モデルのサイズが小さくなり、TPUのようなハードウェアでの計算が高速化されます。 TPUのようなハードウェアでの計算を高速する。 ネットワーク・アーキテクチャを変更する必要はない。
  • 転移学習このアプローチは このアプローチでは、事前に訓練されたモデルを 異なるタスクのために新しいデータセット上で微調整する。 どちらも知識の伝達を伴うが、伝達学習はドメインの適応(例えば、ImageNet 医療用X線画像への変換)を目的とする。 X線など)、蒸留学習は同じタスクの知識を大きなモデルから小さなモデルに圧縮することに焦点を当てる。

これらのテクニックを組み合わせることで、例えば、教師から生徒へ、そして量子化を適用することで、開発者は組込みシステムのパフォーマンスを最大化することができる。 組込みシステムのパフォーマンスを最大化することができます。

Ultralytics コミュニティに参加する

AIの未来を共に切り開きましょう。グローバルなイノベーターと繋がり、協力し、成長を。

今すぐ参加