vLLM方式部署

vLLM(Very Large Language Models)是一种高效的大型语言模型推理和部署框架,由加州大学伯克利分校开发。vLLM通过优化内存管理和计算资源的使用,从而实现对大型语言模型的高效推理和部署。vLLM可以支持安装在本地或者云环境中运行,并且同样支持GPU和CPU等多种硬件平台加速。

基于vLLM的部署方式,本文将以部署Qwen3-32B模型为例,介绍如何在联网和离线环境中通过vLLM方式部署模型服务。关于模型的选型建议可参考:模型适配列表

在线部署

联网环境下,只需启动 vLLM 镜像,并配置相应的模型id即可自动下载并部署。下列示例指令的场景为在有4张Nvidia RTX 4090显卡的服务器上部署 Qwen3-32B 模型服务:

 

docker run -d --gpus '"device=0,1,2,3"' -v /opt/models/modelscope/:/root/.cache/modelscope  --env "VLLM_USE_MODELSCOPE=true" -p 8000:8000 --ipc=host --name vllm-qwen3-32b registry.cn-beijing.aliyuncs.com/supermap/vllm-openai:v0.11.0 --model Qwen/Qwen3-32B --served-model-name qwen3-32b --enable-auto-tool-choice --tool-call-parser hermes --reasoning-parser qwen3 --max-model-len=32768 --tensor-parallel-size 4
 

您需要根据实际情况配置参数,参数说明如下:

  • --gpus '"device=0"':指定GPU,通过nvidia-smi查看gpu编号,如果使用所有gpu可用--gpus all;
  • -v /opt/models/modelscope/:/root/.cache/modelscope:将容器中模型文件地址映射到宿主机,避免后续重新启动镜像后重复下载;
  • --env "VLLM_USE_MODELSCOPE=true":使用魔搭平台下载模型,默认使用的是Hugging Face;
  • --model Qwen/Qwen3-32B:直接传入模型id,自动下载;使用离线方式部署时,也可传入容器内模型文件位置;
  • --served-model-name qwen3-32b:配置模型名称;
  • --enable-auto-tool-choice --tool-call-parser hermes:对 Qwen3 使用 Hermes 风格的函数调用(Function Call),以便模型能够使用外部工具;
  • --reasoning-parser qwen3:将模型生成的思考内容解析为结构化消息;
  • --tensor-parallel-size 4:使用张量并行的分布式推理,该参数设置表示将在4块 GPU 上使用张量并行,您可以根据实际情况调整 GPU 的数量。
说明:

如果没有足够的显卡资源,可减少模型参数量,如切换使用Qwen3-14B模型,需要两张Nvidia RTX 4090显卡,则需修改运行命令中的--gpus参数为'"device=0,1"'以及--tensor-parallel-size为2

离线部署

如果您的机器无法联网,需要提前将模型文件下载并放入宿主机,启动镜像时指定相应的模型文件位置:


docker run -d --gpus '"device=0,1,2,3"' -v /opt/models/modelscope/:/root/.cache/modelscope  --env "VLLM_USE_MODELSCOPE=true" -p 8000:8000 --ipc=host --name vllm-qwen3-32b registry.cn-beijing.aliyuncs.com/supermap/vllm-openai:v0.11.0 --model /root/.cache/modelscope/hub/models/Qwen/Qwen3-32B --served-model-name qwen3-32b --enable-auto-tool-choice --tool-call-parser hermes --reasoning-parser qwen3 --max-model-len=32768 --tensor-parallel-size 4
 

离线部署命令中的参数说明基本与在线部署一致,需额外关注的参数配置如下:

  • --model /root/.cache/modelscope/hub/models/Qwen/Qwen3-32B:使用离线方式部署时,需要传入容器内模型文件位置;