Qwen3-8B vLLM 部署实践教程(AutoDL 平台)

Qwen3-8B vLLM 部署实践教程(AutoDL 平台)

实践日期:2025年12月23日 vLLM 版本:0.8.5.post1 模型:Qwen3-8B 平台:AutoDL(RTX 4090 24GB) 参考教程:github.com/datawhalech…


  1. 项目概述
  2. 环境准备
  3. 连接服务器
  4. 环境修复
  5. 模型下载
  6. Python脚本推理
  7. 启动API服务器
  8. API接口测试
  9. 常见问题与解决
  10. 学习总结

1.1 什么是 vLLM?

vLLM(Vectorized Large Language Model)是一个高性能的大语言模型推理引擎,由加州大学伯克利分校开发。

vLLM 的核心优势
特性 说明 PagedAttention 创新的注意力机制,显著减少显存占用 高吞吐量 比 Hugging Face Transformers 快 10-24 倍 OpenAI 兼容 API 可以直接替换 OpenAI API,无需修改代码 连续批处理 自动合并多个请求,提高 GPU 利用率

1.2 什么是 Qwen3-8B?

Qwen3-8B 是阿里云通义千问团队发布的第三代大语言模型,拥有 80 亿参数。

Qwen3 的特色功能
  • 思考模式(Thinking Mode):模型会先进行推理思考,再给出答案
  • 多语言支持:支持中文、英文等多种语言
  • 长上下文:支持 32K 甚至更长的上下文窗口

1.3 为什么选择 AutoDL?

平台 优势 劣势 Google Colab 免费、易用 vLLM 多进程不兼容 AutoDL 国内访问快、按小时计费、环境稳定 需要付费 Kaggle 免费 GPU 网络限制、时间限制

本教程选择 AutoDL 是因为:

  1. vLLM 在 Jupyter Notebook 环境中存在多进程兼容问题
  2. AutoDL 提供完整的 Linux 终端环境
  3. 国内访问 ModelScope 下载模型更快

2.1 注册 AutoDL 账号

  1. 访问 AutoDL 官网
  2. 注册并完成实名认证
  3. 充值(建议先充 10-20 元测试)

2.2 创建实例

DataWhale在 AutoDL 平台准备的 Qwen3 的环境镜像,点击下方链接并直接创建 Autodl 示例即可。 www.codewithgpu.com/i/datawhale…

步骤 1:选择 GPU

在 AutoDL 控制台,点击”租用新实例”,选择 GPU:

GPU 型号 显存 价格(参考) 是否足够 RTX 4090 24GB ~2元/小时 推荐 RTX 3090 24GB ~1.5元/小时 可用 A100 40GB 40GB ~4元/小时 充裕 RTX 3080 10GB ~0.8元/小时 不够

显存需求说明:Qwen3-8B 使用 float16 精度约需 16GB 显存,加上 KV Cache 等开销,建议至少 24GB。

步骤 2:选择镜像

选择社区镜像:

这个镜像预装了:

  • Python 3.12
  • PyTorch + CUDA
  • vLLM 0.8.5
  • Transformers
  • ModelScope

【截图:AutoDL 实例创建页面 – GPU和镜像选择】

alt text

alt text

alt text

步骤 3:创建实例

点击”立即创建”,等待实例启动(通常 1-2 分钟)。


3.1 获取 SSH 连接信息

实例创建成功后,在控制台可以看到“SSH登录”列,复制其中的登录指令和密码,可以获得下列信息。

  • SSH 地址:例如
  • SSH 端口:例如
  • 用户名
  • 密码:创建时设置的密码

3.2 使用 VS Code 远程连接(推荐)

步骤 1:安装 Remote-SSH 扩展

在 VS Code 中安装 扩展。

alt text

步骤 2:配置 SSH

按 ,输入 ,选择用户目录下的 config 文件。

alt text

alt text

添加以下配置:


注意:请将 和 替换为你实际的 AutoDL 实例信息。

alt text

步骤 3:连接服务器
  1. 按 ,输入
  2. SSH主机选择 ,平台选择Linux
  3. 输入密码
  4. 等待连接成功

