8 卡 V100 服务器:基于 vLLM 的 Qwen 大模型高效部署实战
本文详细介绍了在8卡V100服务器上部署Qwen大模型的实战步骤。首先配置服务器硬件环境(浪潮NF5468M5服务器,8张Tesla V100 32GB显卡),然后安装NVIDIA GPU驱动并进行验证。后续将展示通过vLLM框架高效部署通义千问系列大模型的完整流程,包括环境准备、模型加载和性能优化等关键环节,为开发者提供可复现的部署方案。该方案特别适合需要快速搭建大模型推理服务的场景,充分利用多
8 卡 V100 服务器:基于 vLLM 的 Qwen 大模型高效部署实战
大家好,今天给大家带来一篇硬核实战文章——在浪潮NF5468M5服务器(8张Tesla V100 SXM2 32GB)上,通过vLLM部署大语言模型(以通义千问系列为例)的完整步骤。本文所有操作均为实际落地记录,步骤可复现,适合需要快速部署大模型进行推理的开发者和运维人员。
一、前期准备:服务器配置一览
在开始部署前,先明确我们的服务器硬件和系统基础信息,这是后续选择驱动、模型和部署参数的重要依据。
1. 硬件核心配置
| 组件 | 详细信息 |
|---|---|
| 服务器型号 | 浪潮(Inspur)NF5468M5 |
| GPU | 8块 NVIDIA Tesla V100 SXM2 32GB(Volta架构,HBM2显存,总计256GB) |
| CPU | 2路 Intel Xeon Gold 6248R(48核96线程,基础3.0GHz,睿频3.7GHz) |
| 内存 | 至少 32GB(推荐512GB/768GB) |
2. 系统内核版本
6.8.0-90-generic
二、第一步:安装NVIDIA GPU驱动
大模型部署的核心前提是GPU驱动正常工作,尤其是V100这类专业计算卡,需要匹配稳定的驱动版本。
1. 安装步骤
# 1. 更新系统软件源
sudo apt update
# 2. 查看系统推荐的NVIDIA驱动版本
ubuntu-drivers devices
# 3. 安装稳定版驱动
sudo apt install -y nvidia-driver-575
# 4. 安装常用编辑器
sudo apt install -y vim
# 5. 重启服务器,使驱动生效
sudo reboot
2. 验证驱动安装结果
服务器重启后,执行nvidia-smi命令验证驱动是否正常工作,若输出如下信息则说明安装成功。
完整验证输出
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 575.57.08 Driver Version: 575.57.08 CUDA Version: 12.9 |
|-----------------------------------------+------------------------+----------------------+
| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+========================+======================|
| 0 Tesla PG503-216 On | 00000000:1A:00.0 Off | 0 |
| N/A 45C P0 44W / 300W | 5MiB / 32768MiB | 0% Default |
| | | N/A |
+-----------------------------------------+------------------------+----------------------+
| 1 Tesla PG503-216 On | 00000000:1B:00.0 Off | 0 |
| N/A 43C P0 42W / 300W | 5MiB / 32768MiB | 0% Default |
| | | N/A |
+-----------------------------------------+------------------------+----------------------+
| 2 Tesla PG503-216 On | 00000000:3D:00.0 Off | 0 |
| N/A 43C P0 45W / 300W | 5MiB / 32768MiB | 0% Default |
| | | N/A |
+-----------------------------------------+------------------------+----------------------+
| 3 Tesla PG503-216 On | 00000000:3E:00.0 Off | 0 |
| N/A 50C P0 45W / 300W | 5MiB / 32768MiB | 0% Default |
| | | N/A |
+-----------------------------------------+------------------------+----------------------+
| 4 Tesla PG503-216 On | 00000000:88:00.0 Off | 0 |
| N/A 45C P0 44W / 300W | 5MiB / 32768MiB | 0% Default |
| | | N/A |
+-----------------------------------------+------------------------+----------------------+
| 5 Tesla PG503-216 On | 00000000:89:00.0 Off | 0 |
| N/A 43C P0 45W / 300W | 5MiB / 32768MiB | 0% Default |
| | | N/A |
+-----------------------------------------+------------------------+----------------------+
| 6 Tesla PG503-216 On | 00000000:B1:00.0 Off | 0 |
| N/A 47C P0 47W / 300W | 5MiB / 32768MiB | 0% Default |
| | | N/A |
+-----------------------------------------+------------------------+----------------------+
| 7 Tesla PG503-216 On | 00000000:B2:00.0 Off | 0 |
| N/A 43C P0 44W / 300W | 5MiB / 32768MiB | 0% Default |
| | | N/A |
+-----------------------------------------+------------------------+----------------------+
+-----------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=========================================================================================|
| 0 N/A N/A 3132 G /usr/lib/xorg/Xorg 4MiB |
| 1 N/A N/A 3132 G /usr/lib/xorg/Xorg 4MiB |
| 2 N/A N/A 3132 G /usr/lib/xorg/Xorg 4MiB |
| 3 N/A N/A 3132 G /usr/lib/xorg/Xorg 4MiB |
| 4 N/A N/A 3132 G /usr/lib/xorg/Xorg 4MiB |
| 5 N/A N/A 3132 G /usr/lib/xorg/Xorg 4MiB |
| 6 N/A N/A 3132 G /usr/lib/xorg/Xorg 4MiB |
| 7 N/A N/A 3132 G /usr/lib/xorg/Xorg 4MiB |
+-----------------------------------------------------------------------------------------+
状态总结
| 项目 | 状态 | 说明 |
|---|---|---|
| GPU 识别 | ✅ 正常 | 8张Tesla V100-SXM2-32GB全部被识别 |
| 驱动版本 | ✅ 匹配 | 575.57.08,完美兼容V100架构 |
| CUDA 支持 | ✅ 可用 | 内置支持CUDA 12.9,兼容vLLM/PyTorch |
| 显存状态 | ✅ 正常 | 每卡32768MiB(32GB),总计256GB |
| 温度/功耗 | ✅ 正常 | 空闲状态温度40℃,功耗45W,无异常 |
| ECC 内存 | ✅ 启用 | 无未纠正错误,数据计算更稳定 |
三、第二步:安装nvidia-container-toolkit工具
在部署大模型过程中,nvidia-container-toolkit工具(包含nvidia-ctk)是GPU容器化部署、GPU资源正常调用的重要依赖,默认系统未安装,需手动部署,以下是完整实操步骤(基于实际终端日志)。
1. 问题现象
执行nvidia-ctk命令查看版本时,提示“未找到命令”,说明工具未安装,需进行后续安装操作:
nvidia-ctk --version
# 输出
nvidia-ctk:未找到命令
2. 安装步骤
# 1. 导入NVIDIA容器工具包的GPG密钥并添加软件源
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
&& curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
# 2. 启用experimental仓库(确保能获取对应版本工具)
sudo sed -i -e '/experimental/ s/^#//g' /etc/apt/sources.list.d/nvidia-container-toolkit.list
# 3. 更新软件源,加载新增的NVIDIA仓库
sudo apt-get update
# 4. 指定工具版本并安装(1.18.2-1版本,稳定兼容当前驱动和系统)
export NVIDIA_CONTAINER_TOOLKIT_VERSION=1.18.2-1
sudo apt-get install -y \
nvidia-container-toolkit=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
nvidia-container-toolkit-base=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
nvidia-container-runtime=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
libnvidia-container-tools=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
libnvidia-container1=${NVIDIA_CONTAINER_TOOLKIT_VERSION}
3. 安装验证
执行上述命令后,系统会自动下载并安装4个相关软件包(libnvidia-container-tools、libnvidia-container1、nvidia-container-toolkit、nvidia-container-toolkit-base),安装完成后无报错即代表成功。
可再次执行nvidia-ctk --version命令,若能正常显示版本信息,说明工具已可正常使用。
备注:安装过程中若提示“有软件包未被升级”或“自动安装的依赖可卸载”,无需额外操作,不影响工具功能和后续大模型部署。
4. 工具配置与故障排查(实操补充)
安装完成后,需进一步配置工具,确保其与Docker联动正常,支持GPU容器化调用。以下是基于实际终端操作的完整配置、故障排查及验证步骤,与你执行的命令完全一致。
步骤1:验证当前配置状态
首先执行以下命令,检查NVIDIA驱动和nvidia-container-toolkit的联动状态:
# 同时验证NVIDIA驱动和容器工具包状态
nvidia-smi >/dev/null 2>&1 && echo "NVIDIA driver OK" || (echo "NVIDIA driver issue"; exit 1) && sudo docker info 2>/dev/null | grep -q "Runtime.*nvidia" && echo "NVIDIA Container Toolkit OK" || (echo "NVIDIA Container Toolkit not configured"; exit 1)
执行结果:
NVIDIA driver OK
NVIDIA Container Toolkit not configured
说明:NVIDIA驱动正常,但nvidia-container-toolkit未完成配置,无法与Docker联动,需进一步配置。
步骤2:配置nvidia-container-toolkit与Docker联动
执行以下命令,配置容器工具包关联Docker运行时,生成配置文件:
# 配置Docker运行时关联nvidia-container-toolkit
sudo nvidia-ctk runtime configure --runtime=docker
第一次执行输出(配置文件不存在,生成新配置):
INFO[0000] Config file does not exist; using empty config
INFO[0000] Wrote updated config to /etc/docker/daemon.json
INFO[0000] It is recommended that docker daemon be restarted.
第二次执行输出(加载已存在的配置文件,更新配置):
INFO[0000] Loading config from /etc/docker/daemon.json
INFO[0000] Wrote updated config to /etc/docker/daemon.json
INFO[0000] It is recommended that docker daemon be restarted.
步骤3:查看生成的Docker配置文件
配置完成后,查看自动生成的/etc/docker/daemon.json配置文件,确认nvidia运行时已添加:
# 查看Docker守护进程配置文件
(base) mzt@mzt-NF5468M5:/gpustack$ sudo cat /etc/docker/daemon.json 2>/dev/null || echo "文件 /etc/docker/daemon.json 不存在"
执行结果(配置文件正常生成,包含nvidia运行时):
{
"runtimes": {
"nvidia": {
"args": [],
"path": "nvidia-container-runtime"
}
}
}
步骤4:检查Docker运行时,排查配置未生效问题
配置完成后,检查Docker运行时,发现nvidia运行时未显示,说明配置未生效,且缺少nvidia-container-runtime依赖:
# 查看Docker运行时详情
sudo docker info 2>/dev/null | grep -A5 -i runtime
执行结果(仅显示默认运行时,无nvidia运行时):
Runtimes: io.containerd.runc.v2 runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 1c4457e00facac03ce1d75f7b6777a7a851e5c41
runc version: v1.3.4-0-gd6d73eb
init version: de40ad0
Security Options:
步骤5:安装缺失依赖nvidia-container-runtime
上述问题原因是缺少nvidia-container-runtime依赖,执行以下命令安装:
# 安装nvidia-container-runtime依赖
udo apt install nvidia-container-runtime -y
执行过程输出:
正在读取软件包列表... 完成
正在分析软件包的依赖关系树... 完成
正在读取状态信息... 完成
下列软件包是自动安装的并且现在不需要了:
dctrl-tools libatomic1:i386 libdrm-amdgpu1:i386 libdrm-intel1:i386 libdrm-nouveau2:i386 libdrm-radeon1:i386 libedit2:i386
libelf1:i386 libgl1:i386 libgl1-mesa-dri:i386 libglapi-mesa:i386 libglvnd0:i386 libglx-mesa0:i386 libglx0:i386 libicu70:i386
libllvm15:i386 libpciaccess0:i386 libsensors5:i386 libstdc++6:i386 libxcb-dri2-0:i386 libxcb-glx0:i386 libxcb-shm0:i386
libxcb-sync1:i386 libxcb-xfixes0:i386 libxfixes3:i386 libxml2:i386 libxshmfence1:i386 libxxf86vm1:i386
nvidia-firmware-535-535.274.02
使用'sudo apt autoremove'来卸载它(它们)。
下列【新】软件包将被安装:
nvidia-container-runtime
升级了 0 个软件包,新安装了 1 个软件包,要卸载 0 个软件包,有 97 个软件包未被升级。
需要下载 6,316 B 的归档。
解压缩后会消耗 21.5 kB 的额外空间。
获取:1 https://developer.download.nvidia.cn/compute/cuda/repos/ubuntu2204/x86_64 nvidia-container-runtime 3.13.0-1 [6,316 B]
已下载 6,316 B,耗时 2秒 (4,057 B/s)
正在选中未选择的软件包 nvidia-container-runtime。
(正在读取数据库 ... 系统当前共安装有 219227 个文件和目录。)
准备解压 .../nvidia-container-runtime_3.13.0-1_all.deb ...
正在解压 nvidia-container-runtime (3.13.0-1) ...
正在设置 nvidia-container-runtime (3.13.0-1) ...
步骤6:重新配置并重启Docker,使配置生效
安装依赖后,重新执行配置命令,并重启动Docker守护进程,确保nvidia运行时生效:
# 重新配置Docker运行时关联
(base) mzt@mzt-NF5468M5:/gpustack$ sudo nvidia-ctk runtime configure --runtime=docker
# 重启动Docker守护进程
(base) mzt@mzt-NF5468M5:/gpustack$ sudo systemctl restart docker
重新配置输出(配置文件加载正常):
INFO[0000] Loading config from /etc/docker/daemon.json
INFO[0000] Wrote updated config to /etc/docker/daemon.json
INFO[0000] It is recommended that docker daemon be restarted.
步骤7:最终验证配置是否成功
Docker重启后,再次检查运行时配置,并验证nvidia-container-toolkit是否正常工作:
# 1. 查看Docker运行时,确认nvidia运行时已添加
(base) mzt@mzt-NF5468M5:/gpustack$ sudo docker info | grep -A5 -i runtime
# 2. 再次验证驱动和容器工具包联动状态
(base) mzt@mzt-NF5468M5:/gpustack$ sudo docker info 2>/dev/null | grep -q "nvidia" \
&& echo "NVIDIA Container Toolkit OK" \
|| (echo "NVIDIA Container Toolkit not configured"; exit 1)
# 3. 查看GPU状态,确认驱动正常
(base) mzt@mzt-NF5468M5:/gpustack$ sudo nvidia-smi
最终验证输出(配置成功):
# Docker运行时查看结果(已包含nvidia运行时)
Runtimes: io.containerd.runc.v2 nvidia runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 1c4457e00facac03ce1d75f7b6777a7a851e5c41
runc version: v1.3.4-0-gd6d73eb
init version: de40ad0
Security Options:
# 容器工具包联动验证结果
NVIDIA Container Toolkit OK
# GPU状态输出(驱动正常,8张GPU全部识别)
Thu Jan 29 15:48:32 2026
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 575.57.08 Driver Version: 575.57.08 CUDA Version: 12.9 |
|-----------------------------------------+------------------------+----------------------+
| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+========================+======================|
| 0 Tesla PG503-216 On | 00000000:1A:00.0 Off | 0 |
| N/A 45C P0 44W / 300W | 5MiB / 32768MiB | 0% Default |
| | | N/A |
+-----------------------------------------+------------------------+----------------------+
| 1 Tesla PG503-216 On | 00000000:1B:00.0 Off | 0 |
| N/A 43C P0 42W / 300W | 5MiB / 32768MiB | 0% Default |
| | | N/A |
+-----------------------------------------+------------------------+----------------------+
| 2 Tesla PG503-216 On | 00000000:3D:00.0 Off | 0 |
| N/A 43C P0 45W / 300W | 5MiB / 32768MiB | 0% Default |
| | | N/A |
+-----------------------------------------+------------------------+----------------------+
| 3 Tesla PG503-216 On | 00000000:3E:00.0 Off | 0 |
| N/A 50C P0 45W / 300W | 5MiB / 32768MiB | 0% Default |
| | | N/A |
+-----------------------------------------+------------------------+----------------------+
| 4 Tesla PG503-216 On | 00000000:88:00.0 Off | 0 |
| N/A 45C P0 44W / 300W | 5MiB / 32768MiB | 0% Default |
| | | N/A |
+-----------------------------------------+------------------------+----------------------+
| 5 Tesla PG503-216 On | 00000000:89:00.0 Off | 0 |
| N/A 43C P0 45W / 300W | 5MiB / 32768MiB | 0% Default |
| | | N/A |
+-----------------------------------------+------------------------+----------------------+
| 6 Tesla PG503-216 On | 00000000:B1:00.0 Off | 0 |
| N/A 47C P0 47W / 300W | 5MiB / 32768MiB | 0% Default |
| | | N/A |
+-----------------------------------------+------------------------+----------------------+
| 7 Tesla PG503-216 On | 00000000:B2:00.0 Off | 0 |
| N/A 43C P0 44W / 300W | 5MiB / 32768MiB | 0% Default |
| | | N/A |
+-----------------------------------------+------------------------+----------------------+
+-----------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=========================================================================================|
| 0 N/A N/A 3132 G /usr/lib/xorg/Xorg 4MiB |
| 1 N/A N/A 3132 G /usr/lib/xorg/Xorg 4MiB |
| 2 N/A N/A 3132 G /usr/lib/xorg/Xorg 4MiB |
| 3 N/A N/A 3132 G /usr/lib/xorg/Xorg 4MiB |
| 4 N/A N/A 3132 G /usr/lib/xorg/Xorg 4MiB |
| 5 N/A N/A 3132 G /usr/lib/xorg/Xorg 4MiB |
| 6 N/A N/A 3132 G /usr/lib/xorg/Xorg 4MiB |
| 7 N/A N/A 3132 G /usr/lib/xorg/Xorg 4MiB |
+-----------------------------------------------------------------------------------------+
总结:至此,nvidia-container-toolkit工具已完成安装、配置及验证,Docker已识别nvidia运行时,可正常支持GPU容器化部署,为后续大模型容器化运行(可选)做好准备。
四、第三步:安装Miniconda并创建隔离环境
在AI项目中,环境隔离是避免“依赖地狱”的关键,Miniconda作为轻量级的Python环境管理工具,是服务器端的最佳选择。
1. 安装Miniconda
# 1. 下载Miniconda3(Linux 64位,最新稳定版)
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
# 2. 静默安装Miniconda到用户目录(无需sudo,避免权限问题)
bash Miniconda3-latest-Linux-x86_64.sh -b -p $HOME/miniconda3
# 3. 初始化conda,使其在bash终端中生效
$HOME/miniconda3/bin/conda init bash
# 4. 刷新终端配置,立即启用conda命令
source ~/.bashrc
2. 创建并激活Python环境
推荐使用Python 3.10版本,兼容性最好,对vLLM和Transformers的支持最稳定。
# 1. 创建名为qwen3的conda环境,指定Python 3.10
conda create -n qwen3 python=3.10 -y
# 2. 激活该环境(后续所有操作均在该环境中执行)
conda activate qwen3
四、第三步:安装依赖并下载大模型
1. 安装系统依赖和NVIDIA仓库密钥
# 1. 更新系统软件源
sudo apt update
# 2. 安装必要的系统工具
sudo apt install -y wget gnupg
# 3. 下载并安装NVIDIA CUDA仓库密钥(确保后续依赖安装正常)
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
# 4. 再次更新软件源,加载NVIDIA仓库
sudo apt update
2. 接受conda许可并安装Python依赖
# 1. 接受conda许可协议(避免后续安装报错)
conda tos accept --override-channels --channel https://repo.anaconda.com/pkgs/main
conda tos accept --override-channels --channel https://repo.anaconda.com/pkgs/r
# 2. 安装vLLM(0.8.4版本,稳定可靠,兼容Qwen系列模型)
pip install vllm==0.8.4
# 3. 安装并重新覆盖Transformers(4.44.2版本,匹配vLLM)
pip install "transformers==4.44.2" --force-reinstall
# 4. 安装modelscope(魔搭平台工具,方便下载Qwen模型)
pip install modelscope
3. 下载Qwen系列大模型
通过modelscope工具直接下载模型到本地,支持断点续传,推荐下载Qwen2.5-72B-Instruct(对话型)或Qwen3-32B(基础型)。
# 下载Qwen2.5-72B-Instruct到./models目录
modelscope download --model Qwen/Qwen2.5-72B-Instruct --local_dir ./models
# 可选:下载Qwen3-32B到./qwen3-32目录
modelscope download --model Qwen/Qwen3-32B --local_dir ./qwen3-32
注意:模型文件体积较大(72B模型约140GB左右),下载时间较长,建议在后台执行(可使用nohup),避免终端断开导致下载中断。
五、第四步:基于vLLM部署大模型API服务
vLLM是目前最先进的大模型推理引擎之一,支持高吞吐、低延迟的推理,尤其适合多卡并行部署,这里我们充分利用8张V100显卡进行张量并行部署。
1. 先验证环境可用性
在部署前,先验证GPU和vLLM是否正常工作,避免后续部署出现问题。
# 确保已激活qwen3环境
conda activate qwen3
# 1. 验证PyTorch是否能识别GPU
python -c "import torch; print(f'GPU数量: {torch.cuda.device_count()}')"
# 2. 验证vLLM版本是否正确
python -c "import vllm; print(f'vLLM版本: {vllm.__version__}')"
预期输出
GPU数量: 8
vLLM版本: 0.8.4
2. 部署命令(多个版本可选)
版本1:基础稳定版(8卡并行,适合快速落地)
python -m vllm.entrypoints.api_server \
--model /home/mzt/models/Qwen2.5-72B-Instruct \ # 注意:指定具体模型子目录,避免加载失败
--tensor-parallel-size 8 \
--gpu-memory-utilization 0.9 \
--dtype half \
--max-model-len 32768 \
--port 8000 \
--host 0.0.0.0
版本2:高性能优化版(更高显存利用率,支持更长序列)
python -m vllm.entrypoints.api_server \
--model /home/mzt/models/Qwen2.5-72B-Instruct \
--tensor-parallel-size 8 \
--gpu-memory-utilization 0.95 \
--dtype half \
--max-model-len 32768 \
--port 8000 \
--host 0.0.0.0 \
--trust-remote-code \
--swap-space 4 \
--max-num-seqs 4 \
--enforce-eager \
--cpu-offload-gb 2 \
--block-size 16 \
--max-num-batched-tokens 65536 \
--kv-cache-dtype fp8 \
--enable-chunked-prefill \
--max-long-partial-prefills 2 \
--num-lookahead-slots 2 \
--disable-custom-all-reduce
版本3:兼容OpenAI API格式(方便对接现有OpenAI生态工具)
python -m vllm.entrypoints.openai.api_server \
--model /home/mzt/models/Qwen2.5-72B-Instruct \
--tensor-parallel-size 8 \
--gpu-memory-utilization 0.9 \
--dtype half \
--max-model-len 16384 \
--port 8000 \
--host 0.0.0.0 \
--trust-remote-code \
--swap-space 1 \
--max-num-seqs 16 \
--enforce-eager
3. 监控GPU运行状态
部署过程中,可打开另一个终端,执行以下命令实时监控GPU的显存、温度和功耗状态,确保部署正常无异常。
# 每2秒刷新一次nvidia-smi信息
watch -n 2 nvidia-smi
4. 核心参数详解
很多同学可能对部署命令中的参数不太理解,这里重点解释核心参数的作用和取值逻辑:
| 参数 | 常用值 | 详细说明 |
|---|---|---|
--model |
/home/mzt/models/Qwen2.5-72B-Instruct |
模型本地完整路径,必须指定到具体模型子目录(包含config.json等文件),否则vLLM加载失败 |
--tensor-parallel-size |
8 |
张量并行的GPU数量,这里对应8张V100,充分利用硬件资源,适合70B级大模型 |
--gpu-memory-utilization |
0.9~0.95 |
GPU显存利用率,取值越高越节省显存,但稳定性略有下降,推荐0.9(稳定)或0.95(高性能) |
--dtype |
half/bfloat16 |
模型推理精度,half(FP16)兼容V100,bfloat16更适合A100/H100,优先选择half |
--max-model-len |
16384/32768 |
模型最大上下文长度,Qwen2.5-72B原生支持32768,根据需求选择,越长越消耗显存 |
--host/--port |
0.0.0.0/8000 |
服务监听地址和端口,0.0.0.0允许外部机器访问,8000为常用端口 |
--trust-remote-code |
- | 必须开启,Qwen系列模型使用自定义代码,不开启会加载失败 |
--swap-space |
1~4 |
每卡分配的CPU交换空间(GB),用于KV Cache溢出,避免OOM报错 |
--enforce-eager |
- | 禁用CUDA Graph优化,解决部分模型/驱动兼容性问题,代价是吞吐下降10%~30%,仅必要时开启 |
六、部署成功验证与后续操作
1. 验证服务是否启动成功
当终端输出类似Started server on 0.0.0.0:8000的信息时,说明API服务已成功启动。此时可通过以下方式验证:
-
本地访问:
curl http://localhost:8000/health,返回{"status": "healthy"}即正常 -
外部访问:
curl http://192.168.15.122:8000/health(使用服务器IP),返回同上结果
2. 后续操作建议
-
后台运行服务:使用
nohup或screen让服务在后台运行,避免终端断开导致服务停止nohup python -m vllm.entrypoints.api_server [你的部署参数] > qwen_deploy.log 2>&1 & -
配置反向代理:如需对外提供服务,可使用Nginx配置反向代理,增加端口映射、访问控制等功能
-
压测与调优:根据实际业务场景,调整
--max-num-seqs、--max-num-batched-tokens等参数,平衡吞吐和延迟 -
模型更新与切换:如需切换其他模型,只需下载对应模型到本地,修改
--model参数重新部署即可
七、常见问题排查
-
驱动加载失败:重启服务器后仍无法识别GPU,可重新安装驱动,或检查GPU是否插紧(物理机)
-
OOM内存溢出:降低
--gpu-memory-utilization取值,或减小--max-model-len,也可增加--swap-space大小 -
模型加载失败:确保
--model参数指定到具体模型子目录,且模型文件下载完整(无缺失文件) -
端口被占用:修改
--port参数(如8001、8080),或使用netstat -tulpn | grep 8000查看占用进程并关闭
总结
-
部署前置条件是匹配硬件的稳定驱动(V100优先535版本),且需通过
nvidia-smi验证GPU识别状态。 -
利用Miniconda创建隔离环境(Python 3.10)可避免依赖冲突,vLLM 0.8.4是部署Qwen系列模型的稳定选择。
-
8卡V100部署核心是开启张量并行(
--tensor-parallel-size 8),并根据需求调整显存利用率和上下文长度等参数,确保性能与稳定性的平衡。 -
部署后可通过健康检查接口验证服务状态,后续可通过后台运行、反向代理等方式优化服务可用性。
本文的部署步骤均经过实际验证,可直接复现,如果你在部署过程中遇到问题,欢迎在评论区留言交流!
(注:文档部分内容可能由 AI 生成)
昇腾计算产业是基于昇腾系列(HUAWEI Ascend)处理器和基础软件构建的全栈 AI计算基础设施、行业应用及服务,https://devpress.csdn.net/organization/setting/general/146749包括昇腾系列处理器、系列硬件、CANN、AI计算框架、应用使能、开发工具链、管理运维工具、行业应用及服务等全产业链
更多推荐



所有评论(0)