Gemma 4 を Ollama 0.31 の Multi-Token Prediction で高速化する - Apple Silicon / MLX で試す
2026年6月29日、Ollama は 0.31 をリリースし、Apple Silicon(MLX バックエンド)上の Gemma 4 で Multi-Token Prediction (MTP) を既定で有効にした。公式ブログは Aider polyglot(実際のコーディングエージェントで実タスクを解かせるベンチマーク)で「平均で約 90% 高速」と報告している。M5 Max + nvfp4 量子化での計測値だ。
「約 90% 高速」という数字だけ見ると眉唾に思えるが、MTP は出力を変えずに生成トークン数あたりのコストを下げる投機的デコード系の手法で、Gemma 4 は最初からこの用途の小さなドラフトモデルを同梱している。この記事では仕組みを整理したうえで、自分の Mac で MTP あり/なしの速度差を実測する手順まで通す。
MTP(Multi-Token Prediction)とは何か
通常の自己回帰デコードは 1 パスで 1 トークンしか確定できない。MTP は投機的デコード(speculative decoding)の一種で、次のように動く。
- Gemma 4 に同梱された小さなドラフトモデルが、次の数トークンを先読みして提案する。
- 本体モデルがその提案を 1 パスでまとめて検証し、合意できたトークンだけを採用する。
- ドラフトが当たっている限り、1 トークン分の本体コストで複数トークンを確定できる。
ドラフトが外れても、検証で弾かれるだけなので出力は本体モデル単独と完全に一致する(品質・推論ロジックは変わらない)。Ollama 0.31 は「1 回に何トークン下書きするか(ドラフト長)」を実行中に自動調整するため、ユーザ側の設定は不要だ。
Apple Silicon での高速化には、MLX に新しく寄与された検証バッチ処理のカーネルも効いている。M5 Max で大きな行列積が 2〜2.5 倍速くなり、これが検証パスのスループットを押し上げている。
前提とモデルタグ
- OS/ハード: Apple Silicon 搭載 Mac(M1 以降)。MLX バックエンドは Apple Silicon 専用。
- Ollama: 0.31 以降。
ollama --versionで確認する。 - モデルタグ: MLX + MTP を使うには MLX ビルドのタグを引く。主なものは以下。
gemma4:e4b-mlx(約 8.8GB, 128K context / 手元検証向け・軽量)gemma4:12b-mlx(約 7.7GB, 256K context / 公式ベンチで使われたクラス)gemma4:26b-mlx/gemma4:31b-mlx(メモリに余裕があれば)
gemma4:12b-mlx はメモリ 16GB 級でも動かせるが、他アプリを閉じておくと安定する。まずは軽い e4b-mlx から試すのが安全だ。
実際に試す
以下は Apple Silicon の Mac(macOS 14 以降を想定)で、実際に通るコマンドと期待出力を示す。
1. Ollama を 0.31 以降にする
1 | |
期待出力の例:
1 | |
0.31 未満なら MTP は入っていない。公式インストーラを使っている場合は https://ollama.com/download から最新版を入れ直す。
2. MLX ビルドの Gemma 4 を取得する
以前から Gemma 4 を落としていた人も、MTP 有効版を得るには MLX タグを引き直す。
1 | |
期待出力(末尾):
1 | |
3. とりあえず動かす
1 | |
期待出力の例(内容は毎回多少変わる):
1 | |
ここまで動けば MTP は既定で効いている(追加設定は不要)。
4. MTP あり/なしの速度差を実測する
Ollama は 1 リクエストの生成速度を --verbose で出してくれる。指標は eval rate(tokens/s)だ。MTP の効果はコーディングのような「連続して当てやすい」出力で顕著なので、コード生成タスクで比較する。
まず MTP 有効(既定)で計測:
1 | |
出力例:
1 | |
次に MTP を無効化して比較する。ドラフト長を 0 にすれば投機的デコードが止まる。パラメータはリクエスト単位で上書きできる。
1 | |
出力例(無効化した場合、eval rate が下がる):
1 | |
この eval rate の差が MTP による高速化分だ。数値は機種・量子化・タスクで大きく変わる(公式は M5 Max + gemma4:12b-mlx のコーディングベンチで平均約 90% 高速)。M1/M2 世代や短い出力では差は小さくなる点に注意。より正確に測るなら、同じプロンプトを数回ずつ回して平均を取ると安定する。
5. API から使う場合
ollama serve を立てて REST から叩いても MTP は既定で効く。速度は eval_count と eval_duration(ナノ秒)から算出できる。
1 | |
出力例:
1 | |
まとめ
- Ollama 0.31(2026年6月29日)以降、Apple Silicon + MLX の Gemma 4 は MTP が既定有効・設定不要で、出力は変えずに生成が速くなる。
- 使うには MLX タグ(例
gemma4:e4b-mlx/gemma4:12b-mlx)を引き直すだけ。 - 効果はタスク依存。
ollama run --verboseのeval rateで MTP あり/なし(num_draft 0)を比較すれば、自分の機種での実効値が測れる。
投機的デコードはこれまで手動セットアップが必要だったが、ドラフトモデル同梱+ランタイム自動調整でローカル実行のデフォルトに組み込まれた形だ。手元の Mac が一段速くなるので、ローカル LLM をエージェント用途で回している人は 0.31 への更新を勧めたい。
出典: Faster Gemma 4 on MLX with multi-token prediction (Ollama Blog, 2026-06-29)