blog
AIブログ
Gemmaをローカル実行する方法|2026年版セットアップガイド
監修
河合 継(クリスタルメソッド株式会社 代表取締役)
AI・ディープラーニングに関する特許16件の発明者。過去、国立がん研究センターとの共同研究や、テレビ番組でのAI解説実績を持つAI研究者として、AIの研究開発を主導している。
運営会社について | 編集方針
Gemma導入の完全ガイド:ローカル環境からクラウドまで徹底解説
Googleが開発・公開したオープンモデルファミリー「Gemma」は、商用利用可能なライセンスと軽量な設計で、個人開発者から企業エンジニアまで幅広い層に採用が広がっています。しかし「どの環境に、どのバリアントを、どのように導入するか」という具体的な手順は、ドキュメントが英語中心で分散しており、日本語でまとまった情報が少ないのが現状です。本記事では、Gemmaの基本確認から始まり、ローカルPC・クラウドVM・Kaggle/Colab・HuggingFace推論APIといった主要な導入経路ごとに、コマンドレベルの手順を一本化して解説します。ファインチューニングや量子化による軽量化、よくあるエラーの対処法まで網羅していますので、「今日からGemmaを動かしたい」方はこのまま読み進めてください。
Gemmaとは:導入前に把握すべき基礎知識
Gemmaは、Googleが2024年2月に初版(Gemma 1)を公開し、その後Gemma 2、Gemma 3と世代を重ねてきたオープンウェイトの大規模言語モデルです。「Gemini」と同じ研究・インフラをベースにしながら、外部に公開できる形に最適化されています。現時点での最新世代はGemma 4(2026年3月31日リリース)であり、テキスト・画像・動画・音声を扱うネイティブ・マルチモーダル入力、最大256Kトークンの長文脈処理(中型モデル以上)、140言語超への対応を備えています。また、Gemma 4ではオープンソース標準のApache 2.0ライセンスが初めて採用されました。
主要バリアントの比較(Gemma 4)
| モデル名 | パラメータ規模 | 推奨VRAM目安 | 主な用途 | 備考 |
|---|---|---|---|---|
| Gemma 4 E2B | 実効2B | 4GB〜 | モバイル・エッジ・ブラウザ | 128Kコンテキスト。CPU動作も現実的 |
| Gemma 4 E4B | 実効4B | 8GB〜 | エッジ・軽量チャット | 128Kコンテキスト。マルチモーダル対応 |
| Gemma 4 12B Unified | 120億 | 16GB〜(Q4量子化で12GB) | マルチモーダルの主力・RAG・要約 | 256Kコンテキスト。エンコーダフリー。2026年6月3日リリース |
| Gemma 4 26B A4B(MoE) | 260億(MoE) | GPU複数枚〜 | 高スループット推論 | 256Kコンテキスト。Mixture-of-Experts構成 |
| Gemma 4 31B Dense | 310億 | 40GB〜(A100相当) | 高精度推論・サーバ〜ローカル両対応 | 256Kコンテキスト。最大級の旗艦モデル |
| PaliGemma 2 | 3B/10B/28B | 8GB〜 | 画像キャプション・VQA | ビジョン言語モデル |
「it (Instruction Tuned)」サフィックスが付いたバリアントは指示追従向けにファインチューニング済みで、チャット用途にはこちらを選ぶのが基本です。サフィックスなしの「pt (Pretrained)」は継続学習やファインチューニングのベースとして使います。
Gemma 4の中型モデル(12B/26B/31B)は最大256Kトークンの文脈長をサポートしており、長文書の要約やRAGパイプラインでの活用に適しています。軽量モデル(E2B/E4B)は128Kコンテキストです。また140言語超に対応しているため、日本語を含む多言語用途でも安定した動作が期待できます。
ライセンスの確認(商用利用の可否)
Gemma 4はApache 2.0ライセンスのもとで公開されており、Gemmaシリーズとして初めてこのオープンソース標準ライセンスが採用されました。ライセンス費用・Googleとの特別契約・追加許諾なしで商用利用・改変・ファインチューン後の再配布が可能です。なお、Gemma 3以前の世代は独自の「Gemma Terms of Use」で提供されていた点に注意してください。Hugging Faceからダウンロードする際はライセンスへの同意が必要です。
導入環境の選び方:ユースケース別ロードマップ
手元で完結・データ外部送信なし。Ollama / llama.cpp が最速。VRAM 8GB以上推奨。12B Unifiedモデルはラインナップの主力でQ4量子化で12GB GPUに収まる。
無料GPU利用可。プロトタイプ・学習用途に最適。セッション終了でデータ消去。
本番API化向け。GCPならVertex AI Studioで最小設定で起動可能。コスト管理が重要。
インフラ管理不要。トークン単位課金。動作確認・小規模利用に便利。
個人学習・検証フェーズならColab、プライバシー重視の業務利用ならローカルかクラウドVM、手早くAPI連携を試したいならHugging Face推論APIという選び方が一般的です。以降、それぞれの具体的な手順を示します。
【方法1】Ollamaを使ったローカル導入(最速・最簡単)
Ollamaは、LLMをDockerコンテナのように扱えるローカル推論ランタイムです。Gemma 4の各バリアントに対応しており、コマンド1行で起動できます。macOS・Linux・Windowsに対応しています。
Step 1:Ollamaのインストール
macOS / Linux:
curl -fsSL https://ollama.com/install.sh | sh
Windows:Ollamaの公式サイト(ollama.com)からインストーラーをダウンロードして実行します。
Step 2:Gemmaモデルの取得と起動
# Gemma 4 E4B(指示追従版)を取得して対話開始
ollama run gemma4:e4b
# 12B Unifiedバージョンを使う場合(Q4量子化で12GB GPUに収まる)
ollama run gemma4:12b
# 31B Denseバージョンを使う場合
ollama run gemma4:31b
初回実行時にモデルファイルが自動ダウンロードされます。ダウンロード完了後、ターミナル上で直接チャットが可能です。Gemma 4の全バリアントはネイティブ・マルチモーダル(テキスト・画像・動画・音声)に対応しており、中型モデル以上は256Kトークンの長文脈入力をサポートしています。
Step 3:REST APIとして利用する
Ollamaはバックグラウンドで自動的にHTTPサーバー(デフォルト: http://localhost:11434)を起動します。別ターミナルやアプリケーションから呼び出す場合:
curl http://localhost:11434/api/generate \
-d '{
"model": "gemma4:e4b",
"prompt": "日本の首都はどこですか?",
"stream": false
}'
Pythonからはrequestsまたはopenaiライブラリ(OpenAI互換エンドポイント使用)で呼び出せます。
import requests
response = requests.post(
"http://localhost:11434/api/generate",
json={
"model": "gemma4:e4b",
"prompt": "機械学習とは何かを100字で説明してください",
"stream": False
}
)
print(response.json()["response"])
Ollamaのモデル管理コマンド
| コマンド | 説明 |
|---|---|
ollama list |
インストール済みモデルの一覧表示 |
ollama pull gemma4:e4b |
起動せずにモデルだけ取得 |
ollama rm gemma4:e4b |
モデルの削除 |
ollama show gemma4:e4b |
モデル詳細(パラメータ数・量子化方式)確認 |
【方法2】Hugging Face Transformersによる導入
より細かい制御(量子化・LoRAファインチューニング・バッチ推論)が必要な場合は、Transformersライブラリ経由が標準的な選択肢です。
Step 1:Hugging Faceアカウントとトークン取得
Gemmaはダウンロード前にライセンスへの同意が必要です。Hugging Face(huggingface.co)でアカウントを作成し、google/gemma-4-e4b-itのモデルページで利用規約に同意してください。その後、「Settings → Access Tokens」からトークンを発行します。
Step 2:必要ライブラリのインストール
pip install transformers accelerate bitsandbytes sentencepiece
bitsandbytesは量子化(4bit/8bit)に使用します。VRAMが少ない環境では必須です。
Step 3:モデルのロードと推論
from transformers import AutoTokenizer, AutoModelForCausalLM
import torch
model_id = "google/gemma-4-e4b-it"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
model_id,
device_map="auto", # GPU/CPU自動割り当て
torch_dtype=torch.bfloat16
)
messages = [
{"role": "user", "content": "Pythonでフィボナッチ数列を生成するコードを書いてください"}
]
inputs = tokenizer.apply_chat_template(
messages,
return_tensors="pt",
return_dict=True
).to(model.device)
with torch.no_grad():
outputs = model.generate(
**inputs,
max_new_tokens=512,
do_sample=True,
temperature=0.7
)
response = tokenizer.decode(
outputs[0][inputs["input_ids"].shape[-1]:],
skip_special_tokens=True
)
print(response)
Step 4:4bit量子化でVRAMを節約する
VRAM 8GB未満の環境では、BitsAndBytesによる4bit量子化が有効です。Gemma 4 12B Unifiedモデルの場合、Q4量子化を適用することで単一の12GB GPUに収めることができます。
from transformers import BitsAndBytesConfig
quantization_config = BitsAndBytesConfig(
load_in_4bit=True,
bnb_4bit_compute_dtype=torch.bfloat16,
bnb_4bit_quant_type="nf4",
bnb_4bit_use_double_quant=True
)
model = AutoModelForCausalLM.from_pretrained(
model_id,
quantization_config=quantization_config,
device_map="auto"
)
4bit量子化により、12Bモデルでも約12GB以内のVRAMで動作させることができます。精度の低下は軽微で、多くのタスクでは実用上問題ありません。
【方法3】Google ColabとKaggleでの無料GPU導入
手元にGPUがない場合、Google ColabのT4 GPU(無料枠)またはKaggleのNVIDIA P100で動作確認ができます。
ColabでGemmaを動かす手順
Colabを開き、ランタイム→ランタイムのタイプを変更→T4 GPUを選択します。その後、以下をセルに貼り付けて実行します。
# Hugging Faceへのログイン
from huggingface_hub import notebook_login
notebook_login()
# ライブラリインストール
!pip install -q transformers accelerate bitsandbytes
ログイン後は前述のTransformersコードと同じ手順で動作します。無料枠のT4(VRAM 16GB)ではE4Bモデルをそのまま、12B Unifiedモデルは4bit量子化で動作します。Gemma 4 12B Unifiedの256Kトークン文脈長を活かした長文処理を試す場合は、より大きなメモリを確保できるColab Proの利用も検討してください。
Kaggleでの利用
KaggleはGemma公式のモデルページ(kaggle.com/models/google/gemma)を持っており、Kaggleアカウントで規約同意するとHugging Faceとは独立してモデルを取得できます。Kaggleノートブックにはあらかじめ環境変数が設定されており、より設定が少なく動作します。
【方法4】Google Cloud Vertex AIへの導入
本番APIとして安定稼働させたい場合、Google Cloud Platform(GCP)のVertex AI Model Gardenが最も統合された選択肢です。Vertex AIのほか、Cloud RunやGKEでの本番デプロイも公式にサポートされています。
Vertex AI Model Gardenからのデプロイ手順
from google.cloud import aiplatform
aiplatform.init(project="your-project-id", location="us-central1")
endpoint = aiplatform.Endpoint("YOUR_ENDPOINT_ID")
response = endpoint.predict(
instances=[{
"inputs": "日本のAI規制動向を200字で要約してください",
"parameters": {
"max_new_tokens": 300,
"temperature": 0.7
}
}]
)
print(response.predictions[0])
ファインチューニング:Gemmaを自社データで特化させる
汎用チャットではなく、社内ドキュメント対応・特定ドメインの回答精度向上が目的なら、LoRA(Low-Rank Adaptation)を使ったパラメータ効率的なファインチューニングが実用的です。

