cxl
Published on 2025-04-18 / 181 Visits
3
0

vLLM:serve常用命令

以下是针对生产环境的vLLM核心命令选项详解(共23个),涵盖显存管理、吞吐优化、量化策略等关键场景,结合企业级最佳实践做个记录

一、模型加载与初始化

  1. --model

    • 作用:指定HuggingFace模型路径或名称

    • 生产级示例:--model=/models/llama3-70b-awq

    • 关键点:推荐使用绝对路径避免路径错误

  2. --dtype

    • 作用:控制计算精度

    • 推荐值:bfloat16(A100/H100)、half(消费级显卡)

    • 优势:H100使用bfloat16吞吐提升15%

  3. --quantization

    • 作用:量化方法选择

    • 选项:awq(4bit)、gptq(3bit)、fp8(H100专用)

    • 案例:70B模型显存从140GB→40GB

  4. --trust-remote-code

    • 作用:允许加载自定义模型代码

    • 场景:使用非标准架构模型时必须启用

二、显存与计算资源管理

  1. --gpu-memory-utilization

    • 作用:显存利用率阈值(0.0-1.0)

    • 生产级设置:A100设为0.95,多模型混部建议0.8

  2. --block-size

    • 作用:KV缓存块大小

    • 优化建议:长文本场景设为32,短文本保持16

  3. --swap-space

    • 作用:CPU交换空间大小(GB)

    • 典型配置:--swap-space=64(支持32K+上下文)

  4. --enable-chunked-prefill

    • 作用:分块处理长输入优化显存

    • 效果:32K文本生成显存峰值降低40%

三、批处理与吞吐优化

  1. --max-num-batched-tokens

    • 作用:单批次最大token数

    • 推荐值:高吞吐场景设为8192,低延迟设为4096

  2. --max-num-seqs

    • 作用:最大并发请求数

    • 调优策略:A100 80GB建议512,RTX 4090建议256

  3. --preemption-mode

    • 选项:recompute(重计算)或swap(换出到CPU)

    • 生产级选择:高优先级服务用recompute,普通服务用swap

  4. --scheduler-policy

    • 作用:请求调度策略

    • 选项:fcfs(先进先出)、priority(优先级队列)

四、分布式与硬件优化

  1. --tensor-parallel-size

    • 作用:张量并行度(需等于GPU数量)

    • 示例:4卡集群设为4

  2. --pipeline-parallel-size

    • 作用:流水线并行(实验性功能)

    • 适用场景:Falcon-180B等超大规模模型

  3. --max-parallel-loading-workers

    • 作用:模型加载并行线程数

    • 优化建议:SSD存储设为4,HDD保持1

五、监控与稳定性

  1. --metric-interval

    • 作用:监控指标输出间隔(秒)

    • 生产级设置:与Prometheus抓取周期对齐(默认10)

  2. --disable-log-requests

    • 作用:禁用请求日志提升性能

    • 场景:QPS>1000时必选

  3. --log-file

    • 作用:指定日志文件路径

    • 最佳实践:配合Logrotate实现日志轮转

六、高级功能

  1. --enforce-eager

    • 作用:强制即时执行模式(调试用)

    • 警告:生产环境禁用,性能下降30%+

  2. --enable-prefix-caching

    • 作用:共享前缀计算结果缓存

    • 效果:客服机器人场景吞吐提升20%

  3. --kv-cache-dtype

    • 选项:fp8(H100专用)、auto(自动选择)

    • 优势:H100启用fp8后显存占用降低50%

  4. --max-model-len

    • 作用:最大上下文长度

    • 动态策略:高并发场景可适当降低该值

  5. --guided-decoding-backend

    • 作用:约束性文本生成引擎

    • 选项:outlines(JSON格式生成)、xgrammar(语法约束)

七、其它命令

--port 指定端口,默认是8000

--host 指定主机,默认是0.0.0.0

--config 指定配置文件

--api-key 指定访问接口token

--allowed-origins 允许的跨域,默认*

生产级参数组合示例

  # 高吞吐客服机器人(4×A100)
  vllm serve --model=llama3-70b-awq \
    --dtype=bfloat16 \
    --quantization=awq \
    --tensor-parallel-size=4 \
    --max-num-batched-tokens=16384 \
    --max-num-seqs=512 \
    --gpu-memory-utilization=0.95 \
    --block-size=32 \
    --enable-chunked-prefill \
    --disable-log-requests
  
  # 长文本生成(单卡+CPU卸载)
  vllm serve --model=qwen-72b-chat \
    --swap-space=64 \
    --max-model-len=32768 \
    --enable-prefix-caching \
    --preemption-mode=swap


Comment