vllm部署Qwen3模型在50系显卡(5070ti)上的踩坑记录-wsl2-ubuntu22.04LTS
最近在学大模型,想在wsl2中ubuntu22.04上通过安装vllm来部署Qwen3大模型,遇到了vllm的很多兼容性问题,最后在搜索过很多教程后通过自己编译vllm,成功运行Qwen3-8B-AWQ模型,找到并补充了不需要编译的办法。
目录
4.1通过命令行启动 兼容 OpenAI API 协议的服务器,并开启思考推理
参考了这篇文章:
vLLM在RTX50系显卡上部署大模型-使用wsl2文章介绍了在RTX 50系显卡上通过手动编译vLLM部署大模型的全过 - 掘金
环境准备
- 安装wsl2
- wsl2中安装ubuntu22.04
- 安装git
- 安装miniConda
- conda创建虚拟环境python3.12
1.安装pytorch+cuda
对于50系显卡,我的是5070ti,cuda版本要12.8的版本不然会报sm_120不可用,建议pip安装之前先切到阿里源,清华源不稳定会报403。
# 将 pip 的包安装源切换为阿里云的镜像源
pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/
# 过以下命令查看当前的 pip 源配置:
pip config list
# 通过pip安装pytorch和cuda.
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu128
这个命令会安装pytorch+cu128。
2.安装nvcc工具链
要和cuda保持版本一致,安装参考链接:Ubuntu22.04 安装 CUDA12.8_ubuntu安装cuda12.8-CSDN博客
https://blog.csdn.net/sinat_27236401/article/details/148366281
安装完成后要设置系统变量,为的是每次终端启动时自动配置,可以将上述命令写入 shell 配置文件中
echo 'export PATH=/usr/local/cuda-12.8/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
# 查看nvcc二进制可执行文件所在的位置
which nvcc
# 查询nvidia-cuda-toolkit版本
nvcc -V 或 nvcc --version

3.下载vllm源码并安装
# 拉取代码
git clone https://github.com/vllm-project/vllm.git
# 进入项目目录
cd vllm
# 使用已安装的torch
python use_existing_torch.py
# 准备编译环境依赖
pip install -r requirements/build.txt
pip install -r requirements/common.txt
pip install --upgrade pip setuptools setuptools-scm
# 执行编译,使用MAX_JOBS参数执行并行处理加速,可以设置为自己处理器的核心数
MAX_JOBS=8 pip install --no-build-isolation -e .
注:setuptools模块太新可能会安装失败,可以看报错的信息会给出版本范围,通过pip uninstall卸载旧版本,然后安装给出的版本。
我的CPU为AMD 9700X大概二十来分钟安装成功,结果如图:

如果遇到报错或者安装失败一般是以下2种情况:
- vllm依赖的包不全
- pytorch和cuda或者nvcc版本对不上(重点)
解决办法就是注意看报错的原因,搜索对应的报错信息,对症下药,要注意pytorch和cuda及vllm要求版本的一致性非常高!!!!
自己编译源码安装好后,要注意vllm命名的文件不要和vllm安装的路径放在同一个目录,想要运行的python文件也不要放在vllm安装的目录下,不然会报错找不到vllm。

查看是否在pip列表中
# pip已安装包列表
pip list
可以看到vllm被成功安装
附上vllm官网安装文档链接:
GPU - vLLM 文档
https://docs.vllm.com.cn/en/latest/getting_started/installation/gpu.html#nvidia-cuda

4.Qwen3模型部署测试
注:部署测试在conda的虚拟环境中进行
通过vLLM搭建一个兼容OpenAI API服务器,这也是默认情况下,它在 http://localhost:8000 启动服务器。您可以使用 --host 和 --port 参数指定地址。该服务器目前一次只托管一个模型,并实现了诸如列出模型、创建聊天补全和创建补全等特点。
通过pip 安装modelscope:
pip install modelscope
最开始想部署Qwen3-8B的模型,下载部署后发现会爆显存,为了压缩模型大小,节省显存,选择量化过的Qwen/Qwen3-8B-AWQ模型。
使用 modelscope 中的 snapshot_download 函数下载模型,第一个参数为模型名称,参数 cache_dir 为模型的下载路径。
from modelscope import snapshot_download
model_dir = snapshot_download('Qwen/Qwen3-8B-AWQ', cache_dir='{你想要缓存的路径}', revision='master')
4.1通过命令行启动 兼容 OpenAI API 协议的服务器,并开启思考推理
VLLM_USE_MODELSCOPE=true vllm serve /mnt/e/AI/GitHub_project/self-llm/model/Qwen3-8B-AWQ/Qwen/Qwen3-8B-AWQ --served-model-name Qwen3-8B-AWQ --max_model_len 8192 --enable-reasoning --reasoning-parser deepseek_r1
看到命令行打印如下图内容即为启动成功

4.2使用 vLLM 的 API问题
- 通过
curl命令查看当前的模型列表
curl http://localhost:8000/v1/models
- API调用超时
发现一个很神奇的现象,怎么重启调用vllm命令行方式启动OpenAI API服务器都没反应会等到超时,也能通过lsof -i :8000查到有vLLM服务监听,偶然发现一个解决办法:
VSCode创建一个同样conda环境的终端再次用同样的vllm命令行方式(4.1小节)启动(10秒钟这样),然后clrl + c 终止启动,再去调用命令行就可以了,结果如下图:

API服务器终端也会打印日志

- 接口调用测试
curl http://localhost:8000/v1/completions \
-H "Content-Type: application/json" \
-d '{
"model": "Qwen3-8B-AWQ",
"prompt": "大模型是什么?<think>\n",
"max_tokens": 1024,
"temperature": 0
}'
调用成功,且开启了思考推理。
- 模型显存占用
量化后的模型部署到vLLM后占用情况还是很极限的,占用的显存15GB以上 。

总结
- vLLM在50系显卡上部署模型要求pytorch和cuda及nvcc工具链的版本一致性非常高
- 模型部署时要考虑硬件情况如GPU的显存大小
- 要注意看报错的内容和信息一一排查
- vLLM部署模型非常高效,且由于其开源属性,社区生态活跃
补充:1条指令解决,并且不需要编译
这条指令可以解决50系显卡安装vllm的问题且不需要编译,NVCC工具链需要12.8版本。
pip install -U vllm --extra-index-url https://download.pytorch.org/whl/cu128 --extra-index-url https://wheels.vllm.ai/nightly
更多推荐
所有评论(0)