概要
vLLMのプロダクション向けサービス起動コマンドで、モデルをOpenAI互換APIに変換します。並列リクエスト、マルチGPU、量子化加速などの高度機能をサポート。
benchシリーズとの違い
bench latency/throughput - エンジン性能測定(ネットワーク無し)
bench serve - 実際のユーザー負荷テスト(ネットワーク含む)
serve - 本番環境での実際のリクエスト処理
パラメータ分類
基本設定: --host / --port / --api-key / --config
🔹 モデル設定: --model / --dtype / --quantization / --max-model-len
🔹 並列処理: -tp / -pp / -dp / --distributed-executor-backend
🔹 KVキャッシュ: --block-size / --gpu-memory-utilization / --enable-prefix-caching
🔹 マルチモーダル: --limit-mm-per-prompt / --mm-processor-kwargs
🔹 LoRA: --enable-lora / --max-loras / --max-lora-rank
🔹 スケジューリング: --max-num-batched-tokens / --enable-chunked-prefill
🔹 コンパイル最適化: --compilation-config / --optimization-level
🔹 ロギング: --enable-log-requests / --otlp-traces-endpoint
基本設定パラメータ
| パラメータ | デフォルト | 説明 | 例 |
| --host | 127.0.0.1 | バインドIP | 0.0.0.0(全インターフェース) |
| --port | 8000 | ポート番号 | 8080(競合回避) |
| --api-key | - | セキュリティ認証 | sk-xxx(必須) |
| --config | - | YAML設定ファイル | serve_config.yaml |
開発環境設定例
vllm serve \
--model meta-llama/Llama-3-8b \
--host 127.0.0.1 \
--port 8000 \
--dtype bfloat16
本番環境設定例
vllm serve \
--model meta-llama/Llama-3-8b \
--host 0.0.0.0 \
--port 8080 \
--api-key sk-abc123xyz \
--dtype bfloat16 \
--gpu-memory-utilization 0.9
モデル設定パラメータ
| パラメータ | デフォルト | 説明 | 例 |
| --model | Qwen/Qwen3-0.6B | モデル名またはパス | meta-llama/Llama-3-8b |
| --dtype | auto | 精度指定 | bfloat16(A100向け) |
| --quantization | - | 量子化方法 | awq(4bit) |
| --max-model-len | 自動 | 最大コンテキスト長 | 4096(短い会話) |
低GPU環境での設定
vllm serve \
--model meta-llama/Llama-3-8b \
--dtype float16 \
--quantization awq \
--max-model-len 4096 \
--gpu-memory-utilization 0.85
並列処理パラメータ
| パラメータ | 省略形 | 説明 | 例 |
| --tensor-parallel-size | -tp | テンソル並列 | -tp 2(2GPU) |
| --pipeline-parallel-size | -pp | パイプライン並列 | -pp 2(80B+モデル) |
| --data-parallel-size | -dp | データ並列 | -dp 4(高負荷対応) |
70Bモデルの2GPU配置
vllm serve \
--model meta-llama/Llama-3-70b \
-tp 2 \
--dtype bfloat16 \
--gpu-memory-utilization 0.9
KVキャッシュ設定
| パラメータ | デフォルト | 説明 | 効果 |
| --block-size | 自動 | ブロックサイズ | 16(メモリ節約) |
| --enable-prefix-caching | False | 接頭辞キャッシュ | マルチターン対話の30%高速化 |
| --kv-cache-dtype | auto | KVキャッシュ精度 | fp8(50%メモリ削減) |
マルチターン対話の最適化
vllm serve \
--model meta-llama/Llama-3-8b \
--enable-prefix-caching \
--block-size 16 \
--kv-cache-dtype fp8
スケジューリングパラメータ
| パラメータ | デフォルト | 説明 | 例 |
| --max-num-batched-tokens | - | バッチ処理トークン数 | 8192(小規模モデル) |
| --enable-chunked-prefill | False | チャンク化事前充填 | 長文入力の初出遅延改善 |
| --scheduling-policy | fcfs | スケジューリング方式 | priority(VIP優先) |
長文要約の設定
vllm serve \
--model meta-llama/Llama-3-8b \
--max-model-len 32768 \
--enable-chunked-prefill \
--max-num-batched-tokens 16384
高度な機能
LoRAアダプター
vllm serve \
--model meta-llama/Llama-3-8b \
--enable-lora \
--max-loras 4 \
--lora-modules medical=/path/to/medical_lora,legal=/path/to/legal_lora
マルチモーダルサポート
vllm serve \
--model Qwen/Qwen2-VL-7B-Instruct \
--limit-mm-per-prompt '{"image": 4}' \
--mm-processor-kwargs '{"num_crops": 4}'
コンパイル最適化
vllm serve \
--model meta-llama/Llama-3-8b \
--optimization-level 3 \
-cc '{"mode": 3, "cudagraph_capture_sizes": [1,2,4,8,16,32]}'
監視設定
| パラメータ | デフォルト | 説明 |
| --enable-log-requests | False | リクエスト詳細ログ |
| --otlp-traces-endpoint | - | OpenTelemetryエンドポイント |
| --disable-log-stats | False | パフォーマンスログ無効化 |
Prometheus統合例
vllm serve \
--model meta-llama/Llama-3-8b \
--disable-log-stats \
--uvicorn-log-level warning
トラブルシューティング
| 問題現象 | 原因 | 解決策 |
| CUDAメモリ不足 | バッチサイズ過大 | --max-model-lenを減らす |
| 401未承認 | APIキー未設定 | --api-keyを指定する |
| 外からアクセス不可 | --hostが127.0.0.1 | --host 0.0.0.0に変更 |