Gemma 4をAndroid・iOSにデプロイする方法(モバイルAIガイド)

4月 7, 2026

スマートフォン上でAIモデルを直接動かす — インターネット不要、データが端末から出ない — 未来的に聞こえますが、Gemma 4で実現できます。小型のE2BとE4Bモデルはモバイルデプロイ向けに設計されています。このガイドではAndroidとiOSでGemma 4を動かすために必要なすべてを解説します。

モバイルで動くモデルは?

すべてのGemma 4モデルがスマートフォンに入るわけではありません。現実的な対応表:

モデルパラメータ必要RAMAndroidiOSおすすめ?
Gemma 4 E2B2B約3 GB対応対応ほとんどのスマホに最適
Gemma 4 E4B4B約5 GB対応対応フラッグシップ機のみ
Gemma 4 1B1B約2 GB対応対応最速、品質は低め
Gemma 4 4B4B約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ガイドをご覧ください。

  1. AI Edge Galleryをインストール
  2. 利用可能なモデルを閲覧
  3. Gemma 4 E2BまたはE4Bをダウンロード
  4. チャット開始 — 完全オフライン

個人利用やテストに最適ですが、自分のアプリに組み込む場合は別の方法が必要。

方法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 ProE2B約15-20約800約3 GB
Pixel 9 ProE4B約8-12約1500約5 GB
Samsung S24 UltraE2B約15-18約900約3 GB
iPhone 15 ProE2B約12-15約1000約3 GB
iPhone 16 ProE2B約15-18約800約3 GB
iPhone 16 ProE4B約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にフォールバック。

次のステップ

モバイルAIはまだ初期段階ですが、今日の時点でも実用的です。E2Bモデルから始めて、スマートフォンでテストし、そこから発展させましょう。インターネットなし、APIキーなし、月額料金なし — ポケットに入るスマートフォンで本格的なAIが完全に動くのは、かなりすごいことです。

Gemma 4 AI

Gemma 4 AI

Related Guides

Gemma 4をAndroid・iOSにデプロイする方法(モバイルAIガイド) | ブログ