blog

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アカウントでのアクセス申請が必須です。以下の流れで進めます。

  1. Hugging Faceアカウントを作成・ログインする(無料)。
  2. 対象モデルのリポジトリページ(例:google/gemma-4-12b-it)にアクセスし、「Acknowledge license and Access repository」ボタンをクリックしてGoogleの利用規約に同意する。
  3. Hugging FaceのSettings → Access TokensからREAD権限のトークンを発行する。
  4. 実行環境(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)による最小コスト構成を示します。

Step 1
データセット準備
JSONL形式
messages形式推奨
Step 2
4bitロード
BitsAndBytesConfig
設定
Step 3
LoRAアダプタ設定
peft.LoraConfig
r=16, alpha=32
Step 4
SFTTrainerで学習
trl.SFTTrainer
実行
Step 5
アダプタ保存
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=2gradient_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_hubInferenceClientを使います。


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等)と照らし合わせて選定することを推奨します。
Hugging Face上でGemmaのコミュニティ派生モデルが分岐・公開されているイメージ
Hugging Face上でGemmaのコミュニティ派生モデルが分岐・公開されているイメージ

実務での使い分けパターン

複数の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比較も参考にしてください。

関連記事

参考文献

    AIブログ購読

     
    クリスタルメソッドがお届けする
    AIブログの更新通知を受け取る

    Study about AI

    AIについて学ぶ

    • Meta インド データセンター AIインフラ——Reliance 168MW契約の深層と日本企業の実務対応

      Meta インド データセンター AIインフラ——Reliance 168MW契約の深層と日本企業の実務対応

      監修 河合 継(クリスタルメソッド株式会社 代表取締役) AI・ディープラーニングに関する特許16件の発明者。過去、国立がん研究センターとの共同研究や、テレビ番...

    • ワーナー Sureel AI 音楽 著作権——買収の意味と日本企業への示唆

      ワーナー Sureel AI 音楽 著作権——買収の意味と日本企業への示唆

      監修 河合 継(クリスタルメソッド株式会社 代表取締役) AI・ディープラーニングに関する特許16件の発明者。過去、国立がん研究センターとの共同研究や、テレビ番...

    • Vector Lakebase ベクターDB RAG——Zillizが示す統合AIデータ基盤の論点

      Vector Lakebase ベクターDB RAG——Zillizが示す統合AIデータ基盤の論点

      監修 河合 継(クリスタルメソッド株式会社 代表取締役) AI・ディープラーニングに関する特許16件の発明者。過去、国立がん研究センターとの共同研究や、テレビ番...

    View more