vLLM 引擎(vLLM Engine)的所有配置参数

https://docs.vllm.ai/en/stable/configuration/engine_args/#loraconfig

vLLM 引擎(vLLM Engine)的所有配置参数。vLLM 是一个用于大语言模型(LLM)高性能推理的库。

这些参数用于控制 vLLM 的行为,无论是在离线推理 (使用 LLM 类)还是在线服务 (使用 vllm serve 命令)中。

为了便于理解,我将这些参数按功能分组,并解释其核心作用。

1. 核心模型与运行模式

  • --model: 指定要使用的模型 ,例如 meta-llama/Llama-2-7b-hf。默认是一个小模型 Qwen/Qwen3-0.6B

  • --tokenizer: 指定分词器。通常与模型相同,但也可以单独指定。

  • --dtype: 模型的数据类型 ,如 float16(半精度)、bfloat16float32(单精度)。选择 auto 会让 vLLM 自动决定。正确的数据类型可以节省显存并加速计算。

  • --quantization (-q): 量化方法 ,如 awqgptqsqueezellm。量化可以大幅减小模型体积和显存占用,常用于在消费级 GPU 上运行大模型。

  • --max-model-len: 模型的最大上下文长度 (输入 + 输出)。如果设置太小,长文本会被截断;设置太大,可能会耗尽显存。支持 1k(1000)、25.6k 等人类可读格式。

  • --trust-remote-code: 是否信任并执行模型仓库中的自定义代码。出于安全考虑,默认为 False,但某些模型(如 Qwen)需要开启。

2. 分布式与并行策略

  • --tensor-parallel-size (-tp): 张量并行度。将单个模型层切分到多个 GPU 上。适合单个 GPU 显存放不下整个模型的情况。

  • --pipeline-parallel-size (-pp): 流水线并行度。将模型的不同层分配到不同 GPU 上。通常与 TP 结合使用。

  • --data-parallel-size (-dp): 数据并行度。复制多份完整的模型,每份处理不同的请求。主要用于提高吞吐量,尤其适合 MoE(混合专家)模型。

  • --distributed-executor-backend: 分布式后端,可选 raymp(多进程)。Ray 适合复杂、多节点的场景,mp 适合单机多卡。

  • --nnodes, --node-rank: 在多节点分布式推理中,指定总节点数和当前节点的编号。

3. 性能优化与显存管理

  • --gpu-memory-utilization: GPU 显存利用率。vLLM 最多使用多少比例的 GPU 显存。默认为 0.9 (90%)。调低可以为其他程序留出空间,调高可能提高性能但增加 OOM 风险。

  • --block-size: KV Cache 的块大小(token 数)。KV Cache 是 vLLM 高效推理的核心机制,用于缓存已生成的键值对。

  • --enable-prefix-caching: 启用自动前缀缓存。如果多个请求有相同的前缀(如系统提示词),可以共享 KV Cache,大幅减少重复计算,提升吞吐量。

  • --max-num-batched-tokens: 单次迭代(Step)中最多处理的 token 数量。影响吞吐量和延迟。

  • --max-num-seqs: 单次迭代中最多同时处理的序列(请求)数量。

  • --enforce-eager: 是否强制使用 Eager 模式(而非 CUDA Graph)。CUDA Graph 可以大幅减少 kernel 启动开销,提升性能,但会增加显存占用。关闭(设为 False)通常性能更好。

  • --enable-chunked-prefill: 启用分块预填充。将一个长的用户输入(Prompt)分成多个块处理,可以防止长输入阻塞其他请求,降低首 token 延迟。

4. 解码与输出控制

  • --max-logprobs: 最多返回多少个 token 的对数概率(logprobs)。默认 20。

  • --seed: 随机种子。必须设置以保证多卡并行时结果可复现

  • --served-model-name: 在 API 服务中暴露的模型名称。可以不同于 --model 的路径。

5. 高级特性与插件

  • --enable-lora: 启用 LoRA 适配器支持。允许在不重新加载整个模型的情况下,动态切换微调后的 LoRA 权重。

  • --max-loras: 一批次中最多同时处理多少个不同的 LoRA 适配器。

  • --speculative-config (-sc): 配置推测解码。使用一个小的 draft 模型加速主模型的生成。

  • --compilation-config (-cc): 配置 torch.compile 和 CUDA Graph 的详细行为。用于深度性能调优。

  • --attention-backend: 手动选择 Attention 算子后端,如 FlashAttentionFlashInfer 等。通常让 vLLM 自动选择即可。

6. 多模态与结构化输出

  • --limit-mm-per-prompt: 限制每个 prompt 中多模态数据(如图片、视频)的数量。

  • --reasoning-parser: 为支持推理过程的模型(如 DeepSeek-R1)选择解析器,将其内部思考过程解析为 OpenAI API 的格式。

  • --structured-outputs-config: 配置结构化输出(如 JSON Schema),确保模型输出符合预定义的格式。

7. 监控与调试

  • --disable-log-stats: 禁用统计日志记录。

  • --otlp-traces-endpoint: 发送 OpenTelemetry 追踪数据的目标 URL,用于性能监控。

  • --enable-log-requests (AsyncEngineArgs 部分): 在服务器模式下,打印每个请求的详细信息(ID、参数等)。

如何理解和使用

  • 默认值通常很合理 :vLLM 旨在开箱即用。对于许多模型,只需要设置 --model 就能运行。

  • 显存不足(OOM) :可以调低 --gpu-memory-utilization (如 0.8),或开启 --quantization,或减小 --max-model-len

  • 速度慢 :可以尝试增加 --max-num-batched-tokens--max-num-seqs,并确保 --enforce-eagerFalse (默认)。

  • 多卡运行 :根据模型大小和你的卡数设置 --tensor-parallel-size

  • 详细配置 :文末提到的 vllm.config 中的各个配置类(如 ModelConfig, ParallelConfig)是这些参数的最终来源,如果你需要开发或深度调优,可以直接查阅那些文档。

总结:这份文档是 vLLM 的使用手册。核心参数集中在模型选择、数据类型、并行策略和显存管理上。根据模型大小、硬件资源和性能需求,调整这些参数即可。

相关推荐
竹之却4 小时前
【Agent-阿程】AI先锋杯·14天征文挑战第14期-第9天-大模型服务端高效部署与vLLM实战
人工智能·vllm
java资料站20 小时前
DeepSeek容器化部署(vLLM+Open WebUI)魔搭模型版
vllm
执笔论英雄3 天前
【vllm 】WorkerProc WorkerWrapperBase GPU worker之间的关系
vllm
hongyuyahei3 天前
绝对/相对位置编码
vllm
d1z8884 天前
(十七)32天GPU测试从入门到精通-vLLM 部署与性能测试day15
服务器·显卡·nvidia·vllm
谢白羽6 天前
vllm抢占机制详解
算法·vllm
从零开始学习人工智能6 天前
vLLM 多卡部署技巧:如何单独降低某张 GPU 的显存占用
vllm
执笔论英雄7 天前
【vllm】PD分离
vllm
谢白羽7 天前
多集群/分布式 LLM 推理方案全景:2026 年选型指南
分布式·vllm·sglang·llm-d