用語集

知識の蒸留

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

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

さらに詳しく

知識蒸留は、機械学習で使用されるモデル圧縮技術であり、大規模で複雑なモデル(「教師」)から、より小規模で単純なモデル(「生徒」)に知識を伝達する。目標は、教師モデルと同等の性能を達成するために、生徒モデルを訓練することである。生徒モデルの方がパラメータが少なく、計算コストが低い。これは、リソースに制約のあるデバイスや、高速な推論時間を必要とするアプリケーションにモデルを導入する場合に特に有効です。

知識蒸留の仕組み

Knowledge Distillationのコアとなる考え方は、ハードラベル(ground truth)に加えて、あるいはその代わりに、教師モデルのソフトアウトプット(確率)を生徒モデルのトレーニングターゲットとして使用することである。教師モデルは、多くの場合、膨大なデータセットで事前に訓練されており、データ内の複雑な関係を捉え、うまく汎化することができる。このようなソフトターゲットから学習することで、生徒モデルは単にハードラベルのみから学習するよりも豊富な情報を学習することができます。このプロセスでは、教師が推論を行う際にソフトマックス関数の「温度」を高くして確率分布を柔らかくし、生徒によりニュアンスのある情報を提供することがよく行われます。

利点と応用

知識蒸留にはいくつかの利点があり、様々なAIアプリケーションにおいて価値ある技術となっている:

  • モデルの圧縮:携帯電話や組み込みシステムのような、計算リソースが限られたエッジデバイスでの展開に適した、より小さく効率的なモデルの作成を可能にします。これは、Raspberry Piや NVIDIA Jetsonのようなデバイス上でのリアルタイムの物体検出のようなアプリケーションにとって極めて重要です。
  • 汎化の改善:Knowledge Distillationで学習した学生モデルは、ハードラベルのみで学習したモデルよりも優れた汎化性能を示すことが多い。教師が学習した表現から学習することができるため、精度とロバスト性が向上する。
  • 推論の高速化:モデルが小さいほど推論時間は当然速くなり、これは自律走行、ロボットによるプロセス自動化(RPA)セキュリティ・システムなどのリアルタイム・アプリケーションに不可欠です。

ナレッジ・ディスティレーションの実社会での応用は広く行われている:

  • 自然言語処理(NLP):NLPでは、知識蒸留を使用して、GPT-3や BERTのような大規模な言語モデルを、モバイルやエッジ展開のための、より小さく効率的なモデルに圧縮することができます。例えば、蒸留されたモデルは、クラウド接続を必要とすることなく、モバイル・デバイス上でセンチメント分析を行うことができます。
  • コンピュータビジョンUltralytics YOLOv8または類似の物体検出モデルは、エッジデバイス上のリアルタイムアプリケーションに展開するために抽出することができる。例えば、スマートシティでは、交通交差点のエッジ・コンピューティング・デバイス上で直接実行される、効率的な交通監視と管理のために、蒸留されたモデルを使用することができる。また、医療画像解析の分野では、医療現場でより迅速な予備診断が可能となる。

知識蒸留 vs. モデルの刈り込みと量子化

ナレッジ・ディスティレーションはモデル圧縮の手法であるが、モデル刈り込みや モデル量子化といった他の手法とは異なる。モデル刈り込みは、重要度の低い接続(重み)を削除することでモデルのサイズを小さくする。一方、モデル量子化は、メモリと計算量を少なくするためにモデルの重みの精度を下げる。一方、知識蒸留は、より大きなモデルの知識を使用して、ゼロから新しいより小さなモデルを学習します。これらの技術は組み合わせることもできる。例えば、蒸留されたモデルをさらに刈り込んだり、量子化したりして、さらに大きな圧縮と効率を達成することができる。ソニーのMCT(Model Compression Toolkit)のようなツールや OpenVINOのようなツールを使用して、エッジ展開のための蒸留後にモデルをさらに最適化することができます。

すべて読む