AI・機械学習
上級

vLLM(ブイエルエルエム)

UC Berkeley発の高スループットLLM推論フレームワーク。PagedAttentionによりGPU KVキャッシュを仮想メモリ方式で管理し、従来比最大24倍のスループットを実現する。OpenAI互換APIサーバーとして広く採用される。

0 回閲覧
0 いいね
2026/5/25 更新
関連タグ
vLLM
PagedAttention
LLM推論
KVキャッシュ
高スループット
OpenAI互換
連続バッチ処理
UC Berkeley

vLLMとは

vLLM(Virtual LLM)は2023年6月にUC Berkeleyの研究チーム(Woosuk Kwon、Zhuohan Li ら)が発表した高スループットLLM推論フレームワークです。NeurIPS 2023に採択された論文「Efficient Memory Management for Large Language Model Serving with PagedAttention」で提案されたPagedAttentionアルゴリズムを核心技術として採用しています。

2026年5月現在、GitHubスター45,000超・PyPI月間ダウンロード400万件以上を記録しており、セルフホスト型LLM APIサーバーとして事実上の業界標準となっています。Meta・Microsoft・IBM等の大企業から個人開発者まで幅広く採用されています。

PagedAttentionの仕組み

LLM推論の最大ボトルネックはKVキャッシュ(Key-Value Cache)のメモリ管理です。従来の実装では各シーケンスに最大コンテキスト長分の連続メモリを事前確保するため、GPUメモリの60〜80%が断片化・未使用状態になっていました。PagedAttentionはOSの仮想メモリ管理からインスピレーションを得た革新的アプローチです。

  • 物理ブロック(Physical Blocks): KVキャッシュを16トークン単位の固定サイズブロックに分割。RTX 4090の24GB VRAMを物理ブロックプールとして管理し必要時に動的割り当て
  • 論理ブロック(Logical Blocks): 各シーケンスは論理ブロックの連続列として表現。物理的に連続でなくてもよいため断片化が解消される
  • コピーオンライト(Copy-on-Write): Beam SearchやParallel Samplingで共通プレフィックスを持つシーケンスが物理ブロックを共有し、分岐時のみコピーが発生。メモリ使用量を大幅削減

この結果HuggingFace TransformersやDeepSpeedと比較して最大24倍のスループット向上が実証されています。

主な機能・スペック比較

機能詳細
対応モデルLlama 1/2/3/3.1/3.2/3.3、Mistral、Mixtral、Falcon、Qwen 2/2.5、Gemma 2/3、DeepSeek V2/V3/R1 など100+モデル
テンソル並列化1〜8+ GPU(--tensor-parallel-size指定)
パイプライン並列化複数ノード分散推論対応
量子化AWQ、GPTQ、INT4、INT8、FP8ネイティブ対応
推論方式Continuous Batching + PagedAttention
API互換性OpenAI Chat Completions / Completions API完全互換
ストリーミングSSE(Server-Sent Events)対応
最大コンテキストモデル依存(128K+対応)
ライセンスApache 2.0

ベンチマーク比較(Llama 3.1 8B、RTX 4090 24GB、バッチサイズ32)

フレームワークスループット(req/s)レイテンシ P50(ms)VRAM効率
vLLM 0.6.x25.414292%
HuggingFace TGI 2.x18.219571%
DeepSpeed-MII20.816083%
llama.cpp server12.131064%
Ollama9.838061%

インストール・クイックスタート

# PyPIからインストール(CUDA 12.1環境)
pip install vllm

# OpenAI互換APIサーバー起動
vllm serve meta-llama/Llama-3.1-8B-Instruct --host 0.0.0.0 --port 8000 --dtype bfloat16

# 2GPUテンソル並列化(70Bモデル向け)
vllm serve meta-llama/Llama-3.1-70B-Instruct --tensor-parallel-size 2 --gpu-memory-utilization 0.95

自作PCでの活用

RTX 4090(24GB)単体構成: Llama 3.1 8B(BF16、約16GB)が余裕で動作。スループット約25 req/s。vllm serveコマンド1行でOpenAI互換APIがlocalhostに起動し、既存のChatGPT APIコードをbase_urlのみ変更で転用可能。

RTX 4090x2台構成: --tensor-parallel-size 2でLlama 3.1 70B(BF16)をデプロイ可能。スループット約8 req/sで運用でき、GPT-4oに匹敵するプライベートAPIを構築できます。

RTX 4070 Ti(16GB)構成: Llama 3.1 8BをAWQ INT4量子化(約5GB VRAM)で動作させると約18 req/sのスループット。

競合フレームワークとの比較

フレームワーク強み弱み適用場面
vLLM汎用性・対応モデル数・コミュニティ構造化生成の速度汎用プロダクション
SGLang構造化生成・JSON速度対応モデル数Tool Use・Structured Output
TensorRT-LLM最高スループットモデル依存・柔軟性低NVIDIA専用最高性能
Ollama使いやすさ・Windows対応スループット低ローカル1ユーザー
llama.cppCPU・低VRAM動作GPU最適化不足エッジ・低スペック

よくある質問(FAQ)

Q1: vLLMをWindowsで動かせますか? A: 公式サポートはLinuxのみ(CUDA 11.8+/12.1+)。WSL2経由でWindows上のNVIDIA GPUでも動作しますが、パフォーマンスはLinux native環境より5〜15%低下します。2026年時点でWindows native対応は未実装です。

Q2: OpenAI Pythonライブラリで使えますか? A: はい、openaiライブラリのbase_urlをhttp://localhost:8000/v1に変更するだけで動作します。チャット補完・ストリーミング・ツール呼び出しなど主要パラメータは完全互換です。

Q3: バッチサイズはどう設定しますか? A: Continuous Batching機能により手動バッチサイズ設定は不要です。--max-num-seqs(デフォルト256)で同時処理シーケンス数の上限を制御し、GPUメモリに応じて自動最適化されます。

まとめ

  • UC Berkeley発オープンソースLLM推論フレームワーク(NeurIPS 2023)
  • PagedAttentionにより最大24倍のスループット向上を実現
  • Llama・Mistral・Qwen・DeepSeekなど100+モデルをサポート
  • OpenAI互換APIサーバーとして1コマンドで起動可能
  • RTX 4090単体〜マルチGPU構成まで対応するプロダクションLLMの標準基盤
この記事について
カテゴリーAI・機械学習
難易度上級
作成日2026/5/25