【截图:VS Code 成功连接 AutoDL】

alt text

alt text

alt text

alt text

3.3 打开终端

连接成功后,打开/root/autodl-tmp文件夹。

alt text

在 VS Code 中按 打开终端,你应该看到类似:


alt text


4.1 问题背景

社区镜像中的依赖版本可能存在冲突,需要先修复才能正常使用 vLLM。首先 pip 换源加速下载并安装依赖包。


4.2 检查 vLLM 版本


如果出现错误,按以下步骤修复。

4.3 修复依赖冲突

错误 1:NumPy/SciPy 不兼容

错误信息


原因:scipy 与 numpy 版本不匹配。

解决方案


错误 2:RecursionError(递归错误)

错误信息


原因:scikit-learn 的编译扩展与新 numpy 不兼容。

解决方案


错误 3:Numba 需要 NumPy 2.2 或更低

错误信息


原因:安装 scikit-learn 时自动升级了 numpy 到 2.4。

解决方案


4.4 验证修复成功


预期输出


【截图位置:vLLM 版本验证成功】

请在此处插入终端显示 vllm –version 输出的截图


5.1 创建下载脚本

在 目录下创建 文件,内容如下:


5.2 开启网络加速(可选)

AutoDL 提供学术资源加速,可以加快下载速度:


5.3 运行下载脚本


预期输出


下载时间:模型约 16GB,根据网络状况需要 10-30 分钟。

【截图位置:模型下载完成】

alt text

5.4 验证下载


【ls 命令说明】


预期输出


模型文件说明
文件 大小 说明 728B 模型配置文件(层数、维度、注意力头数等) 各约3.7GB 模型权重文件(分片存储,共5个文件) 11MB 分词器配置(词汇表、分词规则等) 2.6MB 词汇表 239B 生成配置(默认采样参数等)

6.1 创建推理脚本

在 目录下创建 文件,内容如下:


6.2 运行推理脚本


首次运行说明

阶段 耗时 说明 模型加载 ~30秒 读取 16GB 模型权重到 GPU 编译优化 ~60秒 vLLM 编译和优化计算图 CUDA Graph ~30秒 捕获不同输入长度的计算图 推理 ~10秒 实际生成文本

预期输出


【截图位置:Python 脚本推理成功】

alt text

6.3 补充:不启用思考模式的推理脚本

在 目录下创建 文件,内容如下:


alt text

【思考模式 vs 非思考模式对比】

参数 思考模式 () 非思考模式 () 0.6 0.7 0.95 0.8 20 20 输出特点 包含 思考过程 直接输出答案,无思考过程 适用场景 复杂推理、数学题、逻辑分析 简单问答、创意写作、快速响应

7.1 vLLM 服务器简介

vLLM 可以启动一个兼容 OpenAI API 的 HTTP 服务器,这样你就可以:

  • 使用 HTTP 请求调用模型
  • 使用 OpenAI Python SDK 调用
  • 集成到任何支持 OpenAI API 的应用中

7.2 启动服务器命令


【命令参数详解】

参数 值 说明 第一个参数 模型路径(位置参数) API 中使用的模型名称 最大上下文长度 (无值) 启用推理/思考模式 思考内容解析器

【反斜杠 的作用】


7.3 启动输出说明

启动成功后,你会看到类似输出:


API 端点说明
端点 方法 说明 GET 获取可用模型列表 POST 对话补全(推荐使用) POST 文本补全 POST 获取文本嵌入向量 GET 健康检查 GET Prometheus 监控指标

【截图:vLLM 服务器启动成功】

alt text

alt text

alt text


重要提示:启动服务器后,需要打开一个新终端来测试 API。 服务器终端需要保持运行,不要关闭。

8.1 使用 curl 测试

测试 1:检查模型列表

预期输出


测试 2:发送对话请求

预期输出(格式化后):


【响应字段说明】

字段 说明 请求唯一标识符 模型的回复内容 模型的思考过程 输入消耗的 token 数 输出消耗的 token 数 结束原因(stop=正常结束)

