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で!

こともできます。実行チュートリアル

Unslothは、Gemma 3の推論と学習をfloat16マシンで動かせる唯一のフレームワークです。 つまり、無料のTesla T4 GPUを使うColabノートブックでも動作します!

Gemmaチームによると、推論に最適な設定は temperature = 1.0, top_k = 64, top_p = 0.95, min_p = 0.0

最適な設定でのUnsloth Gemma 3のアップロード:

GGUF
Unsloth Dynamic 4-bit Instruct
16-bit Instruct

⚙️ 推奨推論設定

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改行が反映されています(最後を除く)

✨スマホでGemma 3を実行

モデルをスマホで実行するには、スマホのようなエッジデバイス上でGGUFをローカル実行できるモバイルアプリの使用をおすすめします。ファインチューニング後にGGUFへエクスポートし、スマホ上でローカル実行できます。モデルを処理できるだけの十分なRAM/電力があることを確認してください。過熱する可能性があるため、この用途ではGemma 3 270MまたはGemma 3nモデルの使用を推奨します。以下を試せます オープンソースプロジェクトAnythingLLMの モバイルアプリで、こちらからダウンロードできます Android版はこちら または ChatterUI。どちらもスマホでGGUFを実行するのに最適なアプリです。

🦙 チュートリアル: OllamaでGemma 3を実行する方法

  1. インストール ollama まだなら、

  1. モデルを実行します!失敗した場合は ollama serveを別の端末で呼び出せることに注意してください。修正内容と推奨パラメータ(temperature など)はすべて、Hugging Face のアップロード内の params Hugging Faceへのアップロードはこちらにあります!モデル名 'gemma-3-27b-it-GGUF' は 'gemma-3-270m-it-GGUF:Q8_K_XL' のような任意のGemmaモデルに変更できます。

📖 チュートリアル: llama.cppでGemma 3 27Bを実行する方法

  1. 最新の llama.cppGitHub こちらから取得してください。以下のビルド手順に従うこともできます。 -DGGML_CUDA=ON-DGGML_CUDA=OFF に変更してください。GPU がない場合、または CPU 推論だけを使いたい場合です。 Apple Mac / Metal デバイスの場合、次を設定して -DGGML_CUDA=OFF その後は通常どおり続けてください - Metal サポートは既定で有効です。

  1. もし llama.cpp モデルを直接読み込むには、以下を実行できます:(:Q4_K_XL)は量子化タイプです。Hugging Faceからもダウンロードできます(ポイント3)。これは ollama run

  1. または (をインストールした後に)モデルをダウンロードしてください。Q4_K_M や他の量子化版(たとえば BF16 の完全精度)を選べます。 pip install huggingface_hub hf_transfer )。Q4_K_M、または他の量子化版(たとえばBF16のフル精度)を選べます。その他の版はこちら: https://huggingface.co/unsloth/gemma-3-27b-it-GGUF

  1. UnslothのFlappy Birdテストを実行

  2. 編集 --threads 32 CPU スレッド数を --ctx-size 16384 コンテキスト長用(Gemma 3は128Kのコンテキスト長をサポート!) --n-gpu-layers 99 GPU オフロードする層数を指定します。GPU のメモリ不足になる場合は調整してみてください。CPU のみで推論する場合は、これも削除してください。

  3. 会話モードの場合:

  1. Flappy Birdをテストする非会話モード用:

私たちの https://unsloth.ai/blog/deepseekr1-dynamic 1.58bitブログからの全文入力は次のとおりです:

🦥 UnslothでGemma 3をファインチューニングする

Unslothは、Gemma 3の推論と学習をfloat16マシンで動かせる唯一のフレームワークです。 つまり、無料のTesla T4 GPUを使うColabノートブックでも動作します!

  • 新しいものを試す Gemma 3 (270M) ノートブック これにより、270Mパラメータのモデルがチェスを非常に上手くプレイできるようになり、次のチェスの一手を予測できます。

  • 次の用途向けに、私たちのノートブックを使ってGemma 3 (4B) をファインチューニングしてください: テキスト または Vision

  • またはファインチューニング Gemma 3n (E4B)テキストVision音声

Unslothのファインチューニング修正

Unslothにおける私たちの解決策は3つあります:

  1. すべての中間アクティベーションをbfloat16形式に保持する - float32でも可能だが、その場合は2倍のVRAMまたはRAMを使用する(Unslothの非同期勾配チェックポイント機能による)

  2. 行列乗算はすべてtensor coresを使ってfloat16で行い、Pytorchの混合精度autocastの助けを借りずに手動でアップキャスト/ダウンキャストする。

  3. 行列乗算を必要としない他のオプション(レイヤー正規化など)はすべてfloat32にアップキャストする。

🤔 Gemma 3 修正の分析

Gemma 3の1Bから27Bはfloat16の最大値65504を超える

まず、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倍も遅いのです!そのため、これは使えません。

最終更新

役に立ちましたか?