单卡4090部署Qwen3-32B-AWQ(4bit量化)-vllm
单卡4090部署Qwen3-32B-AWQ(4bit量化)
-
模型:Qwen3-32B-AWQ(4bit量化)
-
显卡:4090 1 张
-
python版本
python 3.12
-
推理框架“vllm
-
重要包的版本
vllm==0.9.0
创建GPU云主机
-
这里我使用的是优云智算平台的GPU,使用链接可以看下面的
https://blog.csdn.net/hbkybkzw/article/details/148310288
-
注册链接如下
https://passport.compshare.cn/register?referral_code=tRej61o0bLFAfC9mS6Php
创建
-
这一步非必须,如果有自己的GPU机器则可以直接跳过
我们进入
部署GPU实例
选择平台镜像,具体操作如下在更多配置中设置实例名称,付款方式使用按量计费,点击立即部署
等待状态变为
运行中
,复制登录指令和密码进行登录,这里我们使用finalshell进行连接下载模型以及安装python环境会花费一部分时间,这部分时间我们可以先将实例关闭后选择
无卡模式启动
,这样就节省费用了
开放端口(非必须)
-
配置防火墙
添加规则,这里我开放了8081端口
安装C编译器(必须)
-
当前使用的这个镜像是没有c编译器的,需要安装一下
apt-get update apt-get install build-essential
-
设置环境变量
export CC=/usr/bin/gcc
-
检查C编译器是否正确安装
gcc --version
安装
模型下载
-
Qwen3-32B-AWQ
模型的modelscope和huggingface地址如下modelscope: https://modelscope.cn/models/Qwen/Qwen3-32B-AWQ
huggingface: https://huggingface.co/Qwen/Qwen3-32B-AWQ
这里我们以modelscope为例,复制模型名称
Qwen/Qwen3-30B-A3B
, 这个名称在我们下载的时候会用到 -
使用modelscope下载,需要安装modelscope库
pip install modelscope
已经有modelscope库的需要升级下面的几个包
pip install --upgrade modelscope -i https://pypi.tuna.tsinghua.edu.cn/simplepip install --upgrade transformers -i https://pypi.tuna.tsinghua.edu.cn/simple pip install --upgrade peft -i https://pypi.tuna.tsinghua.edu.cn/simple pip install --upgrade diffusers -i https://pypi.tuna.tsinghua.edu.cn/simple
-
下载
默认下载在当前用户的.cache文件夹下,比如现在是root用户,则默认在
/root/.cache/modelscope/hub/models/Qwen/Qwen3-32B-AWQ
我们希望将其下载在
/root/Qwen/Qwen/Qwen3-32B-AWQ
from modelscope.hub.snapshot_download import snapshot_downloadmodel_name = "Qwen/Qwen3-32B-AWQ"cache_dir = "/root" # 替换为你希望的路径snapshot_download(model_name, cache_dir=cache_dir)
-
在下载完成后,我们查看下
ls -lha /root/Qwen/Qwen3-32B-AWQ
环境安装
-
使用conda创建虚拟环境
conda create --name qwen3-awq python=3.12conda activate qwen3-awq
-
下载vllm(指定清华源,否则极慢)
pip install "vllm>=0.8.5" -i https://pypi.tuna.tsinghua.edu.cn/simple
-
需要注意的是transformers的版本需要>=4.51.0
pip show transformers
vllm启动
-
llm启动命令
vllm serve /root/Qwen/Qwen3-32B-AWQ \--max-model-len 8192 \--enable-reasoning --reasoning-parser deepseek_r1 \--gpu-memory-utilization 0.95 \--host 0.0.0.0 \--port 8081 \--served-model-name Qwen3-32B-AWQ-vllm
以下是对VLLM启动命令参数的简要说明
参数 简要说明 vllm serve /root/Qwen/Qwen3-32B-AWQ
启动VLLM服务、指定模型路径 --enable-reasoning
启用推理功能(think) --reasoning-parser
指定推理解析器 --max-model-len
模型处理的最大序列长度 --gpu-memory-utilization
预分配的GPU内存比例 (vllm默认为0.9) --host
设置服务监听的主机地址,0.0.0.0表示监听所有网络接口 --port
设置服务监听的端口号 --served-model-name
设置模型名 -
以8081端口启动成功
-
显存占用情况
-
测试
测试代码
from openai import OpenAI import openaiopenai.api_key = '1111111' # 这里随便填一个 openai.base_url = 'http://127.0.0.1:8081/v1'def get_completion(prompt, model="QwQ-32B"):client = OpenAI(api_key=openai.api_key,base_url=openai.base_url)messages = [{"role": "user", "content": prompt}]response = client.chat.completions.create(model=model,messages=messages,stream=False)reasoning_content = response.choices[0].message.reasoning_contentcontent = response.choices[0].message.contentreturn reasoning_content,contentprompt = '请计算straberry这个单词中字母r的出现次数'reasoning_content,content = get_completion(prompt, model="Qwen3-32B-AWQ-vllm") print('reasoning_content',reasoning_content) print('content',content)
看看每秒tokens数
相关文章:

单卡4090部署Qwen3-32B-AWQ(4bit量化)-vllm
单卡4090部署Qwen3-32B-AWQ(4bit量化) 模型:Qwen3-32B-AWQ(4bit量化) 显卡:4090 1 张 python版本 python 3.12 推理框架“vllm 重要包的版本 vllm0.9.0创建GPU云主机 这里我使用的是优云智算平台的GPU,使用链接可以看下面的 https://blog.…...

漫画Android:Handler机制是怎么实现的?
线程之间通信会用到Handler,比如,在子线程中进行耗时的网络请求任务,子线程在获取到数据后,更新界面的时候就需要用到Handler; 子线程在获取到数据后,不直接去更新 界面,而是把数据通过一个消息…...

多部手机连接同一wifi的ip一样吗?如何更改ip
通常情况下,多部手机连接同一个WiFi时,它们的IP地址是各不相同的(在局域网内)。但是,从互联网(外网)的角度看,它们共享同一个公网IP地址。让我详细解释一下,并说明如何更…...

飞牛fnNAS的Docker应用之迅雷篇
目录 一、“迅雷”应用安装 二、启动迅雷 三、迅雷账号登录 四、修改“迅雷”下载保存路径 1、下载路径准备 2、停止“迅雷”Docker容器 3、修改存储位置 4、重新启动Docker容器 5、再次“启用”迅雷 五、测试 1、在PC上添加下载任务 2、手机上管理 3、手机添加下…...
C++中指针与引用的区别详解:从原理到实战
C中指针与引用的区别详解:从原理到实战 1. 引言:指针与引用的重要性 在C编程中,指针和引用是两个极其重要的概念,也是许多初学者容易混淆的地方。作为C的核心特性,它们直接操作内存地址,提供了对内存的直…...

SQLMesh 用户定义变量详解:从全局到局部的全方位配置指南
SQLMesh 提供了灵活的多层级变量系统,支持从全局配置到模型局部作用域的变量定义。本文将详细介绍 SQLMesh 的四类用户定义变量(global、gateway、blueprint 和 local)以及宏函数的使用方法。 一、变量类型概述 SQLMesh 支持四种用户定义变量…...

inviteflood:基于 UDP 的 SIP/SDP 洪水攻击工具!全参数详细教程!Kali Linux教程!
简介 一种通过 UDP/IP 执行 SIP/SDP INVITE 消息泛洪的工具。该工具已在 Linux Red Hat Fedora Core 4 平台(奔腾 IV,2.5 GHz)上测试,但预计该工具可在各种 Linux 发行版上成功构建和执行。 inviteflood 是一款专注于 SIP 协议攻…...
软件工程:关于招标合同履行阶段变更的法律分析
关于招标合同履行阶段建设内容变更的法律分析 一、基本原则 合同严守原则 根据《民法典》第465条,依法成立的合同受法律保护,原则上双方应严格按照约定履行。招标合同作为特殊类型的民事合同,其履行过程应当遵循更为严格的变更规则。 禁止…...
mysql一主多从 k8s部署实际案例
一、Kubernetes配置(MySQL主从集群) 主库StatefulSet配置(master-mysql.yaml): apiVersion: apps/v1 kind: StatefulSet metadata:name: mysql-master spec:serviceName: "mysql-master"replicas: 1select…...

