单卡4090部署Qwen3-32B-AWQ(4bit量化)-vllm

article/2025/7/5 17:22:20

单卡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实例 选择平台镜像,具体操作如下

    image-20250530142747148

    在更多配置中设置实例名称,付款方式使用按量计费,点击立即部署

    image-20250530142819601

    等待状态变为运行中,复制登录指令和密码进行登录,这里我们使用finalshell进行连接

    image-20250530143052240

    下载模型以及安装python环境会花费一部分时间,这部分时间我们可以先将实例关闭后选择无卡模式启动,这样就节省费用了

image-20250530143511717


开放端口(非必须)

  • 配置防火墙

    image-20250530161525079

    添加规则,这里我开放了8081端口

    image-20250530161642556


安装C编译器(必须)

  • 当前使用的这个镜像是没有c编译器的,需要安装一下

    apt-get update
    apt-get install build-essential
    
  • 设置环境变量

    export CC=/usr/bin/gcc
    
  • 检查C编译器是否正确安装

    gcc --version
    

    image-20250530153952221


安装

模型下载

  • 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, 这个名称在我们下载的时候会用到

    image-20250530144257611

  • 使用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)
    

    image-20250530145900920

  • 在下载完成后,我们查看下

    ls -lha /root/Qwen/Qwen3-32B-AWQ
    

    image-20250530150024516


环境安装

  • 使用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
    

    image-20250530152657472


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端口启动成功

    image-20250530162100565

  • 显存占用情况

    image-20250530162148847

  • 测试

    测试代码

    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)
    

    image-20250530175141999

    看看每秒tokens数

    image-20250530175215188



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

相关文章

【C++并发编程01】初识C++并发编程

1、并发是什么 并发是指两个或更多独立的活动同时发生,现实生活中常见的并发场景如边吃饭边看手机。 1.1、计算机中的并发: 计算机领域的并发是指在单个系统里同时执行多个独立的任务,而非顺序的进行一些活动。 我们在电脑上能够边听音乐边和…

【NLP入门系列一】NLP概述和独热编码

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 博主简介:努力学习的22级本科生一枚 🌟​;探索AI算法,C,go语言的世界;在迷茫中寻找光芒…

【知识点】第2章:Python程序实例解析

文章目录 知识点整理Python程序语法元素分析 练习题判断题填空题选择题 知识点整理 Python程序语法元素分析 Python程序包括格式框架、注释、变量、表达式、分支语句、循环语句、函数等语法元素。 程序的格式框架 Python语言采用严格的 “缩进” 来表明程序的格式框架。缩进…

Webug4.0靶场通关笔记05- 第5关SQL注入之过滤关键字

目录 一、代码审计 1、源码分析 2、SQL注入分析 (1)大小写绕过 (2)双写绕过 二、第05关 过滤型注入 1、进入靶场 2、sqlmap渗透 (1)bp抓包保存报文 (2)sqlmap渗透 &…

001在线拍卖系统技术揭秘:构建高效交互的竞拍平台

在线拍卖系统技术揭秘:构建高效交互的竞拍平台 在互联网经济蓬勃发展的当下,在线拍卖系统以其独特的交易模式,吸引着众多用户参与。该系统涵盖个人中心、用户管理等多个关键模块,通过前台展示与后台录入的协同运作,满…

LabVIEW输血袋字符智能检测系统

针对医疗行业输血袋字符检测需求,基于 LabVIEW 图形化开发平台与基恩士(KEYENCE)机器视觉硬件,构建高精度、高可靠性的字符在线识别系统。通过选用基恩士工业相机、光源及 NI 数据采集设备等硬件,结合 LabVIEW 强大的图…

Conditional注解的使用

目录 1.ConditionalOnBean 1.1、作用 1.2、使用场景 2. ConditionalOnMissingBean 2.1、作用 2.2、使用场景 3. 两者结合使用 4. 高级用法: 5. 注意事项 6. 实际应用场景 前言 在 Spring 框架中,ConditionalOnBean 和 ConditionalOnMissingBea…

CTFshow web3

文件包含和伪协议 用GET传入一个URL值,/?url文件路径 伪协议php://input 用来执行PHP代码,将POST请求当作PHP代码执行 测试一下,可以正确解析 拿到FLAG 还有一种解法,写入一句话木马 #Payload #把一句话木马写入2.phpdata:/…

数据库暴露--Get型注入攻击

