For the complete documentation index, see llms.txt. This page is also available as Markdown.

📱iOSまたはAndroidスマートフォンでLLMを実行・デプロイする方法

ExecuTorchを使って、自分のLLMをファインチューニングし、AndroidやiPhoneにデプロイするためのチュートリアル。

LLMをトレーニングして、その後 ローカルにデプロイする方法を紹介できることを楽しみにしています を Androidスマートフォン そして iPhone。私たちは ExecuTorch をPyTorchとMetaと共同で使い、量子化対応学習(QAT)を用いて、その後エッジデバイスへ直接デプロイする、簡潔なワークフローを作成しました。 Unsloth、TorchAO、そしてExecuTorchを使って、次のことができることを紹介します:

  • InstagramやWhatsAppで何十億人ものユーザーを支えているMetaの同じ技術(ExecuTorch)を使う

  • Qwen3-0.6Bをローカルで Pixel 8 そして iPhone 15 Proに約40トークン/秒でデプロイする

  • TorchAO経由でQATを適用し、精度の70%を回復する

  • プライバシー優先、即時応答、オフライン機能を手に入れましょう

  • 次の 無料のColabノートブック Qwen3 0.6Bをファインチューニングし、スマートフォンへのデプロイ用にエクスポートする

iOSチュートリアルAndroidチュートリアル

Qwen3-4B iPhone 15 Pro上にデプロイされた

Qwen3-0.6B 約40トークン/秒で動作中

🦥 モデルのトレーニング

スマートフォンへのデプロイ向けにQwen3、Gemma3、Llama3、Qwen2.5、Phi4など多くのモデルをサポートしています!次の手順に従ってください 無料のColabノートブック Qwen3-0.6Bのデプロイ手順は

まずUnslothを更新し、TorchAOとExecutorchをインストールします。

次に単純に qat_scheme = "phone-deployment" を使って、スマートフォンにデプロイしたいことを示します。なお、次も設定していることに注意してください full_finetuning = True 完全ファインチューニング用に!

私たちが使っているのは qat_scheme = "phone-deployment" 実際には次を使っています qat_scheme = "int8-int4" 内部ではUnsloth/TorchAOのQATを有効にするために シミュレート 学習中にLinear層へINT4重み量子化付きのINT8動的活性量子化を適用し(フェイク量子化演算経由)、計算は16ビットのままにします。学習後、モデルは実際の量子化版に変換されるため、デバイス上のモデルはより小さくなり、通常は 素朴なPTQよりも精度をよく保持します.

の説明に従ってファインチューニングした後 Colabノートブック、その後それを .pte ファイルとしてExecutorch経由で保存します:

🏁 学習後のデプロイ

そして今、あなたの qwen3_0.6B_model.pte ファイルは約472MBで、これをデプロイできます!デバイスを選んで、すぐに始めましょう:

iOSデプロイ

iOS上でモデルを動かすためのチュートリアルです(iPhone 16 Proでテスト済みですが、他のiPhoneでも動作します)。Xcode 15を実行できる物理的なmacOSデバイスが必要です。

macOS開発環境のセットアップ

Xcodeとコマンドラインツールをインストール

  1. Mac App StoreからXcodeをインストールしてください(バージョン15以降である必要があります)

  2. ターミナルを開き、インストールを確認します: xcode-select -p

  3. コマンドラインツールをインストールし、ライセンスに同意します:

    1. xcode-select --install

    2. sudo xcodebuild -license accept

  4. Xcodeを初めて起動し、求められたら追加コンポーネントをインストールします

  5. プラットフォームの選択を求められたら、iOS 18を選び、シミュレータ用にダウンロードします

すべてが正常に動作するか確認: xcode-select -p

パスが表示されるはずです。表示されない場合は、手順3を繰り返してください。

Apple Developerアカウントの設定

物理デバイスのみ!

iOSシミュレータのみを使う場合は、このセクション全体をスキップしてください。物理iPhoneへのデプロイには有料の開発者アカウントが必要です。

Apple IDを作成する

Apple IDをお持ちでないですか? こちらからサインアップ.

アカウントをXcodeに追加する

  1. Xcodeを開く

  2. Xcode → Settings → Accounts に移動する

  3. +ボタンをクリックし、Apple IDを選択する

  4. 普段使っているApple IDでサインインする

Apple Developer Programに登録する

ExecuTorchには 増加メモリ制限機能が必要で、これには有料の開発者アカウントが必要です:

  1. アクセスする developer.apple.com

  2. Apple IDでサインインする

  3. Apple Developer Programに登録する

ExecuTorchデモアプリをセットアップする

サンプルコードを入手:

Xcodeで開く

  1. 開く apple/etLLM.xcodeproj をXcodeで

  2. 上部ツールバーで iPhone 16 Pro シミュレータをターゲットデバイスとして選択する

  3. Play(▶️)を押してビルドして実行する

🎉 成功!アプリはシミュレータで起動するはずです。まだ動作しません。モデルを追加する必要があります。

シミュレータへのデプロイ

開発者アカウントは不要です。

