Qwen3模型Ubuntu系统部署保姆级教程:从零到一键启动

张开发
2026/4/24 17:08:41 15 分钟阅读

分享文章

Qwen3模型Ubuntu系统部署保姆级教程:从零到一键启动
Qwen3模型Ubuntu系统部署保姆级教程从零到一键启动如果你是一名在Linux环境下工作的开发者最近想上手体验一下Qwen3这个强大的大语言模型但看着官方文档里一堆命令和配置有点发怵那这篇教程就是为你准备的。我花了不少时间在Ubuntu系统上把整个部署流程完整走了一遍把可能遇到的坑都提前踩了。这篇教程的目标很简单让你跟着步骤走就能在自己的Ubuntu机器上把Qwen3服务跑起来。我们不谈复杂的原理只讲最直接、最有效的操作步骤。从系统检查到服务验证每一步都有详细的命令和截图确保零基础也能看懂。1. 开始之前明确目标与准备在动手之前我们先明确两件事你要做什么和你需要什么。你要做什么很简单就是在你自己的Ubuntu服务器或电脑上部署一个Qwen3模型的推理服务。部署成功后你就可以通过一个API接口比如HTTP请求向这个服务发送问题然后它就会像ChatGPT一样给你回复。整个过程完全在你自己的掌控之中。你需要准备什么一台Ubuntu系统的机器可以是云服务器比如阿里云、腾讯云的ECS也可以是你本地的物理机或虚拟机。系统版本建议是Ubuntu 20.04 LTS或22.04 LTS这是最稳定、社区支持最好的版本。足够的硬件资源这是最关键的一点。运行Qwen3这样的百亿参数模型对GPU显存要求很高。GPU必须强烈推荐使用NVIDIA GPU。以Qwen3-14B模型为例至少需要30GB以上的显存。常见的A10040/80GB、A1024GB、甚至多张309024GB*2都可以。纯CPU推理速度会非常慢不推荐用于实际使用。内存建议系统内存RAM不小于64GB以确保模型加载和数据处理流畅。硬盘模型文件本身就有几十GB需要预留足够的硬盘空间建议100GB以上。基础的Linux命令行操作知识你需要知道如何使用ssh连接服务器以及执行cd,ls,sudo等基本命令。别担心后面的命令我都会解释。好了如果你已经准备好了Ubuntu机器和足够的GPU资源那我们就正式开始吧。2. 第一步系统环境检查与准备首先我们需要登录到你的Ubuntu机器并检查一下基础环境是否就绪。2.1 连接服务器与系统更新打开你的终端如果是本地Ubuntu直接打开Terminal如果是云服务器使用SSH工具连接。第一步先更新一下系统的软件包列表确保我们后续安装的软件都是最新版本sudo apt update sudo apt upgrade -y这个命令可能会运行几分钟取决于你的网络和系统更新量。2.2 确认GPU驱动与CUDA我们的部署严重依赖NVIDIA GPU所以必须确保驱动和CUDA工具包已经正确安装。检查NVIDIA驱动nvidia-smi如果这个命令能正常运行并显示出一张包含GPU型号、驱动版本、CUDA版本以及显存使用情况的表格那恭喜你驱动已经装好了。请记下右上角显示的CUDA Version例如12.4后面会用到。(想象这里有一张nvidia-smi命令输出的截图)如果nvidia-smi命令未找到 这意味着你需要安装NVIDIA驱动。对于Ubuntu最简单的办法是使用系统自带的ubuntu-drivers工具。# 检查可用的驱动版本 ubuntu-drivers devices # 安装推荐的驱动版本通常是最稳定的 sudo ubuntu-drivers autoinstall安装完成后务必重启系统sudo reboot。重启后再次运行nvidia-smi确认。检查CUDA Toolkit 虽然nvidia-smi显示了CUDA版本但那是驱动支持的最高CUDA版本。我们还需要完整的CUDA Toolkit来编译一些依赖。通常通过conda环境安装的PyTorch会自带CUDA运行时但为了保险我们可以检查一下nvcc --version如果这个命令也能输出版本信息比如release 12.4那就完美了。如果没有也不用紧张我们后续通过conda安装PyTorch时会解决。3. 第二步安装必要的系统依赖与Python环境模型服务需要一些基础的编译工具和Python环境。3.1 安装系统编译工具运行以下命令安装一些必要的开发工具和库sudo apt install -y build-essential cmake git wget curl software-properties-common3.2 安装MinicondaPython环境管理强烈推荐使用Conda来管理Python环境它可以轻松创建独立的、互不干扰的Python环境避免包版本冲突。下载Miniconda安装脚本wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh运行安装脚本bash Miniconda3-latest-Linux-x86_64.sh安装过程中你会看到许可协议一直按回车直到出现询问。它会问你是否接受许可条款输入yes。接着会问安装路径直接回车使用默认路径/home/你的用户名/miniconda3即可。最后它会问你是否要初始化Conda也输入yes这样每次打开终端Conda都会自动激活。激活Conda 关闭当前终端重新打开一个新的终端窗口。你会发现命令行前面多了一个(base)这表示你已经进入了Conda的base环境。如果没有可以手动执行source ~/.bashrc3.3 创建专用的Python环境我们为Qwen3创建一个独立的环境命名为qwen_env并指定Python版本为3.10这是一个与深度学习框架兼容性很好的版本。conda create -n qwen_env python3.10 -y创建完成后激活这个环境conda activate qwen_env激活后命令行提示符会从(base)变成(qwen_env)表示你现在在这个独立环境中操作。4. 第三步获取模型与部署代码现在我们来获取运行Qwen3所需要的核心内容模型权重和推理代码。4.1 安装Git LFS大文件支持模型文件通常很大使用Git LFSLarge File Storage管理。我们需要先安装它。# 添加Git LFS仓库并安装 curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash sudo apt install git-lfs -y # 初始化Git LFS git lfs install4.2 克隆Qwen3的官方仓库这里我们使用魔搭社区ModelScope的版本它对国内用户更友好下载速度也更快。# 克隆仓库 git clone https://www.modelscope.cn/qwen/Qwen3.git # 进入仓库目录 cd Qwen3这个仓库里包含了模型权重文件需要单独下载和官方的推理代码。4.3 下载模型权重文件我们需要决定下载哪个规模的Qwen3模型。以Qwen3-14B-Instruct为例这是一个140亿参数的指令微调版本对话能力很强。# 进入模型权重目录假设我们下载14B版本 cd Qwen3-14B-Instruct # 使用ModelScope的CLI工具下载需提前安装pip install modelscope # 或者更直接的方式使用git lfs pull如果仓库已包含LFS指针 git lfs pull注意模型文件非常大14B版本约30GB下载需要很长时间请确保网络稳定且磁盘空间充足。你也可以在ModelScope的网页上找到其他下载方式如手动下载压缩包。5. 第四步安装Python依赖并配置模型和代码都有了现在来安装运行它们所需的Python库。5.1 安装PyTorch与CUDA确保你在(qwen_env)环境下。根据之前nvidia-smi查到的CUDA版本例如12.4去PyTorch官网查找对应的安装命令。对于CUDA 12.4命令通常如下pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124这个命令会安装支持CUDA 12.x的PyTorch。5.2 安装其他必要依赖在Qwen3代码仓库的根目录下通常会有requirements.txt文件。我们用它来安装所有依赖。# 确保在Qwen3代码仓库根目录 cd /path/to/Qwen3 pip install -r requirements.txt这个过程也会安装一些用于加速推理的库如vllm,flash-attn等它们能显著提升生成速度并降低显存占用。5.3 处理可能的依赖问题有时可能会遇到特定系统架构如ARM或CUDA版本的兼容性问题。如果pip install报错可以尝试降低版本在requirements.txt中将某些库的版本号指定为更宽松的范围如transformers4.37.0改为transformers4.37.0。单独安装如果某个库如flash-attn安装失败可以暂时注释掉后续再根据官方文档手动安装。寻求帮助将完整的错误信息复制到搜索引擎或相关社区如GitHub Issues中查找解决方案。6. 第五步启动模型推理服务万事俱备只欠东风。现在我们来启动Qwen3的API服务。6.1 使用vLLM启动高性能服务vLLM是一个高性能的推理引擎吞吐量高显存利用率好。Qwen3官方推荐使用它来部署。# 在Qwen3代码仓库根目录下执行 # 指定模型路径、主机和端口 python -m vllm.entrypoints.openai.api_server \ --model /你的/完整/路径/Qwen3-14B-Instruct \ # 替换为你的模型实际路径 --served-model-name Qwen3-14B-Instruct \ --host 0.0.0.0 \ # 允许外部访问如果仅本地使用可改为127.0.0.1 --port 8000 \ --tensor-parallel-size 1 # 如果只有一张GPU就设为1。多卡可以增加以并行计算。重要参数解释--model指向你下载的模型权重文件夹的绝对路径。--host 0.0.0.0让服务监听所有网络接口这样你就能从同一局域网内的其他机器访问了。如果只在部署机器上测试用127.0.0.1更安全。--tensor-parallel-size张量并行大小等于你用于推理的GPU数量。如果一切顺利你会看到大量的日志输出最后服务会停留在监听状态显示类似INFO: Application startup complete.和INFO: Uvicorn running on http://0.0.0.0:8000的信息。这说明服务已经成功启动在8000端口。6.2 使用原始Transformers脚本启动备选如果vLLM启动遇到问题可以回退到使用Hugging Face的Transformers库直接启动一个简单的Web服务。虽然性能不如vLLM但更稳定。# 首先你需要编写或使用一个简单的FastAPI脚本。 # 这里提供一个极简示例脚本 server.py 的内容 from fastapi import FastAPI from transformers import AutoModelForCausalLM, AutoTokenizer import uvicorn app FastAPI() model_path /你的/完整/路径/Qwen3-14B-Instruct print(Loading model and tokenizer...) tokenizer AutoTokenizer.from_pretrained(model_path, trust_remote_codeTrue) model AutoModelForCausalLM.from_pretrained( model_path, device_mapauto, # 自动分配到GPU trust_remote_codeTrue ).eval() print(Model loaded.) app.post(/chat) async def chat(prompt: str): inputs tokenizer(prompt, return_tensorspt).to(model.device) outputs model.generate(**inputs, max_new_tokens512) response tokenizer.decode(outputs[0], skip_special_tokensTrue) return {response: response} if __name__ __main__: uvicorn.run(app, host0.0.0.0, port8000) # 将上述代码保存为 server.py然后运行 python server.py7. 第六步验证服务与简单测试服务跑起来了我们得验证一下它是否真的在工作。7.1 使用curl命令测试API打开另一个终端窗口使用curl命令发送一个HTTP请求到我们的服务。curl http://localhost:8000/v1/chat/completions \ -H Content-Type: application/json \ -d { model: Qwen3-14B-Instruct, messages: [ {role: user, content: 请用一句话介绍你自己。} ], max_tokens: 100, temperature: 0.7 }如果服务正常你会收到一个JSON格式的回复其中choices[0].message.content字段就是模型的回答。7.2 使用Python客户端测试当然用Python写个小脚本测试更直观import requests import json url http://localhost:8000/v1/chat/completions headers {Content-Type: application/json} data { model: Qwen3-14B-Instruct, messages: [{role: user, content: 上海的天气怎么样}], max_tokens: 150, temperature: 0.8 } response requests.post(url, headersheaders, datajson.dumps(data)) if response.status_code 200: result response.json() print(模型回复, result[choices][0][message][content]) else: print(请求失败, response.status_code, response.text)运行这个脚本你应该能看到模型生成的关于上海天气的虚构回答。8. 总结与后续建议跟着上面这些步骤走下来你应该已经成功在Ubuntu系统上把Qwen3模型服务部署起来了。整个过程最核心的其实就是三步准备好GPU环境和Python依赖、下载好模型文件、用正确的命令把服务跑起来。第一次部署可能会遇到一些环境问题比如某个库装不上或者CUDA版本不匹配这都很正常耐心根据错误信息搜索一下基本都能解决。部署成功只是第一步。接下来你可以尝试用不同的参数比如temperature,top_p来调整模型回答的创造性和随机性或者把它集成到你自己的应用里去。如果觉得14B参数模型对显存压力太大也可以尝试下载更小的7B版本部署流程是完全一样的。最后记得服务是运行在前台终端里的如果你关闭了终端服务就停了。对于长期运行建议使用systemd或者tmux/screen这样的终端复用工具来管理你的服务进程。希望这篇教程能帮你顺利开启Qwen3的探索之旅。获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。

更多文章