googleGemma 3 - 実行ガイド

llama.cpp、Ollama、Open WebUI 上で当社の GGUF を使って Gemma 3 を効果的に実行する方法と Unsloth でのファインチューニング方法。

Googleは新しい270Mモデルと、以前の1B、4B、12B、27Bサイズを備えたGemma 3をリリースしました。270Mと1Bはテキスト専用で、より大きなモデルはテキストとビジョンの両方を扱います。私たちはGGUFを提供しており、効果的に実行する方法や、微調整と実行方法のガイドを提供します。 強化学習(RL) Gemma 3で!

circle-check

実行チュートリアルファインチューニングチュートリアル

Unslothは、Gemma 3の推論とトレーニングでfloat16マシン上で動作する唯一のフレームワークです。 これは、無料のTesla T4 GPUを備えたColabノートブックでも動作することを意味します!

circle-info

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(llama.cpp と transformers では 1.0 が無効化を意味します)

  • チャットテンプレート:

    <bos><start_of_turn>user\nHello!<end_of_turn>\n<start_of_turn>model\nHey there!<end_of_turn>\n<start_of_turn>user\nWhat is 1+1?<end_of_turn>\n<start_of_turn>model\n
  • チャットテンプレート(含む) \n改行がレンダリングされます(最後を除く)

triangle-exclamation

✨スマートフォンでGemma 3を実行する

モデルをスマートフォンで実行するには、携帯電話などのエッジデバイス上でGGUFをローカル実行できる任意のモバイルアプリを使用することを推奨します。ファインチューニング後にGGUFへエクスポートして、スマートフォン上でローカル実行できます。モデルの処理で過熱する可能性があるため、スマートフォンに十分なRAM/処理能力があることを確認してください。このユースケースにはGemma 3 270MやGemma 3nモデルを推奨します。次のものを試すことができます: オープンソースプロジェクト AnythingLLM のarrow-up-right ダウンロードできるモバイルアプリ(場所) Androidはこちらarrow-up-right または ChatterUIarrow-up-right、これらはスマートフォンでGGUFを実行するのに適した優れたアプリです。

circle-check

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

  1. Ollamaで実行する をインストールしてください まだインストールしていない場合は!

  1. curl -fsSL https://ollama.com/install.sh | sh モデルを実行してください!失敗した場合は別のターミナルでollama serve を呼び出すことができます!私たちはすべての修正と推奨パラメータ(temperatureなど)を 私たちのHugging Faceアップロードで!モデル名 'gemma-3-27b-it-GGUF' を 'gemma-3-270m-it-GGUF:Q8_K_XL' のような任意のGemmaモデルに変更できます。

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

  1. 最新の llama.cppGitHubで入手してくださいarrow-up-right。以下のビルド手順にも従うことができます。を変更してください -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に類似しています。 ollama run

  1. または モデルをダウンロードする(以下をインストールした後) モデルをダウンロードするには( )。Q4_K_Mや他の量子化バージョン(BF16フル精度など)を選択できます。その他のバージョンは: https://huggingface.co/unsloth/gemma-3-27b-it-GGUFarrow-up-right

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

  2. 編集 次の --threads 32 はCPUスレッドの数、 コンテキスト長用(Gemma 3は128Kのコンテキスト長をサポートします!)、 --n-gpu-layers 99 --n-gpu-layers 2

  3. 会話モードの場合:

  1. 会話モード以外でFlappy Birdをテストするには:

私たちの完全な入力は https://unsloth.ai/blog/deepseekr1-dynamicarrow-up-right 1.58bitのブログは:

triangle-exclamation

🦥 UnslothでのGemma 3のファインチューニング

Unslothは、Gemma 3の推論とトレーニングでfloat16マシン上で動作する唯一のフレームワークです。 これは、無料のTesla T4 GPUを備えたColabノートブックでも動作することを意味します!

circle-exclamation

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

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

  1. すべての中間活性化をbfloat16形式で保持する — float32でも可能ですが、その場合はVRAMまたはRAMを2倍使用します(Unslothの非同期勾配チェックポイント機能を介して)

  2. テンソルコアで行うすべての行列乗算をfloat16で実行しますが、Pytorchの混合精度autocastの助けを借りずに手動でアップキャスト/ダウンキャストを行います。

  3. 行列乗算を必要としない他のオプション(layernormなど)をfloat32にアップキャストします。

🤔 Gemma 3 修正の分析

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

まず、私たちがGemma 3をファインチューニングまたは実行する前に、float16混合精度を使用すると勾配と 活性化が無限大になってしまう という問題が見つかりました。残念ながらこれは、float16テンソルコアのみを持つT4 GPU、RTX 20xシリーズ、V100 GPUで発生します。

RTX 30x以降、A100、H100などの新しいGPUではbfloat16テンソルコアを持っているため、この問題は発生しません! しかし、なぜでしょうか?

Float16は表現できる数値の最大が 65504だけですが、bfloat16は非常に大きな数値まで表現できます 10^38!しかし両方の数値形式はわずか16ビットしか使いません!これは、float16がより小さな小数をより良く表現するためにより多くのビットを割り当てているのに対し、bfloat16は小数をあまり表現できないためです。

ではなぜfloat16なのか?単にfloat32を使えば良いのでは?しかし残念ながらGPU上のfloat32は行列乗算で非常に遅く、場合によっては4〜10倍遅くなります!そのためこれを使うことはできません。

最終更新

役に立ちましたか?