一 、安裝
二、啟動入口
VLLM 提供了多種入口方式啟動模型,以適應不同的使用場景(如命令行交互、API 服務、自定義集成等)。除了最常用的 openai.api_server(OpenAI 兼容 API 服務),還有以下主要入口:
1. cli:命令行交互式推理
適合快速測試模型,直接在終端進行對話交互。
python -m vllm.entrypoints.cli \--model lmsys/vicuna-7b-v1.5 \--tensor-parallel-size 1 \--max-model-len 2048
特點:
- 啟動后進入交互式命令行,可直接輸入 prompt 與模型對話
- 支持設置采樣參數(如 --temperature、–top-p 等)
- 適合用于快速驗證模型功能或調試
2.api_server:通用 RESTful API 服務
python -m vllm.entrypoints.api_server \--model facebook/opt-13b \--port 8000 \--tensor-parallel-size 2
特點:
- 提供 /generate 和 /generate_stream 接口,支持同步和流式輸出
- 請求 / 響應格式為 VLLM 自定義結構(與 OpenAI API 不同)
- 適合需要輕量 API 服務的場景,無需兼容 OpenAI 格式
3. grpc_server:GRPC 服務
通過 GRPC 協議提供高性能的模型推理服務,適合低延遲、高并發的后端集成。
python -m vllm.entrypoints.grpc_server \--model meta-llama/Llama-2-70b-chat-hf \--tensor-parallel-size 4 \--port 50051
特點:
- 基于 GRPC 協議,比 REST API 具有更低的序列化開銷
- 需配合 VLLM 定義的 .proto 協議文件開發客戶端
- 適合高性能、分布式系統中的服務間調用
4. controller 與 worker:分布式部署入口
用于大規模分布式部署,支持多 worker 節點協同工作,由 controller 負責負載均衡。
(1)啟動 controller
python -m vllm.entrypoints.controller \--host 0.0.0.0 \--port 8000
(2)啟動 worker(需指定 controller 地址)
python -m vllm.entrypoints.worker \--model bigscience/bloom \--controller http://localhost:8000 \--worker http://localhost:8001 \--tensor-parallel-size 2
(3)啟動 api_server 連接分布式集群
python -m vllm.entrypoints.openai.api_server \--served-model-name bloom \--controller http://localhost:8000 \--port 8002
特點:
- 支持橫向擴展(增加 worker 節點提升吞吐量)
- 適合生產環境中大規模部署,支持動態擴縮容
- 需要 controller 協調多個 worker 節點的任務分配
可通過 python -m vllm.entrypoints.<入口名> --help 查看各入口的具體參數(如 python -m vllm.entrypoints.cli --help)。
三、openai.api_server入口啟動參數
1.常用啟動腳本
CUDA_VISIBLE_DEVICES=4,5 nohup python -m vllm.entrypoints.openai.api_server --model /data/models/Qwen3-32B --trust-remote-code --served-model-name Qwen3-32B --tensor-parallel-size 2 --gpu-memory-utilization 0.9 --max-model-len 32768 --port 40113 --swap-space 16 --disable-log-requests --enable-chunked-prefill --enable-prefix-caching >> startQwen32B.log 2>&1 &
2.常見參數
VLLM 啟動模型時的主要可選參數分類及說明(以最常用的 openai.api_server 入口為例):
(1).模型與權重配置
- model MODEL_PATH
必選參數,指定模型權重路徑(本地路徑或 Hugging Face Hub 模型名,如 lmsys/vicuna-7b-v1.5)。 - trust-remote-code
允許加載模型中定義的遠程代碼(適用于自定義模型結構,如 Qwen、LLaMA 等)。 - revision REVISION
指定模型在 Hugging Face Hub 上的版本(分支名或 commit hash)。 - code-path CODE_PATH
自定義模型代碼的本地路徑(當 trust_remote_code 不適用時)。 - tokenizer TOKENIZER_PATH
自定義分詞器路徑(默認與模型路徑相同)。 - tokenizer-mode {auto,slow}
分詞器模式,slow 用于不支持快速分詞的模型。
(2).并行與硬件配置
- tensor-parallel-size N
張量并行的 GPU 數量(需與可用 GPU 數量匹配,如 --tensor-parallel-size 2 表示用 2 張卡并行)。 - gpu-memory-utilization RATIO
GPU 內存利用率上限(0~1 之間,如 0.9 表示使用 90% 的 GPU 內存)。 - cpu-offloading
啟用 CPU 卸載(將部分層轉移到 CPU 內存,緩解 GPU 內存壓力,速度會降低)。 - disable-custom-all-reduce
禁用自定義的 all-reduce 通信優化(適用于某些不兼容的 GPU 環境)。 - pipeline-parallel-size N
流水線并行的 GPU 數量(較少使用,通常與張量并行配合)。
(3).推理性能與緩存配置
- max-model-len LENGTH
模型支持的最大序列長度(輸入 + 輸出,如 32768 表示 32k 長度)。 - swap-space SWAP_SIZE
CPU 交換空間大小(GB),用于臨時存儲超出 GPU 內存的 KV 緩存(如 16 表示 16GB)。 - enable-chunked-prefill
啟用分塊預填充(將長輸入的 Prefill 階段分塊處理,減少峰值內存占用)。 - enable-prefix-caching
啟用前綴緩存(復用相同 prompt 前綴的 KV 緩存,加速重復請求)。 - kv-cache-dtype {fp8,fp16,bf16,auto}
KV 緩存的數據類型(如 fp8 可減少內存占用,需 GPU 支持)。 - max-num-batched-tokens NUM
批處理中允許的最大 token 總數(控制單批處理量,影響吞吐量)。 - max-num-seqs NUM
批處理中允許的最大序列數(并發請求數上限)。
(4).API 服務配置(OpenAI 兼容接口)
- host HOST
服務綁定的 IP 地址(默認 0.0.0.0,允許外部訪問)。 - port PORT
服務監聽的端口(如 8000)。 - served-model-name NAME
對外暴露的模型名稱(API 調用時使用,默認與模型名相同)。 - allow-credentials
允許跨域請求攜帶 credentials(用于前端跨域調用)。 - allowed-origins ORIGINS
允許的跨域來源(如 http://localhost:3000,多個用逗號分隔)。 - allowed-methods METHODS
允許的 HTTP 方法(默認 GET,POST,OPTIONS)。
-allowed-headers HEADERS
允許的 HTTP 頭(默認 *)。
(5).日志與調試配置
- log-level {debug,info,warn,error}
日志級別(默認 info)。 - disable-log-requests
禁用請求日志(不記錄 API 調用詳情)。 - debug
啟用調試模式(輸出更詳細的日志)。
(6).其他高級配置
- seed SEED
隨機種子(確保推理結果可復現)。 - temperature TEMPERATURE
采樣溫度(默認 1.0,值越低輸出越確定)。 - top-p TOP_P
核采樣參數(默認 1.0,控制輸出多樣性)。 - max-log-probs MAX_LOG_PROBS
返回的最大對數概率數量(用于 token 概率分析)。 - quantization {awq,gptq,sq,int4,int8}
啟用模型量化(如 awq 或 gptq,減少內存占用)。 - rope-scaling {linear,dynamic}
RoPE 縮放方式(用于擴展模型的上下文長度)。 - rope-factor FACTOR
RoPE 縮放因子(配合 rope-scaling 使用)。
3.參數查詢方式
python -m vllm.entrypoints.openai.api_server --help