[OSS紹介#75] ExecuTorch:デバイス上のAI推論を革新するフレームワークを探る

この記事について

この記事では、注目のオープンソースソフトウェア「ExecuTorch」を紹介します。本記事は、OSSシリーズの第75回となり、特にデバイス上でのAI推論とトレーニングを強化するための新しいフレームワークにスポットライトを当てます。

近年、AI技術は多くの分野で革新をもたらしており、特にモバイルデバイスや組み込みシステムにおけるAIの実装が求められています。ExecuTorchは、Metaが運営するFacebookやInstagramなどのアプリケーションで使用される高性能なフレームワークであり、開発者がさまざまなデバイス上でシームレスにAIモデルを展開できることを可能にします。

ExecuTorchの主な特長としては、ポータビリティの向上、開発者の生産性を高めるツールの提供、そして軽量なランタイムを通じた高性能な体験の提供が挙げられます。特に、幅広いハードウェアプラットフォームに対応しているため、多様なテクノロジーを活用することができます。この記事を通じて、ExecuTorchが持つ可能性や、具体的な使い方について詳しく掘り下げていきたいと思います。

リンク:https://github.com/pytorch/executorch


本コンテンツは、弊社AI開発ツール「IXV」を用いたOSSツール紹介です。情報の正確性には努めておりますが、内容に誤りが含まれる可能性がございますのでご了承ください。

1. ExecuTorchでできること

ExecuTorchは、デバイス上での推論とトレーニングのためのエンドツーエンドソリューションです。主にMetaのFacebook、Instagram、Meta Quest、Ray-Ban Meta Smart Glasses、WhatsAppなどのオンデバイスAI体験を支えています。ExecuTorchは、以下のような多様なモデルをサポートしています。

  • 大規模言語モデル(LLM)
  • コンピュータビジョン(CV)
  • 自動音声認識(ASR)
  • テキスト音声合成(TTS)

ExecuTorchの主要な価値提案には、以下が含まれます。

  • ポータビリティ: 高性能なモバイルフォンから制約のある組み込みシステムやマイクロコントローラまで、さまざまな計算プラットフォームとの互換性があります。
  • 生産性: PyTorchのモデル作成、変換、デバッグ、デプロイメントに使用できる同一のツールチェーンと開発者ツールを利用できます。
  • パフォーマンス: 軽量のランタイムを提供し、CPU、NPU、DSPなどのハードウェアのフル機能を活用することで、エンドユーザーにシームレスで高性能な体験を提供します。

2. セットアップ手順

ExecuTorchを使用するためのセットアップは簡単です。以下の手順に従ってください。

2.1 動作環境

  • オペレーティングシステム: iOS、MacOS (ARM64)、Android、Linux、マイクロコントローラ
  • ハードウェアアクセラレーション: Apple、Arm、Cadence、MediaTek、OpenVINO、Qualcomm、Vulkan、XNNPACK
  • Pythonバージョン: 3.10 – 3.12
  • C++コンパイラ: g++ 7以上またはclang++ 5以上

2.2 インストール手順

まず、ExecuTorchのPythonパッケージとランタイムライブラリをインストールします。pipを使用するのが推奨されます。

Pythonパッケージをインストール

pip install executorch

その後、必要なリポジトリをクローンします。

git clone https://github.com/pytorch/executorch.git
cd executorch

npmを使用してインストールする場合は、以下のコマンドを実行します。
npmでインストール

npm install

2.3 モデル準備

ExecuTorchを使用するには、PyTorchモデルをエクスポートする必要があります。エクスポートは、PyTorchモデルをExecuTorchランタイムが使用する.pteファイル形式に変換するプロセスです。エクスポートの手順は以下の通りです。

  1. 使用するPyTorchモデルを準備する。
  2. サンプル入力を確認する。(PyTorchテンソル形式)
  3. 対象ハードウェアバックエンドを選択する。

具体的なエクスポート手順については、ExecuTorchの公式ドキュメントを参照してください。

3. 簡単な使い方

ExecuTorchを使ってモデルをデバイスにデプロイする手順は以下の通りです。

3.1 モデルのデプロイ

特定のオープンソースモデル(例: [Llama]、[Qwen 3]、[Phi-4-mini]、[Llava])に従って、モデルをデプロイします。

3.2 API の利用

ExecuTorch は、API を通じて簡単にモデルの推論やトレーニングを実行できます。具体的な操作は、公式ドキュメントを参照してください。以下は、基本的なモデルのテストの流れです。

import torch
from executorch.runtime import Runtime

runtime = Runtime.get()
input_tensor = torch.randn(1, 3, 224, 224)
program = runtime.load_program("model.pte")
method = program.load_method("forward")
output = method.execute([input_tensor])
print("Run successfully via ExecuTorch")

ExecuTorch は、開発者が同じツールチェーンを使用し、異なるプラットフォームにモデルをデプロイできるように設計されています。

結論

ExecuTorchは、デバイス上でのAI推論とトレーニングのための強力なフレームワークであり、さまざまなプラットフォームやモデルに対応しています。ポータブルで生産性が高く、パフォーマンスに優れたExecuTorchは、開発者にとって非常に有用なツールです。セットアップも容易で、豊富なドキュメントとチュートリアルが用意されているため、すぐに使い始めることができます。これからのデバイス上でのAI開発において、ExecuTorchは重要な役割を果たすことでしょう。