モデルファイルを準備する

  1. Xcodeでシミュレータを停止する(停止ボタンを押す)

  2. HuggingFace Hubのリポジトリに移動する(ローカルに保存していない場合)

  3. 次の2つのファイルをダウンロードする:

    1. qwen3_0.6B_model.pte (エクスポートしたモデル)

    2. tokenizer.json(トークナイザ)

シミュレータ上に共有フォルダを作成する

  1. シミュレータの仮想ホームボタンをクリックする

  2. ファイルApp → ブラウズ → このiPhone内 を開く

  3. 省略記号(•••)ボタンをタップし、次の名前で新しいフォルダを作成する Qwen3test

ターミナルを使ってファイルを転送する

フォルダが見えたら、次を実行します:

読み込み&チャット

  1. シミュレータのetLLMアプリに戻ります。タップして起動します。

  1. Qwen3testフォルダからモデルとトークナイザを読み込む

  1. ファインチューニングしたモデルでチャットを始めましょう!🎉

物理iPhoneへのデプロイ

初期デバイス設定

  1. iPhoneをUSBでMacに接続する

  2. iPhoneのロックを解除し、「このデバイスを信頼」をタップする

  3. Xcodeで、Window → Devices and Simulators に移動する

  4. デバイスが左側に表示されるまで待ちます(しばらく「Preparing」と表示されることがあります)

Xcodeの署名設定を行う

  1. Appleアカウントを追加する:Xcode → Settings → Accounts → +

  2. プロジェクトナビゲータで、etLLMプロジェクト(青いアイコン)をクリックする

  3. TARGETSの下でetLLMを選択する

  4. Signing & Capabilitiesタブに移動する

  5. 「Automatically manage signing」をオンにする

  6. ドロップダウンからTeamを選択する

必要な機能を追加する

  1. Signing & Capabilitiesのまま、+ Capabilityをクリックする

  2. 「Increased Memory Limit」を検索して追加する

ビルドして実行

  1. 上部ツールバーで、デバイスセレクタから物理iPhoneを選択する

  2. Play(▶️)を押すか、Cmd + Rを押す

開発者証明書を信頼する

最初のビルドは失敗します。これは正常です!

  1. iPhoneで、設定 → プライバシーとセキュリティ → 開発者モード に移動する

  2. オンにする

  3. 同意し、通知を承諾する

  4. デバイスを再起動し、Xcodeに戻ってもう一度Playを押す

モデルファイルをiPhoneに転送する

  1. アプリが起動したら、MacでFinderを開く

  2. サイドバーでiPhoneを選択する

  3. Filesタブをクリックする

  4. etLLMを展開する

  5. .pteとtokenizer.jsonファイルをこのフォルダに直接ドラッグ&ドロップする

  6. 気長に待ってください!これらのファイルは大きく、数分かかる場合があります

読み込み&チャット

  1. iPhoneで、etLLMアプリに戻る

  1. アプリのUIからモデルとトークナイザを読み込む

  1. ファインチューニングしたQwen3が、今やiPhone上でネイティブに動作しています!

Androidデプロイ

このガイドでは、Linux/Macのコマンドライン環境を使って、Androidデバイス上にExecuTorch Llamaデモアプリをビルドしてインストールする方法を説明します(Pixel 8でテスト済みですが、他のAndroidスマートフォンでも動作します)。この方法は依存関係を最小限に抑え(Android Studio不要)、重いビルド処理をあなたのコンピュータにオフロードします。

要件

開発マシンに次のものがインストールされていることを確認してください:

  • Java 17(Java 21がデフォルトであることが多いですが、ビルドの問題を引き起こす場合があります)

  • Git

  • Wget / Curl

  • Androidコマンドラインツール

  • インストールガイド およびセットアップ adb Androidとコンピュータ上で

確認

Javaのバージョンが17.xに一致していることを確認します:

一致しない場合は、Ubuntu/Debian経由でインストールします:

次に、それをデフォルトに設定するか、exportします JAVA_HOME:

別のOSやディストリビューションを使っている場合は、次を参照するとよいでしょう このガイド または、お気に入りのLLMに案内してもらってください。

手順1: Android SDKとNDKをインストールする

フルAndroid Studioを使わずに、最小限のAndroid SDK環境をセットアップします。

1. SDKディレクトリを作成します:

  1. Androidコマンドラインツールをインストールする

手順2: 環境変数を設定する

これらを以下に追加します ~/.bashrc または ~/.zshrc:

再読み込みします:

手順3: SDKコンポーネントをインストールする

ExecuTorchには特定のNDKバージョンが必要です。

NDK変数を設定します:

手順4: コードを取得する

私たちは executorch-examples リポジトリを使います。そこには更新されたLlamaデモが含まれています。

手順5: よくあるコンパイル問題を修正する

現在のコードにはこれらの問題はありませんが、以前に遭遇したことがあり、役に立つかもしれません:

「SDK Location not found」を修正する:

次を作成します local.properties ファイルを作成して、GradleにSDKの場所を明示的に伝えます:

修正 cannot find symbol エラー:

現在のコードでは非推奨のメソッドを使っています getDetailedError()。次のコマンドでパッチを当てます:

手順6: APKをビルドする

この手順ではアプリとネイティブライブラリをコンパイルします。

  1. Androidプロジェクトに移動します:

  2. Gradleでビルドします(ツールチェーンエラーを避けるため、明示的に JAVA_HOME を17に設定します):

    注意: 最初の実行には数分かかります。

  3. 最終的に生成されたapkは次の場所にあります:

手順7: Androidデバイスにインストールする

アプリをインストールするには2つの方法があります。

オプションA: ADBを使用する(有線/無線)

もし adb スマートフォンにアクセスできるなら:

オプションB: 直接ファイル転送

リモートVMを使っている場合、またはケーブルがない場合:

  1. app-debug.apkを、スマートフォンからダウンロードできる場所にアップロードします

  2. スマートフォンでダウンロードします

  3. タップしてインストールします(求められた場合は「提供元不明のアプリのインストール」を有効にします)。

手順8: モデルファイルを転送する

アプリには.pteモデルとトークナイザファイルが必要です。

  1. ファイルを転送します: model.pteとtokenizer.bin(またはtokenizer.model)をスマートフォンのストレージ(例: Downloadsフォルダ)に移動します。

  2. LlamaDemoアプリを開く: スマートフォンでアプリを起動します。

  3. モデルを選択

  4. Settings(歯車アイコン)またはファイルピッカーをタップします。

  5. Downloadsフォルダに移動します。

  6. .pteファイルを選択します。

  7. トークナイザファイルを選択します。

完了です!これでデバイス上で直接LLMとチャットできます。

トラブルシューティング

  • ビルドに失敗する? java -versionを確認してください。17である必要があります。

  • モデルが読み込まれない?両方選択したことを確認してください .pte と トークナイザ.

  • アプリがクラッシュする?有効な .pte ファイルはExecuTorch用に特別にエクスポートされている必要があります(通常はCPU向けのXNNPACKバックエンド)。

モデルをスマートフォンへ転送する

現在、 executorchllama 私たちが作成したアプリは、Android上の特定のディレクトリからのみモデルを読み込むことをサポートしており、残念ながら通常のファイルマネージャーからはアクセスできません。しかし、adbを使えば、モデルファイルをそのディレクトリに保存できます。

adbが正しく動作し、接続されていることを確認してください

  1. ワイヤレスデバッグで接続している場合、次のように表示されます:

    または、有線/ケーブルで接続している場合:

    コンピュータにスマートフォンへのアクセス権限を与えていない場合:

  1. 次のようなポップアップダイアログがスマートフォンに表示されるので、それを許可する必要があります

完了したら、次の .pte そして tokenizer.json ファイルを置くフォルダを作成します。

スマートフォンのパス上にそのディレクトリを作成します。

ディレクトリが正しく作成されたことを確認します。

内容をそのディレクトリへプッシュします。コンピュータ、接続、スマートフォンによっては数分以上かかることがあります。気長にお待ちください。

  1. を開いて executorchllamademo 手順5でインストールしたアプリを開き、右上の歯車アイコンをタップして設定を開きます。

  2. Model の横の矢印をタップしてピッカーを開き、モデルを選択します。 ファイル名のない白い空のダイアログが表示された場合、ADB によるモデルのプッシュが失敗した可能性があります。その手順をやり直してください。また、最初は「モデルが選択されていません」と表示されることがあります。

  3. モデルを選択すると、アプリにモデルのファイル名が表示されるはずです。

  1. 次に、トークナイザでも同じ操作を繰り返します。トークナイザ欄の横の矢印をクリックして、対応するファイルを選択してください。

  1. アップロードするモデルによっては、モデルの種類を選択する必要があるかもしれません。ここでは Qwen3 が選択されています。

  1. 両方のファイルを選択したら、「Load Model」ボタンをクリックします。

  1. チャットウィンドウのある元の画面に戻り、「model loading」と表示されることがあります。読み込みが完了するまで、スマートフォンの RAM やストレージ速度によっては数秒かかる場合があります。

  1. 「successfully loaded model」と表示されたら、モデルとのチャットを始められます。 さあ、これで Android スマートフォン上で LLM をネイティブに動かせるようになりました!

📱ExecuTorch が支える数十億

ExecuTorch 数十億人のためのオンデバイス ML 体験を支えています Instagram、WhatsApp、Messenger、Facebook で。Instagram Cutouts は ExecuTorch を使って写真から編集可能なステッカーを抽出します。Messenger のような暗号化されたアプリでは、ExecuTorch により、デバイス上でプライバシーに配慮した言語識別と翻訳が可能になります。ExecuTorch は、Apple、Qualcomm、ARM などにわたる十数種類以上のハードウェアバックエンドをサポートしており、 Meta の Quest 3 と Ray-Ban.

その他のモデルのサポート

次の内容をカスタマイズできます 無料のColabノートブック Qwen3-0.6B 向けに、上記のモデルのいずれもスマートフォンへデプロイできるようにするための

Qwen3 0.6B メインのスマートフォン用デプロイノートブック

当社の Unslothノートブック その他すべてのノートブックのページ。

最終更新

役に立ちましたか?