ExecuTorch統合を使用してUltralytics YOLOモデルを展開する
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アプリケーションに適しているのか、そしてどのようにUltralytics YOLOモデルをExecuTorchでデプロイし始めることができるのかを詳しく見ていきます。それでは始めましょう!
Link to this sectionExecuTorchとは何か?#
通常、PyTorchでモデルをトレーニングすると、それはクラウド内の強力なサーバーやGraphics Processing Units (GPUs)上で実行されます。しかし、同じモデルをスマートフォン、ドローン、マイクロコントローラなどのモバイルデバイスや組み込みデバイスにデプロイするには、限られたコンピューティングパワー、メモリ、接続性を処理できる特殊なソリューションが必要です。
まさにそれこそがExecuTorchが提供するものです。ExecuTorchは、PyTorch Edgeエコシステムの一部として開発されたエンドツーエンドのソリューションであり、モバイル、組み込み、エッジプラットフォーム全体で効率的なオンデバイス推論を可能にします。これはPyTorchの機能をクラウドの外にまで拡張し、AIモデルがローカルデバイス上で直接実行されることを可能にします。
Link to this sectionPyTorch推論をエッジにもたらす#
その核心において、ExecuTorchはPyTorchモデルがデバイス上で直接実行されることを可能にする軽量なC++ランタイムを提供します。ExecuTorchは、より高速な読み込み、より小さなメモリフットプリント、そして改善された移植性のために設計された最適化されたエクスポートであるPyTorch ExecuTorch (.pte) モデルフォーマットを使用します。
これは効率的なCentral Processing Unit (CPU)推論のデフォルトバックエンドとしてXNNPACKをサポートしており、CoreML、Metal、Vulkan、Qualcomm、MediaTek、Arm EthosU、OpenVINOなどを含む幅広いハードウェアバックエンド間で互換性を拡張しています。
これらのバックエンドは、モバイル、組み込み、および特殊なエッジデバイスでの最適化されたアクセラレーションを可能にします。また、ExecuTorchはPyTorchエクスポートパイプラインと統合されており、量子化や動的形状処理といった高度な機能のサポートを提供し、さまざまなデプロイ環境全体でパフォーマンスと適応性を向上させます。
量子化は、(32ビット浮動小数点数のような)高精度値を低精度のものに変換することでモデルサイズを削減し、推論速度を向上させます。一方、動的形状処理は、モデルが可変の入力サイズを効率的に処理できるようにするために使用されます。どちらの機能も、リソースが制限されたエッジデバイス上でAIモデルを実行するために不可欠です。

図1. ExecuTorchの仕組みの概要 (ソース)
Link to this sectionエッジハードウェアのための統合レイヤー#
ランタイムを超えて、ExecuTorchは複数のハードウェアバックエンドのための統合抽象化レイヤーとしても機能します。簡単に言えば、ハードウェア固有の詳細を抽象化し、モデルがCPU、GPU、Neural Processing Units (NPUs)を含む異なる処理ユニットとどのように相互作用するかを管理します。
モデルがエクスポートされると、ExecuTorchは特定のデバイスに対して最も適切なバックエンドをターゲットにするように設定できます。開発者は、デバイス固有のカスタムコードを書いたり、個別の変換ワークフローを維持したりすることなく、多様なハードウェア間で効率的にモデルをデプロイできます。
そのモジュール式でポータブルな設計とシームレスなPyTorch統合のため、ExecuTorchはUltralytics YOLO11のようなコンピュータビジョンモデルをモバイルおよび組み込みシステムにデプロイするための優れたオプションです。モデルのトレーニングと現実世界のデプロイの間のギャップを埋め、エッジAIをより速く、より効率的に、そして実装しやすくします。
Link to this sectionExecuTorchの主な機能#
Ultralytics YOLOモデルをExecuTorchフォーマットにエクスポートする方法を見る前に、何がExecuTorchをエッジでのAIデプロイのための信頼できる選択肢にしているのかを探ってみましょう。
その主な機能をいくつか紹介します:
- 量子化のサポート: ExecuTorchはモデル量子化をサポートしています。これは、高精度の値を低精度のものに変換してモデルサイズを縮小し、推論を高速化する手法です。これにより、モデルは精度をほぼ維持したまま、エッジデバイス上でより高速に実行され、メモリ使用量を抑えることができます。
- メモリの効率的な使用: ExecuTorchの最大の利点の1つは、メモリの取り扱いです。レイテンシや電力オーバーヘッドを招く可能性がある動的メモリ割り当てに依存するのではなく、ExecuTorchはAhead-of-Time (AOT) メモリプランニングを使用します。エクスポート中に、モデルグラフを分析し、各操作にどの程度のメモリが必要かを事前に計算します。これにより、ランタイムは静的なメモリプランを使用してモデルを実行できるようになり、予測可能なパフォーマンスを確保し、RAMや処理能力が限られたデバイスでの速度低下やクラッシュを防ぎます。
- 組み込みモデルメタデータ: Ultralyticsがサポートするインテグレーションを使用してエクスポートする場合、各モデルには入力画像サイズ、クラス名、設定パラメータなどの重要なメタデータを含むYAMLファイルが含まれます。この追加ファイルにより、さまざまなアプリケーションへのモデル統合が簡素化され、異なるエッジプラットフォーム間で一貫した動作が保証されます。
Link to this sectionUltralytics YOLOモデルをExecuTorchフォーマットにエクスポートする方法#
ExecuTorchが提供するものについて理解が深まったところで、Ultralytics YOLOモデルをExecuTorchフォーマットにエクスポートする方法を見ていきましょう。
Link to this sectionステップ1:Ultralytics Pythonパッケージのインストール#
始めるには、パッケージインストーラーであるpipを使用してUltralytics Pythonパッケージをインストールする必要があります。これは、ターミナルまたはコマンドプロンプトで「pip install ultralytics」を実行することで行えます。
Jupyter NotebookやGoogle Colab環境で作業している場合は、コマンドの前に感嘆符を付けて「!pip install ultralytics」とするだけです。インストールされると、Ultralyticsパッケージは、Ultralytics YOLO11を含むコンピュータビジョンモデルをトレーニング、テスト、エクスポートするために必要なすべてのツールを提供します。
インストール中やモデルのエクスポート中に問題が発生した場合は、公式のUltralyticsドキュメントと一般的な問題ガイドに、スムーズに開始できるようにするための詳細なトラブルシューティングの手順とベストプラクティスが記載されています。
Link to this sectionステップ2:Ultralytics YOLO11のエクスポート#
Ultralyticsパッケージをインストールした後、YOLO11モデルのバリアントをロードし、それをエクスポートしてExecuTorchフォーマットにすることができます。例えば、「yolo11n.pt」のような事前トレーニング済みモデルを使用し、フォーマットを「executorch」に設定してエクスポート関数を呼び出すことでエクスポートできます。
これにより、「yolo11n_executorch_model」という名前のディレクトリが作成されます。これには、最適化されたモデルファイル(.pte)と、画像サイズやクラス名などの重要な詳細を含む別のメタデータYAMLファイルが含まれます。
モデルをエクスポートするためのコードは以下の通りです:
from ultralytics import YOLO
model = YOLO("yolo11n.pt")
model.export(format="executorch")Link to this sectionステップ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モデルを使用したオブジェクトの検出。
Link to this sectionExecuTorchインテグレーションを使用するメリット#
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のためのオプションの統合も備えています。また、NPUsやDSPsなどの専用アクセラレータを活用することで、CPUのみの推論よりも大幅な高速化を実現できます。
Link to this sectionYOLO11とExecuTorchエクスポートの現実世界のアプリケーション#
最近、UltralyticsはPyTorch ExecuTorchの成功事例として認められ、オンデバイス推論に対する初期のサポートと、PyTorchエコシステムへの継続的な貢献が強調されました。この評価は、モバイルおよびエッジプラットフォーム上で高性能なAIをより利用しやすくするという共通の目標を反映しています。
Link to this sectionクラウドからエッジへ:ExecuTorchとYOLO11はどのようにビジョンAIを実現するか#
実際には、これはスマートフォンから組み込みシステムまで、あらゆるもので効率的に実行される現実世界のビジョンAIソリューションのように見えます。例えば、製造業では、エッジデバイスは生産ラインを監視し、リアルタイムで欠陥を検出する上で重要な役割を果たします。

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

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