Visual Studio 2022 设置自动换行
Visual Studio 2022 设置自动换行 一、在 Visual Studio 菜单栏上,选择 工具>选项二、选择“文本编辑器”>“所有语言”>“常规” 全局设置此选项。 一、在 Visual Studio 菜单栏上,选择 工具>选项 二、选择“文本编辑器”>“所有语言”&…...
沉浸式 “飞进” 鸟巢:虚拟旅游新体验
(一)全方位视角探秘 开启鸟巢虚拟旅游,借助 VR 技术,能从任意角度欣赏其外观。高空俯瞰,独特的钢结构如精美编织画卷,钢梁交织,阳光下闪耀银光,与绿树、蓝天相衬。拉近镜头&#x…...
Ubuntu 下同名文件替换后编译链接到旧内容的现象分析
Ubuntu 下同名文件替换后编译链接到旧内容的现象分析 在使用 Ubuntu 操作系统编译程序时,常常会遇到一个问题:当我们替换同名文件内容后,若不改变当前命令行目录,再次编译时,系统实际编译的仍是被覆盖前的旧文件内容。…...

【Linux网络篇】:简单的TCP网络程序编写以及相关内容的扩展
✨感谢您阅读本篇文章,文章内容是个人学习笔记的整理,如果哪里有误的话还请您指正噢✨ ✨ 个人主页:余辉zmh–CSDN博客 ✨ 文章所属专栏:Linux篇–CSDN博客 文章目录 一.简单的TCP网络程序相关接口代码实现服务器单进程版服务器多…...
22.代理模式:思考与解读
原文地址:代理模式:思考与解读 更多内容请关注:深入思考与解读设计模式 引言 在软件开发中,尤其是当对象的访问需要控制时,你是否遇到过这样的问题:某些操作或对象可能需要进行额外的检查、优化或延迟加载ÿ…...

Scratch节日 | 粽子收集
端午节怎么过?当然是收粽子啦!这款 粽子收集 小游戏,让你一秒沉浸节日氛围,轻松收集粽子,收获满满快乐! 🎮 玩法介绍f 开始游戏:点击开始按钮,游戏正式开始!…...

stl三角面元文件转颗粒VTK文件
效果展示: import os import sys import json import argparse import numpy as np import pandas as pd import open3d as o3d from glob import globPARTICLE_RADIUS 0.025def stl_to_particles(objpath, radiusNone):if radius is None:radius PARTICLE_RADIU…...

