ヨロビジョン深圳
深セン
今すぐ参加

ExecuTorch統合を使用してUltralytics YOLOモデルを展開する

Abirami Vina

5分で読めます

2025年11月4日

Ultralytics YOLO11のようなUltralytics YOLOモデルをExecuTorch形式にエクスポートして、エッジデバイスやモバイルデバイスにPyTorchネイティブで効率的に展開する方法を紹介します。

自動品質検査、自律型ドローン、スマートセキュリティシステムなど、特定のコンピュータビジョンアプリケーションは、Ultralytics YOLO11のようなUltralytics YOLOモデルが画像をキャプチャするセンサーの近くで動作する場合に最高のパフォーマンスを発揮します。言い換えれば、これらのモデルは、データをクラウドに送るのではなく、カメラ、ドローン、組み込みシステムなど、データが生成された場所で直接処理する必要があります。 

エッジAIとして知られるこのアプローチは、データが取り込まれたデバイス上でモデルが直接推論を実行することを可能にする。リモートのサーバーに依存する代わりにローカルで情報を処理することで、システムは、インターネット接続が制限されている、または接続されていない環境であっても、より低いレイテンシー、より強化されたデータプライバシー、より高い信頼性を達成することができる。

例えば、毎分数千個の製品を検査する製造カメラや、複雑な環境を航行するドローンには、クラウド処理に伴う遅延は許されません。YOLO11をデバイス上で直接実行すれば、デバイス上で即座に推論を行うことができる。

エッジ上でのUltralytics YOLOモデルの実行をより簡単かつ効率的にするために、Ultralyticsがサポートする新しいExecuTorch統合は、モバイルや組み込みデバイスに直接モデルをエクスポートして展開する合理的な方法を提供します。ExecuTorchはPyTorch Edgeエコシステムの一部であり、電話、ウェアラブル、組み込みボード、マイクロコントローラーなどのモバイルおよびエッジハードウェア上でAIモデルを直接実行するためのエンドツーエンドのソリューションを提供します。

この統合により、YOLO11のようなUltralytics YOLOモデルをトレーニングからエッジデバイスへの展開まで簡単に行うことができます。YOLO11のビジョン機能とExecuTorchの軽量ランタイムおよびPyTorchエクスポートパイプラインを組み合わせることで、ユーザーは、PyTorchベースの推論の精度と性能を維持しながら、エッジハードウェア上で効率的に動作するモデルを展開することができます。

この記事では、ExecuTorchの統合がどのように機能するのか、なぜエッジAIアプリケーションに最適なのか、そしてどのようにExecuTorchでUltralytics YOLOモデルの展開を開始できるのかを詳しく見ていきます。さっそく始めましょう!

ExecuTorchとは?

通常、PyTorchでモデルを学習する場合、クラウド上の強力なサーバーやGPU(Graphics Processing Unit)で実行します。しかし、同じモデルをスマートフォン、ドローン、マイクロコントローラーなどのモバイルデバイスや組み込みデバイスにデプロイするには、限られたコンピューティングパワー、メモリー、接続性を処理できる特別なソリューションが必要です。

それこそがExecuTorchがもたらすものです。ExecuTorchは、PyTorch Edgeエコシステムの一部として開発されたエンドツーエンドのソリューションで、モバイル、組み込み、エッジの各プラットフォームで効率的なオンデバイス推論を可能にします。PyTorchの機能をクラウドを超えて拡張し、AIモデルをローカルデバイス上で直接実行できるようにします。

PyTorchの推論をエッジに持ち込む

その中核として、ExecuTorchは軽量なC++ランタイムを提供し、PyTorchモデルをデバイス上で直接実行できるようにします。ExecuTorchはPyTorch ExecuTorch (.pte)モデルフォーマットを使用します。これは、より高速にロードし、メモリフットプリントを小さくし、移植性を改善するように設計された最適化されたエクスポートです。 

