blog
AIブログ
GemmaをHugging Faceで使う|モデルのダウンロードと実行手順【2026年版】
監修
河合 継(クリスタルメソッド株式会社 代表取締役)
AI・ディープラーニングに関する特許16件の発明者。過去、国立がん研究センターとの共同研究や、テレビ番組でのAI解説実績を持つAI研究者として、AIの研究開発を主導している。
運営会社について | 編集方針
GemmaをHugging Faceで使う:ダウンロードから推論・ファインチューニングまで完全ガイド
Googleが公開したオープンウェイトモデル「Gemma」は、Hugging Face上で最も手軽にアクセスできる形で配布されています。transformersライブラリとの統合が深く、ゲート付きリポジトリの認証さえ通れば、数行のコードで推論・ファインチューニング・量子化まで一気通貫で実施できる点が大きな魅力です。本記事では、Hugging Faceを経由したGemmaの取得方法から実際の推論コード、LoRAによるファインチューニング、量子化による軽量化まで、実務で検証してきた知見をもとに具体的に解説します。Gemmaの基本概要についてはGemmaとはを、料金体系はGemma料金を、他モデルとの比較はGemma比較をあわせてご覧ください。
Hugging Face上のGemmaリポジトリ構成
Gemmaはゲート付きモデル(Gated Model)として配布されており、利用にはGoogleの利用規約への同意が必要です。現行世代はGemma 4(2026年3月31日リリース)で、Apache 2.0ライセンスでの提供(Gemma世代で初)となっています。モデルファミリーは下表のとおりで、エッジ向け軽量モデルから高性能な大型モデルまで幅広いスケールが揃っています。
| リポジトリ名(Hugging Face) | パラメータ数 | 種別 | 主な用途 |
|---|---|---|---|
| google/gemma-4-e2b-it | E2B(実効2B) | インストラクト(マルチモーダル) | モバイル・エッジ・ブラウザ推論 |
| google/gemma-4-e4b-it | E4B(実効4B) | インストラクト(マルチモーダル) | エッジ・軽量チャット |
| google/gemma-4-12b-it | 12B Unified | インストラクト(マルチモーダル主力) | 画像・動画・音声+テキスト解析 |
| google/gemma-4-26b-a4b-it | 26B A4B(MoE) | インストラクト(MoE) | 高スループット推論 |
| google/gemma-4-31b-it | 31B Dense | インストラクト | 最大級・高精度推論(サーバ〜ローカル) |
Gemma 4世代ではネイティブ・マルチモーダル(テキスト・画像・動画・音声)に全モデルが対応しており、コンテキストウィンドウはE2B/E4Bが128K、12B/26B/31Bが256Kです。どのモデルを選ぶかは推論環境のVRAM量と用途で決まります。実務では「まずE4B-itで動作確認→精度不足なら12B-itへスケールアップ」という順序が効率的です。
なお、Gemma 3以前の世代(Gemma 3の1B/4B/12B/27Bなど)はモデルカードが残っていますが、現行の主力はGemma 4です。また、旧世代はApache 2.0ではなく独自の「Gemma Terms of Use」で提供されていた点に注意してください。
Hugging Faceでのアクセス申請と認証手順
ゲート付きモデルであるため、ダウンロード前にHugging Faceアカウントでのアクセス申請が必須です。以下の流れで進めます。
- Hugging Faceアカウントを作成・ログインする(無料)。
- 対象モデルのリポジトリページ(例:
google/gemma-4-12b-it)にアクセスし、「Acknowledge license and Access repository」ボタンをクリックしてGoogleの利用規約に同意する。 - Hugging FaceのSettings → Access TokensからREAD権限のトークンを発行する。
- 実行環境(Colab・ローカル・クラウドVM)で
huggingface_hubライブラリを使ってログインする。
申請は通常即時承認されます。Colabで実行する場合はSecretsにトークンを登録しておくと安全です。
pip install -U transformers huggingface_hub accelerate bitsandbytes
from huggingface_hub import login
login(token="hf_xxxxxxxxxxxxxxxxxxxx") # SecretsやEnv変数から取得推奨
詳細なセットアップ手順(環境構築・依存パッケージの整合性確認など)はGemma導入ガイドでまとめています。
transformersを使った基本推論
認証が通ればあとはHugging FaceのPipelineまたはAutoModelForCausalLMで直接ロードできます。ここでは最も汎用性が高いpipelineAPI経由と、細かい制御が可能な低レベルAPIの両方を示します。
pipelineによるシンプルな推論
from transformers import pipeline
import torch
pipe = pipeline(
"text-generation",
model="google/gemma-4-12b-it",
device_map="auto",
torch_dtype=torch.bfloat16,
)
messages = [
{"role": "user", "content": "日本語でRAGシステムの概要を200字で説明してください。"}
]
output = pipe(messages, max_new_tokens=300, do_sample=False)
print(output[0]["generated_text"][-1]["content"])
device_map="auto"を指定することでGPUが複数あれば自動的にシャーディングされます。torch_dtype=torch.bfloat16はメモリ削減と精度のバランスが良く、A100・H100では特に安定しています。V100などbfloat16非対応GPUではtorch.float16に変更してください。
AutoTokenizer / AutoModelForCausalLMによる低レベルAPI
from transformers import AutoTokenizer, AutoModelForCausalLM
import torch
model_id = "google/gemma-4-12b-it"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
model_id,
device_map="auto",
torch_dtype=torch.bfloat16,
)
chat = [
{"role": "user", "content": "ベクトルDBとRDBの違いを教えてください。"}
]
prompt = tokenizer.apply_chat_template(chat, tokenize=False, add_generation_prompt=True)
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
with torch.inference_mode():
outputs = model.generate(**inputs, max_new_tokens=512, temperature=0.7, do_sample=True)
decoded = tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:], skip_special_tokens=True)
print(decoded)
ポイント:apply_chat_templateの使用が重要です。Gemmaのインストラクトモデルは<start_of_turn>user/<end_of_turn>という独自のチャットテンプレートを使っており、これを適用しないと応答品質が著しく落ちます。低レベルAPIで実装する際も必ずトークナイザーのテンプレートを通すようにしてください。
VRAM要件と量子化による軽量化
実務でよく問題になるのがVRAMの制約です。bfloat16でロードした場合のモデルサイズ目安と、必要GPUを下表に示します。
| モデル | bfloat16サイズ目安 | 推奨GPU(最低) | 量子化後(4bit) |
|---|---|---|---|
| Gemma 4 E2B | 約4GB | RTX 3060(8GB) | 約1.5GB |
| Gemma 4 E4B | 約8GB | RTX 3080(10GB)以上 | 約3GB |
| Gemma 4 12B | 約24GB | RTX 4090(24GB) | 約8GB |
| Gemma 4 26B A4B(MoE) | アクティブ重みは軽量 | RTX 3090(24GB)以上 | 約8GB(MoE構造による) |
| Gemma 4 31B | 約62GB | A100 80GB×1 or 40GB×2 | 約18GB |
リソースが限られる場合はBitsAndBytes(NF4/4bit量子化)を使ってメモリ消費を大幅に削減できます。Hugging FaceのBitsAndBytesConfigと組み合わせるコードは以下のとおりです。
from transformers import AutoModelForCausalLM, BitsAndBytesConfig
import torch
bnb_config = BitsAndBytesConfig(
load_in_4bit=True,
bnb_4bit_quant_type="nf4",
bnb_4bit_compute_dtype=torch.bfloat16,
bnb_4bit_use_double_quant=True,
)
model = AutoModelForCausalLM.from_pretrained(
"google/gemma-4-31b-it",
quantization_config=bnb_config,
device_map="auto",
)
4bit量子化でも精度の低下は限定的で、実務上の文書要約・Q&Aタスクでは8bit量子化とほぼ同等のスコアを確認しています。RTX 3090(24GB)単体でGemma 4 31Bを動かしたい場合、4bit量子化が現実的な唯一の選択肢です。

