用語集と資料
源码版本v0.25.1
主要用語
| 用語 | 英語 | 説明 |
|---|---|---|
| エンジン引数 | EngineArgs | すべての起動パラメータ、VllmConfig を派生。vllm/engine/arg_utils.py |
| グローバル設定 | VllmConfig | モデル/キャッシュ/スケジュール/並列などのサブ設定の集約体。vllm/config/__init__.py |
| LLM オフラインクラス | LLM | 同期オフライン生成エントリ、LLM.generate。vllm/entrypoints/llm.py |
| 非同期 LLM | AsyncLLM | EngineClient の非同期実装、サーバーサイドエントリ。vllm/v1/engine/async_llm.py |
| LLM エンジン | LLMEngine | v1 の薄い殻、add_request/step、EngineCore に委譲。vllm/v1/engine/llm_engine.py |
| エンジンコア | EngineCore | 真の核心、scheduler+worker+kv cache を組合せ。vllm/v1/engine/core.py |
| エンジンコアプロセス | EngineCoreProc | ZMQ バックグラウンドプロセスの殻、EngineCore を継承。vllm/v1/engine/core.py |
| エンジンクライアント | EngineCoreClient | Inproc/MP/AsyncMP クライアントの ABC。vllm/v1/engine/core_client.py |
| 同プロセスクライアント | InprocClient | プロセスを起動せず、直接 step_fn を呼ぶ。vllm/v1/engine/core_client.py |
| マルチプロセスクライアント | MPClient | マルチプロセス同期、ZMQ 経由で通信。vllm/v1/engine/core_client.py |
| スケジューラ | Scheduler | waiting/running キュー、schedule、プリエンプション (preemption)。vllm/v1/core/sched/scheduler.py |
| リクエストキュー | RequestQueue | FCFS / Priority の二種類の戦略。vllm/v1/core/sched/queue.py |
| 連続バッチング | Continuous Batching | 毎ステップ動的にバッチを組み、prefill と decode を混走。vllm/v1/core/sched/scheduler.py |
| プリエンプション | Preemption | VRAM 不足時に running リクエストをスワップアウトし、新リクエスト用に枠を空ける。vllm/v1/core/sched/scheduler.py |
| 実行器 | Executor | UniProc/Multiproc/Ray の三種類。vllm/v1/executor/ |
| Ray 分散実行器 | RayDistributedExecutor | クラスタをまたぐ Ray クラスタで worker をスケジュール。vllm/v1/executor/ray_distributed_executor.py |
| Worker | Worker | 分散環境 + GPU 実行ユニット。vllm/v1/worker/gpu_worker.py |
| モデルランナー | GPUModelRunner | execute_model、input_batch、cudagraph 管理。vllm/v1/worker/gpu_model_runner.py |
| マイクロバッチ | ubatch | 一つの step 内でリクエストをさらにマイクロバッチに切り、cudagraph に適合。vllm/v1/worker/gpu_model_runner.py |
| CUDA グラフ | cudagraph | 事前録音された kernel シーケンス、shape 固定、launch オーバーヘッドを排除。vllm/v1/worker/gpu_model_runner.py |
| デフォルトモデルローダー | DefaultModelLoader | HF/s3 などから重みを取得、safetensors / pytorch フォーマット。vllm/model_executor/model_loader/default_loader.py |
| 列並列線形層 | ColumnParallelLinear | 重みを出力次元で分割、forward 後に all-gather または RowParallel の前に reduce。vllm/model_executor/layers/linear.py |
| QKV 並列線形層 | QKVParallelLinear | Q/K/V を head 単位で一緒に切り、GQA/MQA の投影を統合。vllm/model_executor/layers/linear.py |
| 行並列線形層 | RowParallelLinear | 重みを入力次元で分割、forward 後に all-reduce。vllm/model_executor/layers/linear.py |
| KV キャッシュマネージャー | KVCacheManager | block の割り当てとライフサイクル、group 間で共有。vllm/v1/core/kv_cache_manager.py |
| KV キャッシュコーディネーター | KVCacheCoordinator | Hybrid/Unitary/NoPrefixCache の三種類。vllm/v1/core/kv_cache_coordinator.py |
| ブロックプール | BlockPool | PagedAttention の block 割り当て + prefix cache LRU。vllm/v1/core/block_pool.py |
| ページアテンション | PagedAttention | block 単位で KV cache を分割し、連続メモリの断片化を回避。csrc/attention/ |
| プレフィックスキャッシュ | Prefix Caching | 共通前置の KV block をリクエスト間で再利用。vllm/v1/core/kv_cache_manager.py |
| アテンションバックエンド | AttentionBackend | FlashAttention/FlashInfer/Triton/MLA の抽象層。vllm/v1/attention/backend.py |
| FlashAttention | FlashAttention | Dao Labs の flash_attn kernel、FA2/3/4 自適応。vllm/v1/attention/backends/flash_attn.py |
| FlashInfer | FlashInfer | FlashInfer プロジェクトの kernel、GQA/FP8/大 page をネイティブサポート。vllm/v1/attention/backends/flashinfer.py |
| Triton | Triton | 純 Python の Triton kernel、fp32 とエッジ量子化のフォールバック。vllm/v1/attention/backends/triton_attn.py |
| 潜在空間アテンション | MLA | Multi-head Latent Attention、DeepSeek シリーズ、latent + RoPE をキャッシュ。vllm/v1/attention/backends/mla/ |
| サンプラー | Sampler | forward/sample、logits → token。vllm/v1/sample/sampler.py |
| Logits プロセッサー | LogitsProcessor | サンプリング前の logits 変換抽象、argmax-invariant な分類。vllm/v1/sample/logits_processor/interface.py |
| 並列状態 | parallel_state | TP/PP/DP 通信グループのグローバルシングルトン。vllm/distributed/parallel_state.py |
| グループコーディネーター | GroupCoordinator | ProcessGroup のラッパ、CPU/device 双方の group を保持。vllm/distributed/parallel_state.py |
| テンソル並列 | TP | Tensor Parallelism、重みを次元で分割、forward 時に all-reduce/all-gather。 |
| パイプライン並列 | PP | Pipeline Parallelism、モデルを層単位で複数 GPU に分割、マイクロバッチをパイプライン処理。 |
ディレクトリ規約
- ソース:
vllm-project/vllm、主コードはvllm/(Python)、CUDA kernel はcsrc/。 - v0.25 は v1 アーキテクチャに移行済み:
vllm/v1/が主戦場、vllm/engine/はほぼ別名。 - エントリ:
vllm/entrypoints/(llm.pyがオフライン、openai/が server、cli/)。
公式資料
- vLLM 公式ドキュメント
- vLLM 設計ドキュメント
- GitHub リポジトリ(tag v0.25.1、Apache-2.0 ライセンス)
ソースバージョン
本サイトのソースバージョンは v0.25.1 に固定、行番号はこの tag に基づく。すべての SrcLink は github.com/vllm-project/vllm/blob/v0.25.1/<path>#Lxx-Lyy を指す。バージョンアップ時は docs/.vitepress/site.ts の VLLM_TAG を変更し、npm run check:refs を実行する。