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

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. モデルを実行してください!失敗した場合は別の端末で ollama serveを呼び出せます!私たちのすべての修正と推奨パラメータ(temperatureなど)は 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 で入手arrow-up-rightできます。下のビルド手順に従うこともできます。変更してください -DGGML_CUDA=ON から -DGGML_CUDA=OFF GPU がない場合や CPU 推論のみを行いたい場合は。

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

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

  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-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混合精度を使用すると勾配や アクティベーションが無限大になる ことがあると分かりました。残念ながらこれは、T4 GPU、RTX 20xシリーズ、V100 GPUなど、float16テンソルコアのみを持つ環境で発生します。

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

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

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

最終更新

役に立ちましたか?