Hugging Face上でのGemmaファインチューニング(LoRA / QLoRA)
GemmaはHugging Faceのtrlライブラリ(SFTTrainer)とpeftライブラリ(LoRA/QLoRA)に完全対応しており、数百件規模のデータセットから独自タスクへの特化が可能です。以下ではQLoRA(4bit量子化+LoRA)による最小コスト構成を示します。
データセット準備
JSONL形式
messages形式推奨
4bitロード
BitsAndBytesConfig
設定
LoRAアダプタ設定
peft.LoraConfig
r=16, alpha=32
SFTTrainerで学習
trl.SFTTrainer
実行
アダプタ保存
Hugging Faceへ
push or ローカル保存
LoraConfigとSFTTrainerの設定例
from peft import LoraConfig, get_peft_model
from trl import SFTTrainer, SFTConfig
from transformers import TrainingArguments
lora_config = LoraConfig(
r=16,
lora_alpha=32,
target_modules=["q_proj", "k_proj", "v_proj", "o_proj"],
lora_dropout=0.05,
bias="none",
task_type="CAUSAL_LM",
)
training_args = SFTConfig(
output_dir="./gemma-finetuned",
num_train_epochs=3,
per_device_train_batch_size=2,
gradient_accumulation_steps=8,
learning_rate=2e-4,
bf16=True,
logging_steps=10,
save_strategy="epoch",
max_seq_length=2048,
)
trainer = SFTTrainer(
model=model, # 4bitロード済みモデル
args=training_args,
train_dataset=dataset,
peft_config=lora_config,
processing_class=tokenizer,
)
trainer.train()
trainer.save_model()
実務上のハマりポイント:
target_modulesはモデルによって異なります。Gemma 4では上記4モジュールが一般的ですが、print(model)でアーキテクチャを確認してから設定してください。- 日本語データでファインチューニングする場合、データセットは必ず
apply_chat_template済みのプロンプト形式に統一します。そうしないとチャットテンプレートの崩れが起きて性能が出ません。 - RTX 3090(24GB)でGemma 4 12B QLoRAを回す際、
per_device_train_batch_size=2+gradient_accumulation_steps=8(実質batch=16)が安定設定でした。OOMが発生する場合はまずbatch_sizeを1に落とし、accumulation_stepsを増やすことで対処できます。
Hugging Face InferenceAPIとServerless推論
ローカルGPUがなくてもHugging FaceのServerless Inference API経由でGemmaを試せます。ただし大型モデル(31B等)は無料枠では動かせないケースが多く、Dedicated Endpointの利用が必要になります。
| 方式 | 特徴 | 向いているケース |
|---|---|---|
| Serverless Inference API | 無料枠あり・コールドスタートあり・小型モデル向け | PoC・デモ・軽量モデルの試験 |
| Dedicated Endpoint | 専有インスタンス・レイテンシ安定・大型モデル対応 | 本番API・SLAが必要な用途 |
| Hugging Face Spaces(ZeroGPU) | GradioデモをGPUで動かせる・共有GPUプール | デモ公開・社内プロトタイプ |
| Google Colab + HF Hub | T4 GPUでE4B〜12B程度まで動作可・無料枠あり | 個人検証・学習コード開発 |
Serverless Inference APIのコードはhuggingface_hubのInferenceClientを使います。
from huggingface_hub import InferenceClient
client = InferenceClient(
model="google/gemma-4-12b-it",
token="hf_xxxxxxxxxxxxxxxxxxxx",
)
result = client.chat_completion(
messages=[{"role": "user", "content": "LLMとは何ですか?"}],
max_tokens=300,
)
print(result.choices[0].message.content)
Hugging Face上のコミュニティ派生モデルの活用
Hugging Faceには公式Googleモデルに加え、コミュニティによるファインチューニング済みモデルが多数公開されています。日本語特化・医療ドメイン特化など、目的に合ったモデルを探す際は「gemma」でのモデル検索とライセンス確認が重要です。
- ライセンス:Gemma 4はApache 2.0ライセンスが採用されており、ライセンス費用や特別許諾なしで商用利用・ファインチューニング後の再配布が可能です。一方、Gemma 3以前の派生モデルは独自の「Gemma Terms of Use」が引き継がれる点に注意し、商用利用前にライセンス条項を必ず確認してください。
- GGUF形式:
llama.cppで動かしたい場合、コミュニティメンバーがGGUFに変換したモデルをHugging Faceに公開しています。CPU推論・ローカル完結環境で有効です。 - マージモデル:MergeKitを使ったモデルマージ派生物も多く存在しますが、品質にばらつきがあるため、公式ベンチマーク指標(Open LLM Leaderboard等)と照らし合わせて選定することを推奨します。