1.背景知识 1.1Post、Get的对比 特性GET 方法POST 方法HTTP 方法类型GETPOST数据位置URL 查询字符串(?key=value)请求体(Request Body)数据可见性明文显示在 URL 和浏览器历史中不可见(除非开发者工具查看)数据长度限制受 URL 长度限制(通常约 2048 字符)无明确限制(…

Linux 1.0.4

父子shell linux研究的就是shell 打开两个窗口就是两个shell 终端的软件有很多 bash也是一个软件 我们在terminal里面再打开一个bash,然后再次使用ps命令发现多出来一个bash,之后点击exit只是显示了一个exit,这个只是退出了在terminal中打开…

挖洞日记 | 记一次MSSQL注入绕waf过程

在挖漏洞时,使用 xia sql 插件发现一个注入点,经过测试发现存在 waf 拦截记录一下。 在查询中发现单引号是空白页面,在加一个单引号,显示空数据,但是有回显,初步判断 pname 存在 SQL注入。 然后判断列数1o…

Linux-pcie ranges介绍

参考链接&#xff1a;https://elinux.org/Device_Tree_Usage#PCI_Host_Bridge pcie bar高低端BAR起始地址介绍 pcie设备树节点 / {compatible "rockchip,rk3588";interrupt-parent <&gic>;#address-cells <2>;#size-cells <2>;pcie3x4: p…

模块化设计,static和extern(面试题常见)

文章目录 一、函数的声明和定义1.1 单个文件1.2 多个文件1.3 static和extern1.3.1 static修饰局部变量1.3.2 static修饰全局变量1.3.3 static修饰函数 总结 一、函数的声明和定义 1.1 单个文件 一般我们在使用函数的时候&#xff0c;直接将函数写出来就使用了 题目:写一个函数…

探讨下LLM 在逻辑推理中的记忆现象

简述 今天刷到一篇推理模型训练的论文&#xff0c;研究解答了我们使用大模型的人困惑&#xff0c;大模型的能力到底是弈中高级的匹配模式还是真的在做逻辑推理 [2410.23123] On Memorization of Large Language Models in Logical ReasoningAbstract page for arXiv paper 24…

deepseekR1模型:Win11本地部署(ollam+DS:8b+chatbox AI)

目录 一、部署工具包二、Ollama安装1. 修改Ollama模型路径&#xff08;不需要修改安装路径可忽略此部分&#xff09;1.1 模型路径原配置1.2 更改模型路径原配置&#xff0c;释放C盘压力 2. 安装Ollama2.1 下载Ollama安装包2.1 安装验证 三、安装大模型&#xff08;博主安装DS-r…

leetcode:7. 整数反转(python3解法,数学相关算法题)

难度&#xff1a;中等 给你一个 32 位的有符号整数 x &#xff0c;返回将 x 中的数字部分反转后的结果。 如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] &#xff0c;就返回 0。 假设环境不允许存储 64 位整数&#xff08;有符号或无符号&#xff09;。 示例…

ROS 2 中的 robot_state_publisher 和 joint_state_publisher 详解

文章目录 总体简介&#x1f9e9; 1 . joint_state_publisher - 关节状态发布器&#x1f4cc; 核心功能⚙️ 工作原理&#x1f9e0; 主要任务&#x1f4bb; 基本用法 &#x1f9e9; 2. robot_state_publisher - 机器人状态发布器&#x1f4cc; 核心功能⚙️ 工作原理&#x1f9e…

第10讲、Odoo 18框架设计原理全解析

前言 Odoo是一套开源的企业资源规划(ERP)系统&#xff0c;以其模块化、可扩展性和全面的业务应用套件而闻名。Odoo 18作为其最新版本&#xff0c;在架构设计、前端技术和后端实现上都有显著的创新和优化。本文将从前端的OWL组件化、模块化&#xff0c;到后端的ORM封装&#xf…

MPC5744P——eTimer简介

1、eTimer结构图 eTimer模块提供&#xff1a; 六个相同的计数器/定时器通道一个看门狗定时器功能&#xff08;可能并非每个eTimer模块实例都具备&#xff09; 2、eTimer通道结构图 eTimer中的每个计时器/计数器通道结构图如下图所示&#xff0c;每个16位计数器/定时器通道包…

MySQL主从复制---笔记

一、MySQL主从复制架构 常见拓扑 基础一主一从 主库&#xff08;Master&#xff09;处理写操作&#xff0c;从库&#xff08;Slave&#xff09;同步数据并处理读请求。 适用场景&#xff1a;读写分离、数据备份。 一主多从 一个主库对应多个从库&#xff0c;显著提升读性能…