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

枝刈り

プルーニングでAIモデルを最適化—複雑さを軽減し、効率を高め、パフォーマンスを犠牲にすることなく、エッジデバイスへの展開を高速化します。

プルーニングは、機械学習における重要なテクニックである。 機械学習において重要な技術である。 機械学習における重要な手法である。 不要なパラメータを削除することで パラメータを削除することである。健全な成長を促すために木から枯れ枝を切り落とすのと同じように、モデルの刈り込みは、以下のようなモデルの重みまたは接続を識別し、除去します。 除去する。 除去する。主な目標は、メモリ使用量と接続を大幅に削減しながら、高い精度を維持する疎なモデルを作成することである。 高い精度を維持しながら、メモリ使用量を大幅に削減し 推論の待ち時間を改善することである。このプロセスは のような洗練されたアーキテクチャを展開するために不可欠である。 Ultralytics YOLO11のような高度なアーキテクチャを ストレージや処理能力が限られているデバイスに

枝刈りの仕組み

このプロセスは通常、事前に訓練されたモデルから始まる。アルゴリズムはネットワークを分析し、最終的な予測に影響を与える値がゼロに近いか、限定的なパラメータを見つける。 テンソルとして表現される。これらのパラメータは を除去する。接続の削除は一時的にパフォーマンスを低下させる可能性があるため、モデル モデルは通常、微調整と呼ばれるプロセスを経る。 数エポックの間再学習され、残りの重みが調整され、失われた を調整し、失われた精度を回復させる。

剪定には大きく分けて2つのカテゴリーがある:

  • 非構造的刈り込み:この方法は、ネットワークのどこにでもある個々の重みを、大きさに基づいて削除する。 の大きさに基づいて削除する。パラメータ数の削減には効果的だが、不規則なメモリアクセスパターンが発生するため、特殊な処理を行わない標準的なCPUでは速度が向上しない可能性がある。 標準的なCPUでは、特別なソフトウェアやハードウェアのサポートがない限り のような特別なソフトウェアやハードウェアのサポートがなければ、標準的なCPUではスピードの向上が得られないかもしれない。 NVIDIAスパース性機能
  • 構造化プルーニング:このアプローチでは、ニューロン、チャンネル、レイヤーなどの構造的構成要素全体を削除する、 またはレイヤーのような 畳み込みニューラルネットワーク(CNN)。マトリックス構造を維持することで、この方法は標準的なハードウェアに優しく、通常は次のような結果をもたらします。 リアルタイム推論 リアルタイム推論

刈り込み vs 量子化 vs 蒸留

プルーニングを他のモデル最適化戦略と区別することは重要である。 モデル最適化戦略と区別することが重要である、 と区別することが重要である:

  • モデルの量子化パラメータを削除する代わりに パラメータを削除する代わりに、重みの精度を下げる(例えば、32ビット浮動小数点から8ビット整数に変換する)。 浮動小数点から8ビット整数への変換など)。
  • 知識の蒸留 これは、より大きな「教師」モデルの動作を模倣するために、より小さな「生徒」モデルを訓練することである。 より大きなモデルを直接修正するのではなく、より小さな「生徒」モデルを訓練して、より大きな「教師」モデルの動作を模倣させる。
  • 枝刈り:具体的には、スパース性を誘導するために接続や構造を削除することに重点を置く。

実際のアプリケーション

プルーニングは、さまざまな業界でエッジAIを実現する上で重要な役割を果たしている。 実現に重要な役割を果たす:

  1. 自律型ロボット工学:ナビゲーションに ナビゲーションにコンピュータ・ビジョンを利用するロボットは 視覚データを局所的に処理する必要があります。プルーニングにより、複雑な プルーニングにより、複雑な物体検出モデルを 安全性と効率性を保証します。詳しくは ロボット工学におけるコンピューター・ビジョンの統合
  2. モバイルヘルスケア診断:医療アプリケーションでは、高解像度のスキャン画像を直接タブレットやスマートフォンで分析する必要があります。 患者のプライバシーを保護するために、タブレットやスマートフォン データプライバシーを保護する必要があります。プルーニングされたモデルにより、これらのデバイスは、機密データをクラウドにアップロードすることなく クラウドに機密データをアップロードすることなく、腫瘍検出などのタスクを実行できます。どのように ヘルスケアのAIが診断を変える。

実例

一方 Ultralytics YOLOモデルはすぐに高度に最適化されます、 開発者は標準のPyTorch ユーティリティを使って刈り込みを試すことができます。次の例は コンピュータビジョンモデルに見られる標準的な畳み込み層に非構造化プルーニングを適用する方法を示します。

import torch
import torch.nn.utils.prune as prune
from ultralytics.nn.modules import Conv

# Initialize a standard convolutional block used in YOLO models
layer = Conv(c1=64, c2=128)

# Apply L1 unstructured pruning to remove 30% of the lowest magnitude weights
prune.l1_unstructured(layer.conv, name="weight", amount=0.3)

# Verify the sparsity (percentage of zero weights)
sparsity = float(torch.sum(layer.conv.weight == 0)) / layer.conv.weight.nelement()
print(f"Layer sparsity achieved: {sparsity:.2%}")

今後予定されているYOLO26のような、効率的なアーキテクチャーの将来的な進歩は、これらの最適化原理をネイティブに統合することを目指している。 最適化の原則をネイティブに統合し、より小さく、より速く、より正確なモデルを設計することを目指している。

主要概念とリソース

  • スパース性:積極的な刈り込みの直接の結果である。 積極的な枝刈りの直接の結果。
  • 宝くじ仮説:マサチューセッツ工科大学(MIT)の研究者が提唱した概念。 マサチューセッツ工科大学(MIT)の研究者が提唱した概念。 高密度のネットワークには小さなサブネットワーク(当選チケット)が存在し、そのサブネットワークは単独で訓練された場合、元の精度に匹敵する。
  • 微調整:刈り込みモデルを適応させるために 刈り込まれたモデルを再学習させるプロセス。 残りの重みを新しい単純化された構造に適応させるために再トレーニングするプロセス。

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

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

今すぐ参加