効率的なCPU(Central Processing Unit)推論のためのデフォルトバックエンドとしてXNNPACKをサポートし、Core ML、Metal、Vulkan、Qualcomm、MediaTek、Arm EthosU、OpenVINOなど、幅広いハードウェアバックエンドとの互換性を拡張している。 

これらのバックエンドは、モバイル、組み込み、特殊なエッジデバイスでの最適化されたアクセラレーションを可能にします。また、ExecuTorchはPyTorchエクスポートパイプラインと統合し、量子化やダイナミックシェイプ処理などの高度な機能のサポートを提供することで、さまざまな展開環境におけるパフォーマンスと適応性を向上させます。

量子化は、高精度値(32ビット浮動小数点数など)を低精度値に変換することで、モデルサイズを縮小し、推論速度を向上させる。一方、動的形状処理は、モデルが可変入力サイズを効率的に処理できるようにするために使用される。この2つの機能は、リソースの限られたエッジデバイス上でAIモデルを実行する上で非常に重要です。

図1.ExecuTorchの仕組み(出典)

エッジハードウェアの統一レイヤー

ランタイムだけでなく、ExecuTorchは複数のハードウェアバックエンドに対する統一された抽象化レイヤーとしても機能する。簡単に言えば、ハードウェア固有の詳細を抽象化し、モデルがCPU、GPU、NPU(Neural Processing Unit)を含む異なる処理ユニットとどのように相互作用するかを管理する。

一旦モデルがエクスポートされると、ExecuTorchは与えられたデバイスに最適なバックエンドをターゲットとするように設定することができます。開発者は、デバイス固有のカスタムコードを書いたり、個別の変換ワークフローを維持したりすることなく、多様なハードウェアに効率的にモデルを展開することができます。

モジュール式でポータブルな設計とシームレスなPyTorchの統合により、ExecuTorchはUltralytics YOLO11のようなコンピュータビジョンモデルをモバイルや組み込みシステムに展開するのに最適な選択肢です。モデルのトレーニングから実世界への展開までのギャップを埋め、エッジAIをより速く、より効率的に、より簡単に実装することができます。

ExecuTorchの主な特徴

Ultralytics YOLOモデルをExecuTorchフォーマットにエクスポートする方法を見る前に、ExecuTorchがエッジでAIを展開するための信頼できる選択肢である理由を探ってみよう。

ここでは、その主な機能の一部を紹介しよう:

  • 量子化のサポート:ExecuTorchはモデルの量子化をサポートしています。これは、高精度の値を低精度の値に変換してモデルのサイズを小さくし、推論を高速化するテクニックです。これにより、ほぼ同じ精度を維持しながら、エッジ・デバイス上でモデルをより高速に実行し、より少ないメモリを使用することができます。
  • メモリの効率的な使用: ExecuTorchの最大の利点の1つは、メモリの扱い方です。ExecuTorchは、レイテンシや電力オーバーヘッドを引き起こす可能性のある動的なメモリ割り当てに依存する代わりに、Ahead-of-Time (AOT)メモリ計画を使用します。エクスポート中にモデル・グラフを解析し、各処理に必要なメモリ量を事前に計算します。これにより、ランタイムは静的なメモリ計画を使用してモデルを実行し、予測可能なパフォーマンスを保証し、RAMや処理能力に制限のあるデバイスでの速度低下やクラッシュを防ぎます。
  • 内蔵モデルのメタデータ:Ultralyticsがサポートする統合を使用してエクスポートする場合、各モデルには、入力画像サイズ、クラス名、設定パラメータなどの重要なメタデータを含むYAMLファイルが含まれます。この追加ファイルは、様々なアプリケーションへのモデルの統合を簡素化し、異なるエッジプラットフォーム間で一貫した動作を保証します。

Ultralytics YOLO モデルを ExecuTorch 形式にエクスポートする方法

