スマートフォン単体でローカルRAGは本当に成立するのか。本記事はRAM3GBクラスのエントリーAndroid端末を前提に、生成AIの回答検証から実装プロセスまでを整理した技術記録です。小型LLM(gemma 1Bクラス)による一般論と、実機制約とのギャップ。MediaPipeを用いたオンデバイス埋め込み、SQLite拡張によるベクタ検索、そしてKotlinネイティブ実装。理論ではなく「制約下でどう設計するか」という生成過程そのものに焦点を当て、ローカルRAGの現実解を段階的に解説していきます。なお、本取り組みは継続的に具現化・報告できれば良いと考えています。やるぞぉ!
1. 生成AIの回答はどこまで現実的か
私がCopilotと話して得られた回答は、理論的には正しい構成でした。しかし、低RAM環境という前提条件が十分に反映されていなかったのです。ここでは生成AIが出力した内容を分解し、「なぜもっともらしく見えるのか」「どこが実機制約とズレているのか」を整理していきます。生成結果をそのまま信じるのではなく、検証プロセスを挟むことの重要性を確認していくのです。
1-1. 小型LLMは“平均的な正解”を返す
LLMは確率分布に基づき、最も汎用的で安全な構造を生成します。そのため「可能性→課題→実装手順」という教科書的構成になりやすいのが現実です。そして、端末固有の制約やメモリ断片化までは踏み込みません。実務上ではその「くせ」みたいなもので苦労しますよね。
1-2. RAM3GBクラス端末の物理的制約
私の環境では実効メモリは1.5〜2GB前後。バックグラウンドプロセスを考慮すると1Bモデルでも厳しい場面があります。よって生成中心ではなく、検索中心設計へ発想を転換する必要があったのです。現実的には新しいモデルでの稼働を繰り返して、動くモデルを探す作業を続けるつもりです。
2. ローカルRAGは“生成”より“検索”を優先する
検証の結果、最も安定した構成は「Retrieval主体」の設計でした。生成(Generation)は必須ではないのです。検索精度を高めることで、抽出的RAGでも十分に実用水準へ到達できます。ここでは軽量なオンデバイス埋め込みとローカルベクタ検索の実装基盤を整理していきます
2-1. MediaPipeによるオンデバイス埋め込み
GoogleのMediaPipe Tasksを用いることで、軽量なテキスト埋め込みを端末内で実行できる。クラウド不要で完結する点が最大の利点です。
参考リンク:

2-2. SQLite拡張によるベクタ検索
クラウド型ベクタDBを使わず、SQLite拡張でkNN検索を行うことで完全オフラインRAGが構築可能です。
参考リンク:
3. Kotlinネイティブ実装の全体像
かわいい名前ですが、Kotolinと名付けられた言語があります。Android公式言語であるKotlinを用いれば、Python資産を参考にしつつネイティブ最適化が可能なのです。重要なのは「生成を後回しにする設計思想」だ。ここでは埋め込み生成から検索表示までの流れを整理していきます。
3-1. 埋め込み生成フロー
.tfliteモデルをassetsへ配置し、TextEmbedderでFloatArrayを取得。ByteBufferへ変換して保存する。UIはComposeで構築すると軽量かつ柔軟に実装できるのです。
3-2. 検索→提示までの流れ
クエリを埋め込み化し、SQLiteで類似検索。上位チャンクをそのまま提示する。生成モデルを使わずとも「答えとして成立するUI」を設計できます。
4. 生成過程から見えた現実的アプローチ
今回の検証で明らかになったのは、生成AIは常に最適解を提示するわけではないという事実です。特にハードウェア制約下では、段階設計が重要になっていきます。「検索を完成させてから生成を考える」という順序が、低スペック環境では合理的です。
4-1. なぜ一般論に収束するのか
LLMは広範な学習データから平均的な回答を生成するため、個別環境に最適化された答えは出にくい。検証は不可欠である。という事実があります。仕組みがあります。
4-2. 小型端末における段階設計
①検索完成 → ②UI整備 → ③必要なら最小生成。この順序が安定性と再現性を両立すると考えました。
実験環境を効率化するための選択肢
本記事はローカル実装を前提にしているが、検証効率を上げる選択肢も存在します。必須ではないですが、学習や実装スピードを高めたい場合には有効です。
クラウド補助環境
・GitHub Copilot(コード補完)
・ChatGPT Plus(設計壁打ち)
・クラウドGPU環境(モデル挙動検証)
理解を深めるための学習リソース
ローカル最適化に入る前に、まずは基礎構造を理解しておくと設計判断が速くなります。以下は本記事テーマと相性の良い書籍です。
■ 大規模言語モデル入門(技術評論社)
LLMの内部構造を体系的に理解できる一冊。
楽天はこちら 【PR】
■ ベクトル検索実践入門(技術評論社)
ローカルRAGやEmbedding理解に直結する内容。本記事との相性は非常に良いです。
楽天はこちら【PR】
■ Kotlinスタートブック(技術評論社)
Androidネイティブ実装を進めるための基礎固めに。
楽天はこちら【PR】
ローカル実装は時間がかかるものです。話に詰まった際には、まずクラウド環境で構造を理解し、その後に端末最適化へ移行する方法も合理的です。段階的に進めることで、設計精度は確実に上がります。話に詰まった際には先ず、クラウドで構造を理解し、その後に端末最適化へ移行する方法も合理的でもあります。やり遂げましょう。
次回予告
私の場合は簡単なゲームをスマホ向けにPC環境で作り、Kotolinを使って実装してみようと計画しています。
まずは実際に簡単な「できること」を探っていく方針です。
〆最後に〆
以上、間違い・ご意見は
以下アドレスまでお願いします。
全て返信できていませんが 見ています。
適時、改定をします。
nowkouji226@gmail.com

