localai-org/vllm.cpp

a community oriented 1:1, vLLM-alike (Continuous batching, paged KV) engine in C++ with additional features (GGUF, RadixAttention, Cache-aware scheduling, ...)

解決する課題

vllm.cppは、vLLMの軽量かつスタンドアロンな代替手段として設計された高性能なC++20推論エンジンです。推論時にPythonやPyTorchを必要としないため、デプロイ時のフットプリントを大幅に削減(GB単位からMB単位へ)しつつ、vLLMと同等のスループットとトークン単位で完全に一致する出力を維持します。

仕組み

主要な推論エンジンの優れた機能を組み合わせています:

  • vLLM: 連続バッチ処理 (continuous batching)、ブロックページングKVキャッシュ (block-paged KV cache)、自動プレフィックスキャッシュ (automatic prefix caching) を含むサービングコアを採用。
  • SGLang: RadixAttentionやjump-forward decodingといったスケジューリングの概念を統合。
  • llama.cpp: フラットなC ABIを実装し、GGUFファイルをサポートすることで、CPU上の量子化ブロックで直接計算を実行可能。
  • MLX: Apple Silicon上で最適化されたパフォーマンスを実現するためにMLXのGEMMを活用。

このエンジンは、単一のソースツリーから幅広いハードウェア(CUDA、CPU、Metal、Vulkan)と量子化フォーマット(NVFP4、EXL3、GGUF)をサポートしています。

対象ユーザー

Pythonベースのスタックの複雑さを避けつつ、最小限のオーバーヘッド、高速なコールドスタート、そして多様なハードウェア上での高いスループットでLLMをデプロイする必要がある開発者や運用担当者。

ハイライト

  • 極めて軽量: vLLMの9.1 GiBのインストールに対し、わずか66 MiBのバイナリサイズ。
  • vLLMとの同等性: サポートされているモデルにおいて、トークン単位で完全に一致する出力と、同等のスループットを実現。
  • 幅広いハードウェアサポート: CUDA、CPU、Metal、Vulkanをネイティブサポート。
  • 幅広いモデルサポート: マルチモーダル(画像、動画、音声)や音楽生成を含む44の登録済みアーキテクチャ。
  • 高度な機能: 推論デコード (speculative decoding, MTP, DFlash)、構造化出力 (JSON schema, GBNF)、外部KVオフロードをサポート。
  • GGUF統合: GGUFファイルをファーストクラスでサポートし、CPU上の圧縮ブロックで直接計算を実行可能。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト