Ultralytics YOLO11のようなUltralytics YOLOモデルをExecuTorch形式にエクスポートして、エッジデバイスやモバイルデバイスにPyTorchネイティブで効率的に展開する方法を紹介します。
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モデルの展開を開始できるのかを詳しく見ていきます。さっそく始めましょう!
通常、PyTorchでモデルを学習する場合、クラウド上の強力なサーバーやGPU(Graphics Processing Unit)で実行します。しかし、同じモデルをスマートフォン、ドローン、マイクロコントローラーなどのモバイルデバイスや組み込みデバイスにデプロイするには、限られたコンピューティングパワー、メモリー、接続性を処理できる特別なソリューションが必要です。
それこそがExecuTorchがもたらすものです。ExecuTorchは、PyTorch Edgeエコシステムの一部として開発されたエンドツーエンドのソリューションで、モバイル、組み込み、エッジの各プラットフォームで効率的なオンデバイス推論を可能にします。PyTorchの機能をクラウドを超えて拡張し、AIモデルをローカルデバイス上で直接実行できるようにします。
その中核として、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モデルを実行する上で非常に重要です。

ランタイムだけでなく、ExecuTorchは複数のハードウェアバックエンドに対する統一された抽象化レイヤーとしても機能する。簡単に言えば、ハードウェア固有の詳細を抽象化し、モデルがCPU、GPU、NPU(Neural Processing Unit)を含む異なる処理ユニットとどのように相互作用するかを管理する。
一旦モデルがエクスポートされると、ExecuTorchは与えられたデバイスに最適なバックエンドをターゲットとするように設定することができます。開発者は、デバイス固有のカスタムコードを書いたり、個別の変換ワークフローを維持したりすることなく、多様なハードウェアに効率的にモデルを展開することができます。
モジュール式でポータブルな設計とシームレスなPyTorchの統合により、ExecuTorchはUltralytics YOLO11のようなコンピュータビジョンモデルをモバイルや組み込みシステムに展開するのに最適な選択肢です。モデルのトレーニングから実世界への展開までのギャップを埋め、エッジAIをより速く、より効率的に、より簡単に実装することができます。
Ultralytics YOLOモデルをExecuTorchフォーマットにエクスポートする方法を見る前に、ExecuTorchがエッジでAIを展開するための信頼できる選択肢である理由を探ってみよう。
ここでは、その主な機能の一部を紹介しよう:
さて、ExecuTorch が提供するものをよりよく理解したところで、Ultralytics YOLO モデルを ExecuTorch フォーマットにエクスポートする方法を説明しましょう。
始めるには、パッケージインストーラであるpipを使ってUltralytics Pythonパッケージをインストールする必要があります。ターミナルまたはコマンドプロンプトで "pip install ultralytics "を実行することでインストールできます。
Jupyter NotebookやGoogle Colab環境で作業している場合は、コマンドの前に「!pip install ultralytics」のように感嘆符を付けるだけでよい。インストールされると、Ultralyticsパッケージは、Ultralytics YOLO11を含む、コンピュータビジョンモデルのトレーニング、テスト、エクスポートに必要なすべてのツールを提供します。
インストール中やモデルのエクスポート中に何らかの問題が発生した場合、Ultralyticsの公式ドキュメントと「よくある問題」ガイドに詳細なトラブルシューティング手順とベストプラクティスが記載されていますので、スムーズな立ち上げと運用にお役立てください。
Ultralyticsパッケージをインストールした後、YOLO11モデルの変種をロードし、ExecuTorchフォーマットにエクスポートすることができます。例えば、"yolo11n.pt "のような事前に訓練されたモデルを使用し、"executorch "フォーマットに設定したexport関数を呼び出してエクスポートすることができます。
これには、最適化されたモデルファイル (.pte) と、画像サイズやクラス名などの重要な詳細を含む別のメタデータ YAML ファイルが含まれます。
以下はモデルをエクスポートするコードです:
from ultralytics import YOLO
model = YOLO("yolo11n.pt")
model.export(format="executorch")
一度エクスポートされたモデルは、ExecuTorch ランタイムを使用して、エッジデバイスやモバイルデバイスにデプロイできます。エクスポートされた .pte モデルファイルは、アプリケーションにロードすることができ、クラウド接続を必要とせずに、リアルタイムでデバイス上で推論を実行することができます。
例えば、以下のコード・スニペットは、エクスポートされたモデルをロードして推論を実行する方法を示しています。推論とは、単純に新しいデータに対して予測を行うために学習済みモデルを使用することを意味します。ここでは、公開URLから取得したバスの画像でモデルをテストしています。
executorch_model = YOLO("yolo11n_executorch_model")
results = executorch_model.predict("https://ultralytics.com/images/bus.jpg", save=True)
コードを実行すると、検出されたオブジェクトを含む出力画像が "runs/detect/predict "フォルダに保存されます。

Ultralyticsがサポートするさまざまなエクスポートオプションを調べているうちに、ExecuTorchとの統合の何がユニークなのか不思議に思うかもしれません。重要な違いは、パフォーマンス、シンプルさ、柔軟性をいかにうまく組み合わせ、強力なAIモデルをモバイルデバイスやエッジデバイスに直接簡単に展開できるかという点です。
ここでは、ExecuTorch の統合を使用する主な利点のいくつかを紹介します:
最近、UltralyticsはPyTorch ExecuTorchのサクセスストーリーとして認定され、オンデバイス推論の早期サポートとPyTorchエコシステムへの継続的な貢献が強調されました。この認定は、高性能AIをモバイルやエッジプラットフォームでより利用しやすくするという共通の目標を反映したものです。
これは、スマートフォンから組み込みシステムまで、あらゆるシステム上で効率的に動作する現実のVision AIソリューションのように見える。例えば製造業では、エッジデバイスが生産ラインの監視や欠陥のリアルタイム検出において重要な役割を果たしている。

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

Ultralytics YOLOモデルをExecuTorch形式にエクスポートすることで、スマートフォン、タブレット、Raspberry Piのような組み込みシステムなど、多くのデバイスにコンピュータビジョンモデルを簡単に展開できます。これは、クラウド接続に依存することなく、最適化されたオンデバイス推論を実行し、スピード、プライバシー、信頼性を向上させることが可能であることを意味します。
Ultralyticsは、ExecuTorchとともに、TensorRT、OpenVINO、CoreMLなどの幅広い統合をサポートしており、開発者はプラットフォーム間で柔軟にモデルを実行できます。Vision AIの採用が拡大するにつれ、これらの統合は、実世界の状況で効率的に動作するように構築されたインテリジェントシステムの展開を簡素化します。
AIに興味がありますか?当社のGitHubリポジトリをチェックし、当社のコミュニティに参加し、Vision AIプロジェクトを開始するためのライセンスオプションを検討してください。小売業におけるAIや 物流におけるコンピュータ・ビジョンのようなイノベーションについては、ソリューションのページをご覧ください。