llama.cpp v0.7.0、MoEエキスパートGPUキャッシュで最大約2.2倍

ggml-orgのllama.cppはv0.7.0を公開し、ホストメモリ上のMoEエキスパート用GPUキャッシュ(--moe-cache-mib)でエキスパートをオフロードした場合のデコードを最大約2.2倍に高速化しました。LiliCorr投機的デコーディング、GLM5-Next向けMTP、多数の新モデル対応、サーバーの既定ポート変更(9931)、ggml v0.27.0への更新も含みます。

llama.cppはC/C++で実装された言語モデル・視覚言語モデルの推論ソフトウェアで、CPUや各社GPUで動作し、OpenAI互換APIサーバーを備えます。

何が新しいか

  • MoEエキスパートGPUキャッシュ: ホストメモリ上のエキスパートをGPU上のLRUキャッシュから実行します。キャッシュは複数GPU間で共有できます。APIにはmoe_cache_sizeコンテキストパラメータが加わりました。
  • LiliCorr: DFlash上の小型ドラフトTransformerで候補選択を行う投機的デコーディング方式です。
  • GLM5-Next向けMTP: 最適化したスパースアテンション経路を使うMTP投機的デコーディングに対応しました。
  • --spec-draft-n-ubatch: ドラフトコンテキストのバッチサイズを個別に設定し、VRAMを節約します。
  • 埋め込みモデル: pooling有効時にlogitsバッファとLM headを省き、VRAMを最大10分の1に減らします。
  • RPC: RPCサーバーが-sm tensorによるテンソル並列RPC(RPCプロトコルv8)に対応しました。

新たに対応したモデル

モデル 内容
K2 Horizon dense版とMoVA版。変換、トークナイザー、チャットテンプレート、-sm tensor分割
Prism Bonsai 2 27B ternaryモデル
EmbeddingGemma-2 テキスト+画像+音声の埋め込み
LiquidAI d1-3B / d1-omni-600M decisionモデル
vLLM decision 2 / vLLM d3、pplx-decider decisionモデル
MiniCPM-V 4.7 マルチモーダル
Nemotron Super 3.5 VL / Nemotron Bolt Boltは74B A9B
maion-coder 新アーキテクチャ

GemmaはGoogleのチームが開発するオープンなモデルファミリー、GLMはZ.aiが開発するモデルファミリーです。

使い方と変更点

  • MoEキャッシュのサイズは--moe-cache-mibで指定します。
  • サーバーは既定でポート9931で待ち受けます(従来は8080)。Dockerイメージではコンテナ内部で8080を維持します。
  • --slot-save-pathは環境変数LLAMA_ARG_SLOT_SAVE_PATHでも指定できます。
  • Web UIのModels Managerでは、提供中の全モデルを1つの表で管理し、ロード・アンロード、ディスクからの削除、表示・非表示、進捗付きの再開可能なダウンロードを操作できます。
  • Nightly buildはb11669です。

サーバーとggmlの更新

サーバーはチャット層をcommon_chat_session(feed() / finish())中心に再構成し、整形済みチャット出力を単一文字列からpartの配列に変えました。プロンプトキャッシュは復元可能なスロット状態のみを保存し、rerankやembeddingのリクエストでキャッシュが埋まらなくなりました。スロットの保存・復元はコンテキストチェックポイントとドラフトモデルの状態も保持します。/v1/systemoneは新しいdecisionモデルに対応しました。

ggml v0.27.0では、CUDA/HIPのchunked gated-delta-netカーネル、CPUのKleidiAI SME2 k-quant matmulとAVX2 Q2_0内積、VulkanのL2を考慮したcoopmat2スケジューリングとbf16アクティベーション、SYCLの並べ替えレイアウトMoEカーネル、OpenCLのdp4a MoE GEMM、Metalのtensor APIと広いhead dim対応のflash attentionなどが加わりました。

この記事の固有名詞

コメント (0)

まだコメントはありません。

コメントを書く

2000文字以内