Neural MagicのDeepSparse EngineでYOLO26の推論を最適化#
物体検出モデルであるUltralytics YOLO26をさまざまなハードウェアにデプロイする際、最適化などの特有の課題に直面することがあります。こうした課題に対処するのが、YOLO26とNeural MagicのDeepSparse Engineとの統合です。この統合によりYOLO26モデルの実行方法が変わり、CPU上でGPUレベルのパフォーマンスを実現できます。
このガイドでは、Neural MagicのDeepSparseを使ってYOLO26をデプロイする方法、推論を実行する方法、パフォーマンスが最適化されていることを確認するためのベンチマーク方法を説明します。
Neural Magicは2025年1月にRed Hatに買収され、コミュニティ向けのdeepsparse、sparseml、sparsezoo、sparsifyライブラリの提供を終了する予定です。詳細については、GitHubリポジトリsparsifyのReadmeに掲載された告知をご覧ください。
Neural MagicのDeepSparse#
Neural MagicのDeepSparseは、CPU上でニューラルネットワークの実行を最適化する推論ランタイムです。スパース化、プルーニング、量子化などの高度な手法を適用し、精度を維持しながら計算負荷を大幅に削減します。DeepSparseは、さまざまなデバイスでニューラルネットワークを効率的かつスケーラブルに実行するための柔軟なソリューションを提供します。
Neural MagicのDeepSparseをYOLO26と統合するメリット#
DeepSparseを使ってYOLO26をデプロイする方法を説明する前に、DeepSparseを使うメリットを確認しましょう。主なメリットは次のとおりです。
- 推論速度の向上: 最大525 FPS(YOLOv8nの場合)を達成し、従来の手法と比較してYOLOの推論性能を大幅に高めます。
- モデル効率の最適化: プルーニングと量子化を使ってYOLO26の効率を高め、精度を維持しながらモデルサイズと計算要件を削減します。
-
一般的なCPUでの高いパフォーマンス: CPU上でGPUに匹敵するパフォーマンスを実現し、さまざまなアプリケーションで利用しやすく、費用対効果の高い選択肢を提供します。
-
統合とデプロイの効率化: 画像や動画のアノテーション機能を含め、YOLO26をアプリケーションに簡単に統合するための使いやすいツールを提供します。
-
さまざまなモデルタイプをサポート: 標準のYOLOモデルとスパース性を最適化したYOLOモデルの両方に対応し、デプロイの柔軟性を高めます。
-
費用対効果と拡張性に優れたソリューション: 運用コストを削減し、高度な物体検出モデルのスケーラブルなデプロイを実現します。
Neural MagicのDeepSparseテクノロジーの仕組み#
Neural MagicのDeepSparseテクノロジーは、ニューラルネットワークの計算における人間の脳の効率性に着想を得ています。次の2つの主要な原則を脳から取り入れています。
-
スパース性: スパース化では、ディープラーニングネットワークから冗長な情報をプルーニングします。これにより、精度を損なうことなくモデルを小型化し、高速化できます。この手法はネットワークのサイズと計算要件を大幅に削減します。
-
参照の局所性: DeepSparseは、ネットワークをTensor Columnsに分割する独自の実行方式を採用しています。これらのカラムは深さ方向に実行され、CPUキャッシュ内に完全に収まります。このアプローチは脳の効率性を模倣し、データ移動を最小限に抑えながらCPUキャッシュの利用を最大化します。
カスタムデータセットでトレーニングしたYOLO26のスパース版の作成#
Neural Magicが提供するオープンソースのモデルリポジトリSparseZooには、事前にスパース化されたYOLOv8モデルのチェックポイントが多数用意されています。Ultralyticsとスムーズに統合されたSparseMLを使うと、シンプルなコマンドラインインターフェイスから、これらのスパースチェックポイントを特定のデータセットで簡単にファインチューニングできます。
詳しくは、Neural MagicのSparseML YOLOv8ドキュメントをご覧ください。
使用方法: DeepSparseを使ったYOLO26のデプロイ#
Neural MagicのDeepSparseを使ったYOLO26のデプロイは、いくつかの簡単な手順で行えます。使用手順に進む前に、Ultralyticsが提供するYOLO26モデルをご確認ください。プロジェクトの要件に最適なモデルを選ぶのに役立ちます。次の手順で始めましょう。
ステップ1: インストール#
必要なパッケージをインストールするには、次を実行します。
# Install the required packages
pip install deepsparse[yolov8]ステップ2: YOLO26をONNX形式にエクスポート#
DeepSparse Engineでは、YOLO26モデルをONNX形式にする必要があります。DeepSparseとの互換性を確保するには、モデルをこの形式にエクスポートすることが不可欠です。YOLO26モデルをエクスポートするには、次のコマンドを使います。
# Export YOLO26 model to ONNX format
yolo detect export model=yolo26n.pt format=onnx opset=13このコマンドは、yolo26n.onnxモデルをディスクに保存します。
ステップ 3: 推論のデプロイと実行#
YOLO26モデルをONNX形式にしたら、DeepSparseを使用してデプロイし、推論を実行できます。直感的に使えるPython APIを使って簡単に実行できます。
from deepsparse import Pipeline
# YOLO26 ONNXモデルのパスを指定します
model_path = "path/to/yolo26n.onnx"
# DeepSparse Pipelineをセットアップします
yolo_pipeline = Pipeline.create(task="yolov8", model_path=model_path)
# 画像でモデルを実行します
images = ["path/to/image.jpg"]
pipeline_outputs = yolo_pipeline(images=images)ステップ 4: パフォーマンスのベンチマーク#
YOLO26モデルがDeepSparseで最適に動作していることを確認することが重要です。ベンチマークを実施してモデルのパフォーマンスを評価し、スループットとレイテンシを分析できます。
# Benchmark performance
deepsparse.benchmark model_path="path/to/yolo26n.onnx" --scenario=sync --input_shapes="[1,3,640,640]"ステップ 5: その他の機能#
DeepSparseには、画像アノテーションやデータセット評価など、アプリケーションへのYOLO26の実用的な統合に役立つ機能も用意されています。
# For image annotation
deepsparse.yolov8.annotate --source "path/to/image.jpg" --model_filepath "path/to/yolo26n.onnx"
# For evaluating model performance on a dataset
deepsparse.yolov8.eval --model_path "path/to/yolo26n.onnx"annotateコマンドを実行すると、指定した画像が処理され、オブジェクトが検出され、バウンディングボックスと分類結果を含むアノテーション済み画像が保存されます。アノテーション済み画像はannotation-resultsフォルダーに保存されます。これにより、モデルの検出能力を視覚的に確認できます。
evalコマンドを実行すると、適合率、再現率、mAP(平均適合率)などの詳細な出力メトリクスが得られます。これにより、データセットに対するモデルのパフォーマンスを包括的に把握できます。また、特定のユースケースに合わせてYOLO26モデルを微調整、最適化し、高い精度と効率を実現するうえで特に役立ちます。
概要#
このガイドでは、UltralyticsのYOLO26をNeural MagicのDeepSparse Engineと統合する方法を紹介しました。この統合によってYOLO26のCPUプラットフォームでのパフォーマンスが向上し、GPUレベルの効率と高度なニューラルネットワークのスパース化技術を利用できることを説明しました。
詳しい情報や高度な使い方については、Neural MagicのDeepSparseリポジトリをご覧ください。また、YOLOv8統合ガイドやYouTubeのウォークスルーセッションもご確認ください。
YOLO26のさまざまな統合方法について詳しく知りたい場合は、Ultralyticsの統合ガイドページをご覧ください。さまざまな統合方法をご紹介しています。
よくある質問#
Neural MagicのDeepSparse Engineは、スパース化、プルーニング、量子化などの高度な手法により、CPU上でのニューラルネットワークの実行を最適化する推論ランタイムです。DeepSparseをYOLO26と統合すると、一般的なCPUでGPUに匹敵するパフォーマンスを実現し、精度を維持しながら推論速度、モデル効率、全体的なパフォーマンスを大幅に向上させることができます。詳しくは、Neural MagicのDeepSparseのセクションをご覧ください。
Neural MagicのDeepSparseでYOLO26をデプロイするために必要なパッケージは簡単にインストールできます。CLIを使用して手軽にインストールできます。実行するコマンドは次のとおりです。
pip install deepsparse[yolov8]インストール後、インストールのセクションの手順に従って環境をセットアップし、DeepSparseでYOLO26を使い始めてください。
DeepSparseとの互換性に必要なONNX形式にYOLO26モデルを変換するには、次のCLIコマンドを使用します。
yolo detect export model=yolo26n.pt format=onnx opset=13このコマンドはYOLO26モデル(
yolo26n.pt)を、DeepSparse Engineで使用できる形式(yolo26n.onnx)にエクスポートします。モデルのエクスポートについて詳しくは、モデルエクスポートのセクションをご覧ください。DeepSparseでYOLO26のパフォーマンスをベンチマークすると、スループットとレイテンシを分析してモデルが最適化されていることを確認できます。次のCLIコマンドを使用してベンチマークを実行できます。
deepsparse.benchmark model_path="path/to/yolo26n.onnx" --scenario=sync --input_shapes="[1,3,640,640]"このコマンドを実行すると、重要なパフォーマンスメトリクスが得られます。詳しくは、パフォーマンスのベンチマークのセクションをご覧ください。
YOLO26とNeural MagicのDeepSparseを統合すると、次のようなメリットがあります。
- 推論速度の向上: 最大525 FPS(YOLOv8nの場合)を達成し、DeepSparseの最適化能力を示します。
- モデル効率の最適化: スパース化、プルーニング、量子化の手法により、精度を維持しながらモデルサイズと計算量を削減します。
- 一般的なCPUで高いパフォーマンス: コスト効率に優れたCPUハードウェアで、GPUに匹敵するパフォーマンスを実現します。
- シンプルな統合: デプロイと統合を容易にする、使いやすいツールを提供します。
- 柔軟性: 標準のYOLOモデルとスパース化最適化済みのYOLOモデルの両方に対応します。
- コスト効率: リソースを効率的に活用し、運用コストを削減します。
これらのメリットについて詳しくは、Neural MagicのDeepSparseをYOLO26と統合するメリットのセクションをご覧ください。