スマートフォン上でAIモデルを直接動かす — インターネット不要、データが端末から出ない — 未来的に聞こえますが、Gemma 4で実現できます。小型のE2BとE4Bモデルはモバイルデプロイ向けに設計されています。このガイドではAndroidとiOSでGemma 4を動かすために必要なすべてを解説します。
モバイルで動くモデルは?
すべてのGemma 4モデルがスマートフォンに入るわけではありません。現実的な対応表:
| モデル | パラメータ | 必要RAM | Android | iOS | おすすめ? |
|---|---|---|---|---|---|
| Gemma 4 E2B | 2B | 約3 GB | 対応 | 対応 | ほとんどのスマホに最適 |
| Gemma 4 E4B | 4B | 約5 GB | 対応 | 対応 | フラッグシップ機のみ |
| Gemma 4 1B | 1B | 約2 GB | 対応 | 対応 | 最速、品質は低め |
| Gemma 4 4B | 4B | 約5 GB | 可能 | 可能 | ぎりぎり |
| Gemma 4 12B+ | 12B+ | 約9 GB+ | 不可 | 不可 | モバイルには大きすぎ |
E2BとE4B(「Edge」)モデルはモバイル向けに最適化されています — テキスト、画像、音声のマルチモーダル機能を、スマートフォンに実際に収まるサイズで提供。モデルファイルはダウンロードガイドのいずれかの方法で取得可能。RAMとストレージの詳細スペックはハードウェア要件をチェック。
Androidデプロイ
Androidはオンデバイス向けGemma 4のエコシステムが最も成熟しており、Googleの緊密な統合のおかげです。
方法1: Google AI Edge SDK
AI Edge SDKはGoogleがAndroid上でGemmaを動かすための公式ソリューションです:
// build.gradle.kts
dependencies {
implementation("com.google.ai.edge:ai-edge-sdk:0.3.0")
}
// ActivityまたはViewModelで
import com.google.ai.edge.InferenceSession
import com.google.ai.edge.ModelConfig
class GemmaViewModel : ViewModel() {
private var session: InferenceSession? = null
fun initModel(context: Context) {
val config = ModelConfig.builder()
.setModelPath("gemma-4-e2b-it.task")
.setMaxTokens(1024)
.setTemperature(0.7f)
.build()
session = InferenceSession.create(context, config)
}
fun generateResponse(prompt: String): String {
return session?.generateResponse(prompt) ?: "モデル未ロード"
}
}方法2: AICore(PixelおよびSamsung)
AICoreは最近のPixelフォンとSamsung Galaxyデバイスに内蔵されており、システムレベルのAIアクセラレーションを提供:
// AICoreが利用可能か確認
val aiCoreAvailable = AICore.isAvailable(context)
if (aiCoreAvailable) {
// AICoreがモデル管理と最適化を担当
val session = AICore.createSession(
model = "gemma-4-e2b-it",
options = AICore.Options.builder()
.setAccelerator(AICore.Accelerator.GPU)
.build()
)
val response = session.generate("光合成を簡単に説明して")
}AICoreの利点:モデルがデバイスにすでにキャッシュされている場合があり、ユーザーが別途2〜3GBをダウンロードする必要がない。
方法3: MediaPipe LLM Inference API
MediaPipeはより柔軟で、幅広いAndroidデバイスで動作:
dependencies {
implementation("com.google.mediapipe:tasks-genai:0.10.20")
}
// LLMを初期化
val options = LlmInference.LlmInferenceOptions.builder()
.setModelPath("/data/local/tmp/gemma-4-e2b-it.bin")
.setMaxTokens(1024)
.setTopK(40)
.setTemperature(0.7f)
.setRandomSeed(42)
.build()
val llmInference = LlmInference.createFromOptions(context, options)
// テキスト生成
val response = llmInference.generateResponse("機械学習とは何ですか?")
// ストリーミングレスポンス
llmInference.generateResponseAsync(prompt) { partialResult, done ->
// 各トークンでUIを更新
textView.append(partialResult)
}iOSデプロイ
方法1: AI Edge Galleryアプリ
iOSでGemma 4を試す最も簡単な方法 — App StoreからAI Edge Galleryアプリをダウンロード。Apple固有の最適化と設定の詳細はiPhoneガイドをご覧ください。
- AI Edge Galleryをインストール
- 利用可能なモデルを閲覧
- Gemma 4 E2BまたはE4Bをダウンロード
- チャット開始 — 完全オフライン
個人利用やテストに最適ですが、自分のアプリに組み込む場合は別の方法が必要。
方法2: LiteRT(TensorFlow Liteランタイム)
Gemma 4を自分のiOSアプリに統合する場合:
import LiteRT
class GemmaModel {
private var interpreter: Interpreter?
func loadModel() throws {
guard let modelPath = Bundle.main.path(
forResource: "gemma-4-e2b-it",
ofType: "tflite"
) else {
throw GemmaError.modelNotFound
}
var options = Interpreter.Options()
options.threadCount = 4
// GPUデリゲートでアクセラレーション
let gpuDelegate = MetalDelegate()
interpreter = try Interpreter(
modelPath: modelPath,
options: options,
delegates: [gpuDelegate]
)
}
func generate(prompt: String) throws -> String {
// 入力をトークナイズ
let tokens = tokenize(prompt)
// 推論実行
try interpreter?.allocateTensors()
try interpreter?.copy(tokens, toInputAt: 0)
try interpreter?.invoke()
// 出力をデコード
let output = try interpreter?.output(at: 0)
return decode(output)
}
}方法3: MediaPipe for iOS
MediaPipeはiOSでも動作:
import MediaPipeTasksGenAI
let options = LlmInference.Options()
options.modelPath = Bundle.main.path(
forResource: "gemma-4-e2b-it",
ofType: "bin"
)!
options.maxTokens = 1024
options.temperature = 0.7
let llm = try LlmInference(options: options)
let response = try llm.generateResponse(inputText: "こんにちは!")パフォーマンスの期待値
モバイルAIで何ができるか、現実的な数値:
| デバイス | モデル | 速度 (tok/s) | 初回トークン (ms) | RAM使用量 |
|---|---|---|---|---|
| Pixel 9 Pro | E2B | 約15-20 | 約800 | 約3 GB |
| Pixel 9 Pro | E4B | 約8-12 | 約1500 | 約5 GB |
| Samsung S24 Ultra | E2B | 約15-18 | 約900 | 約3 GB |
| iPhone 15 Pro | E2B | 約12-15 | 約1000 | 約3 GB |
| iPhone 16 Pro | E2B | 約15-18 | 約800 | 約3 GB |
| iPhone 16 Pro | E4B | 約8-10 | 約1500 | 約5 GB |
デスクトップより遅いですが、対話型チャットには十分な速度。初回トークンはモデル初期化のためやや遅め。
バッテリーと発熱
AI推論は計算負荷が高い処理です。留意点:
| 懸念事項 | 実際 | 対策 |
|---|---|---|
| バッテリー消費 | アクティブ使用中1時間あたり約5-8% | 最大生成長を制限 |
| 発熱 | 推論中にスマホが温まる | 長い生成の間にクールダウンを入れる |
| バックグラウンド | OSがプロセスを終了する場合あり | 必要な時だけモデルをロード |
| ストレージ | モデルごとに2-5 GB | モデルダウンロードはオプションに |
// 推奨:使用しない時はモデルを解放
override fun onPause() {
super.onPause()
session?.close()
}
override fun onResume() {
super.onResume()
if (session == null) initModel()
}オフライン:最大のキラー機能
オンデバイスAIの最大の利点はインターネットなしで動くこと。考えられる用途:
- 旅行: 機内モードでもAIアシスタントが使える
- プライバシーが重要なタスク: 医療相談、個人日記、プライベートなコーディング — データが端末から出ない
- 通信環境が悪い場所: 地方、地下鉄、新幹線のトンネル内
- 速度: ネットワークレイテンシなし — レスポンスが即座に開始
- コスト: 初回のモデルダウンロード後はAPI料金なし
これはクラウドAPIでは根本的に提供できないもの。Gemma 4をスマートフォンで動かせば、データはスマートフォンに留まります。
モバイル vs クラウドAPI
| 要素 | オンデバイス(Gemma 4 E2B) | クラウドAPI(Gemini) |
|---|---|---|
| 速度 | 約15 tok/s | 約50-100 tok/s |
| 品質 | 良好(2Bモデル) | 優秀(大型モデル) |
| プライバシー | 完全 | サーバーにデータ送信 |
| オフライン | 対応 | 非対応 |
| コスト | ダウンロード後は無料 | トークン課金 |
| バッテリー影響 | 高い | 最小限 |
| セットアップ | モデルダウンロード必要 | APIキーのみ |
理想的なアプローチはハイブリッド:プライバシーが重要なタスクやオフライン時にはオンデバイスのGemma 4を使い、より高い品質が必要な場合や通信可能な時にクラウドAPIにフォールバック。
次のステップ
- iPhone専用ガイドが必要? Apple固有の最適化を解説したiPhoneガイドをチェック
- どのモデルを選ぶか迷っている? Gemma 4モデル選びガイドで全ラインナップを解説
- デスクトップのハードウェア要件は? デスクトップやノートPCのおすすめはハードウェアガイド
モバイルAIはまだ初期段階ですが、今日の時点でも実用的です。E2Bモデルから始めて、スマートフォンでテストし、そこから発展させましょう。インターネットなし、APIキーなし、月額料金なし — ポケットに入るスマートフォンで本格的なAIが完全に動くのは、かなりすごいことです。



