vllm-project/vllm
A high-throughput and memory-efficient inference and serving engine for LLMs
vLLM – 高速で柔軟な LLM サービング
概要 – vLLM は、大規模言語モデルを高速に推論(サービング)するためのオープンソースの Python ライブラリです。GPU(およびその他のアクセラレータ)で最大のスループットを引き出すことに重点を置きながら、API はシンプルに保っています。
主な機能
- PagedAttention – KV キャッシュページをスワップイン/アウトするカスタムアテンションメモリマネージャーで、GPU メモリを枯渇させることなく多数の同時リクエストを処理できます。
- 継続的バッチ処理とチャンク化プリフィル – 新しいプロンプトが同じバッチにオンザフライで追加され、アイドル時間を削減します。
- 量子化サポート – FP8、INT8/4、GPTQ、AWQ、GGUF などに対応し、低精度の重みでモデルを実行して速度/サイズを向上できます。
- 最適化カーネル – FlashAttention、FlashInfer、TRT-LLM、FlashMLA、Triton カーネルを統合し、CUTLASS、TRT-LLM-GEN、CuTeDSL によるカスタム GEMM/MoE カーネルも提供。
- 投機的デコーディング – n-gram、サフィックス、EAGLE、DFlash メソッドでトークンを事前生成し、レイテンシを削減します。
- 分散推論 – テンソル、パイプライン、データ、エキスパート、コンテキスト並列性をサポートし、マルチ GPU/CPU 構成に対応。
- 幅広いモデル対応 – 200 以上の Hugging Face モデルがそのまま動作:デコーダーのみの LLM(Llama、Qwen)、MoE モデル(Mixtral)、ハイブリッド状態空間モデル(Mamba)、マルチモーダル(LLaVA)、埋め込み/検索モデルなど。
- API レイヤー – OpenAI 互換の REST エンドポイント、Anthropic スタイルのメッセージ API、gRPC を提供し、ストリーミングトークン出力とツール呼び出しをサポート。
- ハードウェアの柔軟性 – NVIDIA、AMD、Intel GPU、CPU で動作し、プラグインにより TPU、Gaudi、Huawei Ascend、Apple Silicon などでも動作。
典型的なワークフロー
uv pip install vllm(または pip)でインストールし、必要に応じてvllm download-kernelsでプリコンパイル済みカーネルを取得。vllm.Engineまたは CLIvllm serve <model>を使用して Hugging Face からモデルをロード。- サーバーを起動(
python -m vllm.entrypoints.openai.api_server)し、OpenAI 互換の HTTP API、gRPC、または Python クライアント経由でリクエストを送信。 - 設定(バッチサイズ、量子化、投機的デコーディング、LoRA アダプター)を調整して、希望のレイテンシとスループットのトレードオフを実現。
重要性 – 本番規模での LLM サービングは、メモリ集約的な KV キャッシュとトークンごとのカーネルオーバーヘッドによってボトルネックになることがよくあります。vLLM のページング、継続的バッチ処理、専用カーネルにより、GPU あたりの 1 秒あたりのトークン数が大幅に向上し、コスト削減とリアルタイムアプリケーションを実現します。
リソース – ドキュメントサイト、クイックスタートガイド、モデルリスト、PagedAttention 技術に関する研究論文は README にリンクされています。
関連
- プロジェクト
- Dispatch
- Dispatch
- プロジェクト
- プロジェクト