PyTorchで学習したモデルをスマートフォンやウェアラブル、組み込み機器で動かそうとすると、クラウド推論では解決しにくい課題に行き当たります。通信遅延やオフライン要件、プライバシー上の制約から推論をデバイス側に持ち込みたい一方で、エクスポート手順、ハードウェアごとのバックエンド対応、ランタイムのサイズ管理など検討すべき項目は多岐にわたります。ExecuTorchは、この領域を対象としたPyTorch公式のオープンソーススタックとして公開されています。
ExecuTorchが提供する機能
公式READMEによると、ExecuTorchはtorch.exportでPyTorchモデルをキャプチャし、対象ハードウェア向けに最適化したうえで、C++、Python、Swift/Objective-C、Kotlin/Java、JavaScriptなど複数言語のAPIから実行できるとされています。Instagram、WhatsApp、Facebook、Messenger、Meta Quest、Ray-Ban Metaなど、複数のメタ社製品での利用例が紹介されています。
ワークロード別の出発点として、ローカルLLMやエージェント向けの量子化テキストモデル・長文コンテキスト・ツール呼び出し・投機的デコーディング、ストリーミングやオフラインの音声認識・音声合成、テキストと画像と音声を扱うマルチモーダルランナー、画像分類や物体検出などのコンピュータビジョン、Cortex-MやEthos-U、NXP、Cadence DSP、Zephyr、Arduino向けの組み込み例が列挙されています。ただしREADME自身が、これらは出発点であり対応モデルの網羅的な一覧ではないと明記しています。
バックエンド面では、XNNPACKを中心としたCPU実行に加え、Core ML、Qualcomm、MediaTek、Arm VGF、Samsung Exynos、Vulkanなどプラットフォームごとに複数のハードウェアアクセラレータ向けバックエンドが用意されています。CUDA、MLX、WebGPU、Metal/AOTInductorなど一部のバックエンドは実験的な位置づけとされています。さらに、利用するオペレータやカーネル、デリゲートのみをリンクするセレクティブビルドでランタイムを絞り込める点、ETDumpやETRecord、数値デバッグ機能でプロファイリングや精度検証ができる点も挙げられています。安定APIで作成した.pteファイルは、少なくとも次の非パッチ版ランタイムまで読み込み・実行できるという互換性方針も示されています。
検討を始めるタイミング
推論処理をクラウドからデバイス側へ移したい段階で、対象デバイスがAndroid、iOS、macOS、Linux、Windows、ブラウザ、組み込みMCUのいずれかに該当し、対応するバックエンドの選択肢や制約を事前に把握しておきたい場合に検討対象となります。特にPyTorchで学習済みのモデルをtorch.export経由でそのまま扱いたいチームや、ハードウェアごとに個別の.pteファイルを出し分ける運用を前提にできる場合に適した構成だと読み取れます。
READMEだけでは判断できない点
具体的なレイテンシやメモリ使用量、対応オペレータの網羅性、各バックエンドの安定性や成熟度の差は、READMEの記載だけでは判断できません。対象モデルとハードウェアでの実測検証が必要だとREADME自体も注意しています。また、新しいLLMアーキテクチャやHugging Faceモデルを扱う際のエクスポート経路は複数用意されているものの、生成処理のオーケストレーションをどこまでアプリケーション側で実装する必要があるかはケースによって異なり、READMEの記述だけでは線引きを特定できません。導入可否は、自分たちの対象モデルと対象ハードウェアで個別に確認する必要があります。
出典: https://github.com/pytorch/executorch/blob/main/README.md
公式READMEをもとに、AIを執筆・推敲支援に使用しています。実機検証の報告ではありません。