ホームへ戻る

本地推論/開源執行期

llama.cpp 0.3.0、ハイブリッドアテンションKVキャッシュ、MTP、DeepSeek 4のテンソル分割を追加

llama.cpp 0.3.0は、dots3-noteのDSA/スライディングウィンドウ・ハイブリッドアテンションをネイティブサポートし、GLM-4.5-Airにmulti-token predictionを導入した。DeepSeek 4では複数GPUにまたがるテンソル分割が利用可能になったが、リリースノートにはスループット、レイテンシ、VRAM使用量の比較は示されていない。

The GGML authors · Public domain · Image source
zh-Hant

llama.cpp 0.3.0がリリースされた。今回の焦点は単一の新モデルではなく、実装が比較的難しい3種類の推論パスを同時に整備した点にある。まずはdots3-noteだ。この288BのマルチモーダルMoEモデルは、13層のDynamic Sparse Attention(DSA)と33層のSliding Window Attention(SWA)を組み合わせており、DSAは毎回最大2,048個の位置を選択する。公式の最大コンテキスト長は512Kだ。新バージョンでは、この交互配置構造に特化したDSA-ISWA KV cacheが実装され、`mtmd`もモデルへの画像、動画、音声入力を処理できるようになった。WebPデコード、動画末尾の`moov` atom、Pillowと整合するリサイズアルゴリズムもあわせて修正されている。

2つ目は、GLM-4.5-AirのMTP(multi-token prediction)サポートだ。MTPは追加の予測ヘッドによって複数の後続tokenを一度に提案し、それをメインモデルが検証する仕組みで、speculative decodingのdraft生成元として利用できる。これにより、ユーザーは完全な小型draft modelを別途読み込む必要がなくなる。ただし、実際のacceptance rateと高速化の程度は、promptの内容、batch size、量子化形式、MTP weightsが完全に揃っているかどうかに左右される。0.3.0のリリースページにはベンチマーク結果が掲載されていないため、一定倍率の性能向上を直接うたうことはできない。

3つ目は、DeepSeek 4における`-sm tensor`のサポートだ。従来よく使われてきたlayer splitでは完全なlayerを別々のデバイスに割り当てるが、tensor splitでは単一演算のweightsを複数のGPUに分散する。これにより、layer単位では均等に割り当てられないモデルを収容し、VRAM使用量のバランスを取ることができる。一方で、デバイス間のreductionと同期が必要になり、PCIe、RDMA、またはbackendの通信効率がボトルネックになる可能性がある。新バージョンでは、複数sequenceのrollbackとmeta-backendにおける分割状態の伝播も修正されており、このパスには以前、正確性上のリスクが残っていたことがうかがえる。

ggmlも内部的に0.22.0へ同期され、meta-backendによるtensor split、Metalのper-operator kernel、parallel compilationなどの変更が追加された。ローカル環境へデプロイするユーザーにとって、今回のリリースは新しいハイブリッドアテンション、MTP、巨大MoEを実行できる範囲を広げるものだ。次のステップでは、単にモデルを読み込めることを確認するだけでなく、実際のハードウェア上でtime to first token、生成スループット、KV cache容量、マルチGPU通信コストを比較する必要がある。

出典

  1. llama.cpp v0.3.0 release notes
  2. dots3-note-prev-fp8 model card