Gemma 3 - 実行ガイド
llama.cpp、Ollama、Open WebUI上で当社のGGUFを使ってGemma 3を効果的に実行する方法と、Unslothでファインチューニングする方法を紹介します!
Googleが新しい270Mモデルと、従来の1B、4B、12B、27Bサイズを備えたGemma 3をリリースしました。270Mと1Bはテキスト専用ですが、より大きなモデルはテキストとビジョンの両方を扱えます。GGUFと、それを効果的に実行する方法、そしてファインチューニングと実行の方法についてのガイドを提供します RL をGemma 3で!
新規 2025年8月14日 अपडेट: ファインチューニングを試す Gemma 3 (270M) ノートブック および 実行用GGUF.
また、こちらもご覧ください Gemma 3n ガイド.
Unslothは、Gemma 3の推論と学習をfloat16マシンで動かせる唯一のフレームワークです。 つまり、無料のTesla T4 GPUを使うColabノートブックでも動作します!
ビジョンサポート付きでGemma 3 (4B) をファインチューニングするには、こちらの 無料Colabノートブック
Gemmaチームによると、推論に最適な設定は
temperature = 1.0, top_k = 64, top_p = 0.95, min_p = 0.0
最適な設定でのUnsloth Gemma 3のアップロード:
⚙️ 推奨推論設定
Gemmaチームによると、推論の公式推奨設定は次のとおりです:
Temperature 1.0
Top_K 64
Min_P 0.00(任意ですが、0.01 でもうまく動作します。llama.cpp のデフォルトは 0.1 です)
Top_P 0.95
Repetition Penalty 1.0。(1.0は llama.cpp と transformers では無効を意味します)
チャットテンプレート:
<bos><start_of_turn>user\nこんにちは!<end_of_turn>\n<start_of_turn>model\nやあ!<end_of_turn>\n<start_of_turn>user\n1+1は?<end_of_turn>\n<start_of_turn>model\n\nを含むチャットテンプレート
\n改行が反映されています(最後を除く)
llama.cppや他の推論エンジンは <bos> を自動で追加します - <bos> を2つ入れないでください!モデルにプロンプトを与えるときは <bos> を無視してください!
✨スマホでGemma 3を実行
モデルをスマホで実行するには、スマホのようなエッジデバイス上でGGUFをローカル実行できるモバイルアプリの使用をおすすめします。ファインチューニング後にGGUFへエクスポートし、スマホ上でローカル実行できます。モデルを処理できるだけの十分なRAM/電力があることを確認してください。過熱する可能性があるため、この用途ではGemma 3 270MまたはGemma 3nモデルの使用を推奨します。以下を試せます オープンソースプロジェクトAnythingLLMの モバイルアプリで、こちらからダウンロードできます Android版はこちら または ChatterUI。どちらもスマホでGGUFを実行するのに最適なアプリです。
なお、すべてのチュートリアルでモデル名 'gemma-3-27b-it-GGUF' を 'gemma-3-270m-it-GGUF:Q8_K_XL' のような任意のGemmaモデルに変更できます。
🦙 チュートリアル: OllamaでGemma 3を実行する方法
インストール
ollamaまだなら、
モデルを実行します!失敗した場合は
ollama serveを別の端末で呼び出せることに注意してください。修正内容と推奨パラメータ(temperature など)はすべて、Hugging Face のアップロード内のparamsHugging Faceへのアップロードはこちらにあります!モデル名 'gemma-3-27b-it-GGUF' は 'gemma-3-270m-it-GGUF:Q8_K_XL' のような任意のGemmaモデルに変更できます。
📖 チュートリアル: llama.cppでGemma 3 27Bを実行する方法
最新の
llama.cppを GitHub こちらから取得してください。以下のビルド手順に従うこともできます。-DGGML_CUDA=ONを-DGGML_CUDA=OFFに変更してください。GPU がない場合、または CPU 推論だけを使いたい場合です。 Apple Mac / Metal デバイスの場合、次を設定して-DGGML_CUDA=OFFその後は通常どおり続けてください - Metal サポートは既定で有効です。
もし
llama.cppモデルを直接読み込むには、以下を実行できます:(:Q4_K_XL)は量子化タイプです。Hugging Faceからもダウンロードできます(ポイント3)。これはollama run
または (をインストールした後に)モデルをダウンロードしてください。Q4_K_M や他の量子化版(たとえば BF16 の完全精度)を選べます。
pip install huggingface_hub hf_transfer)。Q4_K_M、または他の量子化版(たとえばBF16のフル精度)を選べます。その他の版はこちら: https://huggingface.co/unsloth/gemma-3-27b-it-GGUF
UnslothのFlappy Birdテストを実行
編集
--threads 32CPU スレッド数を--ctx-size 16384コンテキスト長用(Gemma 3は128Kのコンテキスト長をサポート!)--n-gpu-layers 99GPU オフロードする層数を指定します。GPU のメモリ不足になる場合は調整してみてください。CPU のみで推論する場合は、これも削除してください。会話モードの場合:
Flappy Birdをテストする非会話モード用:
私たちの https://unsloth.ai/blog/deepseekr1-dynamic 1.58bitブログからの全文入力は次のとおりです:
Gemma 3は自動で <bos> を追加するので、<bos> を削除するのを忘れないでください!
🦥 UnslothでGemma 3をファインチューニングする
Unslothは、Gemma 3の推論と学習をfloat16マシンで動かせる唯一のフレームワークです。 つまり、無料のTesla T4 GPUを使うColabノートブックでも動作します!
新しいものを試す Gemma 3 (270M) ノートブック これにより、270Mパラメータのモデルがチェスを非常に上手くプレイできるようになり、次のチェスの一手を予測できます。
またはファインチューニング Gemma 3n (E4B) を テキスト • Vision • 音声
Gemma 3のフルファインチューニング(FFT)を試すと、float16デバイスでは全レイヤーがデフォルトでfloat32になります。Unslothはfloat16を想定しており、動的にアップキャストします。これを修正するには、 model.to(torch.float16) を読み込み後に実行するか、bfloat16対応のGPUを使用してください。
Unslothのファインチューニング修正
Unslothにおける私たちの解決策は3つあります:
すべての中間アクティベーションをbfloat16形式に保持する - float32でも可能だが、その場合は2倍のVRAMまたはRAMを使用する(Unslothの非同期勾配チェックポイント機能による)
行列乗算はすべてtensor coresを使ってfloat16で行い、Pytorchの混合精度autocastの助けを借りずに手動でアップキャスト/ダウンキャストする。
行列乗算を必要としない他のオプション(レイヤー正規化など)はすべてfloat32にアップキャストする。
🤔 Gemma 3 修正の分析

まず、Gemma 3をファインチューニングまたは実行する前に、float16の混合精度を使用すると、勾配と アクティベーションが無限大に 残念ながらなります。これは、float16のtensor coresしか持たないT4 GPU、RTX 20xシリーズ、V100 GPUで起こります。
RTX 30x以上、A100、H100などの新しいGPUにはbfloat16のtensor coresがあるため、この問題は発生しません! でも、なぜ?
Float16で表現できる数値は最大で 65504までですが、bfloat16では最大で 10^38という巨大な数値を表現できます!ただし、どちらの数値形式も16ビットしか使いません!これは、float16のほうがより多くのビットを割り当てているため小数をよりよく表現できる一方で、bfloat16は分数をうまく表現できないからです。
でも、なぜfloat16なのか?単にfloat32を使えばいいのでは! しかし残念ながら、GPUでのfloat32は行列乗算が非常に遅く、ときには4〜10倍も遅いのです!そのため、これは使えません。
最終更新
役に立ちましたか?