さて、ExecuTorch が提供するものをよりよく理解したところで、Ultralytics YOLO モデルを ExecuTorch フォーマットにエクスポートする方法を説明しましょう。

ステップ1:Ultralytics Pythonパッケージをインストールします

始めるには、パッケージインストーラであるpipを使ってUltralytics Pythonパッケージをインストールする必要があります。ターミナルまたはコマンドプロンプトで "pip install ultralytics "を実行することでインストールできます。 

Jupyter NotebookやGoogle Colab環境で作業している場合は、コマンドの前に「!pip install ultralytics」のように感嘆符を付けるだけでよい。インストールされると、Ultralyticsパッケージは、Ultralytics YOLO11を含む、コンピュータビジョンモデルのトレーニング、テスト、エクスポートに必要なすべてのツールを提供します。

インストール中やモデルのエクスポート中に何らかの問題が発生した場合、Ultralyticsの公式ドキュメントと「よくある問題」ガイドに詳細なトラブルシューティング手順とベストプラクティスが記載されていますので、スムーズな立ち上げと運用にお役立てください。

ステップ2:Ultralytics YOLO11のエクスポート

Ultralyticsパッケージをインストールした後、YOLO11モデルの変種をロードし、ExecuTorchフォーマットにエクスポートすることができます。例えば、"yolo11n.pt "のような事前に訓練されたモデルを使用し、"executorch "フォーマットに設定したexport関数を呼び出してエクスポートすることができます。 

これには、最適化されたモデルファイル (.pte) と、画像サイズやクラス名などの重要な詳細を含む別のメタデータ YAML ファイルが含まれます。

以下はモデルをエクスポートするコードです:

from ultralytics import YOLO

model = YOLO("yolo11n.pt")

model.export(format="executorch")

ステップ3: モデルのエクスポート後の推論の実行

一度エクスポートされたモデルは、ExecuTorch ランタイムを使用して、エッジデバイスやモバイルデバイスにデプロイできます。エクスポートされた .pte モデルファイルは、アプリケーションにロードすることができ、クラウド接続を必要とせずに、リアルタイムでデバイス上で推論を実行することができます。

例えば、以下のコード・スニペットは、エクスポートされたモデルをロードして推論を実行する方法を示しています。推論とは、単純に新しいデータに対して予測を行うために学習済みモデルを使用することを意味します。ここでは、公開URLから取得したバスの画像でモデルをテストしています。

executorch_model = YOLO("yolo11n_executorch_model")

results = executorch_model.predict("https://ultralytics.com/images/bus.jpg", save=True)

コードを実行すると、検出されたオブジェクトを含む出力画像が "runs/detect/predict "フォルダに保存されます。 

図2.ExecuTorch形式でエクスポートされたYOLO11モデルを使ったオブジェクトの検出。

ExecuTorch インテグレーションを使用する利点

Ultralyticsがサポートするさまざまなエクスポートオプションを調べているうちに、ExecuTorchとの統合の何がユニークなのか不思議に思うかもしれません。重要な違いは、パフォーマンス、シンプルさ、柔軟性をいかにうまく組み合わせ、強力なAIモデルをモバイルデバイスやエッジデバイスに直接簡単に展開できるかという点です。

ここでは、ExecuTorch の統合を使用する主な利点のいくつかを紹介します:

  • 柔軟な展開オプション:ExecuTorchモデルは、モバイルアプリケーション、組み込みシステム、IoT(モノのインターネット)デバイス、および特殊なエッジAIハードウェアに展開できます。この柔軟性により、開発者は多様なプラットフォームや環境で一貫して動作するスケーラブルなAIソリューションを構築できます。
  • ベンチマークで実証された性能:Raspberry Pi 5のようなデバイスでのテストによると、ExecuTorch形式にエクスポートされたYOLO11モデルは、ほぼ同じ精度で、PyTorchの同等モデルよりもおよそ2倍速く動作する。
  • 柔軟な統合API:ExecuTorchはiOS、Android、組み込みLinux向けにC++、Kotlin、Objective-CのAPIを提供しており、開発者はYOLOモデルをネイティブアプリに直接統合できます。
  • ハードウェア・アクセラレーションのサポート:ExecuTorchは、モバイルGPU用のVulkanやMetalを含む複数のハードウェア・アクセラレーション・バックエンドをサポートしており、オプションでOpenCLやその他のベンダー固有のAPIも統合できます。また、NPUやDSPのような専用アクセラレータを活用することで、CPUのみの推論に比べて大幅なスピードアップを実現することができます。

