45分钟从零搭建私有MaaS平台和生产级的Qwen3模型服务
今天凌晨,阿里通义团队正式发布了 Qwen3
,涵盖六款 Dense 模型(0.6B、1.7B、4B、8B、14B、32B
)和两款 MoE 模型(30B-A3B 和 235B-A22B
)。其中的旗舰模型 Qwen3-235B-A22B 在代码、数学、通用能力等基准测试中,与 DeepSeek-R1、o1、o3-mini、Grok-3 和 Gemini-2.5-Pro 等顶级模型相比,表现出了强大的竞争力。小型 MoE 模型 Qwen3-30B-A3B
的激活参数是 QwQ-32B 的 10%,但表现更胜一筹,由于激活参数少,推理速度更快。甚至像 Qwen3-4B
这样的小模型也能匹敌 Qwen2.5-72B-Instruct 的性能。
GPUStack 在上周发布了 v0.6 版本,内置支持了 Qwen3。其中 NVIDIA 支持 vLLM 和 llama-box 运行,AMD、Apple Silicon、昇腾、海光、摩尔线程支持 llama-box 运行。今天一早,社区群的各位小伙伴已经开始在各种尝试 Qwen3,我们也带来一篇挑战 45 分钟从零搭建私有 MaaS 平台和生产级的 Qwen3 模型服务的文章,快速搭建和体验 Qwen3 模型。
GPUStack 是一个100%开源的模型服务平台,支持 Linux、Windows 和 macOS,支持 NVIDIA、AMD、Apple Silicon、昇腾、海光、摩尔线程等 GPU 构建异构 GPU 集群,支持 LLM、多模态、Embedding、Reranker、图像生成、Speech-to-Text 和 Text-to-Speech 模型,支持 vLLM、MindIE、llama-box(基于 llama.cpp 与 stable-diffusion.cpp)等多种推理引擎与推理引擎多版本并行,支持资源自动调度分配、模型故障自动恢复、多机分布式推理、混合异构推理、推理请求负载均衡、资源与模型监控指标观测、国产化支持、用户管理与 API 认证授权等各种企业级特性,提供 OpenAI 兼容 API 无缝接入 Dify、RAGFlow、FastGPT、MaxKB 等各种上层应用框架,是企业建设模型服务平台的理想选择。
本篇文章将介绍在一节课 45 分钟内(包括安装和模型下载)搭建 GPUStack 模型服务平台并通过 GPUStack 运行生产级的 Qwen3 模型服务。
计时开始:
前置准备
以下操作环境为一台阿里云 ECS 云主机,操作系统为
Ubuntu 22.04
,GPU 为 NVIDIA A10,操作依赖良好的网络条件。其他操作系统的安装参考每个章节的文档链接。
验证当前环境的 NVIDIA GPU 硬件:
lspci | grep -i nvidia
验证系统已安装 GCC:
gcc --version
安装 NVIDIA 驱动
参考:https://developer.nvidia.com/datacenter-driver-downloads
为当前内核安装内核头文件和开发包:
sudo apt-get update && sudo apt-get install linux-headers-$(uname -r)
安装 cuda-keyring
包:
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
安装 NVIDIA 驱动:
sudo apt-get update && sudo apt-get install nvidia-open -y
重启系统:
sudo reboot
重新登录并检查 nvidia-smi
命令可用:
nvidia-smi
耗时:3m
安装 Docker Engine
参考:https://docs.docker.com/engine/install/ubuntu/
执行以下命令卸载所有冲突的包:
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done
设置 Docker 的 apt 仓库:
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl -y
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
安装 Docker:
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
检查 docker
命令可用:
sudo docker info
耗时:1m
安装 NVIDIA Container Toolkit
参考:https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html
配置 NVIDIA Container Toolkit 的生产仓库:
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
安装 NVIDIA Container Toolkit:
sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit
使用 nvidia-ctk
命令配置容器运行时:
sudo nvidia-ctk runtime configure --runtime=docker
检查 daemon.json
文件的配置:
vim /etc/docker/daemon.json
加入 "exec-opts": ["native.cgroupdriver=cgroupfs"]
配置,避免NVIDIA Container Toolkit 的 Failed to initialize NVML: Unknown Error
容器掉卡问题(参考:https://docs.gpustack.ai/latest/installation/nvidia-cuda/online-installation/#prerequisites_1):
{
"runtimes": {
"nvidia": {
"args": [],
"path": "nvidia-container-runtime"
}
},
"exec-opts": ["native.cgroupdriver=cgroupfs"]
}
重启 Docker daemon:
sudo systemctl restart docker
检查 NVIDIA Container Runtime 配置是否生效:
docker info | grep -i runtime
耗时:1.5m
安装 GPUStack
参考:https://docs.gpustack.ai/latest/installation/nvidia-cuda/online-installation/
通过 Docker 安装 GPUStack:
docker run -d --name gpustack \
--restart=unless-stopped \
--gpus all \
--network=host \
--ipc=host \
-v gpustack-data:/var/lib/gpustack \
swr.cn-north-9.myhuaweicloud.com/gpustack/gpustack:v0.6.0
耗时:20m40s
检查服务启动:
docker logs -f gpustack
耗时:20s
使用以下命令查看登录密码:
docker exec -it gpustack cat /var/lib/gpustack/initial_admin_password
在浏览器访问 GPUStack( http://YOUR_HOST_IP )以用户名 admin
和密码登录。设置密码后,登录进 GPUStack,查看识别到的 GPU 资源:
GPUStack 支持添加更多的 Worker 节点构建 GPU 集群,本文章不需要该部分,省略,有需要的参考上方的 GPUStack 官方安装文档。
部署 Qwen3
访问 模型
菜单,选择部署模型
- ModelScope
,在 ModelScope 中搜索 Qwen 官方的 Qwen3 模型仓库,我们的 GPU 是 NVIDIA A10
,24G显存。这里我们部署号称能匹敌 Qwen2.5-72B-Instruct
性能的 Qwen3-4B
模型:
考虑需要部署生产级的 Qwen3 模型服务,因此使用 vLLM 后端来运行 Qwen3 模型:
等待模型下载:
耗时:14m
等待模型启动完成:
确认模型正常 Running 后,在试验场测试模型的生成效果:
问题测试:
挑战完成,记录时间:
总耗时:43m25s,其中包括:
- 容器镜像下载耗时约 20m
- 模型文件下载耗时约 14m
- 安装配置步骤耗时约 20m
按照以上步骤,我们已经完成在 45 分钟内搭建 GPUStack 模型服务平台并运行生产级的 Qwen3 模型服务。
目前 GPUStack 的 vLLM 后端和 llama-box 后端均已支持运行 Qwen3,在 Linux、Windows 和 macOS 上均可运行,欢迎体验。
旗舰模型 Qwen3-235B-A22B 由于参数量比较大,还在下载中,针对部分用户单机显存资源无法运行的场景,我们将在下篇文章带来通过多机分布式运行 Qwen3-235B-A22B 模型的教程。
通过以上步骤,我们已经演示了如何快速在 45 分钟内搭建 GPUStack 模型服务平台并通过 GPUStack 运行生产级的 Qwen3 模型服务,GPUStack 是一个100%开源的模型服务平台,目前用户遍布全球上百个国家,GPUStack 的目标是打造业界最好用的模型推理平台,欢迎使用与反馈。如果你有任何建议或想法,欢迎随时向我们提出,我们会认真评估并持续改进。
参与开源
想要了解更多关于 GPUStack 的信息,可以访问我们的仓库地址:https://github.com/gpustack/gpustack。如果你对 GPUStack 有任何建议,欢迎提交 GitHub issue。在体验 GPUStack 或提交 issue 之前,请在我们的 GitHub 仓库上点亮 Star ️关注我们,也非常欢迎大家一起参与到这个开源项目中!
如果觉得对你有帮助,欢迎点赞、转发、关注。
45分钟从零搭建私有MaaS平台和生产级的Qwen3模型服务的更多相关文章
- Python从零搭建Conf_Web配置管理平台
环境 CentOS 6/7 x64 Python:2 .7.6 Etcd: 3.2.18 Confd:0 .16.0 Nginx: 1.12.1 效果演示 一,拓扑图: 二.涉及软件 ETD: .分布 ...
- Python 从零搭建 Conf_Web 配置管理平台
作者:Eagle 某船舶行业科技公司,运维工程师,51Reboot学员.通过在51Reboot学习,由运维工程师转至运维开发工程师.完成公司自动化平台的构建,对运维开发有了自己的理解,空闲时间写了这么 ...
- 以Aliyun体验机为例,从零搭建LNMPR环境(上)
使用云服务器搭建 Web 运行环境,尤其是搭建常见的 LNMPR(Linux+Nginx+MySQL+PHP+Redis) 环境,对于开发人员是必备的职场基本技能之一.在这里,借着搭建我的" ...
- Log4net快速配置使用指南。(快速搭建log4net日志平台手册)
每做一个新项目,都会用到log4net,但总是忘记如何快速配置.有时在网上搜半天也找不到好的模板,大都在介绍参数的使用,在此做下总结,争取下次用时仅10分钟就可搭建好log4net. 直接上介绍的步骤 ...
- docker进阶-搭建私有企业级镜像仓库Harbor
为什么要搭建私有镜像仓库 对于一个刚刚接触Docker的人来说,官方的Docker hub是用于管理公共镜像.既然官方提供了镜像仓库我们为什么还要去自己搭建私有仓库呢?虽然也可以托管私有镜像.我们 ...
- 从零搭建基于golang的个人博客网站
原文链接 : http://www.bugclosed.com/post/14 从零搭建个人博客网站需要包括云服务器(虚拟主机),域名,程序环境,博客程序等方面.本博客 就是通过这几个环节建立起来的, ...
- 搭建J2EE开发平台-Eclipse+MySql+tomcat
搭建J2EE开发平台-Eclipse+MySql+tomcat 分类: ·Java 2010-10-10 15:45 2596人阅读 评论(3) 收藏 举报 mysql平台eclipsetomcatj ...
- 搭建私有Nuget仓库
使用Nexus搭建私有Nuget仓库 https://www.cnblogs.com/Erik_Xu/p/9211471.html 前言 Nuget是ASP .NET Gallery的一员,是免费.开 ...
- docker 搭建私有云盘 Seafile
缘起 现如今各种云存储服务其实挺多的,国外有经典的DropBox.Google Drive.微软的OneDrive等,国内也有可以免费使用的各种云. 那么为什么想要搭建私有云存储呢?主要是本着“自己的 ...
- 搭建私有CA
一.实验目的 搭建私有CA并使其可以实现公司内部的的签名服务. 二.实验环境: 系统架构:Centos7(服务器).Centos6(需要申请证书的服务器)需要的软件包:openssl.openssl- ...
随机推荐
- EasyExcel 通过模板填充数据
EasyExcel 通过模板填充数据两种方式:1.直接通过模板填充.2.通过IO流填充. 模板示例 注意:单个字段填充只写字段名即可,数据集填充需要在字段前加 . {title} 姓名 昵称 手机号 ...
- FreeSql学习笔记——10.贪婪加载
前言 FreeSql贪婪加载主要对应导航属性,将需要的数据一次加载出来,包括查询表的子表或者关联表的关联数据,用于一对一.一对多.多对一.多对多的关系数据查询,查询的时候一对一.多对一关系查询是可 ...
- 访问控制模型 ABAC 的使用和设计原则
访问控制(AC)的发展历程 访问控制(Access Control, AC)是保护系统资源的重要机制,决定"谁"可以访问"哪些"资源,并能执行"哪些操 ...
- 记一次 Mybatis 一级缓存清理无效引起的源码走读
今天对象在学习 Mybatis 时发现 org.apache.ibatis.session.SqlSession 对象的 clearCache() 方法并不能清理一级缓存, 同一 session 下相 ...
- QT5笔记:17. QComboBox和QPlainTextEdit
例子 #include "widget.h" #include "ui_widget.h" #include <QTextBlock> Widget ...
- 浅谈李飞飞巴黎演讲:如果 AI 资源被少数公司垄断,整个生态系统都会完蛋
在巴黎人工智能峰会开幕式上,斯坦福大学教授.人工智能专家李飞飞发表了主题演讲,揭示了人工智能如何从"观察者"转变为重塑世界的"行动者".她在致辞中,分析了&qu ...
- luogu-P10596题解
简要题意 一个有 \(N\) 个元素的集合有 \(2N\) 个不同子集(包含空集),现在要在这 \(2N\) 个集合中取出若干集合(至少一个),使得它们的交集的元素个数为 \(K\),求取法的方案数, ...
- C#短链接生成方法
public class Program { static void Main() { Random rd = new Random(); for (int i = 0; i < 10; i++ ...
- 性能对比实验折线图绘制代码(YOLO系列为例)
本文用于绘制性能折线图,适用于对比实验,发现很多博文都是收费,欺负哥们懒得学习,一气之下ai了一下再进行代码修改,免费供给大家学习参考,便于大家撰写论文数据时利于绘制图像. import pandas ...
- docker Get "https://registry-1.docker.io/v2/": x509: certificate is valid for
前言 docker 在进行 build 时,报错:Get "https://registry-1.docker.io/v2/": x509: certificate is vali ...