All news

Multi-token predictionがllama.cppに登場 (ベータ)

PR #22673により、2026年5月16日にllama.cppへMTPサポートが統合された。Qwen 3.6-27Bのコミュニティベンチマークでは、単一のRTX 5090でデコード速度が38トークン/秒から65トークン/秒へ跳ね上がった — 1.71×の高速化。

Multi-token prediction (MTP) は5月16日に、am17an による PR #22673 でllama.cppに統合された。機能はベータで提供される — llama-cli および llama-server--mtp フラグの背後に置かれ、デフォルトでは無効。

マージ後24時間以内に投稿されたコミュニティベンチマークが報告したのは: Qwen 3.6-27Bが単一のRTX 5090で65トークン/秒でデコードし、MTPなしの38トークン/秒を上回った — Q4_K_Mで1.71×の高速化、サイドバイサイドのプロンプト比較で知覚できる品質劣化はなし。現時点ではこれが唯一のデータポイント。より幅広いビルド×モデルのカバレッジには数回のリフレッシュサイクルが必要。

MTPとは実際何か

モデルは追加の出力ヘッドで訓練され、同じ共有バックボーン隠れ状態から次の2、3、または4トークンを同時に予測する。メインヘッドは候補シーケンスを検証するために再度実行される。投機トークンが一致すれば、実質的に無料で得られる。一致しない場合は、そのステップではトークン単位のデコードに戻る。

これはspeculative decodingが伝統的に行ってきたこと — 大きなtargetモデルの隣で小さなdraftモデルを走らせる — を、組み込みの予測ヘッドを持つ単一モデルに圧縮する。オーバーヘッドは余分な予測ポジションごとに概ね1層のtransformerレイヤー追加程度で、完全な2つ目のネットワークではない。メモリコストは小さい; 検証失敗時のthroughputコストが主な欠点だが、MTPで訓練されたモデルではヒット率が十分に高く、平均デコードが体感的に速くなる。

モデルに求められること

MTPは訓練時に組み込まれた予測ヘッドを必要とする — ランタイムは後付けで合成できない。引用されたベンチマークはQ4_K_MのQwen 3.6-27Bを使用した; --mtp フラグはチェックポイントに追加のヘッド重みを含まないモデルではno-opなので、デフォルトでオンのままにしても害はない。

DeepSeek-V3の論文はMTPを訓練時の補助目的として広めた。DeepSeek-V3の論文後にリリースされたオープンウェイトのモデルのうち、公開チェックポイントにヘッドを搭載しているのはどれか — そして何ポジション先を見るのか — は、次のデータリフレッシュでアーキテクチャの噂ではなく各モデルカードを直接引用してモデル単位でカタログ化する。

留意点

  • ベータはベータ。 PR #22673自体がこれを示している; 粗削りな部分を覚悟し、本番で頼る前にリンクされたllama.cppのイシュートラッカーに目を配ること。
  • 高速化はデコードのボトルネック次第で変動する。 compute-richで帯域に恵まれたリグでは投機パスに余裕がある; 帯域制限のリグでは利得が縮む。5090での1.71×はそのグラデーション上の一点 — 普遍的だと仮定しないこと。

有効化の方法

5月16日以降の main ブランチからllama.cppをビルドし、llama-server または llama-cli--mtp を渡す。Ollama、LM Studio、Janのアップストリームサポートは通常llama.cpp main から1リリースサイクル遅れる — 各ランタイムのリリースノートで最初に取り込んだビルドを確認すること。

ソース