随着大语言模型在各类业务场景中的落地,如何以低延迟、高吞吐的方式部署推理服务成为关键挑战。vLLM 是一款专为高效推理设计的推理引擎,支持 OpenAI API 接口,具备极强的批处理能力和优秀的内存管理性能。
vllm serve
是 vLLM 提供的命令行入口,用于启动一个 OpenAI API 兼容的推理服务,支持以下标准接口路径:
/v1/chat/completions
/v1/completions
/v1/tokenize
/v1/models
这意味着,原本面向 OpenAI 的 API 客户端代码无需改动即可切换使用本地部署的大模型,极大降低了模型替换成本。
你可以通过以下方式启动服务:
vllm serve \
--model /path/to/your/model \
--served-model-name my-model \
--port 8000
python3 -m vllm.entrypoints.openai.api_server \
--model /path/to/your/model \
--served-model-name my-model \
--port 8000
想了解完整参数可执行:
vllm serve --help
以下是部署实践中最常用的一些参数,按功能分类说明:
参数 | 说明 |
---|---|
--model |
模型路径(支持本地路径或 Hugging Face 名称) |
--served-model-name |
服务暴露的模型名(体现于 API 调用中) |
--tokenizer |
指定分词器路径(可选) |
--dtype |
精度类型(float16 , bfloat16 , float32 ) |
--quantization |
模型量化方式(如 awq , gptq ) |
--max-model-len |
最大上下文长度(如 8192、20000) |
参数 | 说明 |
---|---|
--tensor-parallel-size |
张量并行 GPU 数量(多卡部署) |
--gpu-memory-utilization |
GPU 显存占用上限比例(推荐 0.9~0.95) |
--max-num-batched-tokens |
每次 batch 中最大 token 数量 |
--max-num-seqs |
单批处理的最大请求数 |
--kv-cache-dtype |
KV 缓存精度类型(auto 、float16 ) |
参数 | 说明 |
---|---|
--enable-prefix-caching |
启用提示词缓存,提升重复请求性能 |
--enable-chunked-prefill |
启用 Chunked Prefill,优化长上下文处理 |
--disable-batching |
禁用批处理(调试用) |
参数 | 说明 |
---|---|
--enable-auto-tool-choice |
启用工具自动选择(Tool Choice 模型适配) |
--tool-call-parser |
工具调用结构解析器(如 hermes ) |
vLLM 0.8.5+ 开始支持投机采样,可通过以下参数启用:
--speculative_config '{
"model": "/path/to/draft-model",
"num_speculative_tokens": 3,
"draft_tensor_parallel_size": 1
}'
投机采样可通过轻量 draft 模型提前生成 token,主模型验证,大幅提升吞吐量。
参数 | 说明 |
---|---|
--disable-log-requests |
禁用推理请求日志 |
--disable-uvicorn-access-log |
关闭 HTTP 日志 |
--log-level |
日志级别(如 info , debug ) |
参数 | 说明 |
---|---|
--host |
服务监听地址(默认 127.0.0.1) |
--port |
服务端口 |
--ssl-keyfile / --ssl-certfile |
启动 HTTPS 服务的证书配置 |
vLLM 支持多种量化格式(如 AWQ
, GPTQ
等),可直接加载量化后的模型路径部署,但请注意:
vLLM 的核心优势之一是 Token-Level Batching,即只要当前 token 数一致即可合并请求为一个 batch,极大提升并发性能。
这意味着:
vLLM 0.9.0 起支持通过 YAML 文件统一管理参数,便于 CI/CD 或容器部署场景。
model: /path/to/your/model
served-model-name: my-model
tensor-parallel-size: 1
gpu-memory-utilization: 0.95
port: 8000
enable-prefix-caching: true
enable-chunked-prefill: true
disable-log-requests: true
disable-uvicorn-access-log: true
speculative_config:
model: /path/to/draft-model
num_speculative_tokens: 3
draft_tensor_parallel_size: 1
vllm serve --config config.yaml
这种方式尤其适合 K8s、Slurm 等自动化环境,配置清晰、管理高效。
场景 | 建议参数 |
---|---|
高并发服务部署 | --enable-prefix-caching , --enable-chunked-prefill , 合理设置 --max-num-seqs |
使用量化模型 | 确认量化模型格式和 KV 缓存支持,测试 chunked 和 speculative 兼容性 |
对响应速度极致优化 | 开启投机采样,合理选择 draft 模型 |
跨团队协作/多环境部署 | 使用 YAML 配置统一参数管理 |
参考链接:vLLM 官方 GitHub