React Native およびモバイルアプリで ONNX モデルを活用する方法
ONNX(Open Neural Network Exchange)は、機械学習モデルを 一度学習し、複数の環境で再利用 できるフォーマットです。PyTorch や TensorFlow で学習したモデルを、Android / iOS / React Native / Flutter などのモバイル環境へ効率的に展開できます。
本記事では、React Native での ONNX 利用 を中心に、オンデバイス AI や Local LLM をモバイルアプリに組み込むための考え方と実践ポイントを解説します。
なぜ ONNX はモバイルアプリに適しているのか
ONNX がモバイル分野で選ばれる理由は以下の通りです。
- 特定の ML フレームワークに依存しない
- CPU およびモバイル向けアクセラレータ(NNAPI / CoreML)をサポート
- Python ランタイム不要
- オフライン動作・低レイテンシに強い
特に 信頼性・セキュリティ・安定した UX が求められる日本市場では、ONNX は非常に相性の良い技術です。
モバイル向け ONNX Runtime の選択肢
| プラットフォーム | 推奨 Runtime |
|---|---|
| React Native | onnxruntime-react-native |
| Android(ネイティブ) | ONNX Runtime Android |
| iOS(ネイティブ) | ONNX Runtime iOS |
| Flutter | Platform Channel 経由で ONNX Runtime |
| Ionic / Capacitor | ネイティブ Plugin + ONNX Runtime |
※ JavaScript のみで ONNX を実行する方法は、実運用では推奨されません。
React Native で ONNX を利用する(推奨構成)
1. ONNX Runtime のインストール
安定性を重視する場合、React Native CLI の利用を推奨します。
yarn add onnxruntime-react-native
cd ios && pod install && cd ..
Expo を使用する場合は、prebuild と custom dev client が必要です。
2. ONNX モデルをアプリに組み込む
一般的な方法:
- アプリにモデルを同梱(assets/models/model.onnx)
- 初回起動時にダウンロードし、端末にキャッシュ
初期段階では 同梱方式 がシンプルです。
3. Inference Session の作成
import * as ort from "onnxruntime-react-native";
export async function loadModel(modelPath: string) {
return await ort.InferenceSession.create(modelPath, {
executionProviders: ["cpu"],
});
}
4. 推論の実行
export async function runInference(session, inputName, data, dims) {
const tensor = new ort.Tensor("float32", data, dims);
const feeds = { [inputName]: tensor };
return await session.run(feeds);
}
モデルの input 名称・shape が正確であることを必ず確認してください。
Image Preprocessing:最もトラブルが起きやすいポイント
多くの Vision モデルでは以下が必要です。
- Tensor shape:
[1, 3, H, W]または[1, H, W, 3] - 正規化(0–1、mean/std)
- RGB / BGR の順序
前処理が正しくない場合、推論結果は正しく出ません。
オンデバイス Local LLM を使うメリット
主な利点
- ユーザーデータが端末外に出ない(プライバシー重視)
- オフライン環境でも動作
- レイテンシが安定し、UX が向上
- クラウド推論コストを削減
日本の 公共分野・製造業・エンタープライズ では、特に重要な要素です。
Local LLM の実用ユースケース(モバイル)
官公庁・GovTech
- 申請フォームの説明
- 規程・マニュアルの要約(オフライン)
スマート農業
- 作物診断結果の説明
- センサーデータの要約と判断支援
製造業・エンタープライズ
- 設備アラームの解説
- 保全・点検レポートの要約
コンシューマー向けアプリ
- メモ・メールの要約
- 個人情報を外部送信しない AI アシスタント
導入時の制約と注意点
- モデルサイズは小型に限定(概ね 1〜4B パラメータ以下)
- 量子化(INT8 / INT4)が必須
- クラウド GPU より処理能力は低い
適切なユースケース設計 が成功の鍵です。
まとめ
ONNX と Local LLM を組み合わせることで、安全・高速・オフライン対応 のモバイル AI システムを構築できます。
React Native + ONNX Runtime は、開発効率と信頼性のバランスが良く、日本市場向けの 業務アプリ / GovTech / 産業向けシステム に非常に適した構成です。
Get in Touch with us
Related Posts
- AIはどのように金融機会を発見するのか
- 葉の病害検出アルゴリズムはどのように動作するのか:カメラから意思決定まで
- Smart Farming Lite:センサーに依存しない実践的デジタル農業
- なぜカスタムMESは日本の工場に適しているのか
- AIが検索に取って代わる時代:書き手と専門家はどう生き残るのか
- リサイクル事業のための金属価格予測 (日本市場向け・投機不要)
- チーズは誰が動かした?
- 日本向け:業務に最適化されたEコマースシステム設計
- AIの導入がシステムを壊すアンチパターン
- なぜ私たちは「ソフトウェアを作るだけ」ではないのか — システムを実際に動かすために
- Wazuh管理者向け 実践プロンプトパック
- なぜ政府におけるレガシーシステム刷新は失敗するのか(そして、実際に機能する方法とは)
- 日本の自治体が「本当に必要とする」Vertical AI活用ユースケース
- マルチ部門政府におけるデジタルサービス提供の設計(日本向け)
- デジタル行政サービスが本番稼働後に失敗する7つの理由
- 都道府県・市町村向けデジタルシステムのリファレンスアーキテクチャ
- 実践的GovTechアーキテクチャ:ERP・GIS・住民向けサービス・データ基盤
- なぜ緊急対応システムは Offline First で設計されるべきなのか(ATAK からの教訓)
- なぜ地方自治体のソフトウェアプロジェクトは失敗するのか —— コードを書く前に防ぐための考え方
- AIブームの後に来るもの:次に起きること(そして日本企業にとって重要な理由)