Java String的使用续 -- StringBuilder类和StringBuffer
文章目录 字符串的不可变性StringBuilder和StringBuffer函数使用 字符串的不可变性 字符串不可变是因为有private修饰,只能在类的内部使用不可以在类外使用,因此使用时是不可以修改字符串的 public class test {public static void main(String[] args…...
Android学习之定时任务
Android定时任务的实现方式 在Android开发中,定时任务主要可以通过以下两类方式实现: Android系统组件 Handler消息机制:通过Handler.postDelayed()实现延时任务,适合简单UI线程操作AlarmManager:系统级定时服务&…...
WEB安全--RCE--webshell HIDS bypass4
继WEB安全--RCE--webshell HIDS bypass3的补充: 十三、时间开关 webshell: <?php ini_set("display_errors",1); function foo($test, $bar FSYSTEM) {echo $test . $bar; } $function new ReflectionFunction(foo); $q new ParseEr…...

基于python+Django+Mysql的校园二手交易市场
文章目录 基于pythonDjangoMysql的校园二手交易市场运行步骤系统设计功能设计任务目标用户特点参与者列表基本要求功能模块图 数据库设计会员用户信息表(user_userinfo)商品信息表(goods_goodsinfo)管理员用户信息表(a…...

从零打造算法题刷题助手:Agent搭建保姆级攻略
我用Trae 做了一个有意思的Agent 「大厂机试助手」。 点击 https://s.trae.com.cn/a/d2a596 立即复刻,一起来玩吧! Agent 简介 Agent名称为大厂机试助手,主要功能有以下三点。 解题: 根据用户给出的题目给出具体的解题思路引导做…...
Oracle 12c新增的数字转换验证VALIDATE_CONVERSION函数
Oracle 12c新增的数字转换验证函数 一、VALIDATE_CONVERSION函数(12c R2新增) Oracle 12c Release 2引入了原生验证函数,可直接判断字符串能否转换为指定类型: SELECT VALIDATE_CONVERSION(123.45 AS NUMBER) FROM dual; -- 返…...
参数/非参数检验和连续/离散/分类等变量类型的关系
参数统计方法通常应用于参数变量,但参数变量并不都是连续型变量。参数变量是指那些可以用参数(如均值、方差等)来描述其分布特征的变量。参数变量可以是连续型变量,也可以是离散型变量,只要它们遵循某种特定的分布&…...

懒人云电脑方案:飞牛NAS远程唤醒 + 节点小宝一键唤醒、远程控制Windows!
后台高频问题解答: “博主,飞牛NAS能定时开关机了,能不能让它顺便把家里Windows电脑也远程唤醒控制?最好点一下就能连,不用记IP端口那种!” 安排!今天这套方案完美实现: ✅ 飞牛NAS…...

【Python】第一弹:对 Python 的认知
目录 一、Python 的背景 1.1. Python 的由来 1.2 Python 的作用 1.3 Python 的优缺点 1.4 Python 的开发工具 一、Python 的背景 1.1. Python 的由来 Python 由荷兰数学和计算机科学研究学会的吉多・范罗苏姆 (Guido van Rossum)在 20 世纪 80 年代…...

直播预告 | 聚焦芯必达|打造可靠高效的国产 MCU 与智能 SBC 汽车解决方案
随着汽车电子国产化快速推进,车规级 MCU 与 CAN/LIN SBC 作为车身控制的核心组件,正面临更高的安全与可靠性挑战。品佳集团将携手芯必达微电子,深入剖析国产 MCU/SBC/智能 SBC 的最新技术与应用,助力企业打造高性能、可量产的国产…...

Java源码中有哪些细节可以参考?(持续更新)
欢迎来到啾啾的博客🐱。 记录学习点滴。分享工作思考和实用技巧,偶尔也分享一些杂谈💬。 有很多很多不足的地方,欢迎评论交流,感谢您的阅读和评论😄。 目录 String的比较final的使用transient避免序列化 St…...

GelSight Mini触觉传感器:7μm精度+3D 映射,赋能具身智能精密操作
GelSight Mini 高分辨率视触觉传感器采用先进的光学成像与触觉感知技术,赋予机器人接近人类的触觉能力。该设备可捕捉物体表面微观细节,并生成高精度的2D/3D数字映射,帮助机器人识别形状、纹理及接触力,从而执行更复杂、精准的操作…...

day 23 机器学习管道(pipeline)
在机器学习领域,“pipeline” 常被翻译为 “管道” 或 “流水线”,它是机器学习中极为重要的概念。在构建机器学习模型时,通常需按特定顺序对数据执行预处理、特征提取、模型训练以及模型评估等步骤,而使用 “pipeline” 能有效管…...
shell编程笔记
变量定义 在 Shell 中,变量定义无需声明类型,直接赋值即可。变量名区分大小写,建议使用大写字母命名环境变量,小写字母命名局部变量。赋值时等号()两边不能有空格。 MY_VAR"Hello World" # 定…...