Unsloth で Gemma 4 をファインチューニング
Unsloth は LLM のファインチューニングを最大 2 倍速くしながらメモリ使用量を 60% 減らすオープンソースライブラリです。カスタム CUDA カーネルと最適化されたトレーニングループにより、これを実現します — 標準トレーニングと比較して精度の低下はゼロです。
Gemma 4 は Unsloth で完全にサポートされており、4 つのバリエーション(E2B、E4B、26B MoE、31B)すべてが対象です。このガイドでは、インストール、データセットの準備、トレーニング設定、ファインチューニングしたモデルのエクスポートを取り上げます。
Unsloth でファインチューニングする理由
2 倍速いトレーニング
カスタム Triton カーネルが注意機構、MLP、埋め込み層を最適化します。標準的な方法で 10 時間かかるファインチューニングが、Unsloth では約 5 時間で完了します。
60% 少ないメモリ
インテリジェントな勾配チェックポイントとメモリ管理により、より小さな GPU でより大きなモデルをファインチューニングできます。E4B モデルは単一の RTX 3090 でファインチューニング可能です。
精度の低下なし
Unsloth の最適化は数学的に標準トレーニングと同等です。より少ない計算量で同じモデル品質が得られます — 近似やトレードオフはありません。
簡単なエクスポート
ファインチューニングしたモデルを GGUF(Ollama/llama.cpp 用)、SafeTensors(vLLM 用)にエクスポートしたり、Hugging Face に直接プッシュしたりできます — すべて 1 つのコマンドで。
インストール
pip で Unsloth をインストールします。Python 3.10 以上と PyTorch 2.0 以上が必要です:
pip install unslothクイックスタート:E4B をファインチューニング
独自のデータセットで LoRA を使用して Gemma 4 E4B をファインチューニングする最小限の例:
from unsloth import FastLanguageModel
model, tokenizer = FastLanguageModel.from_pretrained(
model_name="google/gemma-4-e4b-it",
max_seq_length=4096,
load_in_4bit=True,
)
model = FastLanguageModel.get_peft_model(
model, r=16, lora_alpha=16,
target_modules=["q_proj", "k_proj", "v_proj", "o_proj"],
)
# Train with your dataset
from trl import SFTTrainer
trainer = SFTTrainer(
model=model, tokenizer=tokenizer,
train_dataset=dataset,
max_seq_length=4096,
)
trainer.train()データセットの準備
Unsloth は Gemma 4 のファインチューニング向けに複数のデータセットフォーマットをサポートしています:
unslothPage.datasets.formats.0.title
ユーザー/アシスタントターンの会話。チャットボットとアシスタントのファインチューニングに最適です。
unslothPage.datasets.formats.1.title
継続的な事前トレーニングまたはドメイン適応のための生テキスト。
unslothPage.datasets.formats.2.title
選好ベーストレーニングのための選択/却下ペア。
ファインチューニングのハードウェア要件
unslothPage.hardware.desc
| unslothPage.hardware.headers.model | unslothPage.hardware.headers.gpu | unslothPage.hardware.headers.time |
|---|---|---|
| E2B LoRA | RTX 3060 (12 GB) | ~15 min / 1K steps |
| E4B LoRA | RTX 4060 Ti (16 GB) | ~25 min / 1K steps |
| E4B QLoRA | RTX 3060 (12 GB) | ~30 min / 1K steps |
| 27B MoE LoRA | RTX 4090 (24 GB) | ~60 min / 1K steps |
| 27B MoE QLoRA | RTX 4070 Ti (16 GB) | ~90 min / 1K steps |
モデルのエクスポート
ファインチューニング後、好みのフォーマットにエクスポートします:
# Save to GGUF for Ollama
model.save_pretrained_gguf("gemma4-custom", tokenizer, quantization_method="q4_k_m")
# Save to SafeTensors for vLLM
model.save_pretrained_merged("gemma4-custom-merged", tokenizer)
# Push to Hugging Face
model.push_to_hub_merged("your-username/gemma4-custom", tokenizer)Unsloth + Gemma 4 よくある質問
Unsloth とは何ですか?
Unsloth は、カスタム CUDA カーネルにより LLM トレーニングを 2 倍速くし、メモリ使用量を 60% 減らすオープンソースのファインチューニングライブラリです。Gemma 4、Llama、Mistral、その他の人気モデルファミリーをサポートしています。
コンシューマー GPU で Gemma 4 E4B をファインチューニングできますか?
はい。Unsloth の QLoRA 4 ビットを使用すると、RTX 4060(8GB)で E4B をファインチューニングできます。LoRA には RTX 3090(24GB)が必要です。より大きなモデルには、プロフェッショナル GPU(A100/H100)またはクラウドインスタンスが必要です。
LoRA と QLoRA の違いは?
LoRA(Low-Rank Adaptation)は、ベースの重みを固定したまま、モデルに小さなトレーニング可能な行列を追加します。QLoRA はさらにベースモデルを 4 ビットに量子化し、メモリを劇的に削減します。どちらも同様の品質の結果を生み出します。
ファインチューニングにはどれくらいのデータが必要ですか?
ドメイン適応には、1K〜10K の高品質な例がしばしば十分です。インストラクションチューニングには、5K〜50K の会話ペアがうまく機能します。量より質が重要です — 1K の優れた例は 100K のノイズの多い例に勝ります。
LoRA 重みをベースモデルにマージできますか?
はい。Unsloth は、アダプターのオーバーヘッドなしでのデプロイのために、LoRA 重みをベースモデルにマージすることをサポートしています。GGUF または SafeTensors フォーマットで単一のマージされたモデルとしてエクスポートしてください。
Unsloth は MoE モデルをサポートしていますか?
はい、Unsloth は Gemma 4 26B A4B MoE モデルのファインチューニングをサポートしています。MoE アーキテクチャのため、LoRA は通常共有レイヤーとエキスパートルーティングに適用され、同様のアクティブパラメータ数の Dense モデルよりも多くの VRAM を必要とします。
unslothPage.faq.items.6.q
unslothPage.faq.items.6.a
unslothPage.faq.items.7.q
unslothPage.faq.items.7.a
unslothPage.faq.items.8.q
unslothPage.faq.items.8.a
unslothPage.faq.items.9.q
unslothPage.faq.items.9.a
Gemma 4 のファインチューニングを始めよう
Unsloth をインストールし、データセットを準備して、数時間でカスタム Gemma 4 モデルを作成しましょう。