Gemma 4ファインチューニングガイド
GoogleのGemma 4をUnslothで学習しましょう。
Google の Gemma 4 12B、E2B、E4B、26B-A4B、および31Bを Unsloth。Unsloth は Gemma 4 のすべてのビジョン、テキスト、音声、RL のファインチューニングをサポートします。
Unsloth は Gemma 4 を 約1.5倍高速 で VRAMを約60%削減 FA2 構成よりも(精度低下なし)
私たちは多くの汎用的な Gemma 4 の学習に関するバグを修正しました (Unsloth 由来ではありません)。
Gemma 4 E2B は 8GB VRAM。E4B には 10GB VRAM が必要です。
Gemma 4 をファインチューニングする 私たちの 無料の Google Colab ノートブック:
私たちの UI で Gemma 4 を無料で実行・学習できます Unsloth Studio✨ ノートブック:
さらに ノートブックはこちら.
Gemma 4 は次でも学習できます 強化学習 (RL)を 9GB VRAM で。
Gemma 4 E2B LoRA は 8〜10GB VRAM で動作します。E4B LoRA には 17GB VRAM が必要です。
31B QLoRA は 22GB で動作し 、26B-A4B LoRA には 40GB 超が必要です
エクスポート/モデルを GGUF などに保存すること および フルファインチューニング (FFT) も可能です。
🐛 バグ修正 + ヒント
もし Gemma-4 E2B と E4B の loss が 13〜15 であっても、これはまったく正常です — これはマルチモーダルモデルによくある挙動です。Gemma-3N、Llama Vision、Mistral の vision モデルなどでも起こりました。
Gemma 26B と 31B は loss が 1〜3 かそれ以下で低めになります。ビジョンでは 2 倍高くなるので 3〜5 になります
🍇勾配蓄積によって loss が水増しされることがあります


loss が 13〜15 より高い(100 や 300 など)場合、たいていは勾配蓄積が正しく考慮されていません — 私たちは これを Unsloth と Unsloth Studio の一部として修正しました。
勾配蓄積について詳しくは、勾配蓄積のバグ修正ブログをご覧ください: https://unsloth.ai/blog/gradient
⁉️Gemma-4 31B と 26B-A4B の推論での IndexError
31B と 26B で推論を行うと、このエラーが表示されることがあります:
原因は以下です:
Gemma-4 31B と 26B-A4B には num_kv_shared_layers = 0。Python では、 -0 == 0なので layer_types[:-0] は layer_types[:0] == []。キャッシュは 0 個のレイヤースロットで構築され、最初の attention の forward が以下でクラッシュします Cache.update.
⛔ use_cache = True E2B、E4B の生成は意味不明でした
use_cache = True E2B、E4B の生成は意味不明でした次の issue を参照: "[Gemma 4] use_cache=False が attention 計算を壊し、ゴミの logits を生成する #45242"
Gemma-4 E2B と E4B はレイヤー間で KV 状態を共有します(num_kv_shared_layers = 20 および 18)。キャッシュは、初期レイヤーが KV を保存し、後続レイヤーが再利用する唯一の場所です。 use_cache=False (すべての QLoRA チュートリアルが設定するように、また gradient_checkpointing=True が強制するように)、 Gemma4TextModel.forward キャッシュ構築がスキップされ、そのため KV 共有レイヤーは現在の隠れ状態からローカルに K と V を再計算する処理に落ちます。logits は壊れ、学習 loss は発散します。
修正前(unsloth/gemma-4-E2B-it、プロンプト「1+1 は?」):
修正後:
📻音声の float16 オーバーフロー
Gemma4AudioAttention で使用します config.attention_invalid_logits_value = -1e9 の masked_fill 呼び出しで。fp16(Tesla T4)では、-1e9 が fp16 の最大値 65504 をオーバーフローし、次を引き起こします:
原因は self.config.attention_invalid_logits_value :
💡Gemma-4 のヒント
もし 推論能力を維持したい 場合は、推論スタイルの例と直接回答を混ぜることができます(推論を最低 75% に保ってください)。そうでなければ、完全にそのまま出力しても構いません。 使用するのは
gemma-4です。思考なしのチャットテンプレートにはgemma-4-thinking思考版を使ってください。大きい 26B と 31B には思考版、小さいものには思考なし版を使います。思考モードを有効にするには
enable_thinking = True / Falseでtokenizer.apply_chat_template思考有効:
次を出力します
<bos><|turn>system\n<|think|><turn|>\n<|turn>user\n2+2 は何ですか?<turn|>\n<|turn>model\n思考無効:
次を出力します
<bos><|turn>user\n2+2 は何ですか?<turn|>\n<|turn>model\n<|channel>thought\n<channel|>Gemma 4 は140言語をサポートしており、多言語ファインチューニングに強力です。
学習することを推奨します E4B QLoRA ではなく E2B LoRA E4B のほうが大きく、量子化精度の差はごくわずかだからです。Gemma 4 E4B LoRA はさらに優れています。
ファインチューニング後は、次へエクスポートできます GGUF (llama.cpp/Unsloth/Ollama など用)
⚡クイックスタート
🦥 Unsloth Studio ガイド
Gemma 4 は次で実行・ファインチューニングできます Unsloth Studio、ローカル AI 向けの新しいオープンソース Web UI です。
Unsloth Studio なら、モデルをローカルで次の環境で実行できます MacOS、Windows、Linux 上で NVIDIA GPU を使って学習できます。Intel、MLX、AMD の学習サポートも今月中に登場予定です。

