用語集

モデル剪定

モデル刈り込みにより機械学習モデルを最適化します。推論の高速化、メモリ使用量の削減、エネルギー効率の向上を実現し、リソースが限られた環境での導入を可能にします。

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

さらに詳しく

モデル刈り込みは、学習済みモデルの最適化に焦点を当てた機械学習における重要なテクニックである。モデルの複雑さとサイズを縮小することで、モデルを合理化します。これは、ニューラルネットワークから重みや接続などの重要度の低いパラメータを削除することで実現されます。このプロセスは、パフォーマンスを大幅に犠牲にすることなくモデルをより効率的にし、処理の高速化、メモリ使用量の削減、エネルギー消費量の削減といったメリットをもたらします。

モデル・プルーニングを使う理由

モデル刈り込みを採用するのには、いくつかの説得力のある理由がある。第一に、機械学習モデルのサイズが大幅に縮小されるため、携帯電話やエッジシステムなど、ストレージが限られたデバイスへの導入が容易になる。モデルが小さくなれば、予測を生成するのに必要な計算回数が減るため、推論速度も速くなる。この速度向上は、自律走行車の物体検出や ライブビデオ解析などのリアルタイムアプリケーションに不可欠です。さらに、刈り込まれたモデルはより少ないエネルギーしか消費しないため、バッテリー駆動のデバイスや、持続可能なAIの実践を目指す大規模データセンターにとって極めて重要な利点となる。

モデル刈り込みの種類

モデルの刈り込みは、大きく2つのタイプに分類できる:

  • 重みの刈り込み:この手法は、ニューラルネットワーク内の個々の重みを取り除くことに重点を置いている。構造化プルーニングと非構造化プルーニングに分けられる。非構造化刈り込みでは、位置に関係なく個々の重みを削除するため、スパース性は高くなりますが、不規則なメモリアクセスパターンになる可能性があります。一方、構造化刈り込みは、フィルターやチャネルのような構造全体を除去するため、よりコンパクトでハードウェアに適したモデルになる。
  • ニューロンの刈り込み:ニューロン・プルーニングはノード・プルーニングまたはユニット・プルーニングとも呼ばれ、ニューラル・ネットワークからニューロン全体またはノードを削除する。この方法はウェイト・プルーニングよりも積極的にネットワーク・アーキテクチャを単純化し、より大幅なスピードアップとモデル・サイズの縮小につながることがあります。

モデル刈り込みと他の最適化手法との比較

モデル刈り込みはパラメータを削除することでモデルサイズを縮小するが、モデルの量子化や知識蒸留のような他の技法は、別の最適化戦略を提供する。量子化は重みの精度を下げ(例えば32ビット浮動小数点から8ビット整数へ)、モデルサイズを小さくし、モデル構造を変えることなく計算を高速化します。知識蒸留は、より大きな、より複雑な「教師」モデルの動作を模倣するために、より小さな「生徒」モデルを訓練する。これらのテクニックは、より大きな効率向上を達成するために、刈り込みと組み合わせて使用されることが多い。例えば、モデルをまずプルーニングしてサイズを小さくし、次に量子化して配備時の性能をさらに最適化することができる。

モデル刈り込みの実世界での応用

モデル刈り込みは、特に計算資源が限られている場合や効率が最も重要な場合に、様々な領域で広く適用されている。主な応用例には以下のようなものがある:

  • モバイルデバイスとエッジデバイス:リアルタイムの物体検出や画像処理のためにUltralytics YOLO モデルをモバイルデバイスに展開するには、効率的なモデルが必要です。プルーニングはモデルのサイズとレイテンシを削減し、スマートフォンやIoTデバイス上で複雑なAIタスクを実行することを可能にします。
  • 自律走行車:自動運転車には、センサーデータに基づく迅速な意思決定が求められます。プルーニングされたモデルは、歩行者検出や車線維持のような重要なタスクの迅速な推論を保証します。

結論

モデル刈り込みは、効率的な機械学習モデルを展開するために不可欠な最適化手法である。モデルのサイズと複雑さを減らすことで、より高速な推論、より少ないメモリ使用量、エネルギー消費量の削減が可能になります。Ultralytics は、様々な展開シナリオにおけるコンピュータビジョンアプリケーションの実用性と効率性を高めるために、プルーニングのようなテクニックを含め、ユーザがモデルを最適化するのに役立つ一連のツールとリソースを提供します。

すべて読む