DEV Community

Cover image for OllamaでGemma 4をローカルで実行する方法:完全ガイド
Akira
Akira

Posted on • Originally published at apidog.com

OllamaでGemma 4をローカルで実行する方法:完全ガイド

TL;DR

Gemma 4 は2026年4月3日にリリースされ、Ollama v0.20.0 は同日サポートを追加しました。デフォルトの gemma4:e4b モデルは2つのコマンドでプルして実行できます。このガイドでは、セットアップ、モデル選択、API使用法、Apidog を使用したローカルの Gemma 4 エンドポイントのテスト方法について説明します。

Apidog を今すぐ試す

はじめに

Google は Gemma 4 を2026年4月2日にリリースしました。24時間以内に、Ollama は v0.20.0 をリリースし、4つのモデルバリアントすべてを完全にサポートしました。

これは開発者にとって重要です。Gemma 4 は単なるマイナーアップデートではありません。Gemma 3 の 20.8% と比較して、AIME 2026 で 89.2% のスコアを記録しています。コーディングベンチマークスコアは Codeforces で 110 ELO から 2150 に跳ね上がりました。ネイティブ関数呼び出し、設定可能な思考モード、そして大規模バリアントでは 256K のコンテキストウィンドウが利用できます。これらすべてが、独自のハードウェア上で動作します。

APIを活用したアプリを構築している場合、ローカルセットアップは多くのメリットがあります。モックデータ生成、テストシナリオ作成、APIレスポンス検証などを、プライベートかつ低レイテンシなAIレイヤーで行えます。

💡 Gemma 4 をローカルで実行できるようになれば、Apidog の Smart Mock で、スキーマからリアルな API レスポンスデータを生成できます。API の形式を一度定義すれば、以降のモックデータ生成は自動化され、スキーマ準拠のテストデータでローカルモデルの実験がスムーズに進められます。

このガイドでは、インストールから最初のローカルAPI呼び出しまで、すべての手順を解説します。

Gemma 4 の新機能

Gemma 4 は4つのモデルバリアントを提供します。

Gemma 4 モデルの選択肢

Gemma 3 からの主な進化ポイント:

  • 推論とコーディング: 31BモデルはLiveCodeBench v6で80%達成。旧27Bは29.1%。
  • Mixture-of-Experts (MoE) アーキテクチャ: 26BバリアントはMoEを採用し、推論時のパラメータ数は4Bのみ。高速かつ高品質。
  • 長いコンテキスト: E2B/E4Bは128Kトークン、26B/31Bは256Kトークンまで対応。
  • ネイティブ関数呼び出し: 関数スキーマを定義するだけで、構造化JSONを返す。
  • 音声・画像入力: E2B/E4Bは音声や画像も入力可能。
  • 思考モード: リクエストごとに連鎖的思考推論のON/OFF切り替えができる。

Gemma 4 モデルバリアントの解説

利用する前に、ハードウェアに合ったモデルを選択しましょう。

モデル ディスク上のサイズ コンテキスト アーキテクチャ 最適な用途
gemma4:e2b 7.2 GB 128K Dense ラップトップ、エッジ、音声/画像
gemma4:e4b (デフォルト) 9.6 GB 128K Dense ほとんどの開発者
gemma4:26b 18 GB 256K MoE (4B アクティブ) GBあたりの最高品質
gemma4:31b 20 GB 256K Dense 最高品質
  • e4bollama run gemma4 のデフォルト。10GB以上のVRAMまたはApple Siliconで高速動作。
  • 26b MoE バリアントは、20GB+ RAMで高速かつ高品質。要件を満たすならおすすめ。

前提条件

  • Ollama v0.20.0 以上必須。
  • バージョン確認:
  ollama --version
Enter fullscreen mode Exit fullscreen mode
  • アップデート:
  # macOS
  brew upgrade ollama

  # Linux
  curl -fsSL https://ollama.com/install.sh | sh
Enter fullscreen mode Exit fullscreen mode
  • Windowsは ollama.com から最新版をダウンロード。

ハードウェア要件:

  • gemma4:e2b: 最小8GB RAM (16GB推奨)
  • gemma4:e4b: 10GB VRAMまたは16GBユニファイドメモリ
  • gemma4:26b: 20GB+ RAMまたはユニファイドメモリ
  • gemma4:31b: 24GB VRAMまたは32GBユニファイドメモリ

Gemma 4 のインストールと実行

デフォルト (e4b) モデルのプル&実行:

ollama run gemma4
Enter fullscreen mode Exit fullscreen mode

OllamaでGemma 4モデルを実行しているターミナルスクリーンショット

