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 的使用手册。核心参数集中在模型选择、数据类型、并行策略和显存管理上。根据模型大小、硬件资源和性能需求,调整这些参数即可。

相关推荐
AI小百科2 天前
llama.cpp vs vLLM:深度解析与选型指南
llama·vllm
IRevers3 天前
【大模型】Gemma4在ROCm和vLLM部署
人工智能·pytorch·深度学习·大模型·datawhale·vllm·amdev
下班走回家3 天前
本地部署大模型的三种方式:Ollama vs vLLM vs llama.cpp
人工智能·llama·vllm
花间相见4 天前
【大模型部署01】—— vLLM 部署大模型服务实操:从 0 到 1 搭建 OpenAI 兼容 API
vllm
有来有去95274 天前
【训推框架】Vime-大规模 LLM/VLM 强化学习训练框架
人工智能·深度学习·语言模型·gpu算力·vllm
安如衫5 天前
【Hello-ROCm】vLLM 跑通 Gemma4-E4B
datawhale·vllm·amdev
毒爪的小新5 天前
Linux 环境极速部署 vLLM:从零搭建生产级大模型推理服务
linux·人工智能·ai·语言模型·vllm
像风一样自由20205 天前
17.推理框架横评:vLLM / TGI / TensorRT-LLM / SGLang 全面对比
人工智能·大模型·vllm·sglang
rebibabo5 天前
KV Cache 与 PagedAttention 详解:理论推导 + RTX 3090 实测数据
人工智能·vllm·推理加速·大模型部署·kvcache