Code Ease Code Ease
  • 个人博客网站 (opens new window)
  • 好用的工具网站 (opens new window)
  • Java核心基础
  • 框架的艺术
  • 分布式与微服务
  • 开发经验大全
  • 设计模式
  • 版本新特性
数据库系列
大数据+AI
  • xxl-job
运维与Linux
  • 基于SpringBoot和BootStrap的论坛网址
  • 基于VuePress的个人博客网站
  • 基于SpringBoot开发的小功能
  • 做一个自己的IDEA插件
程序人生
关于我
  • 分类
  • 标签
  • 归档

神秘的鱼仔

你会累是因为你在走上坡路
  • 个人博客网站 (opens new window)
  • 好用的工具网站 (opens new window)
  • Java核心基础
  • 框架的艺术
  • 分布式与微服务
  • 开发经验大全
  • 设计模式
  • 版本新特性
数据库系列
大数据+AI
  • xxl-job
运维与Linux
  • 基于SpringBoot和BootStrap的论坛网址
  • 基于VuePress的个人博客网站
  • 基于SpringBoot开发的小功能
  • 做一个自己的IDEA插件
程序人生
关于我
  • 分类
  • 标签
  • 归档
服务器
  • ElasticSearch

  • Spark

  • kafka

  • AI聚集地

    • 半个月了,DeepSeek为什么还是服务不可用
    • AI大模型部署指南
    • 轻松搞定:Qwen3-32B 生产环境离线部署全流程
      • 背景
      • 部署及使用概况
      • Qwen3相关地址
      • 版本要求
      • 安装方案
        • 包准备
        • G++11安装
        • Python3.9安装
        • 虚拟环境构建
        • 依赖下载
        • 执行启动命令
      • 模型的选择
  • 大数据技术
  • AI聚集地
CodeEase
2025-05-08
目录

轻松搞定:Qwen3-32B 生产环境离线部署全流程

作者:鱼仔
博客首页: codeease.top (opens new window)
公众号:Java鱼仔

# 背景

前段时间Qwen3发布,并且在效果上十分不错,刚好我目前的本职工作都和AI有关,也有一定的显卡资源,于是就做了Qwen3 原版32B模型的部署和使用,目前已经发布到生产环境供AI应用使用,本篇博客给出Qwen3生产环境完全离线部署的攻略。

# 部署及使用概况

我使用的生产环境操作环境为CentOS7.9,显卡配置为8张A10显卡,每张显卡显存为32G,使用vllm进行生产环境部署,使用中占用总显存达到160G左右

32-3-1.JPG

3-2.JPG

平均推理速度为36tokens每秒,体验感觉还是比较快的。

3-3.PNG

# Qwen3相关地址

模型下载地址:https://huggingface.co/Qwen/Qwen3-32B (opens new window)

github地址:https://github.com/QwenLM/Qwen3 (opens new window)

# 版本要求

官方文档推荐SGLang或者vllm进行生产环境的模型部署,我用vllm比较多,因此使用vllm进行生产部署

Qwen3对transformers以及vllm的版本要求较高,我用跑Qwen2.5的虚拟环境去运行Qwen3无法成功。以下是具体的版本要求:

vllm:大于等于0.8.5

transformers:大于等于4.51.0

gcc/g++:需要支持c++17,我用的版本是g++11.3.0

python:建议python 3.9以上,我用的版本是3.9.19

# 安装方案

# 包准备

G++11相关:gmp-6.2.1.tar.xz、mpfr-4.2.0.tar.xz、mpc-1.3.1.tar.gz、isl-0.24.tar.bz2、gcc-11.3.0.tar.gz

python3.9.19:python3.9.19.tar.gz

# G++11安装

下面的这几步操作需要在root账号下执行

安装gmp

tar -xvf gmp-6.2.1.tar.xz
cd gmp-6.2.1
./configure --prefix=/usr/local/gmp-6.2.1
make -j8
make install -j8 
tar -xvf mpfr-4.2.0.tar.xz
1
2
3
4
5
6

安装mpfr

cd mpfr-4.2.0
./configure --prefix=/usr/local/mpfr-4.2.0 --with-gmp-include=/usr/local/gmp-6.2.1/include --with-gmp-lib=/usr/local/gmp-6.2.1/lib
make -j8
make install -j8
1
2
3
4

安装mpc

tar -xvf mpc-1.3.1.tar.gz
cd mpc-1.3.1
./configure --prefix=/usr/local/mpc-1.3.1 --with-gmp-include=/usr/local/gmp-6.2.1/include --with-gmp-lib=/usr/local/gmp-6.2.1/lib  --with-mpfr-include=/usr/local/mpfr-4.2.0/include --with-mpfr-lib=/usr/local/mpfr-4.2.0/lib
make -j8
make install -j8
1
2
3
4
5

安装isl

tar -xvf isl-0.24.tar.bz2
cd isl-0.24
./configure --prefix=/usr/local/isl-0.24 --with-gmp-prefix=/usr/local/gmp-6.2.1
make -j8
make install -j8
1
2
3
4
5

环境变量配置

vi ~/.bashrc

// 在最后一行加上
export LD_LIBRARY_PATH=/usr/local/gmp-6.2.1/lib:/usr/local/mpfr-4.2.0/lib:/usr/local/mpc-1.3.1/lib:/usr/local/isl-0.24/lib:$LD_LIBRARY_PATH

// 保存后执行
source ~/.bashrc
1
2
3
4
5
6
7

