首页/AI/大模型部署与运维速查/vllm serve 常用启动参数
部署形态与选型43 条

vllm serve 常用启动参数

vllm serve 的关键参数集中在显存、并行与量化三组:--tensor-parallel-size 多卡切分、--gpu-memory-utilization 显存预算、--max-model-len 上下文上限、--quantization 指定量化内核。

vllm serve 的作用

vllm serve 是 vLLM 的统一服务入口,一条命令拉起 OpenAI 兼容的 HTTP 服务。它的参数可以归成四组:显存预算、并行切分、上下文与批处理上限、量化与精度。调参的本质是在「装得下模型」「扛得住并发」「单请求足够快」三者之间做取舍,改任何一项都要回到这三个目标复核。

基本信息

适用版本较新版本统一为 vllm serve,旧版走 python -m 入口
默认端口8000
必需输入Hugging Face 模型名或本地权重目录
参数查询vllm serve --help(以本机版本为准)

典型启动命令

典型启动命令
# 两卡张量并行、九成显存预算、8K 上下文、指定对外模型名
vllm serve /models/Qwen --host 0.0.0.0 --port 8000 \
  --tensor-parallel-size 2 --gpu-memory-utilization 0.9 \
  --max-model-len 8192 --served-model-name my-model
# 排查启动失败:先关 CUDA Graph 换取可读报错,再逐步加回
vllm serve /models/Qwen --enforce-eager --max-model-len 4096

常用参数

参数作用与取舍
--tensor-parallel-size张量并行卡数,把权重与 KV 按卡切分;卡数越多通信开销越大
--pipeline-parallel-size流水并行层数,跨机切层,常用于单机放不下的超大模型
--gpu-memory-utilization引擎可用显存比例,直接决定 KV 池大小,过高更早 OOM
--max-model-len单请求上下文上限,KV 池按此预留,不要随手写大
--max-num-seqs单批最大并发序列数,限制同时在处理的请求数量
--max-num-batched-tokens单批 token 总预算,预填充与解码共享这份预算
--quantization量化内核(awq / gptq / fp8 等),必须与权重格式匹配
--kv-cache-dtypeKV 缓存精度,选 fp8 可省显存但要回归输出质量
--served-model-name对外暴露的模型名,客户端 model 字段填这个
--enable-prefix-caching复用相同前缀的 KV,多轮对话与固定系统提示收益明显
--api-key简易密钥校验,只能兜底,生产仍需网关统一鉴权
参数以本机 vllm serve --help 为准:默认值随版本变化,尤其并发与批 token 上限,照抄旧文容易得到与预期不同的并发表现。
--gpu-memory-utilization 拉到 0.95 以上会挤压 KV 池:短上下文压测看不出异常,长上下文并发时更早出现排队与 OOM,通常留一成余量。
启动日志会打印 KV 池可容纳的块数与 token 数,这是判断「还能不能加压」的第一手数据,比事后翻监控猜显存更可靠。
关闭图捕获(--enforce-eager)能让报错更早、更可读,代价是损失一部分吞吐与首 token 延迟表现:排查阶段可以开,长期运行要恢复。

启动日志读法

日志项含义
max_model_len实际生效的上下文上限,与命令行是否一致要核对
KV cache blocksKV 池可容纳的块数,直接决定并发 token 总量
Maximum concurrency按当前配置推算的并发请求上限,用作压测起点
tensor parallel size并行配置是否按预期生效,多卡时重点核对
模型加载耗时权重读取与初始化时间,影响扩容切流速度
多实例部署要给每个实例显式指定端口,并把监听地址限制为环回或内网:端口冲突与地址意外暴露是两个最常见的事故来源。

调参顺序

  • 先定装得下:只调 --max-model-len 与量化档位,确认模型能加载并跑通一次请求,此刻不看并发
  • 再定并发:在目标上下文长度下加压,观察 KV 池水位与排队请求数,据此调 --max-num-seqs
  • 后定延迟:批预算偏大时首 token 延迟上升,用 --max-num-batched-tokens 往回收
  • 再算成本:记录稳定态吞吐,换算每百万 token 成本,与云 API 报价横向比较
  • 最后定基线:把最终参数、权重版本与压测结果一起存档,作为下次发布的回归对标

易错点

  • --max-model-len 直接写成模型上限(如 128K):KV 池按上限预留,业务只用 8K 时显存被白白占住
  • 多卡卡型不一致:每张卡都要放下分片后的权重与 KV,实际以容量最小、最慢的那张卡为准
  • 改了启动参数不重启就期待生效:这些参数在进程启动时读取,变更要按灰度流程重启切流
  • 把 --api-key 明文写在启动命令并提交进仓库:密钥会进镜像与日志,应改用环境变量或密钥文件
  • 只测单请求延迟就上线:容量口径必须包含并发下的首 token 延迟与吞吐,否则无法规划扩容

数据来源与参考

  • vLLM 官方文档:Engine Arguments(docs.vllm.ai)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