🦥 Unsloth Core(コードベース)ガイド
Gemma 4 用の無料ノートブックを作成しました:
また、強化学習(RL)用にも作成しました: E2B (RL GRPO)
より大きな Gemma 4 モデル用のノートブックもありますが、A100 が必要です:
Gemma-4-26B-A4B - A100 GPU
Gemma-4-31B - A100 GPU
以下は独立した Gemma-4-26B-A4B-it のテキスト SFT レシピです。これはテキストのみです — 詳しくは ビジョンのファインチューニング セクションも参照してください。
OOM が発生したら:
下げる
per_device_train_batch_sizeを 1 にし、必要に応じてmax_seq_length.を維持する
use_gradient_checkpointing="unsloth"をオンにします(VRAM使用量を減らし、コンテキスト長を伸ばすために設計されています)。
MoE(bf16 LoRA)用の読み込み例:
読み込んだら、LoRAアダプタを追加し、上のSFT例と同様に学習します。
強化学習(RL)
これで Gemma 4 を RL、GSPO、GRPO などで学習できるようになりました。 無料ノートブック.
Gemma 4 E2B RL は 9GB で動作します。
このノートブックの目的は、Gemma 4 に Sudoku パズルの解き方を学習させることです。 GRPO.
モデルは空白マスを埋める戦略を考案し、正しい配置や有効なパズルの完成に対して報酬を与えます。
vLLM ではサポートされていませんが、次の設定にすることで Unsloth で Gemma 4 RL を実行できます。 fast_inference=False モデルを読み込むときに:

MoEファインチューニング(26B-A4B)
この 26B-A4B モデルは、Gemma 4 ラインナップの中で速度と品質の中間にあたります。これは MoE モデルで、トークンごとに有効になるパラメータが一部だけなので、保守的なファインチューニング方法は次のとおりです:
使う LoRA を、フルファインチューニングではなく
優先する 16-bit / bf16 LoRA もしメモリに余裕があるなら
まずは短いコンテキストと小さいランクから始める
パイプラインが安定してからのみ拡張する
最高品質を目指し、さらにメモリに余裕があるなら、代わりに 31B を使ってください。
マルチモーダルファインチューニング(E2B / E4B)
なぜなら E2B および E4B サポート 画像 および 音声に対応しているため、これらがマルチモーダルファインチューニング向けの主な Gemma 4 バリアントです。
マルチモーダルモデルを
FastVisionModelで読み込み、
finetune_vision_layers = Falseをまず言語、アテンション、MLP レイヤーだけをファインチューニングする
必要に応じて後から vision か audio レイヤーを有効にする
Gemma 4 マルチモーダル LoRA の例:
画像の例の形式
覚えておいてください:Gemma 4 のマルチモーダルプロンプトでは、画像を 先に その後にテキスト指示を置きます。
音声の例の形式
音声は E2B / E4B のみです。クリップは短く、タスクに特化したものにしてください。
ファインチューニング済みモデルの保存 / エクスポート
特定の推論 / デプロイガイドは以下で確認できます。 Unsloth Studio, llama.cpp, vLLM, llama-server, Ollama または SGLang.
GGUF に保存
Unsloth は直接 GGUF へ保存することをサポートしています:
または、GGUF を Hugging Face にプッシュします:
エクスポートしたモデルが別のランタイムで悪化する場合、Unsloth は最も一般的な原因を次のように示します: 推論時のチャットテンプレート / EOS トークンの誤り (学習時と同じチャットテンプレートを使う必要があります)。
詳細は推論ガイドをご覧ください:
Gemma 4 のデータに関するベストプラクティス
Gemma 4 には、覚えておくべきフォーマット上の注意点がいくつかあります。
1. 標準のチャットロールを使う
Gemma 4 は標準の
systemuserassistant
これは、SFT データセットを古い Gemma 固有のロール形式ではなく、通常のチャット形式で記述するべきことを意味します。
2. Thinking モードは明示的
SFT 中に思考スタイルの挙動を保持したい場合:
形式を一貫させる
次のどちらで学習するかを決める 表示される思考ブロック または 最終回答のみ
する しない 互換性のない複数の思考形式を同じデータセットで混ぜない
ほとんどの本番アシスタントでは、最も簡単な構成は 最終的に表示される回答のみ.
3. マルチターンのルール
マルチターン会話では、会話履歴には 最後に表示される回答 だけを残します。以前の しない 思考ブロックを後続のターンに再度入力しないでください。
最終更新
役に立ちましたか?