安装gcc11,这一步需要的时间会比较久

mkdir -p /usr/local/gcc-11.3.0
tar -xvf gcc-11.3.0.tar.gz
 cd gcc-11.3.0
./configure --prefix=/usr/local/gcc-11.3.0 --with-gmp=/usr/local/gmp-6.2.1/  --with-mpfr=/usr/local/mpfr-4.2.0  --with-mpc=/usr/local/mpc-1.3.1 --with-isl=/usr/local/isl-0.24 --disable-multilib
make -j8
make install -j8
1
2
3
4
5
6

配置环境变量

vi ~/.bashrc

// 在最后一行加上
export PATH=/usr/local/gcc-11.3.0/bin:$PATH

source ~/.bashrc
1
2
3
4
5
6

重新创建软链接,因为CentOS7.9默认使用的是gcc4.8.5

mv /usr/lib64/libstdc++.so.6 /usr/lib64/libstdc++.so.6.bak
ln -s /usr/local/gcc-11.3.0/lib64/libstdc++.so.6.0.29 /usr/lib/libstdc++.so.6
mv /usr/bin/gcc /usr/bin/gcc-4.8.5
mv /usr/bin/g++ /usr/bin/g++-4.8.5
ln -s /usr/local/gcc-11.3.0/bin/gcc /usr/bin/gcc
ln -s /usr/local/gcc-11.3.0/bin/g++ /usr/bin/g++
1
2
3
4
5
6

现在切换回到正常的非root账号

配置环境变量

vi ~/.bashrc

// 在最后加上
export LD_LIBRARY_PATH=/usr/local/gmp-6.2.1/lib:/usr/local/mpfr-4.2.0/lib:/usr/local/mpc-1.3.1/lib:/usr/local/isl-0.24/lib:/usr/local/gcc-11.3.0/lib64:$LD_LIBRARY_PATH
export PATH=/usr/local/gcc-11.3.0/bin:$PATH

// 刷新环境变量
source ~/.bashrc
1
2
3
4
5
6
7
8

最后执行g++ -v 命令验证是否安装成功

3-4.JPG

# Python3.9安装

因为现在很多模型要求openssl达到1.1.1以上版本,因此先安装openssl 1.1.1。

openssl1.1.1s 下载地址:https://openssl-library.org/source/old/1.1.1/index.html (opens new window)

安装:

tar -zxvf  openssl-1.1.1s.tar.gz
cd openssl-1.1.1s
./config --prefix=/home/ai/bin/openssl
make
make install
1
2
3
4
5

下载Python-3.9.19.tgz,下载地址:https://python.org/ftp/python/3.9.19 (opens new window)

下载完成后将文件放到Linux服务器上

tar -xvf Python-3.9.19.tgz
cd Python-3.9.19
make clean
export LD_LIBRARY_PATH=/home/ai/bin/openssl/lib:$LD_LIBRARY_PATH
./configure --prefix=/home/ai/bin/python3.9 --with-openssl=/home/ai/bin/openssl/lib
make
make altinstall
1
2
3
4
5
6
7

配置环境变量

vi ~/.bashrc
1

在最后一行加上:

export PATH=/home/ai/bin/python3.9/bin:$PATH
export LD_LIBRARY_PATH=/home/ai/bin/openssl/lib:$LD_LIBRARY_PATH
1
2

刷新环境变量

source ~/.bashrc
1

验证:

python3.9 --version
1

输出版本号即为成功

验证ssl

python3.9 -c "import ssl; print(ssl.OPENSSL_VERSION)"
1

输出1.1.1版本即为成功。

# 虚拟环境构建

使用Python的虚拟环境对各个环境进行隔离,也可以直接把测试环境的这个虚拟环境直接搬到生产环境去,很方便。

python3.9 -m venv qwen3_venv
source qwen3_venv/bin/activate
1
2

现在你就进入到这个虚拟环境中了。

# 依赖下载

主要下载两个重要的依赖:

pip install transformers==4.51.3
pip install vllm==0.8.5
1
2

如果有其他需要下载的依赖按需下载即可。

# 执行启动命令

通过vllm的命令行即可启动大模型,注意生产环境上可以把启动命令和停止命令做成脚本

CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 nohup   python -m vllm.entrypoints.openai.api_server    --model=Qwen3-32B  --max-model-len=32000 --served-model-name=qwen3_32b  --device=cuda    --port=10100    --host=0.0.0.0    --tensor-parallel-size=8  --gpu-memory-utilization=0.8  --dtype=auto    --trust-remote-code >> qwen3.log &
1

当日志中出现下面这些内容的时候,就说明大模型成功启动了

3-5.JPG

可以用标准的OpenAPI格式的接口直接调用大模型

# 模型的选择

Qwen3开源了多种规格的模型,但是原版模型需要的硬件资源是比较多的,因此可以尝试使用量化版本的模型,比如Qwen3-32B-AWQ,虽然降低了一些性能,但是只需要上面的两张卡就可以完成部署。最终的选择还是看大家自己的硬件资源和应用场景了。

上次更新: 2025/07/03, 21:02:31
AI大模型部署指南

← AI大模型部署指南

最近更新
01
AI大模型部署指南
02-18
02
半个月了,DeepSeek为什么还是服务不可用
02-13
03
Python3.9及3.10安装文档
01-23
更多文章>
Theme by Vdoing | Copyright © 2023-2025 备案图标 浙公网安备33021202002405 | 浙ICP备2023040452号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式