vLLM — 高性能LLM推論エンジン
vLLMはPagedAttention、continuous batching、FP4量子化を備えたオープンソースLLM推論エンジン。単純なtransformersと比べ最大24倍高速。
vLLMはUC Berkeley発の高性能オープンソースLLM推論&サービングエンジン(SOSP 2023)。Apache 2.0ライセンス。最新:v0.26.0(2026年7月)。~77.5k GitHubスター、週間2.79M PyPIダウンロード。コントリビューター数で#1のOSSプロジェクト(GitHub Octoverse 2025)。
PagedAttention — 中核となる革新#
PagedAttentionはKVキャッシュをOSの仮想メモリのように管理:固定サイズブロック、動的割り当て/解放、コピーオンライト共有。結果:
- メモリ浪費が60-80%から<4%に削減
- 単純なHF Transformersサービングと比較して24倍のスループット
- プレフィックス共有:システムプロンプトを一度計算、全リクエストで再利用
主要機能#
| 機能 | 説明 |
|---|---|
| Continuous batching | 実行中のバッチに新しいリクエストを途中参加 |
| Chunked prefill | 長いプロンプトを分割、デコードをブロックしない |
| Prefix caching | 繰り返しシステムプロンプトで40%レイテンシ削減 |
| Tensor/pipeline/expert並列化 | 8+ GPUにスケール |
| 投機的デコード | EAGLE 3.1、DFlash — 最大2倍スループット |
| 分離型prefill/decode | 別サーバーで独立スケーリング |
| KVキャッシュ量子化 | FP8、NVFP4、INT8、INT4 |
量子化サポート#
| フォーマット | 実装 | ハードウェア |
|---|---|---|
| FP8 (W8A8) | Dynamic/static、トークングループ単位の活性化 | Hopper+ |
| NVFP4 | NVIDIAネイティブ4ビット浮動小数点 (SM100+) | Blackwell |
| MXFP4 | OCP Microscaling 4-bit | Blackwell, Hopper |
| INT4 (AWQ/GPTQ) | Marlinカーネル | Turing+ |
| INT8 | llm-compressor、静的 | Ampere+ |
| KVキャッシュ | FP8、NVFP4、INT8、INT4 | Hopper+ |
2026年のコンセンサス:BF16 → FP8(Hopper)→ NVFP4/MXFP4(Blackwell)。
ハードウェア#
- NVIDIA CUDA: Volta → Blackwell(SM 7.0–12.0)。全機能対応
- AMD ROCm: MI300X、MI355X
- Intel XPU: Arc Pro Bシリーズ
- Google TPU: プラグイン(PyTorch + JAX)
- Apple Silicon: vllm-metalプラグイン(MLXベース)、M4 Maxで~525 tok/s
- CPU: x86/ARM/PowerPC/S390X
- Huawei Ascend、AWS Trainium/Inferentia、IBM Spyre: プラグイン
200+のモデルアーキテクチャをHugging Face上でサポート。
マルチモーダル#
2025-2026年以降、vLLMはマルチモーダルに対応:
- 画像: LLaVA、Qwen2.5-VL、Pixtral、Gemma3
- 動画: Qwen2.5-VL、Qwen3-VL
- 音声: Whisper、Qwen2-Audio、Ultravox
- オムニ: Qwen3-Omni — インターリーブ音声+動画
vLLM-Omni(2025年11月)が追加:Diffusion Transformers(DiT)、TTS、非自己回帰生成、異種出力。
サービング機能#
- OpenAI互換API:
/v1/chat/completions、/v1/completions、/v1/embeddings— ドロップイン置換 - Anthropic Messages API
- 構造化出力: xgrammar + guidance。
guided_json、guided_regex、guided_grammar - ツール呼び出し: Hermes、Mistral、Llama3、Qwen、xLAM、Granite…
- マルチLoRA: Dense + MoEレイヤー用Fusedカーネル
- リアルタイムAPI: WebSocketストリーミング
- vLLM Semantic Router: マルチモーダルルーティング、負荷分散
パフォーマンス#
H100単一GPUスループット(batch=32、FP16):
| エンジン | 7B | 13B | 70B |
|---|---|---|---|
| vLLM | 180 tok/s | 120 | 50 |
| SGLang | 160 | 110 | 45 |
| TGI | 140 | 90 | 40 |
| TensorRT-LLM | 280 | 200 | 100 |
| llama.cpp | 8 | 6 | 2 |
同時サービング — Llama 3 70B(A100 80GB):
| 同時接続数 | vLLM | Ollama |
|---|---|---|
| 10 | ~30 tok/s | ~15 tok/s |
| 50 | ~18 tok/s | ~4 tok/s |
| 100 | ~12 tok/s | OOM |
| GPUメモリ利用率 | ~96% | 60-70% |
| KVキャッシュ浪費 | <4% | 40-60% |
vLLM vs 代替手段#
| 観点 | vLLM | TGI | TRT-LLM | SGLang | llama.cpp |
|---|---|---|---|---|---|
| PagedAttention | ✅ ネイティブ | ❌ | 部分的 | RadixAttention | ❌ |
| スループット | ベースライン | ~78% | 2-3xピーク | ~90-95% | ~5% |
| コールドスタート | ~62s | 高速 | ~28分コンパイル | ~58s | 即時 |
| ハードウェア | マルチプラットフォーム | CUDA/ROCm | CUDAのみ | CUDA/ROCm | 全て |
| OpenAI API | 完全+Anthropic | 部分的 | Triton経由 | 完全 | 部分的 |
| 量子化 | FP8/FP4/INT4… | 同様 | FP4/FP8/INT4 | 同様 | GGUF |
2026年のコンセンサス:GPUサービングはvLLMがデフォルト。プレフィックス共有が多い場合はSGLang。静的ピーク性能はTRT-LLM。TGIはメンテナンスモード。
開発タイムライン 2025-2026#
| 時期 | 出来事 |
|---|---|
| 2025年1月 | vLLM V1アーキテクチャ書き換え |
| 2025年11月 | vLLM-Omniリリース — オムニモーダル |
| 2026年1月 | Streaming Requests、Realtime WebSocket API |
| 2026年3月 | P-EAGLE並列投機的デコード |
| 2026年4月 | FP8 KV-Cache、RTX PRO 6000 NVFP4 — 6.5xスループット |
| 2026年5月 | EAGLE 3.1、Native RL APIs |
| 2026年7月 | v0.26.0(PyPI) |