初回で約9.6GBダウンロード後、インタラクティブセッションが開始されます。

例:

>>> クライアントエラーのHTTPステータスコードは何ですか?
Enter fullscreen mode Exit fullscreen mode

他バリアントの実行

# 小型エッジモデル
ollama run gemma4:e2b

# MoE高品質バリアント
ollama run gemma4:26b

# フル・フラッグシップ
ollama run gemma4:31b
Enter fullscreen mode Exit fullscreen mode

モデルのみプル

ollama pull gemma4
ollama pull gemma4:26b
Enter fullscreen mode Exit fullscreen mode

所有モデル確認

ollama list
Enter fullscreen mode Exit fullscreen mode

ローカルで Gemma 4 API を使用する

Ollama は http://localhost:11434 でREST APIを公開。CLI不要でAPI呼び出し可能。

補完の生成

curl http://localhost:11434/api/generate \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gemma4",
    "prompt": "Write a JSON response for a user profile API endpoint",
    "stream": false
  }'
Enter fullscreen mode Exit fullscreen mode

チャット補完 (OpenAI互換)

curl http://localhost:11434/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gemma4",
    "messages": [
      {
        "role": "user",
        "content": "Generate a realistic JSON mock for an e-commerce order API response"
      }
    ]
  }'
Enter fullscreen mode Exit fullscreen mode

Python クライアント例

import requests

def ask_gemma4(prompt: str, model: str = "gemma4") -> str:
    response = requests.post(
        "http://localhost:11434/api/generate",
        json={
            "model": model,
            "prompt": prompt,
            "stream": False
        }
    )
    response.raise_for_status()
    return response.json()["response"]

result = ask_gemma4("List the fields a payment API response should include")
print(result)
Enter fullscreen mode Exit fullscreen mode

OpenAI Python SDK を利用

from openai import OpenAI

client = OpenAI(
    base_url="http://localhost:11434/v1",
    api_key="ollama"  # 必須だがOllama側では未使用
)

response = client.chat.completions.create(
    model="gemma4",
    messages=[
        {
            "role": "system",
            "content": "You generate realistic API response data in JSON format."
        },
        {
            "role": "user",
            "content": "Generate a sample response for a GET /users/{id} endpoint"
        }
    ]
)

print(response.choices[0].message.content)
Enter fullscreen mode Exit fullscreen mode

Gemma 4 で関数呼び出しを使う

Gemma 4はネイティブの関数呼び出しに対応。ツールスキーマ定義に基づき構造化JSONを返します。

from openai import OpenAI

client = OpenAI(
    base_url="http://localhost:11434/v1",
    api_key="ollama"
)

tools = [
    {
        "type": "function",
        "function": {
            "name": "get_user",
            "description": "Retrieve a user by ID from the API",
            "parameters": {
                "type": "object",
                "properties": {
                    "user_id": {
                        "type": "integer",
                        "description": "The unique user ID"
                    },
                    "include_orders": {
                        "type": "boolean",
                        "description": "Whether to include order history"
                    }
                },
                "required": ["user_id"]
            }
        }
    }
]

response = client.chat.completions.create(
    model="gemma4",
    messages=[
        {"role": "user", "content": "Get user 42 with their order history"}
    ],
    tools=tools,
    tool_choice="auto"
)

tool_call = response.choices[0].message.tool_calls[0]
print(tool_call.function.name)       # get_user
print(tool_call.function.arguments)  # {"user_id": 42, "include_orders": true}
Enter fullscreen mode Exit fullscreen mode

思考モードの有効化

複雑なタスクやAPI仕様の分析には、思考モードを有効にしましょう。

response = client.chat.completions.create(
    model="gemma4",
    messages=[
        {
            "role": "user",
            "content": "Design a complete test scenario for a payment processing API with edge cases"
        }
    ],
    extra_body={"think": True}
)

print(response.choices[0].message.content)
Enter fullscreen mode Exit fullscreen mode

単純なリクエストには思考モード不要です(レイテンシ増加防止)。

Apidog で Gemma 4 API レスポンスをテストする

ローカル Gemma 4 インスタンス起動後、Apidog でエンドポイントを体系的にテストできます。

Apidog で Gemma 4 API エンドポイントのテストと定義を示すスクリーンショット

ステップバイステップ

  1. Ollama API 仕様をインポート

    Apidogで新規プロジェクトを作成し、http://localhost:11434 をベースURLに設定します。

  2. エンドポイント定義

    • POST /api/generate(シングルターン補完用)
    • POST /v1/chat/completions(チャット用)
    • GET /api/tags(モデル一覧取得用)
  3. テストシナリオ設定

    • ステップ1: GET /api/tagsgemma4 の存在確認
    • ステップ2: POST /api/generate でプロンプト送信、response フィールド非空を検証
    • ステップ3: POST /v1/chat/completions でレスポンス形式を検証

