Gemma 4の推論が最大3倍速に。MTPドラフターをOllamaとMLXで有効にする手順
Gemma 4にMTP(Multi-Token Prediction)ドラフターが公式リリースされました。対応フレームワークで有効にすると、出力品質を落とさずに推論速度が最大3倍になります。
この記事では、MTPドラフターの仕組みと、Ollama・MLX・Transformersそれぞれでの設定方法をまとめます。
この記事でわかること
MTPドラフターとは何か(通常のスペキュラティブデコーディングとの違い)
利用可能なGemma 4ドラフターモデル一覧
Ollamaでの設定方法(もっとも簡単)
MLX / Hugging Face Transformersでの設定方法
Apple Siliconでの実測目安
既存のQwen3.6 MTP(Llama.cpp)との違い
MTPドラフターとは
通常のLLM推論は、1トークンずつ順番に生成します。MTPドラフターは「軽量な補助モデルが数トークン先を予測し、本体モデルがまとめて検証する」仕組みです。
スペキュラティブデコーディングと原理は同じですが、決定的な違いが1つあります。従来のスペキュラティブデコーディングでは別のドラフトモデルを用意する必要がありました。MTPドラフターはGemma 4本体と入力埋め込みテーブルを共有し、本体の最終層の活性化を直接利用する設計です。そのため追加のメモリ消費が小さく、セットアップも簡単です。
ドラフターは4層しかない超軽量モデルなので、推論コストはほぼゼロ。ドラフトが当たればまとめて採用、外れても通常の1トークン生成に戻るだけです。
利用可能なドラフターモデル
Google公式から、Apache 2.0ライセンスで以下のドラフターが公開されています。
google/gemma-4-E2B-it-assistant(E2Bモデル用)
google/gemma-4-E4B-it-assistant(E4Bモデル用)
google/gemma-4-26B-A4B-it-assistant(26B MoEモデル用)
google/gemma-4-31B-it-assistant(31B Denseモデル用)
各ドラフターは対応するターゲットモデル専用です。31B用ドラフターをE4Bに使う、といった組み合わせはできません。
対応フレームワーク
Day-0サポートが発表されているフレームワークは以下のとおりです。
Hugging Face Transformers
MLX(Apple Silicon向け)
vLLM
SGLang
Ollama
LiteRT-LM(モバイル向け)
Google AI Edge Gallery(Android / iOS)
Ollamaでの設定方法
OllamaはGemma 4 MTPドラフターの公式対応フレームワークに含まれています。
基本的な流れは以下のとおりです。
ターゲットモデルをpull: `ollama pull gemma4:e4b`
ドラフターモデルをpull(タグ名は `ollama.com/library/gemma4` で確認)
Modelfileでドラフターを指定してカスタムモデルを作成
ollama create gemma4-mtp -f Modelfile
ollama run gemma4-mtpドラフターが有効になっていれば、体感でわかるレベルでトークン生成が速くなります。
注意: OllamaのMTPドラフター対応はバージョンによって異なります。2026年5月時点で最新版へアップデートした上で、`ollama.com/library/gemma4` のタグ一覧からドラフター用モデルの有無を確認してください。まだタグが公開されていない場合は、Hugging FaceからGGUF形式をダウンロードしてModelfileで指定する方法もあります。
MLX(Apple Silicon)での設定方法
MLXはApple Silicon向けに最適化されたフレームワークで、Gemma 4 MTPにDay-0対応しています。
pip install -U mlx-lmMLXでのスペキュラティブデコーディングは、ターゲットモデルとドラフターモデルを別々にロードして組み合わせる形式です。具体的なAPIは `mlx-lm` のバージョンによって変わるため、公式リポジトリのexamplesを確認してください。
また、MTPLX(github.com/youssofal/MTPLX)というOSSもあります。MLXネイティブのMTPスペキュラティブデコーディングを実装しており、OpenAI API互換のサーバーとして動作します。Qwen3.6での実測では2〜2.5倍のデコード速度向上が報告されています。
Hugging Face Transformersでの設定方法
Transformersでは、`generate()` にドラフターモデルを渡すだけで有効になります。
from transformers import AutoModelForCausalLM, AutoProcessor
target = AutoModelForCausalLM.from_pretrained(
"google/gemma-4-e4b-it",
torch_dtype="auto",
device_map="auto"
)
drafter = AutoModelForCausalLM.from_pretrained(
"google/gemma-4-E4B-it-assistant",
torch_dtype="auto",
device_map="auto"
)
processor = AutoProcessor.from_pretrained("google/gemma-4-e4b-it")
inputs = processor("MTPの仕組みを説明して", return_tensors="pt").to(target.device)
output = target.generate(
**inputs,
assistant_model=drafter,
max_new_tokens=256
)`num_assistant_tokens_schedule="heuristic"` を指定すると、ドラフトトークン数が採択率に応じて2〜15の間で動的に調整されます。
Apple Siliconでの速度目安
Google公式ブログによると、Apple Silicon環境での改善幅は以下のとおりです。
バッチサイズ1(通常の対話): 体感で1.5〜2倍程度の高速化
バッチサイズ4〜8(並列処理): 最大約2.2倍
「最大3倍」はNVIDIA RTX PRO 6000での数値です。Apple Siliconでは2倍前後が現実的な期待値になります。それでも、追加コストゼロで推論が2倍速になるのは大きな改善です。
Qwen3.6 MTP(Llama.cpp)との違い
先日紹介したQwen3.6のMTP(Llama.cpp `--spec-type mtp`)との比較です。
Qwen3.6 MTP: MTPヘッドがモデル本体に内蔵。Llama.cppで `--spec-type mtp` オプションを付けるだけ。追加メモリ約2.5GB。実測1.85倍
Gemma 4 MTP: 外部ドラフターモデルをペアで使う。Ollama/MLX/Transformersで対応。ドラフターは4層の超軽量モデル。公称最大3倍(Apple Siliconでは約2倍)
どちらも「出力品質を落とさず速くする」点は同じです。使っているモデルに合わせて選んでください。Gemma 4ユーザーならMTPドラフター、Qwen3.6ユーザーならLlama.cpp内蔵MTPが最適です。
メモリ要件の目安
Gemma 4 E4B + ドラフター: 16GB以上のMac(M1/M2/M3/M4)
Gemma 4 26B MoE + ドラフター: 32GB以上推奨
Gemma 4 31B Dense + ドラフター: 36GB以上必須(48GB M4 Maxが快適)
ドラフターは4層しかないため、追加メモリは数百MB〜1GB程度です。ターゲットモデルが動く環境なら、ドラフターを足しても問題ありません。
まとめ
Gemma 4のMTPドラフターは、追加コストほぼゼロで推論速度を2〜3倍にできる仕組みです。設定は各フレームワークでドラフターモデルを指定するだけ。
すでにGemma 4をローカルで使っている人は、今日からドラフターを有効にして速度の違いを試してみてください。E4Bなら16GBのMacでも動きます。
フレームワーク側のMTP対応は日々進化しているので、Ollama・mlx-lmともに最新版へのアップデートをおすすめします。
推論を速くできたら次は大型モデルですが、話題のGLM-5.2はローカルで最低223GB必要でした。その現実はこちらです。
