用語集

モデル剪定

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

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

さらに詳しく

モデル刈り込みは、機械学習(ML)の手法の1つで、学習済みモデルのサイズと複雑さを軽減して最適化するために使用される。これには、モデルの重みや ニューラルネットワーク(NN)内の接続など、モデル全体の性能にほとんど寄与しない重要度の低いパラメータを特定し、削除することが含まれる。主な目的は、より少ない計算パワーとメモリで、多くの場合、精度を大きく落とすことなく、より小さく、より高速なモデルを作成することである。このプロセスは、MLモデルに直接適用されるプルーニングという広範な概念を具体的に応用したものであり、MLモデルをより効率的に展開できるようにする。

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

モデル刈り込みの主な原動力は効率性である。最新のディープラーニング(DL)モデルは、特にコンピュータビジョン(CV)のような分野では、非常に大きく、計算集約的である可能性がある。これは、特にスマートフォンや組み込みシステム、エッジコンピューティングシナリオのようなリソースが限られたデバイスでのモデル展開に課題をもたらします。モデル刈り込みは、以下のような問題に対処するのに役立ちます:

  • モデルサイズの縮小:これは、Edge AIで使用されているようなメモリ容量が限られているデバイスにとって非常に重要です。
  • 推論スピードの向上:より少ないパラメータはより少ない計算を意味し、推論待ち時間の短縮につながり、自律走行車などのアプリケーションに不可欠なリアルタイム推論機能を可能にします。Ultralytics HUB Appは、このようなモバイル展開のための最適化の恩恵を受けています。
  • エネルギー消費の低減:計算負荷の低減は電力使用量の低減につながり、より持続可能なAIの実践とモバイル機器のバッテリー寿命の延長に貢献します。
  • 汎化の改善:冗長なパラメータを削除することで、オーバーフィッティングを減らし、未知のデータに対するモデルのパフォーマンスを向上させることができる。

モデル刈り込みの種類

モデル刈り込みのテクニックは様々だが、一般的には除去するものの粒度によって分類される:

  • ウェイト・プルーニング(非構造化):ある重要度閾値(多くの場合マグニチュードベース)以下の個々の重みは削除される(ゼロに設定される)。これはスパース・モデルにつながりますが、最適なスピードアップのためには、NVIDIAスパース・モデル用ツールのような特殊なハードウェアやソフトウェアが必要になる場合があります。
  • ニューロンの刈り込み:重要でないと判断されたニューロン(およびその接続)全体がネットワークから削除される。
  • フィルタ/チャネルの刈り込み(構造化): 畳み込みニューラルネットワーク(CNN)のフィルターやチャンネル全体を除去する。この構造化された刈り込みアプローチは、特別なライブラリを必要とせず、標準的なハードウェア上でより直接的な高速化につながることが多い。Neural MagicDeepSparseのようなツールは、CPU アクセラレーションにスパース性を活用し、多くの場合、プルーニングと組み合わせるYOLOv5 withNeural Magic チュートリアル)。

プルーニングは、モデルが完全に学習された後に行われることもあれば、学習プロセスに組み込まれることもある。剪定後、モデルは通常、パラメータ除去で失われた性能を回復するために、ファインチューニング(より小さなアーキテクチャでのさらなる学習)を行う。フレームワーク PyTorchのようなフレームワークは、PyTorch Pruning Tutorialにあるように、様々なプルーニング手法を実装するユーティリティを提供しています。

実世界での応用

モデルの刈り込みは、多くのAI領域で価値がある:

  1. エッジデバイスにおける物体検出の最適化:次のようなモデル Ultralytics YOLOのようなモデルは、Raspberry PiGoogleEdgeTPUNVIDIA Jetsonのようなリソースに制約のあるハードウェア上で効率的に動作するように刈り込まれる。これにより、オンデバイス監視、交通監視(交通管理の最適化ブログ)、ロボットナビゲーション(ロボット工学におけるCVの統合ブログ)などのアプリケーションが可能になります。
  2. 大規模言語モデル(LLM)をローカルに展開する:プルーニング技術は、Transformerアーキテクチャに基づくような大規模なモデルのサイズを大幅に縮小し、クラウドに常時接続することなく、自然言語処理(NLP)のようなタスクのユーザーデバイス(スマートフォンなど)上で直接実行できるようにします。これにより、データプライバシーが強化され、オンデバイス翻訳やインテリジェントアシスタントのようなアプリケーションの待ち時間が短縮されます。

プルーニングと他の最適化手法の比較

モデル刈り込みは、モデルの最適化に使われるいくつかのテクニックのひとつである。モデル刈り込みは、モデル最適化とは異なるが、しばしば補完的なものである:

  • モデルの量子化モデルの重みとアクティベーションの数値精度を下げ(例えば32ビット浮動小数点数から8ビット整数へ)、モデルサイズを小さくし、計算を高速化する。 TensorRT.
  • 知識の蒸留事前に訓練された大きな「教師」モデルの動作を模倣するために、小さな「生徒」モデルを訓練する。目標は、大きなモデルからよりコンパクトなモデルへ知識を移行することである。

これらのテクニックは組み合わせることができる。例えば、モデルをまず刈り込み、次に量子化して最大限の効率を得ることができる。最適化されたモデルは、次のような標準フォーマットにエクスポートされることが多い。 ONNXUltralytics エクスポートオプション)のような標準形式にエクスポートされることが多い。Ultralytics HUBのようなプラットフォームは、モデルやデータセット(COCOなど)を管理し、最適化されたデプロイメントへのパスを合理化するための環境を提供します。

すべて読む