Skip to content

用語集と資料

源码版本v0.25.1

主要用語

用語英語説明
エンジン引数EngineArgsすべての起動パラメータ、VllmConfig を派生。vllm/engine/arg_utils.py
グローバル設定VllmConfigモデル/キャッシュ/スケジュール/並列などのサブ設定の集約体。vllm/config/__init__.py
LLM オフラインクラスLLM同期オフライン生成エントリ、LLM.generatevllm/entrypoints/llm.py
非同期 LLMAsyncLLMEngineClient の非同期実装、サーバーサイドエントリ。vllm/v1/engine/async_llm.py
LLM エンジンLLMEnginev1 の薄い殻、add_request/step、EngineCore に委譲。vllm/v1/engine/llm_engine.py
エンジンコアEngineCore真の核心、scheduler+worker+kv cache を組合せ。vllm/v1/engine/core.py
エンジンコアプロセスEngineCoreProcZMQ バックグラウンドプロセスの殻、EngineCore を継承。vllm/v1/engine/core.py
エンジンクライアントEngineCoreClientInproc/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
スケジューラSchedulerwaiting/running キュー、schedule、プリエンプション (preemption)。vllm/v1/core/sched/scheduler.py
リクエストキューRequestQueueFCFS / Priority の二種類の戦略。vllm/v1/core/sched/queue.py
連続バッチングContinuous Batching毎ステップ動的にバッチを組み、prefill と decode を混走。vllm/v1/core/sched/scheduler.py
プリエンプションPreemptionVRAM 不足時に running リクエストをスワップアウトし、新リクエスト用に枠を空ける。vllm/v1/core/sched/scheduler.py
実行器ExecutorUniProc/Multiproc/Ray の三種類。vllm/v1/executor/
Ray 分散実行器RayDistributedExecutorクラスタをまたぐ Ray クラスタで worker をスケジュール。vllm/v1/executor/ray_distributed_executor.py
WorkerWorker分散環境 + GPU 実行ユニット。vllm/v1/worker/gpu_worker.py
モデルランナーGPUModelRunnerexecute_modelinput_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
デフォルトモデルローダーDefaultModelLoaderHF/s3 などから重みを取得、safetensors / pytorch フォーマット。vllm/model_executor/model_loader/default_loader.py
列並列線形層ColumnParallelLinear重みを出力次元で分割、forward 後に all-gather または RowParallel の前に reduce。vllm/model_executor/layers/linear.py
QKV 並列線形層QKVParallelLinearQ/K/V を head 単位で一緒に切り、GQA/MQA の投影を統合。vllm/model_executor/layers/linear.py
行並列線形層RowParallelLinear重みを入力次元で分割、forward 後に all-reduce。vllm/model_executor/layers/linear.py
KV キャッシュマネージャーKVCacheManagerblock の割り当てとライフサイクル、group 間で共有。vllm/v1/core/kv_cache_manager.py
KV キャッシュコーディネーターKVCacheCoordinatorHybrid/Unitary/NoPrefixCache の三種類。vllm/v1/core/kv_cache_coordinator.py
ブロックプールBlockPoolPagedAttention の block 割り当て + prefix cache LRU。vllm/v1/core/block_pool.py
ページアテンションPagedAttentionblock 単位で KV cache を分割し、連続メモリの断片化を回避。csrc/attention/
プレフィックスキャッシュPrefix Caching共通前置の KV block をリクエスト間で再利用。vllm/v1/core/kv_cache_manager.py
アテンションバックエンドAttentionBackendFlashAttention/FlashInfer/Triton/MLA の抽象層。vllm/v1/attention/backend.py
FlashAttentionFlashAttentionDao Labs の flash_attn kernel、FA2/3/4 自適応。vllm/v1/attention/backends/flash_attn.py
FlashInferFlashInferFlashInfer プロジェクトの kernel、GQA/FP8/大 page をネイティブサポート。vllm/v1/attention/backends/flashinfer.py
TritonTriton純 Python の Triton kernel、fp32 とエッジ量子化のフォールバック。vllm/v1/attention/backends/triton_attn.py
潜在空間アテンションMLAMulti-head Latent Attention、DeepSeek シリーズ、latent + RoPE をキャッシュ。vllm/v1/attention/backends/mla/
サンプラーSamplerforward/sample、logits → token。vllm/v1/sample/sampler.py
Logits プロセッサーLogitsProcessorサンプリング前の logits 変換抽象、argmax-invariant な分類。vllm/v1/sample/logits_processor/interface.py
並列状態parallel_stateTP/PP/DP 通信グループのグローバルシングルトン。vllm/distributed/parallel_state.py
グループコーディネーターGroupCoordinatorProcessGroup のラッパ、CPU/device 双方の group を保持。vllm/distributed/parallel_state.py
テンソル並列TPTensor Parallelism、重みを次元で分割、forward 時に all-reduce/all-gather。
パイプライン並列PPPipeline Parallelism、モデルを層単位で複数 GPU に分割、マイクロバッチをパイプライン処理。

ディレクトリ規約

  • ソース:vllm-project/vllm、主コードは vllm/(Python)、CUDA kernel は csrc/
  • v0.25 は v1 アーキテクチャに移行済み:vllm/v1/ が主戦場、vllm/engine/ はほぼ別名。
  • エントリ:vllm/entrypoints/(llm.py がオフライン、openai/ が server、cli/)。

公式資料

ソースバージョン

本サイトのソースバージョンは v0.25.1 に固定、行番号はこの tag に基づく。すべての SrcLinkgithub.com/vllm-project/vllm/blob/v0.25.1/<path>#Lxx-Lyy を指す。バージョンアップ時は docs/.vitepress/site.tsVLLM_TAG を変更し、npm run check:refs を実行する。