vLLM (Virtual Large Language Model) 是一款专为大语言模型推理加速而设计的框架,其依靠卓越的推理效率和资源优化能力在全球范围内引发广泛关注。来自加州大学伯克利分校 (UC Berkeley) 的研究团队于 2023 年提出了开创性注意力算法 PagedAttention,其可以有效地管理注意力键和值。现已发展成为一个社区驱动的项目,学术界和工业界都做出了贡献。在此基础上,研究人员构建了高吞吐量的分布式 LLM 服务引擎 vLLM,实现了 KV 缓存内存几乎零浪费,解决了大语言模型推理中的内存管理瓶颈问题。与 Hugging Face Transformers 相比,其吞吐量提升了 24 倍,而且这一性能提升不需要对模型架构进行任何更改。

vLLM 具有以下功能:
- 最先进的服务吞吐量
- 使用 PagedAttention 高效管理注意力键和值内存
- 对传入请求进行连续批处理
- 使用 CUDA/HIP 图形快速执行模型
- 支持多种量化模型:GPTQ、AWQ、INT4、INT8 和 FP8
- 优化 CUDA 内核,包括 FlashAttention 和 FlashInfer 的集成。
- 推测解码
- 分块预填充
- 与流行的 HuggingFace 模型无缝集成
- 使用各种解码算法(包括并行采样、光束搜索等)实现高吞吐量服务
- Tensor 并行和 Pipeline 并行支持分布式推理
- 支持流式处理输出
- 支持OpenAI 兼容 API 服务器
- 支持 NVIDIA GPU、AMD CPU 和 GPU、INTEL CPU、GAUDI® 加速器和 GPU、POWERPC CPU、TPU 以及 AWS Trainium 和 Inferentia 加速器。
- 前缀缓存支持
- Multi-lora 支持
vLLM Serve 参数列表(分类整理)
服务器基础配置
参数名 |
类型 |
默认值 |
说明 |
--host |
str |
0.0.0.0 |
服务器监听的主机地址(例如 localhost 或 0.0.0.0 )。 |
--port |
int |
8000 |
服务器监听的端口号。 |
--uvicorn-log-level |
str |
info |
Uvicorn 服务器的日志级别:debug , info , warning , error , critical , trace 。 |
--allow-credentials |
bool |
False |
允许跨域请求携带凭据(如 Cookies)。 |
--allowed-origins |
List[str] |
[] |
允许跨域请求的来源列表(如 ["https://example.com"] )。 |
--allowed-methods |
List[str] |
["*"] |
允许的 HTTP 方法列表(如 ["GET", "POST"] )。 |
--allowed-headers |
List[str] |
["*"] |
允许的 HTTP 请求头列表。 |
--api-key |
str |
None |
API 鉴权密钥(启用后需在请求头中提供 Authorization: Bearer <key> )。 |
--ssl-keyfile |
str |
None |
SSL 私钥文件路径(启用 HTTPS)。 |
--ssl-certfile |
str |
None |
SSL 证书文件路径。 |
--ssl-ca-certs |
str |
None |
CA 证书链文件路径。 |
--enable-ssl-refresh |
bool |
False |
允许动态刷新 SSL 证书(无需重启服务器)。 |
--ssl-cert-reqs |
int |
2 |
SSL 证书验证等级:0 (不验证)、1 (验证客户端证书)、2 (强制验证)。 |
--root-path |
str |
"" |
FastAPI 根路径(用于代理服务器场景)。 |
--middleware |
str |
None |
自定义中间件类(需导入路径,如 my_module.CustomMiddleware )。 |
--disable-frontend-multiprocessing |
bool |
False |
禁用前端多进程处理(调试时使用)。 |
模型与适配器配置
参数名 |
类型 |
默认值 |
说明 |
--model |
str |
None |
模型名称或本地路径(Hugging Face 格式)。 |
--task |
str |
auto |
任务类型:auto , generate , embedding , classify , score , reward 等。 |
--tokenizer |
str |
None |
自定义 tokenizer 名称或路径。 |
--hf-config-path |
str |
None |
自定义 HuggingFace 配置文件路径。 |
--revision |
str |
None |
模型版本(Git 分支/commit)。 |
--code-revision |
str |
None |
模型代码版本(仅限自定义架构)。 |
--tokenizer-revision |
str |
None |
Tokenizer 版本。 |
--tokenizer-mode |
str |
auto |
Tokenizer 加载模式:auto , slow , mistral , custom 。 |
--trust-remote-code |
bool |
False |
信任远程代码(如自定义模型架构)。 |
--allowed-local-media-path |
str |
None |
允许加载的本地媒体文件路径(如多模态模型)。 |
--download-dir |
str |
None |
模型下载缓存目录。 |
--load-format |
str |
auto |
模型权重加载格式:auto , pt , safetensors , tensorizer 等。 |
--config-format |
str |
auto |
配置文件解析格式:auto , hf , mistral 。 |
--lora-modules |
List[str] |
[] |
LoRA 适配器配置(格式:模块名=路径 ,如 lora1=/path/to/lora )。 |
--prompt-adapters |
List[str] |
[] |
Prompt 适配器配置(格式同 LoRA)。 |
--enable-lora |
bool |
False |
启用 LoRA 适配器支持。 |
--max-loras |
int |
1 |
最大并发 LoRA 适配器数量。 |
--max-lora-rank |
int |
16 |
LoRA 适配器的最大秩(rank)。 |
推理与性能优化
参数名 |
类型 |
默认值 |
说明 |
--dtype |
str |
auto |
模型权重数据类型:auto , half , bfloat16 , float 。 |
--kv-cache-dtype |
str |
auto |
KV 缓存数据类型:auto , fp8 , fp8_e5m2 , fp8_e4m3 。 |
--max-model-len |
int |
None |
模型最大上下文长度(手动覆盖自动推断)。 |
--block-size |
int |
16 |
注意力块大小(8/16/32/64/128)。 |
--enable-prefix-caching |
bool |
False |
启用前缀缓存优化(加速重复前缀生成)。 |
--swap-space |
int |
4 |
CPU 交换空间大小(GB)。 |
--gpu-memory-utilization |
float |
0.9 |
GPU 显存利用率阈值(0~1)。 |
--quantization |
str |
None |
量化方法:awq , gptq , fp8 , bitsandbytes 等。 |
--tensor-parallel-size |
int |
1 |
张量并行 GPU 数量。 |
--pipeline-parallel-size |
int |
1 |
流水线并行阶段数(实验性)。 |
--speculative-model |
str |
None |
推测解码使用的草稿模型路径。 |
--num-speculative-tokens |
int |
5 |
每次推测解码生成的 token 数。 |
高级功能与调试
参数名 |
类型 |
默认值 |
说明 |
--enforce-eager |
bool |
False |
禁用 CUDA 图捕获(调试模式)。 |
--disable-log-stats |
bool |
False |
禁用请求统计日志。 |
--seed |
int |
0 |
全局随机种子。 |
--device |
str |
auto |
运行设备:auto , cuda , cpu , tpu 等。 |
--scheduling-policy |
str |
fcfs |
请求调度策略:fcfs (先进先出)、priority (优先级)。 |
--max-num-seqs |
int |
256 |
最大并发请求数。 |
--max-logprobs |
int |
5 |
返回每个 token 的最大对数概率数。 |
--return-tokens-as-token-ids |
bool |
False |
返回 token ID 而非文本(调试用)。 |
多模态与工具调用
参数名 |
类型 |
默认值 |
说明 |
--limit-mm-per-prompt |
int |
None |
每个提示的多媒体内容数量限制。 |
--mm-processor-kwargs |
str |
None |
多媒体处理器的额外参数(JSON 格式)。 |
--tool-call-parser |
str |
None |
工具调用解析器类型:granite , llama3_json , mistral 等。 |
--tool-parser-plugin |
str |
None |
自定义工具调用解析器插件路径。 |
其他功能
参数名 |
类型 |
默认值 |
说明 |
--chat-template |
str |
None |
自定义聊天模板文件路径。 |
--response-role |
str |
assistant |
聊天响应中的角色名称(如 assistant )。 |
--served-model-name |
List[str] |
None |
服务器返回的模型名称列表(多模型部署)。 |
--disable-fastapi-docs |
bool |
False |
禁用自动生成的 FastAPI 文档(/docs 和 /redoc )。 |
原创文章,作者:朋远方,如若转载,请注明出处:https://caovan.com/vllmdecanshuliebiaojiqizhongwenshuoming/.html