実務での使い分けパターン
複数のGemmaモデルをHugging Face経由で実運用してきた中で、用途別に以下のパターンが有効でした。
| 用途 | 推奨モデル | 実行環境 | ポイント |
|---|---|---|---|
| 社内ドキュメントQ&A(RAG) | Gemma 4 12B-IT | RTX 4090 bfloat16 | 256Kコンテキストで長文書類も一括処理可能 |
| エッジデバイス・低コスト推論 | Gemma 4 E2B-IT / E4B-IT | CPU or RTX 3060 | 4bit量子化でさらに小型化可能。128Kコンテキスト対応 |
| 画像+テキスト解析 | Gemma 4 12B-IT | RTX 4090(24GB) | ネイティブ・マルチモーダル(テキスト・画像・動画・音声)対応 |
| ドメイン特化ファインチューニング | Gemma 4 12B(ベース) | A100 40GB QLoRA | ITモデルよりベースの方が特化用途に柔軟 |
| 高精度・最大性能 | Gemma 4 31B-IT | A100 80GB | 256Kコンテキストで長文書類の一括処理に最適 |
バーチャルヒューマン・対話エージェントの用途では、レスポンス速度が体験に直結するため、まずE4B-ITで応答速度を計測し、精度要件を満たさない場合にのみ12B-ITへアップグレードするという段階的なアプローチが総コストを抑えられます。
まとめ
GemmaをHugging Faceで活用するうえでの要点を整理します。
- アクセス申請はHugging Faceのゲート承認+トークン発行で完結。基本的に即時承認。
- 推論は
pipelineAPIで最短数行。apply_chat_templateの適用を忘れずに。 - 量子化(4bit BitsAndBytes)でVRAMを1/4程度に圧縮でき、RTX 3090で31Bも動かせる。
- ファインチューニングはQLoRA+SFTTrainerで低リソース環境でも実施可能。target_modulesとデータ形式の整合が品質のカギ。
- モデル選択はVRAM・用途・日本語要件で決める。E4B→12Bの段階的スケールアップが実務的。
- Gemma 4世代は全モデルがネイティブ・マルチモーダル対応(テキスト・画像・動画・音声)。中型以上は256Kコンテキストで活用シーンが大きく広がっている。
- Gemma 4はApache 2.0ライセンスを採用し、商用利用・派生モデルの再配布が自由化された。
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件の発明者。過去、国立がん研究センターとの共同研究や、テレビ番...