8.2 使用 Python 测试

创建测试脚本

在 目录下创建 文件,内容如下:


运行测试脚本

预期输出


8.3 简洁版 OpenAI SDK 测试脚本

vllm_openai_completions.py

在 目录下创建 文件,这是一个启用思考模式的简洁版本:


alt text

alt text

vllm_openai_chat_completions.py

在 目录下创建 文件,这是另一个简洁版本:


alt text

alt text

【三个 API 测试脚本对比】

脚本名称 功能 思考模式 输出内容 完整版测试 由服务器配置决定 完整响应 + 提取内容 + 思考过程 简洁版 是(手动触发) 只打印 message 简洁版 否 只打印完整响应

9.1 环境相关问题

问题 1:NumPy 版本冲突

错误信息


解决方案



问题 2:Numba 不兼容

错误信息


解决方案



问题 3:递归深度超限

错误信息


解决方案


9.2 模型下载问题

问题 4:下载速度慢

解决方案

  1. 开启 AutoDL 学术加速:

  1. 使用后台下载:

9.3 推理问题

问题 5:显存不足(OOM)

错误信息


解决方案



问题 6:API 服务器无响应

检查步骤


9.4 为什么不能在 Colab 中运行?

问题:vLLM 在 Jupyter Notebook 中报错

错误信息


原因解释

千问 Qwen 教程

Jupyter Notebook 使用 创建子进程,但 CUDA 不允许在 fork 后的进程中重新初始化。vLLM 需要多进程工作,这与 Notebook 环境不兼容。

解决方案:使用提供终端环境的平台(如 AutoDL)


10.1 完成的任务清单

步骤 内容 状态 1 创建 AutoDL 实例(RTX 4090 24GB) Done 2 配置 VS Code 远程 SSH 连接 Done 3 修复环境依赖问题(numpy 2.2.0) Done 4 下载 Qwen3-8B 模型(~16GB) Done 5 Python 脚本推理测试(思考模式) Done 6 启动 vLLM OpenAI 兼容 API 服务器 Done 7 使用 curl 和 Python 测试 API Done

10.2 核心知识点回顾

Python 语法速查表
语法 示例 说明 变量赋值 不需要声明类型 字符串 或 单引号双引号等价 列表 有序集合,可修改 字典 键值对集合 导入模块 导入整个模块 导入部分 只导入特定内容 函数定义 定义函数 默认参数 参数有默认值 f-string 格式化字符串 for 循环 遍历可迭代对象 if 条件 条件判断 索引访问 获取第一个元素 属性访问 获取对象属性 方法调用 调用对象方法
采样参数对照表
参数 思考模式 非思考模式 说明 0.6 0.7 控制随机性 0.95 0.8 核采样阈值 20 20 候选 token 数 True False 是否显示思考过程

10.3 关键命令速查


10.4 下一步学习建议

  1. 尝试其他模型
    • Qwen2.5-7B-Instruct(更小,速度更快)
    • DeepSeek-R1-Distill(强推理能力)
    • Llama-3-8B(英文能力强)
  2. 学习模型量化
    • 使用 AWQ/GPTQ 量化减少显存占用
    • INT4 量化可以在 8GB 显存上运行 8B 模型
  3. 构建应用
    • 使用 Gradio 创建 Web 聊天界面
    • 使用 LangChain 构建 RAG 应用
    • 集成到你自己的项目中
  4. 学习微调
    • 使用 LoRA 进行高效微调
    • 定制你自己的领域模型

  • vLLM 官方文档
  • Qwen3 官方文档
  • ModelScope 模型库
  • datawhalechina/self-llm 教程
  • AutoDL 帮助文档
  • OpenAI API 文档

本文档基于 2025 年 12 月 23 日的实践编写 vLLM 版本:0.8.5.post1 模型:Qwen/Qwen3-8B 平台:AutoDL RTX 4090 24GB

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:Ai探索者,转载请注明出处:https://javaforall.net/260045.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月13日 上午7:45
下一篇 2026年3月13日 上午7:45


相关推荐

关注全栈程序员社区公众号