ExecuTorch統合を使用してUltralytics YOLOモデルを展開する
Ultralytics YOLO11のようなUltralytics YOLOモデルをExecuTorch形式にエクスポートし、エッジおよびモバイルデバイス上で効率的なPyTorchネイティブ展開を行う方法を探ります。

自動品質検査、自律型ドローン、スマートセキュリティシステムなどの特定の computer vision アプリケーションは、Ultralytics YOLO11 のような Ultralytics YOLOモデルが画像をキャプチャするセンサーの近くで実行されるときに最高のパフォーマンスを発揮します。言い換えると、これらのモデルはデータをクラウドに送信するのではなく、カメラ、ドローン、埋め込みシステムなどのデータ生成場所で直接処理する必要があります。
edge AI として知られるこのアプローチにより、モデルはデータがキャプチャされたデバイス上で直接推論を実行できます。リモートサーバーに依存する代わりに情報をローカルで処理することで、インターネット接続が制限されている、または接続されていない環境であっても、システムはより低いレイテンシ、強化されたデータプライバシー、およびより高い信頼性を実現できます。
例えば、毎分数千個の製品を検査する製造ラインのカメラや、複雑な環境を飛行するドローンなどでは、クラウド処理に伴う遅延は許容されません。デバイス上で直接 Ultralytics YOLO11 を実行することで、即時かつオンデバイスでの推論が可能になります。
エッジでの Ultralytics YOLOモデルの実行をより簡単かつ効率的にするために、Ultralytics がサポートする新しい ExecuTorch integration は、モデルをモバイルおよび埋め込みデバイスに直接エクスポートしてデプロイするための合理化された方法を提供します。ExecuTorch は PyTorch Edgeエコシステムの一部であり、スマートフォン、ウェアラブル、埋め込みボード、マイクロコントローラなどのモバイルおよびエッジハードウェア上でAIモデルを直接実行するためのエンドツーエンドのソリューションを提供します。
このインテグレーションにより、YOLO11のようなUltralytics YOLOモデルをトレーニングからエッジデバイスへのデプロイまで容易に行うことができます。YOLO11のビジョン機能とExecuTorchの軽量ランタイムおよびPyTorchエクスポートパイプラインを組み合わせることで、ユーザーはPyTorchベースの推論の精度とパフォーマンスを維持しながら、エッジハードウェア上で効率的に実行されるモデルをデプロイできます。
この記事では、ExecuTorchインテグレーションの仕組み、それがなぜエッジAIアプリケーションに適しているのか、そしてどのようにUltralytics YOLOモデルをExecuTorchでデプロイし始めることができるのかを詳しく見ていきます。それでは始めましょう!
ExecuTorchとは何か?#
通常、PyTorchでモデルをトレーニングすると、それはクラウド内の強力なサーバーやGraphics Processing Units (GPUs)上で実行されます。しかし、同じモデルをスマートフォン、ドローン、マイクロコントローラなどのモバイルデバイスや組み込みデバイスにデプロイするには、限られたコンピューティングパワー、メモリ、接続性を処理できる特殊なソリューションが必要です。
まさにそれこそがExecuTorchが提供するものです。ExecuTorchは、PyTorch Edgeエコシステムの一部として開発されたエンドツーエンドのソリューションであり、モバイル、組み込み、エッジプラットフォーム全体で効率的なオンデバイス推論を可能にします。これはPyTorchの機能をクラウドの外にまで拡張し、AIモデルがローカルデバイス上で直接実行されることを可能にします。
PyTorch推論をエッジにもたらす#
その核心において、ExecuTorchはPyTorchモデルがデバイス上で直接実行されることを可能にする軽量なC++ランタイムを提供します。ExecuTorchは、より高速な読み込み、より小さなメモリフットプリント、そして改善された移植性のために設計された最適化されたエクスポートであるPyTorch ExecuTorch (.pte) モデルフォーマットを使用します。
これは効率的なCentral Processing Unit (CPU)推論のデフォルトバックエンドとしてXNNPACKをサポートしており、CoreML、Metal、Vulkan、Qualcomm、MediaTek、Arm EthosU、OpenVINOなどを含む幅広いハードウェアバックエンド間で互換性を拡張しています。
これらのバックエンドにより、モバイル、埋め込み、および特殊なエッジデバイスでの最適化されたアクセラレーションが可能になります。また、ExecuTorch は PyTorch エクスポートパイプラインとも統合されており、quantization や動的形状処理などの高度な機能のサポートを提供し、さまざまなデプロイ環境でのパフォーマンスと適応性を向上させます。
量子化は、(32ビット浮動小数点数のような)高精度値を低精度のものに変換することでモデルサイズを削減し、推論速度を向上させます。一方、動的形状処理は、モデルが可変の入力サイズを効率的に処理できるようにするために使用されます。どちらの機能も、リソースが制限されたエッジデバイス上でAIモデルを実行するために不可欠です。