TRLライブラリによるLoRAファインチューニングの基本構成
pip install trl peft datasets
from transformers import AutoTokenizer, AutoModelForCausalLM, TrainingArguments
from peft import LoraConfig
from trl import SFTTrainer
from datasets import load_dataset
model_id = "google/gemma-4-e4b"
dataset = load_dataset("json", data_files="your_dataset.jsonl", split="train")
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
model_id,
device_map="auto"
)
lora_config = LoraConfig(
r=16, # ランク:小さいほどパラメータ少
lora_alpha=32,
target_modules=["q_proj", "v_proj"],
lora_dropout=0.05,
task_type="CAUSAL_LM"
)
training_args = TrainingArguments(
output_dir="./gemma-finetuned",
num_train_epochs=3,
per_device_train_batch_size=2,
gradient_accumulation_steps=4,
learning_rate=2e-4,
fp16=True,
save_steps=100
)
trainer = SFTTrainer(
model=model,
train_dataset=dataset,
peft_config=lora_config,
args=training_args,
tokenizer=tokenizer
)
trainer.train()
trainer.save_model("./gemma-finetuned-final")
データセットの形式
SFTTrainer向けの最小限のJSONL形式は以下の通りです:
{"text": "<start_of_turn>user\n質問内容<end_of_turn>\n<start_of_turn>model\n回答内容<end_of_turn>"}
{"text": "<start_of_turn>user\n別の質問<end_of_turn>\n<start_of_turn>model\n別の回答<end_of_turn>"}
Gemmaのチャットテンプレートには専用の特殊トークン(<start_of_turn>/<end_of_turn>)を使用します。tokenizer.apply_chat_template()を使うと自動的に整形されるため、本番コードではこちらを推奨します。
llama.cppによるCPU推論と量子化モデルの活用
GPU非搭載のサーバーやエッジ環境では、llama.cppを使ったCPU推論も選択肢になります。GGUFフォーマットに変換された量子化済みGemma 4モデルが、Hugging Faceの各種コミュニティから公開されています。
# llama.cppのビルド(Linux/Mac)
git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp
make -j4
# GGUFモデルのダウンロード後、推論実行
./llama-cli \
-m gemma-4-e4b-it-Q4_K_M.gguf \
--chat-template gemma \
-p "日本語で自己紹介をしてください" \
-n 256
量子化方式の目安は次の通りです。Gemma 4 12B UnifiedをQ4_K_M量子化した場合、単一12GB GPUまたは十分なRAMを持つCPU環境で動作します。
| 量子化方式 | 容量(E4B比較) | 精度影響 | 推奨用途 |
|---|---|---|---|
| Q8_0 | 約4.4GB | ほぼなし | GPU推論・高精度優先 |
| Q4_K_M | 約2.5GB | 軽微 | CPU推論の標準推奨 |
| Q4_K_S | 約2.3GB | やや低下 | メモリ制限環境 |
| Q2_K | 約1.6GB | 明確に低下 | 超低メモリ・動作確認のみ |
よくあるエラーと対処法
エラー①:CUDA out of memory
原因:モデルがGPUメモリに収まらない。
対処:4bit量子化(BitsAndBytesConfig)を適用するか、device_map="auto"でCPUとGPUに分散させます。Gemma 4 12B Unifiedの場合はQ4量子化により12GB GPUへの収容が可能です。それでも不足する場合はmax_memoryパラメータで各デバイスの上限を明示します。
model = AutoModelForCausalLM.from_pretrained(
model_id,
device_map="auto",
max_memory={0: "8GiB", "cpu": "16GiB"}
)
エラー②:Access to model google/gemma-4-e4b-it is restricted
原因:Hugging Faceのライセンス同意が未完了、またはトークンが未設定。
対処:モデルページで規約に同意し、環境変数またはhf_loginでトークンを設定します。
from huggingface_hub import login
login(token="hf_xxxxxxxxxxxxxxxx")
エラー③:tokenizer does not have a pad token
原因:Gemmaのトークナイザーはデフォルトでpad_tokenが未設定。
対処:明示的に設定します。
tokenizer.pad_token = tokenizer.eos_token
# またはモデルの設定も合わせる
model.config.pad_token_id = tokenizer.eos_token_id
エラー④:Ollamaで「model not found」
原因:モデル名の表記違い。Ollamaのモデル名はすべて小文字で、タグ(:e4b等)の付け方に注意が必要。
対処:ollama listで正確な名前を確認し、ollama pull gemma4でタグなしの最新版を取得します。
日本語性能を高めるための実践的なプロンプト設計
Gemma 4は140言語超への対応を引き継いでおり、日本語タスクでの動作も安定しています。ただし英語中心の学習データに由来する精度差が生じる場合があるため、以下の工夫で応答品質をさらに高めることができます。
- 言語を明示する:「日本語で回答してください」を末尾または冒頭に添付する
- systemプロンプトを活用する:itモデルではsystemロールが標準対応しており、一貫した口調・知識領域への誘導が可能
- Few-shotサンプルを入れる:特殊な出力フォーマット(JSON/表形式)が必要な場合は例を提示する
- temperatureを調整する:事実確認タスクは0.1〜0.3、創作は0.7〜1.0を目安にする
- 繰り返しペナルティを設定する:
repetition_penalty=1.1前後で同一フレーズの反復を抑制できる - 長文脈を活用する:Gemma 4の中型モデル(12B/26B/31B)は最大256Kトークンの文脈長をサポートするため、長い参照文書やチャット履歴をそのまま渡すRAG構成でも効果的に動作する

