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上の圧縮ブロックで直接計算を実行可能。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト