「模型部署系列」ubuntu 使用vllm部署Qwen3-8B模型

article/2025/7/28 11:02:16

1、下载vllm v0.8.5(此处已经下好了,去仓库拉资源)

2、 下载Qwen3-8B

方式1:

在下载前,请先通过如下命令安装ModelScope

pip install modelscope

命令行下载

下载完整模型库

modelscope download --model Qwen/Qwen3-8B

下载单个文件到指定本地文件夹(以下载README.md到当前路径下“dir”目录为例)

modelscope download --model Qwen/Qwen3-8B README.md --local_dir ./dir

更多更丰富的命令行下载选项,可参见具体文档

SDK下载

#模型下载

from modelscope import snapshot_download model_dir = snapshot_download('Qwen/Qwen3-8B')

方式2:Git下载

请确保 lfs 已经被正确安装,否则不会下载safetensor

git lfs install
git clone https://www.modelscope.cn/Qwen/Qwen3-8B.git

3、在目录下新建docker compose.yaml文件

八张卡配置:

services:vllm-Qwen3-8B:image: 10.75.240.230/vllm/vllm-openai:v0.8.5container_name: vllm-Qwen3-8Brestart: alwaysshm_size: 10.24genvironment:- CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7- PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True- TZ=Asia/Shanghaivolumes:- /data/models/Qwen3-8B:/models  # 替换为实际的宿主机路径command: --model /models --served-model-name Qwen3-8B --tensor-parallel-size 8   --enforce-eager  --dtype=half --port 8000ports:- "8080:8000"

两张卡配置:

services:vllm-Qwen3-8B-1:image: 10.75.240.230/vllm/vllm-openai:v0.8.5container_name: vllm-Qwen3-8B-1restart: alwaysshm_size: 10.24genvironment:- CUDA_VISIBLE_DEVICES=0,1- PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True- TZ=Asia/Shanghaivolumes:- /data/models/Qwen3-8B:/models  # 替换为实际的宿主机路径- /data:/datacommand: --model /models --served-model-name Qwen3-8B --tensor-parallel-size 2 --gpu-memory-utilization 0.9 --max-model-len 20000 --max-num-seqs 128 --enable-prefix-caching --dtype=half --enforce-eagerports:- "8080:8000"

 

command解释部分:

--model /models

  • 含义:指定模型文件所在的路径。这里 /models 是容器内部的路径,结合之前 docker-compose.yml 中的 volumes 配置,它实际上对应宿主机上的 /data/models/Qwen3 - 8B 目录。模型服务启动时,会从这个路径加载 Qwen3 - 8B 模型的相关文件,如权重参数等。
  • 用途:确保服务能够找到并正确加载所需的模型,使模型可以进行后续的推理任务。

--served - model - name Qwen3-8B

  • 含义:设置对外提供服务时使用的模型名称。在通过 API 调用服务时,客户端可以根据这个名称来指定使用 Qwen3 - 8B 模型进行推理。
  • 用途:方便在多模型服务的环境中区分不同的模型,客户端可以明确知道自己调用的是哪个具体的模型。

--tensor - parallel - size 8

  • 含义:指定进行张量并行计算时使用的 GPU 数量为 8。张量并行是一种并行计算技术,它将模型的张量(如权重矩阵)分割到多个 GPU 上进行并行计算,从而加速模型的推理过程。
  • 用途:充分利用多个 GPU 的计算资源,提高模型推理的速度和效率,尤其是对于大规模的模型,这种并行计算方式可以显著减少推理时间。

--enforce - eager

  • 含义:强制执行 eager 模式。在深度学习框架中,有 eager 模式和图模式两种计算模式。eager 模式是一种即时执行模式,每执行一条指令就立即计算结果,便于调试和开发;而图模式则是先构建计算图,再统一执行,通常在性能上更有优势。使用 --enforce - eager 会强制使用 eager 模式。
  • 用途:在调试阶段或者某些特定场景下,需要即时看到计算结果,eager 模式可以更方便地进行代码调试和验证。

--dtype = half

  • 含义:指定模型使用半精度数据类型进行计算。半精度通常指的是 float16 数据类型,相比于常见的 float32 数据类型,它占用的内存空间减半,计算速度也可能更快。
  • 用途:减少模型在推理过程中的内存占用,提高 GPU 内存的利用率,同时在一些支持半精度计算的硬件上可以加快计算速度。不过,半精度计算可能会牺牲一定的数值精度。