YOLO11とExecuTorchエクスポートの実際のアプリケーション

最近、UltralyticsはPyTorch ExecuTorchのサクセスストーリーとして認定され、オンデバイス推論の早期サポートとPyTorchエコシステムへの継続的な貢献が強調されました。この認定は、高性能AIをモバイルやエッジプラットフォームでより利用しやすくするという共通の目標を反映したものです。

クラウドからエッジへ:ExecuTorchとYOLO11がVision AIを実現する方法

これは、スマートフォンから組み込みシステムまで、あらゆるシステム上で効率的に動作する現実のVision AIソリューションのように見える。例えば製造業では、エッジデバイスが生産ラインの監視や欠陥のリアルタイム検出において重要な役割を果たしている。

図3.YOLO11を使った製造組立ラインの解析例。(出典)

画像やセンサーデータをクラウドに送信して処理する代わりに、ExecuTorchとの統合により、YOLO11モデルをローカル・ハードウェア上で直接実行することができます。これは、工場が限られたコンピュート・リソースで操業しながら、品質問題を即座に検出し、ダウンタイムを減らし、データ・プライバシーを維持できることを意味します。

ExecuTorchの統合とUltralyticsのYOLOモデルがどのように適用できるのか、他の例をいくつか挙げてみましょう:

  • スマートシティ ExecuTorchを使用してYOLO11モデルをローカルで実行することにより、都市は、交通渋滞の検出から危険の特定まで、データ駆動型の意思決定を迅速に行い、全体的なモビリティと安全性を向上させることができます。
  • 小売業と倉庫業 デバイス上での推論により、小売業者はクラウド接続に依存することなく、棚の監視、在庫の追跡、荷物の検査を迅速かつ安全に自動化できます。
  • ロボット工学とドローン: エッジに最適化されたYOLO11モデルにより、ロボットやドローンは、インターネットアクセスがなくても、物体を認識し、環境をナビゲートし、リアルタイムの意思決定を行うことができる。

図4.YOLO11を使った渋滞中の車の検出とカウント(出典:YOLO11)

主なポイント

Ultralytics YOLOモデルをExecuTorch形式にエクスポートすることで、スマートフォン、タブレット、Raspberry Piのような組み込みシステムなど、多くのデバイスにコンピュータビジョンモデルを簡単に展開できます。これは、クラウド接続に依存することなく、最適化されたオンデバイス推論を実行し、スピード、プライバシー、信頼性を向上させることが可能であることを意味します。

Ultralyticsは、ExecuTorchとともに、TensorRT、OpenVINO、CoreMLなどの幅広い統合をサポートしており、開発者はプラットフォーム間で柔軟にモデルを実行できます。Vision AIの採用が拡大するにつれ、これらの統合は、実世界の状況で効率的に動作するように構築されたインテリジェントシステムの展開を簡素化します。

AIに興味がありますか?当社のGitHubリポジトリをチェックし、当社のコミュニティに参加し、Vision AIプロジェクトを開始するためのライセンスオプションを検討してください。小売業におけるAIや 物流におけるコンピュータ・ビジョンのようなイノベーションについては、ソリューションのページをご覧ください。

AIの未来を
共に築きましょう!

未来の機械学習で、新たな一歩を踏み出しましょう。

無料ではじめる
クリップボードにコピーしました