Apidogの「変数抽出プロセッサ」でレスポンス連携も可能。

  1. レスポンススキーマ検証

    OpenAPI仕様に基づき契約テスト設定。モデル更新時にも破壊的変更を検知。

  2. Smart Mock の活用

    Apidog の Smart Mock で、Gemma 4 レスポンス形式を事前に定義→フロント・バックエンド並行開発やモックデータ生成に即活用可能。

Gemma 4 によるマルチモーダル入力

E2B/E4Bモデルはテキストと画像を同時入力可能。画像はbase64エンコードで送信します。

import base64

with open("api_diagram.png", "rb") as f:
    image_data = base64.b64encode(f.read()).decode()

response = client.chat.completions.create(
    model="gemma4:e4b",
    messages=[
        {
            "role": "user",
            "content": [
                {
                    "type": "image_url",
                    "image_url": {
                        "url": f"data:image/png;base64,{image_data}"
                    }
                },
                {
                    "type": "text",
                    "text": "Describe the API flow shown in this diagram and identify potential error paths"
                }
            ]
        }
    ]
)
Enter fullscreen mode Exit fullscreen mode

アーキテクチャ図の解析やAPI仕様の画像レビューにも活用できます。

よくある問題と修正

  • Ollamaがモデルが見つからない:

    ollama pull gemma4 で取得、ollama list で確認。

  • CPUでの推論が遅い:

    GPU推奨。CPUのみなら gemma4:e2b を選択。

  • メモリ不足:

    ollama ps でVRAM/RAMチェック。小型モデルに切り替え。

  • Apple Siliconでモデルが動かない:

    Ollama 0.20.0以上へアップデート。

  • ポート競合:

    OLLAMA_HOST=0.0.0.0:11435 ollama serve で別ポート指定。

  • レスポンスが途中で切れる:

    "options": {"num_ctx": 8192} をリクエストに追加。

Gemma 4 と他のローカルモデルの比較

モデル 最適サイズ コンテキスト 関数呼び出し コーディングベンチマーク
Gemma 4 e4b (9.6 GB) 128K-256K ネイティブ LiveCodeBench 80%
Llama 3.3 70B-Q4 (40 GB) 128K ネイティブ LiveCodeBench 約60%
Qwen3.6-Plus 72B-Q4 (44 GB) 128K ネイティブ 強力
Mistral Small 24B (14 GB) 128K ネイティブ 中程度
  • MoE 26Bバリアントは18GBで高品質・高速推論。
  • 31Bはコーディングタスクで大規模モデルと競合可能。
  • 軽量モデル(e2b)はエッジやラップトップ向け。

結論

Gemma 4 + Ollama は現時点で最高クラスのローカルAIセットアップです。

インストールはわずか2コマンドで、ほとんどの開発者PCでデフォルトモデルが動作。

ollama run gemma4 で起動し、Apidog でAPIテスト→最適バリアント選択でワークロードに合わせた運用を。

Gemma 4上でAPI駆動機能を開発するなら、ローカル推論・ApidogのSmart Mock・テストシナリオを組み合わせて、リモート依存ゼロの開発ループが構築できます。

よくある質問

Q: 新しいバージョンが出た時の更新方法は?

A: ollama pull gemma4 で差分のみ取得します。

Q: GPUなしでも動きますか?

A: 可能ですが低速です。CPUのみなら e2b モデル推奨。

Q: e2b と e4b の違いは?

A: 両者とも高密度なエッジ向けモデル。E4Bはパラメータ数多く、複雑な推論に強い。E2Bは小型かつ音声入力対応。多くのテキスト処理にはE4B推奨。

Q: LangChain/LlamaIndexと連携可能?

A: どちらもOllamaバックエンド対応。http://localhost:11434 を指定し、モデル名に gemma4 を設定。

Q: OpenAI API向けコードと互換性は?

A: 多くの場合互換。Ollamaの /v1/chat/completions を利用し、base_urlapi_keyを調整。

Q: 思考モードの使い方は?

A: OpenAI SDKでは extra_body"think": true、直接APIの場合はリクエストJSONに "think": true を追加。

Q: 他マシンからAPI公開は?

A: OLLAMA_HOST=0.0.0.0:11434 ollama serve で外部公開。

Q: API開発タスク向きのモデルは?

A: モック生成・テストは e4b、複雑な分析は 26b MoE がおすすめ。

Top comments (0)