--port 8000

  • 含义:指定模型服务监听的端口号为 8000。服务启动后,会在这个端口上等待客户端的请求。
  • 用途:确定服务的网络访问入口,客户端可以通过向这个端口发送请求来调用模型的推理服务。结合 docker-compose.yml 中的 ports 配置,宿主机的 8080 端口被映射到容器的 8000 端口,因此客户端可以通过访问宿主机的 8080 端口来与容器内的服务进行通信。

坑:

问题1、ERROR 05-06 10:31:49 [engine.py:448] Bfloat16 is only supported on GPUs with compute capability of at least 8.0. Your Tesla T4 GPU has compute capability 7.5. You can use float16 instead by explicitly setting the `dtype` flag in CLI, for example: --dtype=half.

解决:这表明你正在使用的 Tesla T4 GPU 的计算能力为 7.5,而 Bfloat16 数据类型仅支持计算能力至少为 8.0 的 GPU。当前的配置中使用了 Bfloat16 数据类型,导致程序无法正常初始化并报错。解决这个问题的方法正如错误信息中所提示的,需要在命令行中显式地设置 dtype 标志为 float16half)。在你的 docker-compose.yml 文件中,你可以修改 command 字段来实现这一点。

问题2、当你容器启动时碰到了 NCCL(NVIDIA Collective Communications Library)错误,错误信息为 NCCL error: unhandled system error,这一错误最终致使引擎进程启动失败。

解决:在环境变量中增加NCCL_DEBUG=INFO ,用于获取更详细的 NCCL 调试信息,当所有其他问题排除,可尝试增加shm_size 用来设置容器的共享内存大小。

shm_size: 10.24g

 


http://www.hkcw.cn/article/mYDssikHNZ.shtml

相关文章

亮数据与 AI 深度集成:构建电商策略自动化系统新范式

目录 1.引言:电商增长遇瓶颈,AI 能否破局?2.挖掘痛点:精准营销为何难以落地?3.解决之道:为什么选择亮数据而不是传统爬虫?3.1轻松绕过反爬机制,保障数据采集稳定性3.2 零代码门槛&am…

YOLOv12环境配置,手把手教你使用YOLOv12训练自己的数据集和推理(附YOLOv12网络结构图),全文最详细教程

