VLLM-多机多卡推理部署
本教程将指导如何在多机多卡环境中部署 vLLM 推理服务,以实现高效的分布式推理。假设你已经安装了 Docker 和下载好了模型文件,并且两台服务器的模型存放路径一致。
1. 安装 NVIDIA Container Toolkit
在开始之前,确保你的服务器已经安装了 NVIDIA Container Toolkit,以便 Docker 能够使用 GPU 资源。
1.1 添加 NVIDIA 容器工具包仓库
运行以下命令,添加 NVIDIA 容器工具包的官方仓库:
1  | curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \  | 
如果还是无法下载建议手动下载后安装:
1  | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg /gpgkey路径  | 
- 作用:添加 NVIDIA 容器工具包的 GPG 密钥和软件源,确保可以从官方仓库安装最新版本。
 
1.2 安装 NVIDIA Container Toolkit
更新软件包列表并安装 NVIDIA Container Toolkit:
1  | sudo apt-get update  | 
- 作用:安装 
nvidia-docker2包,重启 Docker 服务以加载 NVIDIA 驱动,使 Docker 容器能够使用 GPU 资源。 
2. 下载 vLLM 集群启动脚本
运行以下命令,下载并准备 vLLM 集群启动脚本:
1  | wget https://raw.githubusercontent.com/vllm-project/vllm/main/examples/online_serving/run_cluster.sh  | 
- 作用:下载 
run_cluster.sh脚本,用于启动 vLLM 集群。chmod +x使脚本具有可执行权限。 
注意,脚本当中的端口为 6379,这个端口跟redis数据库的端口是冲突的,如果你已经启用这个端口运行其他服务,你需要更改这个脚本当中的端口,主从节点都需要同步更改。
3. 启动 vLLM 集群
3.1 启动主节点(Head Node)
在主节点上运行以下命令启动集群的主节点:
1  | sudo bash run_cluster.sh \  | 
- **
--head**:标记该节点为集群的主节点。 - **
VLLM_HOST_IP**:设置主节点的 IP 地址,用于集群通信。 - **
GLOO_SOCKET_IFNAME和NCCL_SOCKET_IFNAME**:指定集群通信使用的网卡接口名称(如eno1),确保集群内部通信的正确性。 
命令推荐后台运行或采用自动化脚本执行
3.2 启动从节点(Worker Node)
在从节点上运行以下命令启动集群的从节点:
1  | sudo bash run_cluster.sh \  | 
- **
--worker**:标记该节点为集群的从节点。 - **
VLLM_HOST_IP**:设置从节点的 IP 地址,用于集群通信。 - **
GLOO_SOCKET_IFNAME和NCCL_SOCKET_IFNAME**:与主节点相同,指定集群通信使用的网卡接口名称。 
命令推荐后台运行或采用自动化脚本执行
4. 启动推理服务
在主节点的容器内启动 vLLM 推理服务:
1  | vllm serve /root/.cache/huggingface \ # 模型缓存路径  | 
- **
--served-model-name**:指定推理服务的名称,客户端通过此名称访问模型。 - **
--port**:指定推理服务的监听端口(如9990)。 - **
--gpu-memory-utilization**:设置 GPU 内存利用率,避免 GPU 内存溢出。 - **
--max-model-len**:设置模型的最大输入长度。 - **
--max-num-seqs**:设置推理的最大序列数。 - **
--tensor-parallel-size和--pipeline-parallel-size**:指定分布式推理的并行策略,提升推理效率。 
5. 验证集群状态
在任意节点上进入容器并检查 Ray 集群状态:
1  | sudo docker exec -it <容器ID> bash  | 
- 作用:检查 Ray 集群的状态,确保主节点和从节点已正确连接。
 
6. 测试推理服务
使用 curl 或其他工具测试推理服务是否正常运行:
1  | curl -X POST -H "Content-Type: application/json" -d '{"prompt": "Hello, world!"}' http://192.168.191.11:9990/v1/chat/completions  | 
- 作用:向推理服务发送测试请求,验证服务是否正常响应。
 
如果返回合理的推理结果,说明部署成功。
通过以上步骤,可以在多机多卡环境中成功部署 vLLM 推理服务。如果有任何问题,百度吧,剩下的我也没遇到过。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 念念不忘,必有回响!




