React NativeでのオンデバイスAI構築から得られる実践的な教訓

✍️ OpenClawRadar📅 公開日: February 25, 2026🔗 Source
React NativeでのオンデバイスAI構築から得られる実践的な教訓
Ad

LLMによるテキスト生成

React NativeでGGUFモデルを実行するにはllama.rnを使用します。これはllama.cppをラップし、Android(JNI)とiOS(Metal)向けのネイティブバインディングを提供します。コールバックによるトークンのストリーミングは良好に機能します。

メモリ管理が重要です:7B Q4モデルは実行時に約5.5GBのRAMを必要とします(ファイルサイズ×1.5でKVキャッシュと活性化のため)。デバイスRAMの60%を厳格な予算として使用し、50%で警告、60%でブロックしてOSによるアプリ強制終了を防ぎます。

GPUアクセラレーションはAndroidではOpenCL(Adreno GPU)、iOSではMetalを使用します。AndroidではGPUレイヤー>0でFlash Attentionがクラッシュするため、コードでこれを強制します。ほとんどのデバイスでは、GPUよりもKVキャッシュの量子化(f16/q8_0/q4_0)が効果的です。テストではf16からq4_0にすることで推論速度が約3倍になりました。

Stable Diffusionによる画像生成

これはプラットフォーム固有であり、両方をカバーする単一ライブラリはありません。

  • Android: MNN(Alibabaのフレームワーク、CPU、すべてのARM64デバイスで動作)とQNN(Qualcomm AI Engine、NPUアクセラレーション、Snapdragon 8 Gen 1+のみ)を使用します。QNNは3倍高速ですが、最近のQualcommチップでのみ動作します。自動フォールバック付きのランタイム検出を実装します。
  • iOS: Appleのml-stable-diffusionパイプラインをCore MLとNeural Engineアクセラレーションで使用します。パレット化モデル(約1GB、6ビット)はメモリ制約のあるデバイスに最適です。フル精度(約4GB、fp16)はANEで高速ですが、余裕が必要です。

実世界のベンチマーク:512×512、20ステップで、Snapdragon NPUで5〜10秒、フラッグシップCPUで15秒、iOS ANEで8〜15秒。ユーザーがアプリがフリーズしたと誤解しないよう、N回のノイズ除去ステップごとにリアルタイムプレビューを表示します。

Ad

Whisperによる音声文字起こし

whisper.rnはwhisper.cppをラップし、統合が簡単です。複数のモデルサイズ(Tiny/Base/Small)を提供し、ユーザーが速度と精度のトレードオフを選択できるようにします。リアルタイムの部分文字起こし(話しながら単語が表示される)でネイティブな感覚を実現します。

ネイティブコードでオーディオをバッファリングし、文字起こし後にクリアします。プライバシーが重要な場合はオーディオファイルをディスクに書き込まないでください。

マルチモーダルモデルによるビジョン

ビジョンモデルには2つのファイルが必要です:メインのGGUFとmmproj(マルチモーダルプロジェクター)コンパニオンです。これを透過的に処理します:ビジョンモデルを自動検出し、mmprojを自動ダウンロードし、単一ユニットとして追跡し、リンクが切れた場合はランタイムでモデルディレクトリを検索します。2Bビジョンモデルでは、両方のファイルを並列ダウンロードすることでダウンロード時間をほぼ半減できます。

500MのSmolVLMはモバイル向けの最適な選択肢で、フラッグシップデバイスで約7秒、文書読み取りやシーン記述に十分な能力があります。

オンデバイスエージェントループのためのツール呼び出し

関数呼び出しをサポートするモデルは、自動ループを通じてツール(ウェブ検索、電卓、日付/時刻、デバイス情報)を使用できます:LLMが生成、ツール呼び出しを解析、実行、結果をコンテキストに戻して注入、LLMが継続。無限ループを防ぐため、最大3回の反復、合計5回の呼び出しに制限します。

2つの解析パスをサポートします:大規模モデルはllama.rnを通じて構造化されたJSONツール呼び出しをネイティブに出力し、小規模モデルは<tool_call>のようなXMLを出力します。モデル読み込み時にjinjaチャットテンプレートを検査してツールサポートを検出します。モデルがツールをサポートしない場合、幻覚を避けるためにシステムプロンプトにツール定義を注入しません。電卓は再帰下降パーサーを使用します—eval()は絶対に使用しません。

意図分類

アプリがテキストと画像生成の両方を行う場合、入力分析に基づいてユーザーの意図を決定する必要があります。

📖 全文を読む: r/LocalLLaMA

Ad

👀 See Also

どのAIモデルを使うべきか尋ねるのはやめよう:タスクをHaiku、Sonnet、Opusの階層に振り分けよう
Guides

どのAIモデルを使うべきか尋ねるのはやめよう:タスクをHaiku、Sonnet、Opusの階層に振り分けよう

タスクタイプごとに少なくとも3つのモデルを使い分けよう。読書・要約にはHaikuクラス、コード作成にはSonnetクラス、複数ファイルのリファクタリングやデバッグにはOpusクラスのみを使用する。あるユーザーの設定では、タスクの40%を安価なモデル、35%を中級、25%を最先端のモデルに振り分け、月額約30~40ドルかかっている。

OpenClawRadar
ClaudeのHaiku、Sonnet、Opusモデルを選択するための実践的フレームワーク
Guides

ClaudeのHaiku、Sonnet、Opusモデルを選択するための実践的フレームワーク

開発者がClaudeの3つのモデルを400行のExpress.jsリファクタリングタスクでテストし、重要な違いは知能ではなく推論の深さにあることを発見しました。Haiku 4.5は単純な部分を処理できましたが、ミドルウェアの順序付けを見落とし、Sonnet 4.6は順序付けの問題を捕捉してTypeScriptの型を追加し、Opus 4.6は認証ミドルウェアのセキュリティ上の欠陥を特定しました。

OpenClawRadar
OpenClawセットアップ:Docker、Chromium、noVNCを使用したヒューマンインザループブラウザ自動化
Guides

OpenClawセットアップ:Docker、Chromium、noVNCを使用したヒューマンインザループブラウザ自動化

ある開発者が、CAPTCHAや承認を実行中に処理できるOpenClawのDockerコンテナ設定を共有しました。リモートアクセス用にnoVNCを備えたChromiumを使用し、約300MBのRAMと3秒のコールドスタートが必要です。

OpenClawRadar
CLAUDE.md 憲法:個人AIエージェント構築 — パートII ファイルウォークスルー
Guides

CLAUDE.md 憲法:個人AIエージェント構築 — パートII ファイルウォークスルー

CEOが50人企業向けに6週間かけて構築した、16セクションから成る注釈付きCLAUDE.mdファイルを公開。アイデンティティ、先制的イニシアチブ、メモリ、締め切り、厳格ルールをカバー。

OpenClawRadar