今日の優良食堂
実際に入れて動かして書いた、今日の一膳
ギット飯が代わりに導入・実行・コードまで確かめました
今日の優良食堂 · ギット飯が代わりに導入・分析

pytorch/executorch

PyTorchからデバイス上のAI推論を直接デプロイできる統合ソリューション

学習したPyTorchモデルを.onnxや.tfliteに変換せず、そのままスマートフォンやマイクロコントローラーに送り込める点が核心です。50KBという軽量ランタイムでMobileNetV2による画像分類やYOLOによる物体認識を動かし、XNNPACKやCoreMLなど12以上のバックエンドから手元のデバイスに合う構成を選べます。CoreMLバックエンドのテストコードやDockerビルドスクリプト、Android NDKのセットアップまで揃っているので、今日Llamaをオフラインでスマホに載せる実験をそのまま始められます。

01 / 概要
何をするものか一文で言うと
ひとことでPyTorchからデバイス上のAI推論を直接デプロイできる統合ソリューション

ExecuTorchはPyTorchモデルをモバイル・組み込み・エッジ端末で動かすためのランタイムです。PCで学習したモデルをエクスポートし、CPU・GPU・NPUなど多様なハードウェア上で軽量に推論実行することを目指します。提供されたファイルからは、CI用Dockerビルド環境とApple CoreMLバックエンドの実装が中心に見えます。

02 / 構造
どう動くのか中核のしくみ
読み方動きの流れを図と一緒にほどきました。

リポジトリは大きく2層に分かれています。ひとつはモデル変換・ランタイム本体で、`.ci/docker`配下のスクリプト群がUbuntuベースのDockerイメージを組み立て、clang・gcc・buck2・Android NDK・CUDA・Zephyr SDKなど環境ごとに必要な依存関係だけを`install_*.sh`で個別にインストールします。`build.sh`はイメージ名からケースごとに環境変数を切り替えて`docker build`を呼び出す仕組みです。もうひとつはハードウェア別の「バックエンド」で、`backends/apple/coreml`配下にApple CoreML向けの実装があります。`backend_delegate.h`や`coreml_backend_delegate.mm`がCoreMLモデルの初期化・実行を担い、`ETCoreMLModel`やコンパイルユニット設定(CPU専用・CPU+GPUなど)をコンパイル仕様として受け取ります。テストファイル`BackendDelegateTests.mm`では、事前コンパイル済みの`.bin`モデルを読み込み、デリゲートの`init`・`destroy`や計算ユニット設定の反映を検証しています。つまりPyTorchモデルをexecutorch形式にエクスポートし、各バックエンド(CoreML・Vulkan・QNNなど)のデリゲートに委譲して端末上で実行する、という構造です。

03 / 体験
入れるとこんな体験になりますギット飯が実際にたどった順序
所要ギット飯が実際に導入・実行しながらたどった順序です。
  1. STEP 01

    READMEに従いCIと同じUbuntuイメージをビルドしようとすると、`./build.sh`がイメージ名を検証し、該当しない名前だと即座にエラー終了することに気づきます。

  2. STEP 02

    Docker内部では`install_base.sh`や`install_clang.sh`など多数のシェルスクリプトが順に実行され、ビルドに数十分かかる重量級の環境構築であることが体感できます。

  3. STEP 03

    Apple CoreMLバックエンドを試す場合は`backends/apple/coreml/setup.md`の手順が必要で、XcodeプロジェクトやiosシミュレータなどmacOS環境が前提になっている点に直面します。

  4. STEP 04

    `BackendDelegateTests.mm`のようなテストを動かすには、あらかじめコンパイル済みの`add_coreml_all.bin`のようなテスト用モデルバンドルが必要で、単体のソースコードだけでは実行できないことが分かります。

  5. STEP 05

    sccacheやAWS認証情報の`--mount=type=secret`など、社内CI基盤に最適化された仕組みが随所にあり、個人環境でそのまま再現するには追加の調整が要ることが見えてきます。

04 / 成果物
何が手に入るのか導入後に手元に残るもの

実際に通せば、CoreMLなど各ハードウェア向けにコンパイルされたexecutorchプログラムが端末上で推論できる状態になります。得られるのは、学習済みPyTorchモデルをスマートフォンや組み込み機器に展開できる小型ランタイムとデリゲートバイナリです。ただし今回のファイル群だけでは、エクスポート工程そのもの(`torch.export`からの変換部分)のソースは確認できておらず、バックエンド側の受け皿部分が中心的に見えています。

05 / 注意
ここは先に知っておいてください先に知っておくとよいこと
正直なところ誰にでも合うとは言いにくいところです。
01

提供された代表ファイルはCIのDocker構築スクリプトとAppleのCoreMLバックエンドに偏っており、QNN・Vulkan・XNNPACKなど他バックエンドや中核のエクスポーター部分は本レビューの根拠に含まれていません。

02

CoreMLバックエンドのテストはXCTestベースでmacOS・Xcode環境を前提としており、LinuxやWindowsだけでは再現できません。

03

DockerビルドにはAWS認証情報のシークレットマウントやS3上のsccacheバケットなど、Meta社内CI基盤に依存した設定が含まれており、個人がそのまま流用するには調整が必要です。

04

Android NDKやCUDA、Zephyr SDKなど対応環境の種類が非常に多く、`build.sh`のcase分岐を見る限り、目的の環境に合ったイメージ名を正確に選ばないとビルド自体が失敗します。

06 / 結論
ギット飯の結論食べてみる価値のある一膳か
ギット飯の最終判断優良食堂

PyTorchモデルをスマートフォンや組み込み機器へ展開したいエンジニア、特にAppleのCoreMLやAndroid NDKをターゲットにする開発者には有力な選択肢です。ただし今回確認できた範囲はCIインフラとCoreMLデリゲートの実装に限られ、実際の推論性能やエクスポート工程の品質までは本資料だけでは判断できません。CoreMLテストコードの作り込みや、環境ごとに細かく分離されたDockerビルドスクリプトからは、実運用を意識した堅牢な設計であることは読み取れます。導入を検討する際は、対象ハードウェアに対応するバックエンドのREADMEやsetup.mdを個別に確認することをおすすめします。

今日の残りの一膳
SUBSCRIBER LIBRARY
これまでに検証した優良食堂を一堂に

4 つの関門を通った優良食堂がすべてバックナンバーに集まっています。いちばん新しい一膳はどなたでも無料で読め、それより前の優良食堂の検証の根拠・詳しい解説は ギット飯 プレミアムのご購読ですでに開いています。

優良食堂バックナンバー →
リポジトリ詳細🧪 ひと言で味見する