sglang 部署Qwen2VL7B,大模型部署,速度测试,深度学习
sglang
项目github仓库:
https://github.com/sgl-project/sglang
项目说明书:
https://sgl-project.github.io/start/install.html
资讯:
https://github.com/sgl-project/sgl-learning-materials?tab=readme-ov-file#the-first-sglang-online-meetup
快得离谱:
[外链图片转存中…(img-E3n1Ivz9-1731913508383)]
图来源:https://lmsys.org/blog/2024-09-04-sglang-v0-3/
Docker使用:
docker run --gpus device=0 \--shm-size 32g \-p 30000:30000 \-v /root/xiedong/Qwen2-VL-7B-Instruct:/Qwen2-VL \--env "HF_TOKEN=abc-1234" \--ipc=host \-v /root/xiedong/Qwen2-VL-72B-Instruct-GPTQ-Int4:/root/xiedong/Qwen2-VL-72B-Instruct-GPTQ-Int4 \lmsysorg/sglang:latest \python3 -m sglang.launch_server --model-path /Qwen2-VL --host 0.0.0.0 --port 30000 --chat-template qwen2-vl --context-length 8192 --log-level-http warning
启动成功:
接口文档:
http://101.136.22.140:30000/docs
速度测试代码
import time
from openai import OpenAI# 初始化OpenAI客户端
client = OpenAI(api_key='YOUR_API_KEY', base_url='http://0.0.0.0:30000/v1')# 定义图像路径
image_paths = ["/root/xiedong/Qwen2-VL-72B-Instruct-GPTQ-Int4/demo256.jpeg","/root/xiedong/Qwen2-VL-72B-Instruct-GPTQ-Int4/demo512.jpeg","/root/xiedong/Qwen2-VL-72B-Instruct-GPTQ-Int4/demo768.jpeg","/root/xiedong/Qwen2-VL-72B-Instruct-GPTQ-Int4/demo1024.jpeg","/root/xiedong/Qwen2-VL-72B-Instruct-GPTQ-Int4/demo1280.jpeg","/root/xiedong/Qwen2-VL-72B-Instruct-GPTQ-Int4/demo2560.jpeg"
]# 设置请求次数
num_requests = 10# 存储每个图像的平均响应时间
average_speeds = {}# 遍历每张图片
for image_path in image_paths:total_time = 0# 对每张图片执行 num_requests 次请求for _ in range(num_requests):start_time = time.time()# 发送请求并获取响应response = client.chat.completions.create(model="/Qwen2-VL",messages=[{'role': 'user','content': [{'type': 'text','text': 'Describe the image please',}, {'type': 'image_url','image_url': {'url': image_path,},}],}],temperature=0.8,top_p=0.8)# 记录响应时间elapsed_time = time.time() - start_timetotal_time += elapsed_time# 打印当前请求的响应内容(可选)print(f"Response for {image_path}: {response.choices[0].message.content}")# 计算并记录该图像的平均响应时间average_speed = total_time / num_requestsaverage_speeds[image_path] = average_speedprint(f"Average speed for {image_path}: {average_speed} seconds")# 输出所有图像的平均响应时间
for image_path, avg_speed in average_speeds.items():print(f"{image_path}: {avg_speed:.2f} seconds")
速度测试结果
sglang 测试结果:
Model | 显存占用 (MiB) | 分辨率 | 处理时间 (秒) |
---|---|---|---|
Qwen2-VL-7B-Instruct | 70G | 256 x 256 | 1.71 |
512 x 512 | 1.52 | ||
768 x 768 | 1.85 | ||
1024 x 1024 | 2.05 | ||
1280 x 1280 | 1.88 | ||
2560 x 2560 | 3.26 |
纯transformer,不用加速框架,我之前的测了一张图的速度是:5.22 seconds,很慢。
附录-vllm速度测试
启动:
docker run --gpus device=0 \-v /root/xiedong/Qwen2-VL-7B-Instruct:/Qwen2-VL \-v /root/xiedong/Qwen2-VL-72B-Instruct-GPTQ-Int4:/root/xiedong/Qwen2-VL-72B-Instruct-GPTQ-Int4 \-p 30000:8000 \--ipc=host \vllm/vllm-openai:latest \--model /Qwen2-VL --gpu_memory_utilization=0.9
代码:
import time
import base64
from openai import OpenAI# 初始化OpenAI客户端
client = OpenAI(api_key='YOUR_API_KEY', base_url='http://0.0.0.0:30000/v1')# 定义图像路径
image_paths = ["/root/xiedong/Qwen2-VL-72B-Instruct-GPTQ-Int4/demo256.jpeg","/root/xiedong/Qwen2-VL-72B-Instruct-GPTQ-Int4/demo512.jpeg","/root/xiedong/Qwen2-VL-72B-Instruct-GPTQ-Int4/demo768.jpeg","/root/xiedong/Qwen2-VL-72B-Instruct-GPTQ-Int4/demo1024.jpeg","/root/xiedong/Qwen2-VL-72B-Instruct-GPTQ-Int4/demo1280.jpeg","/root/xiedong/Qwen2-VL-72B-Instruct-GPTQ-Int4/demo2560.jpeg"
]# 设置请求次数
num_requests = 10# 存储每个图像的平均响应时间
average_speeds = {}# 将图片转换为 Base64 编码的函数
def image_to_base64(image_path):with open(image_path, "rb") as img_file:return base64.b64encode(img_file.read()).decode('utf-8')# 遍历每张图片
for image_path in image_paths:total_time = 0# 将图片转换为 Base64 编码image_base64 = image_to_base64(image_path)# 对每张图片执行 num_requests 次请求for _ in range(num_requests):start_time = time.time()# 发送请求并获取响应response = client.chat.completions.create(model="/Qwen2-VL",messages=[{'role': 'user','content': [{'type': 'text','text': 'Describe the image please',}, {'type': 'image_url','image_url': {'url': f"data:image/jpeg;base64,{image_base64}", # 使用Base64编码的图片},}],}],temperature=0.8,top_p=0.8)# 记录响应时间elapsed_time = time.time() - start_timetotal_time += elapsed_time# 打印当前请求的响应内容(可选)print(f"Response for {image_path}: {response.choices[0].message.content}")# 计算并记录该图像的平均响应时间average_speed = total_time / num_requestsaverage_speeds[image_path] = average_speedprint(f"Average speed for {image_path}: {average_speed} seconds")# 输出所有图像的平均响应时间
for image_path, avg_speed in average_speeds.items():print(f"{image_path}: {avg_speed:.2f} seconds")
速度:
Model | 显存占用 (MiB) | 分辨率 | 处理时间 (秒) |
---|---|---|---|
Qwen2-VL-72B-Instruct-GPTQ-Int4 | 70G | 256 x 256 | 1.50 |
512 x 512 | 1.59 | ||
768 x 768 | 1.61 | ||
1024 x 1024 | 1.67 | ||
1280 x 1280 | 1.81 | ||
2560 x 2560 | 1.97 |
https://www.dong-blog.fun/post/1856
相关文章:
sglang 部署Qwen2VL7B,大模型部署,速度测试,深度学习
sglang 项目github仓库: https://github.com/sgl-project/sglang 项目说明书: https://sgl-project.github.io/start/install.html 资讯: https://github.com/sgl-project/sgl-learning-materials?tabreadme-ov-file#the-first-sglang…...
fastadmin操作数据库字段为json、查询遍历each、多级下拉、union、php密码设置、common常用函数的使用小技巧
数据库中遇到的操作 查询字段是json的某个值 //获取数据库中某个字段是json中得某个值,进行查询,goods是表中字段,brand_id是json中要查詢的字段。//数据类型一定要对应要不然查询不出来。$map[json_extract(goods, "$.brand_id")]…...
UniApp在Vue3的setup语法糖下自定义组件插槽详解
UniApp在 Vue3的 setup 语法糖下自定义组件插槽详解 UniApp 是一个基于 Vue.js 的跨平台开发框架,可以用来开发微信小程序、H5、App 等多种平台的应用。Vue 3 引入了 <script setup> 语法糖,使得组件的编写更加简洁和直观。本文将详细介绍如何在 …...
springboot上传下载文件
RequestMapping(“bigJson”) RestController Slf4j public class TestBigJsonController { Resource private BigjsonService bigjsonService;PostMapping("uploadJsonFile") public ResponseResult<Long> uploadJsonFile(RequestParam("file")Mul…...
Python学习从0到1 day29 Python 高阶技巧 ⑦ 正则表达式
目录 一、正则表达式 二、正则表达式的三个基础方法 1.match 从头匹配 2.search(匹配规则,被匹配字符串) 3.findall(匹配规则,被匹配字符串) 三、元字符匹配 单字符匹配: 注: 示例&a…...
机器学习-web scraping
Web Scraping,通常称为网络抓取或数据抓取,是一种通过自动化程序从网页中提取数据的技术。以下是对Web Scraping的详细解释: 一、定义与原理 Web Scraping是指采用技术手段从大量网页中提取结构化和非结构化信息,并按照一定的规…...
移远通信5G RedCap模组RG255C-CN通过中国电信5G Inside终端生态认证
近日,移远通信5G RedCap模组RG255C-CN荣获中国电信颁发的5G Inside终端生态认证证书。这表明,该产品在5G基本性能、网络兼容性、安全特性等方面已经过严格评测且表现优异,将进一步加速推动5G行业终端规模化应用。 中国电信5G Inside终端生态认…...
Javaweb梳理17——HTMLCSS简介
Javaweb梳理17——HTML&CSS简介 17 HTML&CSS简介17.1 HTML介绍17.2 快速入门17.3 基础标签17.3 .1 标题标签17.3.2 hr标签17.3.3 字体标签17.3.4 换行17.3.8 案例17.3.9 图片、音频、视频标签17.3.10 超链接标签17.3.11 列表标签17.3.12 表格标签17.3.11 布局标签17.3.…...
【Android、IOS、Flutter、鸿蒙、ReactNative 】自定义View
Android Java 自定义View 步骤 创建一个新的Java类,继承自View、ViewGroup或其他任何一个视图类。 如果需要,重写构造函数以支持不同的初始化方式。 重写onMeasure方法以提供正确的测量逻辑。 重写onDraw方法以实现绘制逻辑。 根据需要重写其他方法&…...
win11跳过联网激活步骤
win11跳过联网激活步骤 win11跳过联网激活步骤方法一:使用Shift F10快捷键(推荐)1. 启动Windows 112. 选择键盘布局或输入法3. 是否想要添加第二种键盘布局4. 让我们为你连接到网络5. 调出管理员模式CMD6. 耐心等待自动重启7. 启动Windows 1…...
利用c语言详细介绍下冒泡排序
软件开发过程中,排序算法是常规且使用众多的方法之一,而冒泡算法又是排序算法中最常规且基本的算法。今天我们利用c语言,图文详细介绍下冒泡算法。 一、图文介绍 我们输入一个数组,数组为【10,5,3…...
C# 面向对象
C# 面向对象编程 面向过程:一件事情分成多个步骤来完成。 把大象装进冰箱 (面向过程化设计思想)。走一步看一步。 1、打开冰箱门 2、把大象放进冰箱 3、关闭冰箱门 面向对象:以对象作为主体 把大象装进冰箱 1、抽取对象 大象 冰箱 门 ࿰…...
android wifi扫描的capability
混合型加密android11 8155与普通linux设备扫描到的安全字段差别 android应用拿到关于wifi安全的字段: systembar-WifiBroadcastReceiver---- scanResult SSID: Redmi_697B, BSSID: a4:39:b3:70:8c:20, capabilities: [WPA-PSK-TKIPCCMP][WPA2-PSK-TKIPCCMP][RSN-PSK…...
datawhale 2411组队学习:模型压缩4 模型量化理论(数据类型、int8量化方法、PTQ和QWT)
文章目录 一、数据类型1.1 整型1.2 定点数1.3 浮点数1.3.1 正规浮点数(fp32)1.3.2 非正规浮点数(fp32)1.3.3 其它数据类型1.3.4 浮点数误差1.3.5 浮点数导致的模型训练问题 二、量化基本方法2.1 int8量化2.1.1 k-means 量化2.1.2 …...
数据分析-48-时间序列变点检测之在线实时数据的CPD
文章目录 1 时间序列结构1.1 变化点的定义1.2 结构变化的类型1.2.1 水平变化1.2.2 方差变化1.3 变点检测1.3.1 离线数据检测方法1.3.2 实时数据检测方法2 模拟数据2.1 模拟恒定方差数据2.2 模拟变化方差数据3 实时数据CPD3.1 SDAR学习算法3.2 Changefinder模块3.3 恒定方差CPD3…...
POD-Transformer多变量回归预测(Matlab)
目录 效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现POD-Transformer多变量回归预测,本征正交分解数据降维融合Transformer多变量回归预测,使用SVD进行POD分解(本征正交分解); 2.运行环境Matlab20…...
Hadoop生态圈框架部署(七)- MySQL安装与配置教程
文章目录 前言一、MySQL安装与配置(手动部署)1. 下载MySQL2. 上传安装包3. 解压HBase安装包4. 配置4.1 配置 MySQL 的主配置文件 my.cnf4.2 配置 MySQL 服务的脚本 5. 初始化MySQL数据库6. 创建快捷方式7. 启动MySQL服务8. 修改MySQL登录密码8.1 使用临时…...
视频直播5G CPE解决方案:ZX7981PG/ZX7981PMWIFI6网络覆盖
方案背景 视频直播蓬勃发展的当下,传统直播网络联网方式的局限性越来越明显。目前传统直播的局限性主要集中在以下几个方面: 传统直播间网络架构条件有限,可连接WIFI数量少,多终端同时直播难以维持;目前4G网络带宽有限…...
技术周刊 |Google 2024 年首届 Web AI 峰会回顾
大家好,我是童欧巴。见字如面,万事胜意,欢迎来到第 134 期周刊。 大厨推荐 Google 2024 年首届 Web AI 峰会回顾 不仅包括来自谷歌团队的演讲者,如 Chrome 和 MediaPipe,还包括第三方代表,如英特尔、Hug…...
web——upload-labs——第十二关——%00截断
查看源码 分析源码我们可以知道,这里是基于白名单过滤,只允许上传jpg,png,gif,但是这里注意第八行,上传路径是可以控制的,所以可以利用%00截断,来达到上传木马的目的。这里要注意一下,%00截断想…...
ORA-01461: 仅能绑定要插入 LONG 列的 LONG 值。ojdbc8版本23.2.0.0驱动BUG【已解决】
问题描述 JDK8使用ojdbc8驱动操作oracle11g数据库,使用JDBC复用 PreparedStatement 对象执行Insert操作时,报错java.sql.SQLException: ORA-01461: 仅能绑定要插入 LONG 列的 LONG 值。,经测试发现,是预编译对象某个占位符号被赋…...
win10 自带 directx 修复工具怎么用?最新 directx 修复工具使用方法介绍
DirectX 是一组用于处理多媒体,特别是游戏和图形相关任务的技术和接口。当 DirectX 出现问题,可能会导致游戏运行不畅、图像显示异常、声音故障等。 系统自带的 directx 修复工具能够检测 DirectX 的组件是否完整、版本是否正确、配置是否合理ÿ…...
报错java: java.lang.NoSuchFieldError: Class com.sun.tools.javac.tree.JCTree$JCImport does not ...解决方法
在运行项目时出现java: java.lang.NoSuchFieldError: Class com.sun.tools.javac.tree.JCTree$JCImport does not have member field com.sun.tools.javac.tree.JCTree qualidzz这样的报错 解决方法 1.第一步:在pom文件中将lombok的版本改成最新的 此时1.18.34是新…...
前端三大件之CSS
引言 CSS(层叠样式表,Cascading Style Sheets)是一种用于描述网页文档外观和格式的样式表语言。它主要用于控制网页的布局、颜色、字体、间距等视觉效果,使开发者能够将内容与设计分离。 一,CSS的基本概念 选择器&…...
C语言 | 指针 | 野指针 | 数组指针 | 指针数组 | 二级指针 | 函数指针 | 指针函数
文章目录 1.指针的定义2.指针的加减运算3.野指针4.指针 & 数组 & 传参 & 字符数组5.数组指针 & 指针数组6.二级指针7.指针函数 & 函数指针 & 回调函数8.函数指针数组 & 指向函数指针数组的指针 1.指针的定义 指针是内存中一个最小单元的编号&…...
mysql 的乐观锁和 mvcc 是一回事吗
MySQL 的乐观锁和 MVCC(多版本并发控制)是两个不同的概念,尽管它们都涉及到并发控制和数据的一致性,但在设计目的和实现方式上存在本质区别。 1. 乐观锁 概念 乐观锁是一种用于解决并发更新冲突的控制机制。它假设数据在大部分情况…...
redis的击穿和雪崩
Redis 是一个高性能的键值存储数据库,广泛用于缓存、会话管理等场景。然而,Redis 在高并发场景下可能会遇到一些问题,比如“击穿”和“雪崩”。下面详细解释这两个概念: 击穿(Hotspot) 击穿是指某个热点数…...
java中创建多线程的4种方式
目录 一、继承 Thread 类创建线程 步骤 示例代码 原理 二、实现 Runnable 接口创建线程 步骤 示例代码 原理 三、实现 Callable 接口创建线程 步骤 示例代码 原理 与Runnable接口相比的不同之处 四、使用线程池创建线程 步骤 示例代码(使用 Executo…...
MATLAB深度学习(二)——如何训练一个卷积神经网路
2.1 基本概念 从数学的角度看,机器学习的目标是建立输入和输出的函数关系,相当于 y F(x)的过程。F(x)就是我们所说的模型,对于使用者来说,这个模型就是一个黑箱,我们不知…...
删除k8s 或者docker运行失败的脚本
vi delete_exited_containers.sh#!/bin/bash# 列出所有停止的容器并存储到数组 list_exited_containers() {echo -e "\nStopped containers:"containers()# 获取停止的容器信息并存入数组while IFS read -r line; docontainers("$line")done < <(do…...
完全不收费的聊天软件/seo评测论坛
《支持向量机(SVM)多分类matlab程序代码》由会员分享,可在线阅读,更多相关《支持向量机(SVM)多分类matlab程序代码(2页珍藏版)》请在读根文库上搜索。1、%模型训练及数据整理model_12svmtrain(class_12_label,class_12_value);model_13svmtrain(class_13…...
比较好的海报设计网站/东莞营销网站建设直播
本题的要求很简单,就是求N个数字的和。麻烦的是,这些数字是以有理数“分子/分母”的形式给出的,你输出的和也必须是有理数的形式。输入格式:输入第一行给出一个正整数N(<100)。随后一行按格式“a1/b1 a2…...
wordpress 代码运行框/关键词排名提高
2021年一级建造师备考已经开启,中建教育为大家整理了2021年一级建造师历年真题常考知识点,快跟上节奏学起来~1Z201020建设工程项目管理的目标和任务易混点一:建设工程管理与建设工程项目管理(1)时间范畴不同工程管理:全寿命期(决策…...
o2o电子商务网站建设/手游推广平台有哪些
大家都知道,去美国留学申请名校并不是件容易的事儿,每年申请这类院校的同学不在少数,但能如愿以偿拿到录取通知书的群却少之又少,有同学疑问“我的本科院校很普通,有望申请美国名校吗?”,针对这…...
今日头条网站用什么做的/外贸平台自建站
Part.1 开篇 队名:彳艮彳亍团队 组长博客:戳我进入 作业博客:班级博客本次作业的链接 Part.2 成员汇报 组员1:(组长)柯奇豪 过去两天完成了哪些任务 部分代码的整合编辑及标注的提交操作展示GitHub当日代码/文档签入记…...
2021最有潜力的新电商平台/惠州seo网站排名
原文地址:http://www.cnblogs.com/wujy/p/3317795.html 一:理论部分 依赖注入:这是 Ioc 模式的一种特殊情况,是一种基于改变对象的行为而不改变类的内部的接口编程技术。开发人员编写实现接口的类代码,并基于接口或者对…...