図 1. ExecuTorchの仕組み (Source)
エッジハードウェアのための統合レイヤー#
ランタイムを超えて、ExecuTorchは複数のハードウェアバックエンドのための統合抽象化レイヤーとしても機能します。簡単に言えば、ハードウェア固有の詳細を抽象化し、モデルがCPU、GPU、Neural Processing Units (NPUs)を含む異なる処理ユニットとどのように相互作用するかを管理します。
モデルがエクスポートされると、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 package をインストールする必要があります。ターミナルまたはコマンドプロンプトで「pip install ultralytics」を実行することでインストールできます。
Jupyter NotebookやGoogle Colab環境で作業している場合は、コマンドの前に感嘆符を付けて「!pip install ultralytics」とするだけです。インストールされると、Ultralyticsパッケージは、Ultralytics YOLO11を含むコンピュータビジョンモデルをトレーニング、テスト、エクスポートするために必要なすべてのツールを提供します。
インストール中またはモデルのエクスポート中に問題が発生した場合は、公式の Ultralyticsドキュメントおよび Common Issues guide に詳細なトラブルシューティングの手順とベストプラクティスが記載されており、スムーズに作業を進めるのに役立ちます。
ステップ2:Ultralytics YOLO11のエクスポート#
Ultralytics パッケージをインストールした後、YOLO11モデルのバリエーションをロードし、ExecuTorch形式に export できます。たとえば、「yolo11n.pt」などの事前学習済みモデルを使用し、フォーマットを「executorch」に設定してエクスポート関数を呼び出すことでエクスポートできます。
これにより、「yolo11n_executorch_model」という名前のディレクトリが作成されます。これには、最適化されたモデルファイル(.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フォーマットでエクスポートされたUltralytics YOLO11モデルを使用したオブジェクト検出。
ExecuTorchインテグレーションを使用するメリット#
Ultralyticsがサポートするさまざまなエクスポートオプションを検討する際、何がExecuTorchインテグレーションをユニークにしているのか不思議に思うかもしれません。主な違いは、パフォーマンス、シンプルさ、柔軟性をどれだけうまく組み合わせているかという点にあり、強力なAIモデルをモバイルデバイスやエッジデバイス上で直接デプロイすることを容易にしています。
ExecuTorchインテグレーションを使用する主な利点をいくつか紹介します:
- 柔軟なデプロイオプション: ExecuTorchモデルは、モバイルアプリケーション、組み込みシステム、IoT(モノのインターネット)デバイス、および特殊なエッジAIハードウェア全体にデプロイできます。この柔軟性により、開発者は多様なプラットフォームや環境間で一貫して動作するスケーラブルなAIソリューションを構築できます。
- ベンチマークで証明されたパフォーマンス: Raspberry Pi 5 などのデバイスでのテストでは、ExecuTorch フォーマットにエクスポートされた Ultralytics YOLO11 モデルは、PyTorch 版と比較してほぼ同等の精度を維持しながら、約 2 倍高速に動作することが示されています。
- 柔軟なインテグレーションAPI: ExecuTorchは、iOS、Android、組み込みLinux向けのC++、Kotlin、およびObjective-C APIを提供しており、開発者がYOLOモデルをネイティブアプリに直接統合できるようにします。
- ハードウェアアクセラレーションのサポート: ExecuTorchは、モバイルGPU向けのVulkanやMetalを含む複数のハードウェアアクセラレーションバックエンドをサポートしており、OpenCLやその他のベンダー固有のAPIのためのオプションの統合も備えています。また、NPUsやDSPsなどの専用アクセラレータを活用することで、CPUのみの推論よりも大幅な高速化を実現できます。
Ultralytics YOLO11とExecuTorchエクスポートの現実世界の応用#
最近、Ultralytics は PyTorch ExecuTorch success story として認識され、オンデバイス推論に対する初期のサポートと PyTorchエコシステムへの継続的な貢献が強調されました。この評価は、高性能AIをモバイルおよびエッジプラットフォームでよりアクセスしやすくするという共通の目標を反映しています。
クラウドからエッジへ:ExecuTorchとUltralytics YOLO11がいかにビジョンAIを実現するか#
実際には、これはスマートフォンから組み込みシステムまで、あらゆるもので効率的に実行される現実世界のビジョンAIソリューションのように見えます。例えば、製造業では、エッジデバイスは生産ラインを監視し、リアルタイムで欠陥を検出する上で重要な役割を果たします。

図3: 製造業の組み立てラインを分析するためにUltralytics YOLO11を使用している例。(ソース)
処理のために画像やセンサーデータをクラウドへ送信すると遅延が生じ、インターネット接続に依存してしまいますが、ExecuTorch 統合により、Ultralytics YOLO11 モデルをローカルハードウェア上で直接実行できるようになります。これにより、工場では品質不良を即座に検出し、ダウンタイムを削減し、データプライバシーを維持しながら、限られたコンピュートリソースで稼働させることができます。
ExecuTorchインテグレーションとUltralytics YOLOモデルを適用できる他の例をいくつか紹介します:
- スマートシティ: ExecuTorch を使用して Ultralytics YOLO11 モデルをローカルで実行することで、都市は交通渋滞の検出から危険の特定に至るまで、より迅速でデータ駆動型の意思決定を行い、全体的な移動性と安全性を向上させることができます。
- 小売および倉庫: オンデバイス推論により、小売業者は棚の監視を自動化し、在庫を追跡し、クラウド接続に頼ることなく、迅速かつ安全にパッケージを検査できます。
- Robotics and drones: エッジ向けに最適化された Ultralytics YOLO11 モデルにより、ロボットやドローンはインターネット接続がない環境でも、オブジェクトの認識、環境のナビゲーション、リアルタイムの意思決定を行うことができます。

図 4. YOLO11を使用した交通量の車の検出とカウント (Source)
重要なポイント#
Ultralytics YOLOモデルをExecuTorchフォーマットにエクスポートすることで、スマートフォン、タブレット、Raspberry Piのような組み込みシステムを含む多くのデバイス間でコンピュータビジョンモデルを簡単にデプロイできます。これは、クラウド接続に依存せずに最適化されたオンデバイス推論を実行することが可能であり、速度、プライバシー、および信頼性が向上することを意味します。
ExecuTorchとともに、UltralyticsはTensorRT、OpenVINO、CoreMLなどを含む幅広いインテグレーションをサポートしており、開発者はプラットフォーム全体でモデルを実行する柔軟性を持っています。ビジョンAIの採用が拡大するにつれて、これらのインテグレーションは、現実世界の条件で効率的に実行できるように構築されたインテリジェントシステムのデプロイを簡素化します。
AIに興味がありますか?ビジョンAIプロジェクトを開始するには、GitHub repository をチェックし、our community に参加し、licensing options を確認してください。ソリューションページにアクセスして、AI in retail や computer vision in logistics などのイノベーションについて詳しく学びましょう。






