基于N卡vllm本地部署模型升级及踩坑实录

昨天帮甲方升级了一下本地的老模型,因为本人并不是从事运维工作,只是临时补坑,还是浪费了点时间.现在回头做个梳理,希望佬友们在用得到的时候也有个参考(感觉都比较基础,专业的大佬可以跳过不看) 模型下载: 国内环境推荐直接使用 modelscope 下载,如果是内网环境的话,可以下载完再上传到服务器.这...
基于N卡vllm本地部署模型升级及踩坑实录
基于N卡vllm本地部署模型升级及踩坑实录

昨天帮甲方升级了一下本地的老模型,因为本人并不是从事运维工作,只是临时补坑,还是浪费了点时间.现在回头做个梳理,希望佬友们在用得到的时候也有个参考(感觉都比较基础,专业的大佬可以跳过不看)

模型下载:

国内环境推荐直接使用modelscope下载,如果是内网环境的话,可以下载完再上传到服务器.这里重点关注2个地方

这里就有第一个踩坑的点:虽然他标注的vllm>=0.19.0,但是我建议你就安装对应的版本.我昨天按文档上的安装了最新vllm版本运行后又会出现版本兼容问题,浪费了不少时间调版本(也不知道是不是vllm高版本不向下兼容的问题,反正vllm里提示transformers版本不对,然后我就问哈基米解决方案,来回升降vllm和transformers版本,最后也解决不了,这实际部署行为,大模型可信度有限)

服务器CUDA版本升级

因为服务器是N卡而且现有的服务器CUDA版本太低了,对于要求版本的vllm不兼容,所以第一步先升级cuda.

先查询你要安装的cuda版本,这里我以要装的vllm 0.19.0为例:
安装要求:

  • OS: Linux

  • Python: 3.10 到 3.13

  • NVIDIA GPU: compute capability >= 7.0

官方依据:

  • vLLM 0.19.0 GPU 安装要求:
docs.vllm.ai

GPU - vLLM

  • NVIDIA GPU compute capability 官方查询表:
NVIDIA Developer

NVIDIA CUDA GPU Compute Capability

Find the compute capability for your GPU.

这里如果显卡不满足cap的话就只能降vllm版本,装老一点的模型了

然后开始具体安装=> 前置:停掉所有占用显卡的进程,查询指令如下

nvidia-smi --query-compute-apps=pid,name --format=csv,noheader,nounits

如果是systemd启动的话可以在列表中先找到相关的服务

systemctl list-units --type=service --state=running

然后直接kill 或者使用对应的systemctl stop xxxx停止服务和nv manager服务

# 停止 Fabric Manager
systemctl unmask nvidia-fabricmanager
systemctl stop nvidia-fabricmanager
# 查询当前驱动和已安装的 fabricmanager
dpkg -l | grep -E 'nvidia-fabricmanager|nvidia-driver'
apt-mark showhold | grep -E 'nvidia|cuda' || true
# 解除旧 fabricmanager 的 hold 并卸载,我本地的是nvidia-fabricmanager-550
apt-mark unhold nvidia-fabricmanager-550 nvidia-fabricmanager-580 2>/dev/null || true
apt purge -y nvidia-fabricmanager-550 nvidia-fabricmanager-580
# 停止所有可能占用 GPU 的持久化服务
systemctl stop nvidia-persistenced

接着去NV官网下载对应的CUDA Toolkit

wget https://developer.download.nvidia.com/compute/cuda/12.9.0/local_installers/cuda_12.9.0_575.51.03_linux.run
sh cuda_12.9.0_575.51.03_linux.run

根据提示页面输入’accept’和选择install即可,等待安装完毕

安装完再系统的全局软链接更新指向新版本的 Toolkit

mv /usr/local/cuda /usr/local/cuda.bak
ln -s /usr/local/cuda-12.9 /usr/local/cuda
# 查询 NVIDIA 驱动版本,fabricmanager 要匹配驱动版本,不是 CUDA toolkit 版本
nvidia-smi --query-gpu=driver_version --format=csv,noheader | head -n 1
# 查询 575 server 驱动和 fabricmanager 可用版本
apt update
apt-cache policy nvidia-driver-575-server nvidia-fabricmanager-575
apt-cache madison nvidia-driver-575-server
apt-cache madison nvidia-fabricmanager-575
# 安装匹配版本的 server driver + fabricmanager
apt install -y nvidia-driver-575-server nvidia-fabricmanager-575
# 驱动升级后必须重启
reboot
#恢复管理器
systemctl daemon-reload
systemctl enable --now nvidia-fabricmanager
systemctl start nvidia-fabricmanager
systemctl status nvidia-fabricmanager
nvidia-smi topo -m

这里注意装完驱动必须重启服务器,然后nvidia-smi 后看到 CUDA Version: 12.9,至此cuda升级完毕

安装升级vllm

因为原先这台机器的vllm并不是我来安装的,所以升级的时候,直接安装一套新的conda做虚拟环境管理

wget https://repo.anaconda.com/archive/Anaconda3-2024.10-1-Linux-x86_64.sh
chmod +x Anaconda3-2024.10-1-Linux-x86_64.sh
./Anaconda3-2024.10-1-Linux-x86_64.sh
#修改环境变量
echo 'export PATH=~/anaconda3/bin:$PATH' >> ~/.bashrc && source ~/.bashrc
conda create -n vllm python=3.10 -y
source ~/.bashrc && conda activate vllm
#安装模型要求的vllm版本,这里替换了国内源,提高下载速度
pip install vllm==0.19.0 -i https://pypi.tuna.tsinghua.edu.cn/simple

后续就是调试vllm的启动命令了,这基本参照官方文档和问ai都能搞定,无非就是配置几个选项和上下文大小和量化指标那些

6 个帖子 - 4 位参与者

阅读完整话题

来源: LinuxDo 最新话题查看原文