For the complete documentation index, see llms.txt. This page is also available as Markdown.

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倍高速 で 約60% 少ない VRAM FA2 構成よりも(精度低下なし)

  • 多くの共通 Gemma 4 学習におけるバグを修正しました (Unsloth 由来ではありません)。

  • Gemma 4 E2B は 8GB VRAM。E4B には 10GB VRAM が必要です。

クイックスタートバグ修正 + ヒント

Gemma 4 をファインチューニングする 私たちの 無料の Google Colab ノートブック:

Gemma 4 は、私たちの UI で無料で実行・学習できます。 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) でも動作します。

🐛 バグ修正 + ヒント

🍇勾配蓄積によって損失が大きく見える場合があります

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 では生成が意味不明でした

問題を参照: 「[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 gradient_checkpointing=True によって強制されます) Gemma4TextModel.forward はキャッシュの構築をスキップするため、KV 共有レイヤーは現在の隠れ状態から K と V をローカルに再計算する処理に落ちます。logits はめちゃくちゃになり、学習損失は発散します。

修正前(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 のヒント

  1. もし 推論能力を維持したいなら 、推論スタイルの例と直接回答を混ぜることができます(推論を最低 75% は維持してください)。そうしない場合は完全に出力しても構いません。 使用するのは gemma-4 推論なしの chat template には gemma-4-thinking 推論ありのバリアントに使用します。 大きい 26B と 31B には推論ありを、小さいものには推論なしを使用してください。

  2. 推論モードを有効にするには 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|>

  3. Gemma 4 は 140 言語に対応しているため、多言語ファインチューニングに強力です。

  4. 学習するなら E4B QLoRA よりも E2B LoRA E4B の方が大きく、量子化精度の差はごくわずかだからです。Gemma 4 E4B LoRA はさらに優れています。

  5. ファインチューニング後は GGUF (llama.cpp/Unsloth/Ollama など用)

⚡ クイックスタート

🦥 Unsloth Studioガイド

Gemma 4 は Unsloth Studio私たちの新しいローカル AI 向けオープンソース Web UI で実行・ファインチューニングできます。

Unsloth Studio を使えば、モデルをローカルで MacOS、Windows、Linux 上で実行し、NVIDIA GPU で学習できます。Intel、MLX、AMD の学習サポートも今月中に対応予定です。

1

Unslothをインストール

ターミナルで実行:

MacOS、Linux、WSL:

Windows PowerShell:

2

Unslothを起動

MacOS、Linux、WSL、Windows:

その後、 http://localhost:8888 をブラウザで開いてください。

3

Gemma 4 を学習する

初回起動時には、アカウントを保護するためのパスワードを作成し、後で再度サインインする必要があります。その後、モデル、データセット、基本設定を選ぶ簡単なオンボーディングウィザードが表示されます。いつでもスキップできます。

検索バーで Gemma 4 を検索し、希望するモデルとデータセットを選択します。次に、ハイパーパラメータとコンテキスト長を必要に応じて調整します。

4

学習の進捗を監視する

学習開始をクリックすると、モデルの学習進捗を監視・確認できるようになります。学習損失は着実に減少しているはずです。 完了すると、モデルは自動的に保存されます。

5

ファインチューニングしたモデルをエクスポートする

完了すると、Unsloth Studio でモデルを GGUF、safetensor などの形式にエクスポートできます。

6

ファインチューニング済みモデルと元モデルを比較する

クリックして 比較モード すると、LoRA アダプターと元モデルを比較できます。

🦥 Unsloth Core(コードベース)ガイド

Gemma 4 用の無料ノートブックを用意しました:

そして、強化学習(RL)向けには: E2B (RL GRPO)

より大きい Gemma 4 モデル向けのノートブックも用意しましたが、A100 が必要です:

Gemma-4-26B-A4B — A100 GPU

Gemma-4-31B — A100 GPU

もし GRPO、高速 vLLM 推論を無効にして Unsloth 推論を使えば、Unsloth で動作します。私たちの Vision RL ノートブックの例に従ってください。

以下は単体の 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ビット / bf16 LoRA メモリが許すなら

  • まずは短いコンテキストと小さな rank から始める

  • パイプラインが安定してから拡張する

最高品質を目指していて、より多くのメモリがあるなら、代わりに 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 では標準の以下を使います:

  • system

  • user

  • assistant

つまり、SFT データセットは古い Gemma 固有のロール形式ではなく、通常のチャット形式で記述する必要があります。

2. thinking モードは明示的です

SFT 中に thinking スタイルの振る舞いを保持したい場合:

  • 形式を一貫させる

  • どちらを学習対象にするか決める 表示される思考ブロック または 最終回答のみ

  • して はいけません 互換性のない複数の思考形式を同じデータセットで混在させる

多くの本番用アシスタントでは、最も簡単な設定は次のものだけをファインチューニングすることです: 最終的に表示される回答のみ.

3. マルチターンのルール

マルチターン会話では、次のものだけを残します: 最終的に表示される回答 会話履歴の中に。 はいけません 以前の思考ブロックを後のターンに戻して入力してはいけません。

最終更新

役に立ちましたか?