vLLM 是一个用于高效推理和部署大语言模型(LLM)的开源工具,由 UC Berkeley 的 Sky Lab 开发。其核心特点包括:
- PagedAttention:一种受操作系统虚拟内存分页启发的注意力机制优化,显著提升显存利用率,支持高吞吐、低延迟的推理。
- 连续批处理(Continuous Batching):动态合并不同长度的请求,最大化 GPU 利用率。
- 提供 OpenAI 兼容的 API 接口,可一键启动服务。
官方页面展示的模型与硬件支持都是高端训练级显卡设备,对于家用消费级显卡没有说明,但是它和sglang都是可以在稍好的消费级显卡上使用,显存推荐至少12GB比较合适,再低的显存可以运行,但是vLLM和SGlang确实不适合这种场景。更低的显存非常推荐使用ollama、nexa ai工具,都合适消费级端侧设备。
在14GB显存显卡上测试使用vLLM运行Qwen3-VL-4B-Instruct fp8,因为显卡是比较老并不支持fp8,运行实际使用bf16,模型载入消耗显存约10GB。介绍运行过程使用的参数:
- max-num-seqs vLLM支持的请求处理数量上限,配置1或者2变化都不大。如果不配置这个默认值是远大于这个值的,显存占用较多。
- max-model-len 模型提示词输入与输出的上下文长度,默认读取模型配置文件配置加载。这项非常影响显存消耗。使用合适的长度,配置“4k” 或“4000”含义都是上下文长度4000,一个意思。在max-num-seqs等于1的情况下4k消耗显存约1.25GB。 参数“max-num-batched-tokens”是一批次处理的提示词长度,正常影响应该是大于 max-model-len,这样才能完成的一次处理完模型提示词推理。
- gpu-memory-utilization 全部显存使用率,范围0~1。设置过小vLLM是会报错的。默认是0.9,推荐可以配置0.95。
- cpu-offload-gb 卸载模型到cpu 内存,这个参数能不用就不要使用,非常非常影响推理速度。体验情况是全显存载入推理10秒的任务,如果卸载部分到cpu需十分钟多。
- enforce-eager 关闭cuda 图编译。默认在启动使用做一次预推理,根据推理优化、加速后续推理。使用这个参数并不能节约显存,只是在启动时候不做推理,就没有产生推理时候的显存占用峰值。
- swap-space 是在模型推理时候的kv缓存转换到cpu 内存,会影响推理但是没有非常差。
- 使用windows 的wsl2 系统做vLLM部署有pin memory=False限制,无法使用cpu-offload-gb、swap-space。
- limit-mm-per-prompt 每种模态下,每个提示(prompt)所允许的最大输入项数量和选项数。默认情况下,每种模态的上限均为 999。qwen3-vl是支持视频输入,为了避免显存消耗,使用“ limit-mm-per-prompt.video 0”
混合格式:
{“image”: 16, “video”: {“count”: 1, “num_frames”: 32, “width”: 512, “height”: 512}} - 使用flash-attn会比默认的注意力计算库效率高些,我在部署vLLM是手动安装后vLLM启动检查到会使用。
- 使用flashinfer-python 推理后端,我是手动安装后,vLLM启动使用,需要gcc版本高于9。
1611

被折叠的 条评论
为什么被折叠?



