最近在学大模型,想在wsl2中ubuntu22.04上通过安装vllm来部署Qwen3大模型,遇到了vllm的很多兼容性问题,最后在搜索过很多教程后通过自己编译vllm,成功运行Qwen3-8B-AWQ模型,找到并补充了不需要编译的办法。

目录

环境准备

1.安装pytorch+cuda

2.安装nvcc工具链

3.下载vllm源码并安装

4.Qwen3模型部署测试

4.1通过命令行启动 兼容 OpenAI API 协议的服务器,并开启思考推理

4.2使用 vLLM 的 API问题

总结

补充:1条指令解决,并且不需要编译


参考了这篇文章:

vLLM在RTX50系显卡上部署大模型-使用wsl2文章介绍了在RTX 50系显卡上通过手动编译vLLM部署大模型的全过 - 掘金

环境准备


  1. 安装wsl2
  2. wsl2中安装ubuntu22.04
  3. 安装git
  4. 安装miniConda
  5. 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种情况:

    1. vllm依赖的包不全
    2. 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以上 。

      总结

      1. vLLM在50系显卡上部署模型要求pytorch和cuda及nvcc工具链的版本一致性非常高
      2. 模型部署时要考虑硬件情况如GPU的显存大小
      3. 要注意看报错的内容和信息一一排查
      4. 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

      Logo

      腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

      更多推荐