本文へスキップ
株式会社オブライト
Mobile Development2026-07-09

React Native ExecuTorch の useLLM フック 徹底解説 — Qwen / Llama 3.2 / Hammer 2.1 / Phi 4 Mini / SmolLM 2 / LFM2.5 / Gemma 4 をオンデバイスで走らせる React Native 用フック、ツール呼び出し・ビジョン / オーディオ・構造化出力対応 Software Mansion 提供、Managed / Functional の 2 モード、Zod スキーマ検証込み

Software Mansion 提供の React Native ExecuTorchuseLLM フックを公開、React Native アプリに オンデバイス LLM をネイティブに統合対応モデル: Qwen (2.5 / 3 / 3.5)・Llama 3.2・Hammer 2.1・Phi 4 Mini・SmolLM 2・LFM2.5(ビジョン対応)・Gemma 4(ビジョン + オーディオ対応) の量子化版。2 つの動作モード: Functional/Statelessgenerate() メソッドと response プロパティで conversation history を自前管理、tool calling とチャット設定は無効)と Managed/StatefulsendMessage() でフックが自動的に conversation state 保持・tool call parse・callback 実行)。キー機能: token batching(トークンをバッチ化して re-render 削減)、tool calling(tool schema 定義でモデルが外部関数を invoke、自動 parse + callback 実行)、vision-language / audio マルチモーダル入力、生成コントロール(temperature / top-p / repetition penalty / mid-stream 中断)、JSONSchema または Zod による構造化出力用途: サーバー依存のないオンデバイスチャットボット、プライバシー重視の会話 UI、カレンダー / フラッシュライト等のアプリ内 function calling、画像解析 / 音声書き起こし。位置付け: Gemma 4 の encoder-free 12BQwen 3.6-35B のような最新 open-weight LLM が iOS / Android アプリでネイティブに動く時代の入り口 を実装レベルで示す React Native 界隈の重要成果。


TL;DR — React Native ExecuTorch × useLLM とは

Software Mansion 提供の React Native ExecuTorch は、Meta の ExecuTorch(PyTorch のオンデバイス推論基盤)を React Native からアクセスできるラッパーライブラリuseLLM フックで オンデバイス LLM を数十行の React Native コードから利用可能

4 つの要点:

1. 対応モデルが充実 — Qwen 3.5・Llama 3.2・Phi 4 Mini・SmolLM 2・LFM2.5・Gemma 4(ビジョン + オーディオ)
2. 2 モード — Functional/Stateless(低レベル制御)と Managed/Stateful(自動管理)
3. tool calling + マルチモーダル + 構造化出力 が第一級機能
4. 完全オンデバイス — サーバー不要、プライバシー保護、オフライン動作可

対応モデル一覧

モデルサイズ帯特徴
Qwen 2.5 / 3 / 3.50.5B〜7BAlibaba の多用途モデル
Llama 3.21B / 3BMeta の軽量モデル
Hammer 2.1tool calling 特化
Phi 4 Mini3.8BMicrosoft の高効率モデル
SmolLM 2135M〜1.7B超小型(エッジ最適)
LFM2.5ビジョン対応、Liquid AI
Gemma 42.3B / 12B / 31Bビジョン + オーディオencoder-free 12B

全て 量子化版 (GGUF 相当 + ExecuTorch フォーマット) を提供、iPhone / Android の実機で実用速度が出るサイズに絞られている。

2 つの動作モード

① Functional / Stateless モード

開発者が conversation history を自前で管理generate() メソッドと response プロパティを使う。

tsx
const llm = useLLM({ modelSource, tokenizerSource, tokenizerConfigSource });

await llm.generate([
  { role: 'system', content: 'You are a helpful assistant.' },
  { role: 'user', content: 'Hello!' },
]);
// llm.response でストリーミング応答

特徴: tool calling とチャット設定は無効、フル制御が必要な場合や既存のチャット state 管理に統合したい場合に。

② Managed / Stateful モード

フックが conversation state 自動管理、tool call parse、callback 実行sendMessage() を呼ぶだけ。

tsx
const llm = useLLM({ modelSource, tokenizerSource, tokenizerConfigSource });

llm.configure({
  chatConfig: { systemPrompt: 'You are a helpful assistant.' },
  toolsConfig: { tools: [openFlashlight, createCalendarEvent] },
  generationConfig: { temperature: 0.7 },
});

await llm.sendMessage('Turn on the flashlight.');
// フックが自動的に tool call を検知、openFlashlight を実行、結果を LLM に戻して最終応答を返す

特徴: conversation history と function calling が自動化、通常のチャット UI 実装ならこちらが推奨。

キー機能の詳細

Token Batching — 再レンダリング負荷の削減

LLM のストリーミング応答は数百〜数千トークン、毎トークンで React re-render するとフレームレートが落ちる。useLLMトークンをバッチ化してから re-render をトリガーgenerationConfig でバッチサイズ調整可。モバイル UX の実用性を左右する 実装レベルの最適化。

Tool Calling — アプリ内 function 呼び出し

モデルが tool schema に沿って外部関数を invokeuseLLM が自動的に parse + callback 実行:

tsx
const openFlashlight = {
  name: 'openFlashlight',
  description: 'Turn on the device flashlight.',
  parameters: { /* JSON Schema */ },
  execute: async () => { /* Native module call */ },
};

カレンダーイベント作成、通知送信、位置情報取得、ネイティブモジュール呼び出し など、React Native アプリのフル機能を LLM から制御可能に。

Vision / Audio マルチモーダル

ビジョン対応モデル(LFM2.5、Gemma 4)で capabilities 配列と media パラメータを介して画像入力、オーディオ対応モデル(Gemma 4)で音声入力を受け付ける。

tsx
await llm.sendMessage('Describe this photo.', {
  images: [{ uri: 'file:///path/to/photo.jpg' }],
});

用途: カメラで撮った書類の要約、レシート OCR、音声メモの書き起こし、視覚障害者向け画像説明。

生成コントロール

Generation parameters:
- temperature — ランダム性
- top-p — nucleus sampling
- repetition penalty — 繰り返し抑制
- mid-stream interruption — 生成途中でユーザーが「中断」ボタンを押した際の停止

モバイル UX 上、長い応答を途中で止められる ことは重要。

構造化出力 — JSONSchema / Zod スキーマ検証

予測可能な JSON レスポンスを強制:

tsx
import { z } from 'zod';

const schema = z.object({
  intent: z.enum(['play_music', 'open_map', 'send_message']),
  target: z.string(),
  urgency: z.number().min(1).max(5),
});

await llm.sendMessage('Play some jazz please.', {
  responseSchema: schema,
});

アプリ内 intent 解析、フォーム自動入力、アシスタント機能 で LLM の応答を型安全に扱える。JSONSchema と Zod の両方をサポート。

実践的な用途

(1) オンデバイスチャットボット: サーバー依存なし、ネットワークオフラインでも動作、レイテンシゼロ

(2) プライバシー保護会話 UI: 医療・法務・金融アプリで、ユーザーデータが端末外に出ない 保証

(3) アプリ機能の自然言語制御: 「明日 15 時に歯医者の予定」→ カレンダーイベント自動作成、「フラッシュライトつけて」→ 実行

(4) 画像・音声からのアクション抽出: レシート写真 → 経費入力、音声メモ → タスク化

(5) 多言語アシスタント: 英語 / 日本語 / 中国語のリアルタイム変換、翻訳、要約

パフォーマンス目安

iPhone 15 Pro(A17 Pro) で Qwen 2.5-1.5B Q4 なら数十トークン/秒、Google Pixel 9 Pro(Tensor G4) で Llama 3.2-3B Q4 なら 15-25 トークン/秒。iPhone 17 Pro / Pixel 10 Pro / Snapdragon 8 Gen 5 世代なら Gemma 4-12B Q4 が実用領域。iOS の Core ML backend、Android の NNAPI backend、CPU fallback が自動選択される。

位置付け — オンデバイス LLM 実装の入り口

2026 年のモバイル AI エコシステム:

1. iOS 側 Apple Intelligence — Apple 自前の on-device モデル、開発者アクセスは Foundation Models API 経由
2. Android 側 Gemini Nano — Google 自前、AICore API 経由
3. React Native ExecuTorch + useLLMクロスプラットフォームで自由なモデル選択、Qwen / Llama / Gemma 4 等 open-weights を選べる

独自性: Apple Intelligence / Gemini Nano はモデル固定、React Native ExecuTorch はモデル選択の自由 + クロスプラットフォーム 1 コードベース で差別化。Gemma 4 12B の encoder-free ビジョン + オーディオ をモバイルネイティブで走らせる筋の良い方法。

留保・注意点

(1) モデルバイナリのアプリサイズ: 3B Q4 で ~2GB、12B Q4 で ~7GB。アプリストア配布サイズ制限(iOS 4GB、Android 200MB 圧縮)を超える場合、初回起動時の外部ダウンロード 設計が必要。

(2) バッテリー消費: LLM 推論は CPU / GPU / NPU をフル稼働させる、継続利用でバッテリー激減。UX 設計でヒートアップ / バッテリー警告への配慮必要。

(3) メモリフットプリント: iPhone の RAM 6-8GB のうち 3-5GB を LLM が占有、他のアプリとの共存に注意。

(4) 端末性能の分散: 低スペック端末では実用速度に届かない可能性、モデルサイズを端末性能で分岐する設計。

(5) React Native ExecuTorch は開発活発だが安定 API ではない、破壊的変更に注意。

結論

React Native ExecuTorch の useLLM フックは、モバイル開発者が Gemma 4 / Qwen / Llama 3.2 等の最新 open-weight LLM を iOS / Android アプリにネイティブ統合するための実装レベル答え。tool calling、ビジョン / オーディオ、構造化出力、token batching、mid-stream 中断など、モバイル AI UX の実用性を左右する要素 を第一級機能として提供。サーバー不要のプライバシー保護 AI 体験 を作る筋の良い選択肢。

本トピックに関連する弊社サービスとして モバイルアプリ開発AI コンサルティングソフトウェア開発 があります。React Native + オンデバイス LLM のアプリ開発、Gemma 4 / Qwen ベースのモバイルアシスタント設計のご相談は お問い合わせ から。

References

お気軽にご相談ください

お問い合わせ