AIモデルの推論を支える低レベルライブラリ「llama.cpp」において、MTP(Multi-Token Prediction)と呼ばれる次世代推論手法の内部実装が大きく整理された。複数のトークンを同時に予測する際に使われる「リカレントキャッシュ」の設計を見直し、不要なデータ複製やパディングを排除することで、メモリ効率とコードの明快さを両立させる変更がGitHub上でマージされた。この変更はApple SiliconやCUDA、Vulkan、ROCmを含む幅広いバックエンドに適用されており、エッジデバイスからデータセンターまで推論スタック全体に波及する構造的な改良といえる。

この記事を一言でいうと

MTP推論時に発生していた余分なメモリ操作とパディングを除去し、単一のストライドコピーで全スナップショットをキャッシュへ書き込む設計に統一した。これによりコードの複雑性が下がり、幅広いハードウェアで動作確認が行われている。

なぜ話題なのか

大規模言語モデルの推論速度を高める手法として、次の1トークンだけでなく複数トークンを同時に予測するMTPが注目されている。しかし実装面では、リカレント状態をキャッシュに保存する際に不要なパディング(詰め物)を挿入したり、データを複数回コピーする非効率な処理が残っていた。今回の変更は、こうした技術的負債を解消し、推論エンジンとしての完成度を一段引き上げるものであり、オープンソースの推論コミュニティ全体にとって意味のある改善となる。

一般読者や企業にどう関係するのか

今回の改良は、AIモデルを自社環境で動かす企業や、オンデバイス推論を製品に組み込む開発者に直接関係する。特にスマートフォンやPC上で動作するAIアシスタント、ローカルでの文書生成、コード補完といったユースケースでは、メモリ使用量の削減と推論速度の向上がユーザー体験を左右する。日本企業においても、エッジAIやオンプレミスでのLLM活用を検討する動きが広がっており、推論ライブラリの効率化は導入ハードルを下げる要素として注目される。

AI業界の構造で見ると何が変わるのか

今回の変更は、AI推論スタックの「ボトムレイヤー」に位置する最適化技術の進化を示している。OpenAIやGoogleのようなフロントエンドのモデル提供者ではなく、その下で動く推論エンジンの効率が体系的に改善されることで、特定のGPUベンダーに依存しない「マルチバックエンド戦略」の実現性が高まる。Apple Silicon(arm64, KleidiAI有効)、Intel(x64)、AWS Graviton(arm64)、IBM Z(s390x)、さらにはVulkan、ROCm、OpenVINO、SYCLと、多様なバックエンドでテストが通過している事実は、特定ハードウェアの囲い込みが効きにくくなる構造変化を示唆する。

一次情報から確認できる事実

  • 変更対象は ggml_gated_delta_net 関数で、初期リカレント状態を形状 (D, 1, n_seqs) で受け取り、スナップショット数Kをオペレータパラメータとして明示的に渡す設計に改められた
  • 従来は state->ne[1] からKを推論していたが、この暗黙的依存が除去された
  • パディング除去とともに、複数回のD2D(デバイス間)コピーを単一のストライド付き ggml_cpy に統合
  • macOS(Apple Silicon arm64/KleidiAI有効/無効、Intel x64)、iOS XCFramework、Ubuntu(x64 CPU、arm64 CPU、s390x CPU、Vulkan x64/arm64、ROCm 7.2 x64、OpenVINO x64、SYCL FP32 x64)、Android arm64 CPU、Windows(x64/arm64 CPU、CUDA 12/13、Vulkan x64、HIP x64)でテスト済み
  • SYCL FP32(Ubuntu/Windows)、macOS Apple Silicon arm64(KleidiAI有効)、openEuler全構成はCI上で無効化(DISABLED)

関連企業・関連技術

  • llama.cpp: MetaのLLaMA系モデルを中心に、多様なハードウェアでLLM推論を可能にするオープンソースライブラリ
  • MTP(Multi-Token Prediction): 次の1トークンではなく複数トークンを同時予測し、推論効率や生成品質を向上させる手法
  • ggml: 軽量なテンソル演算ライブラリで、llama.cppのコアを構成
  • KleidiAI: ARMが提供するAI推論最適化ライブラリで、Apple SiliconやAndroid arm64で活用が進む
  • マルチバックエンド対応: CUDAに依存せず、ROCm(AMD)、Vulkan(クロスプラットフォーム)、OpenVINO(Intel)、SYCL(Intel/汎用)を同一コードベースでサポートする動き

今後の論点

  • パディング除去とコピー統合による実際の推論速度向上幅はどの程度か(ベンチマーク結果は本PRでは示唆されていない)
  • KleidiAI有効時のmacOSテストが無効化されている理由と、再有効化の時期
  • MTPのリカレントキャッシュ設計が他のアテンション機構(例:GQAやMamba)とどのように相互作用するか
  • 日本語モデルやモバイル向け軽量モデルへの波及効果はあるか