マルチモーダル対応:Gemma 4の画像・動画・音声入力
Gemma 4は全バリアントにおいてネイティブ・マルチモーダル(テキスト・画像・動画・音声)入力に対応しており、画像キャプション生成・視覚的な質問応答(VQA)・図表の内容説明といった用途に活用できます。特に12B Unified(エンコーダフリー)は256Kトークンの長文脈と組み合わせることで、複数画像や長尺動画を含む複雑な入力にも対応可能です。
from transformers import AutoProcessor, AutoModelForImageTextToText
from PIL import Image
model_id = "google/gemma-4-12b-it"
processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForImageTextToText.from_pretrained(
model_id,
device_map="auto"
)
image = Image.open("chart.png")
messages = [
{
"role": "user",
"content": [
{"type": "image", "image": image},
{"type": "text", "text": "このグラフの内容を日本語で説明してください"}
]
}
]
inputs = processor.apply_chat_template(
messages,
return_tensors="pt",
return_dict=True
).to(model.device)
outputs = model.generate(**inputs, max_new_tokens=300)
print(processor.decode(outputs[0], skip_special_tokens=True))
まとめ
Gemmaの導入方法は、目的と環境によって最適なルートが異なります。最速で動かしたいならOllamaのollama run gemma4:e4b一行、柔軟な制御が必要ならHugging Face Transformers、GPUなしならllama.cppのGGUF量子化モデル、本番API化にはVertex AIが現実的な選択肢です。
現行世代であるGemma 4の主な特徴を整理すると、テキスト・画像・動画・音声のネイティブ・マルチモーダル入力に全バリアントで対応、中型モデル(12B/26B/31B)は最大256Kトークンの長文脈処理、140言語超への対応、12B UnifiedモデルはQ4量子化で単一12GB GPUに収まる、そしてApache 2.0ライセンスで特別契約なしに商用利用・再配布が可能という5点が実用上の大きな強みです。また、ライセンス同意はHugging FaceとGoogle独立で必要、日本語精度はプロンプト設計で改善できる、ファインチューニングはLoRA+TRLで低コストに実現できるという点も導入成功の鍵です。まずはOllamaでローカル動作を確認し、要件が固まった段階でクラウドやファインチューニングへとステップアップする流れを推奨します。
関連記事
- gemma vs llama 比較
- gemma api 使い方
- gemma 日本語 性能
- gemma ファインチューニング 方法
- gemma 使い方
- gemma とは(総合ガイド)
- gemma 料金
- gemma 比較
参考文献
Study about AI
AIについて学ぶ
-
Meta インド データセンター AIインフラ——Reliance 168MW契約の深層と日本企業の実務対応
監修 河合 継(クリスタルメソッド株式会社 代表取締役) AI・ディープラーニングに関する特許16件の発明者。過去、国立がん研究センターとの共同研究や、テレビ番...
-
ワーナー Sureel AI 音楽 著作権——買収の意味と日本企業への示唆
監修 河合 継(クリスタルメソッド株式会社 代表取締役) AI・ディープラーニングに関する特許16件の発明者。過去、国立がん研究センターとの共同研究や、テレビ番...
-
Vector Lakebase ベクターDB RAG——Zillizが示す統合AIデータ基盤の論点
監修 河合 継(クリスタルメソッド株式会社 代表取締役) AI・ディープラーニングに関する特許16件の発明者。過去、国立がん研究センターとの共同研究や、テレビ番...