2026年6月29日
Gemma 4がOllama 0.31で大幅に高速化されました。Apple Silicon上では、コーディングエージェントのベンチマークで平均トークン生成速度が約90%向上しています。この高速化はデフォルトで有効であり、モデルの出力品質には影響しません。
速度向上はマルチトークン予測(MTP)によるものです。Gemma 4には小さく高速なドラフトモデルが搭載されており、メインモデルと並行して動作し、次の複数のトークンを提案します。メインモデルはその提案を一度のパスで検証し、同意したトークンを保持します。ドラフトモデルはメインモデルに比べてはるかに小さいため、提案コストは低く、提案が正しければ1トークンのコストで複数のトークンを確定できます。
コードは特に予測しやすい性質を持っています。閉じ括弧や繰り返し識別子、ボイラープレートコードが多く含まれるため、ドラフトモデルの提案が頻繁に受け入れられます。これはコーディングエージェントにとって重要です。エージェントはファイルの読み取り、ツールの実行、タスクの処理中に継続的にモデルを呼び出すため、高速な生成により応答性が顕著に向上します。
この高速化を確実に実現することは容易ではありません。最適なドラフトトークン数は状況によって変化し、ドラフトしすぎるとMTPが通常のデコードよりも遅くなる可能性があります。Ollamaは実行時にドラフト長を自動調整するため、設定不要で高速化が実現します。
測定にはAider多言語ベンチマークを使用しました。これは実際のコーディングエージェントを実際のプログラミングタスクで実行するものです。MTPの効果はワークロードに大きく依存し、合成ベンチマークでは任意の結果を示すことができます。これらの数値は実際の使用時の期待値を反映しています。
生成速度
トークン/秒 · 高いほど良い
MTPを有効にすると、Gemma 4はAider多言語ベンチマークでトークン生成速度が約90%向上します。 M5 Max上のGemma 4 12B(nvfp4)での測定結果。
動作の仕組み
3つの改良点が連携します:ドラフト長の選択方法、エンジンの各ラウンドの実行方法、およびGPUの処理方法です。
ドラフト長の自動調整
検証前にドラフトする最適なトークン数は一つに定まりません。モデル、量子化方式、ハードウェア、その時点でのテキストの予測しやすさに依存します。ある設定でうまくいく値が別の設定では不適切になることがあります。ドラフトが少なすぎると性能を引き出せず、多すぎると拒否された提案のチェックに時間を費やし、通常のデコードよりも遅くなります。
Ollamaは実行時にドラフト長を決定します。生成中に提案の受け入れ率と各検証パスの時間を追跡し、最も高いトークン/秒を実現する長さを選択します。テキストの変化に応じて調整を続け、提案が受け入れられなくなると通常の1トークンずつのデコードに戻ります。そのため、推測が役立たなくなった場合でも生成が遅くなることはありません。
エンジンの推測デコード
各ラウンドはドラフトモデルから始まります。ドラフトモデルがトークンを予測し、それをフィードバックして次のトークンを予測し、短い提案の連続が得られるまで繰り返します。次にメインモデルが提案全体を一度に検証し、各位置でサンプリングしてどの提案が受け入れられるかを決定します。これらすべてがGPU上で単一パスとして実行されます。ドラフト、サンプリング、検証、その後のサンプリングまで、CPUに戻ることなく処理されます。
受け入れられたトークンは保持されます。拒否されたトークンはより複雑です。拒否された時点ですでにキャッシュ(以前のトークンの再計算を避けるためにモデルが再利用する実行状態)に書き込まれているためです。これを元に戻すコストは低く抑えられています。エンジンは各提案の前にロールバックポイントを記録しており、拒否があった場合、最後に受け入れられたトークンまで巻き戻します。それより前の状態には影響しません。
バッチ検証の高速化
コストのほとんどはドラフトではなく検証にあります。ドラフトモデルは小さいため、トークンの提案は安価です。検証ではフルモデルを提案のバッチ全体に対して一度に実行しますが、このバッチサイズは通常2〜8トークンと中途半端なサイズです。行列乗算カーネルは通常、単一トークン(デコード)か大バッチ(プリフィル)向けに最適化されており、少数のドラフトトークンはその中間に位置します。
我々はこのケースに対応するカーネルをMLXに提供しました。これにより、OllamaのGemma 4だけでなく、他のモデルも利用可能です。このカーネルは各重みブロックを一度だけ読み込んで解凍し、バッチ全体で再利用します。従来のようにトークンごとに重みを読み直す必要がありません。M5 Max上でnvfp4を使用した場合、Gemma 4の最大の行列乗算が2〜2.5倍高速化されます。計算自体は同一であり、高速化は冗長な作業の排除によるものです。
はじめ方
Ollama 0.31以降のmacOS版をダウンロード:
Ollamaをダウンロード
その後、ollama launchコマンドを使用してGemma 4搭載のコーディングエージェントを起動:
ollama launch claude --model gemma4:12b-mlx
注意:以前にGemma 4をダウンロードした場合は、ollama pull gemma4:12b-mlxを実行してMTP対応バージョンを再取得してください。
ollama launchはCodex、Droid、OpenCode、Copilotなどでも使用できます。
Gemma 4はこの性能改善を受けた最初のモデルであり、今後さらに多くのモデルが対応予定です。