文章目录 前言一、YOLOv12代码下载地址1.YOLOv12模型结构图 二、YOLO环境配置教程1.创建虚拟环境2.激活虚拟环境3.查询自己电脑可支持最高cuda版本是多少(无显卡的同学可以跳过这个步骤)4.pytorch安装5.验证 PyTorch GPU 是否可用(没有显卡的…

Nginx下载与安装(Liunx环境)

1、Nginx下载 官网地址:https://nginx.org/en/download.html 2、安装依赖包 //安装gcc yum install gcc-c //安装PCRE pcre-devel yum install -y pcre pcre-devel //安装zlib yum install -y zlib zlib-devel //安装Open SSL yum install -y openssl openssl-deve…

雷达中实信号与复信号

一、什么是实信号和复信号 实信号是指信号的时域取值在数学表示和物理实现中始终为实数的信号,其基本的表达式为:;复信号是指时域取值在数学表示中始终为复数的信号,其基本的表达式为:。从实信号与复信号的定义可知&am…

【存储基础】NUMA架构

文章目录 1. 前置知识:物理CPU和CPU核心物理CPUCPU核心关系 2. NUMA架构2.1 NUMA架构是什么?2.2 NUMA架构详解2.3 查看NUMA信息2.4 NUMA架构在分布式存储中的应用数据本地化 Data Locality计算与存储协同调度NUMA感知的网络通信内存池优化与跨节点均衡 3 补充&#…

HTTP协议解析

HTTP(超文本传输协议)是万维网的基础协议,自1991年诞生以来,已成为最广泛使用的应用层协议。本文将深入解析HTTP协议的核心概念、工作原理及实际应用。 HTTP协议基础 什么是HTTP? HTTP (全称为 "超文本传输协…

小麦“颗粒归仓”有了“最强大脑”

全国小麦主产区自南向北陆续进入紧张抢收阶段,夏种也全面展开。河南夏种已完成四成,以玉米、花生为主。安徽夏种已完成近三成,以水稻和玉米为主。各地如何针对天气情况抢抓收获“窗口期”,确保粮食“颗粒归仓”?目前,安徽4300多万亩的小麦收获已接近尾声。当记者来到安徽…

数据结构:递归(Recursion)

目录 示例1:先打印,再递归 示例2:先递归,再打印 递归的两个阶段 递归是如何使用栈内存 复杂度分析 递归中的静态变量 内存结构图解 递归:函数调用自己 必须有判断条件来使递归继续或停止 我们现在通过这两个示…

Python入门手册:类和对象

在Python中,面向对象编程(OOP)是一种核心的编程范式。通过类和对象,我们可以模拟现实世界中的事物和行为,使代码更加模块化、可复用和易于维护。今天,就让我们深入探讨Python中的类和对象,包括它…

从冷上电到main()函数,Bootloader都做了什么?

目录 1、硬件初始化 2、引导模式与应用模式的抉择 3、启动代码 在嵌入式系统中,从设备上电到执行应用程序的main()函数,Bootloader扮演着至关重要的角色。作为系统启动的首个程序,Bootloader负责初始化硬件、设置运行环境,并最…

电路图识图基础知识-保护环节、自锁环节及互锁环节(十)

1 电路中的自锁环节 自锁环节是指继电器得电后能通过自身的常开触点闭合,给其线圈供电的环节。如图所示的电路图中,辅助电路中并联于启动按钮开关SB2 旁边的KM 常开触点就是自锁环节(此触 电称为自锁触电)。 图中所示的自锁过程是:当QK 闭合后…

Linux Windows之wsl安装使用简介

参考资料 如何使用 WSL 在 Windows 上安装 Linuxwindows11 安装WSL2全流程旧版 WSL 的手动安装步骤 目录 一. 前期准备1.1 确认windows的版本1.2 开启Linux子系统的支持1.2.1 图形化方式1.2.2 命令行方式 1.3 安装wsl软件1.4 安装Linux分发版 二. 基本配置2.1 Windows Termina…

网红家装企业上海总部人去楼空 欠款风波引关注

端午节放假前,每天有上百人来找住范儿,因为公司欠了不少钱。6月1日下午,记者来到住范儿上海公司所在地,发现公司大门被木板封得严严实实。守在门口的保安指着木板上的通知对记者说:“也省得你报警了,直接打派出所电话吧。”据官网介绍,住范儿是家居建材新零售服务商,成…

正则表达式笔记

正则表达式笔记 前言一、基本字符匹配二、字符类三、量词四、定位符五、贪婪匹配和非贪婪匹配六、旗标七、分组和引用八、前瞻九、后顾 前言 参考GeekHour视频和资料,讲的挺好的,B站有[GeekHour正则表达式] 正则表达式在线工具网站:https://…

齐达内拒利雅得新月一亿欧年薪合同 静候法国国家队帅位

齐达内拒绝了利雅得新月开出的1亿欧元年薪合同。沙特球队利雅得新月正在寻找新主帅,并希望邀请赋闲在家的齐达内。利雅得新月愿意为齐达内支付一亿欧元年薪,签约一年,让他率队参加今夏世俱杯。然而,齐达内已经拒绝了这份高薪邀请。随后,利雅得新月开始联系国米主帅小因扎吉…

【论文解读】DETR | End-to-End Object Detection with Transformers

论文地址:https://arxiv.org/pdf/2005.12872 代码地址:https://github.com/facebookresearch/detr 摘要 本研究提出了一种新的方法,该方法将目标检测视为一个直接的集合预测问题。本研究的方法简化了检测流程,有效地消除了对许多…

(C++)STL:string类(三)非成员重载函数和类型转化函数解析使用

string类&#xff08;三&#xff09; 非成员重载函数relational operaters 关系运算符operatoroperator<< operator>>getline <string>头文件内的函数string转化为数字类型其他数值类型转化为string练习&#xff1a;字符串最后一个单词的长度 非成员重载函数…

[Python] Python运维:系统性能信息模块psutil和系统批量运维管理器paramiko

初次学习&#xff0c;如有错误还请指正 目录 系统性能信息模块psutil 获取系统性能信息 CPU信息 内存信息 磁盘信息 网络信息 其他信息 进程信息 实用的IP地址处理模块IPy IP地址、网段的基本处理 多网络计算方法 系统批量运维管理器paramiko paramiko 的安装 Li…

声光控灯电路Multisim仿真

5V交流源充当声音信号源&#xff0c;可调电阻充当光敏电阻。 白天&#xff0c;不管是否有声音&#xff0c;灯都不会亮。 夜晚&#xff0c;当有声音时&#xff0c;灯亮一段时间&#xff0c;然后熄灭。 仿真时遇到的问题&#xff1a; 问题1、必须按照一定的流程才能正常运行。…

Blueprints - List View Widget

一些学习笔记归档&#xff1b; 需要读取动态数据把多个条目显示在UI上的时候&#xff0c;可能用到List View组件&#xff1b;假如有Widget要使用在List View中&#xff0c;此Widget需要继承相关接口&#xff1a; 这样就能在List View控件中选择已经继承接口的Widget组件了&…