实战千问2大模型第五天——VLLM 运行 Qwen2-VL-7B(多模态)

一、简介

VLLM 是一种高效的深度学习推理库,通过PagedAttention算法有效管理大语言模型的注意力内存,其特点包括24倍的吞吐提升和3.5倍的TGI性能,无需修改模型结构,专门设计用于加速大规模语言模型(LLM)的推理过程。它通过优化显存管理、支持大模型的批处理推理以及减少不必要的内存占用,来提高多 GPU 环境下的推理速度和效率。

VLLM 的核心特点包括:

  1. 显存高效性:VLLM 能够动态管理显存,支持在有限的显存资源下运行大规模语言模型。
  2. 并行化推理:它可以在多个 GPU 上分配任务,实现多线程并行处理,以提高推理速度。
  3. 模型优化:通过优化 GPU 和 CPU 之间的数据传输,使得推理时间大幅缩短。
  4. 低延迟:VLLM 专注于减少推理时的延迟,使其在实时应用中表现出色。

这使得 VLLM 非常适合需要快速、大规模推理的任务,例如在生产环境中部署大语言模型进行实时文本生成或问答等应用。

二、安装环境

https://github.com/vllm-project/vllm

pip install -U vllm
pip install -U --force git+https://github.com/huggingface/transformers
pip install qwen-vl-utils

三、测试

准备1.jpg和下面脚本即可运行测试。

from PIL import Image
from transformers import AutoProcessor
from vllm import LLM, SamplingParams
from qwen_vl_utils import process_vision_infoMODEL_PATH = 'qwen/Qwen2-VL-7B-Instruct'
IMAGE_PATH = '1.jpg'
VIDEO_PATH = '/path/to/video.mp4'llm = LLM(model=MODEL_PATH,limit_mm_per_prompt={'image': 10, 'video': 10},
)sampling_params = SamplingParams(temperature=0.1, top_p=0.001, repetition_penalty=1.05, max_tokens=256,stop_token_ids=[],
)messages = [{'role': 'system', 'content': 'You are a helpful assistant.'},{'role': 'user', 'content': [{'type': 'image','image': IMAGE_PATH,# min_pixels & max_pixels are optional'max_pixels': 12845056,},# You can also pass one or more videos:# {#     'type': 'video',#     'video': VIDEO_PATH,# }{'type': 'text','text': 'What does this diagram illustrate?',},]},
]processor = AutoProcessor.from_pretrained(MODEL_PATH)
prompt = processor.apply_chat_template(messages, tokenize=False, add_generation_prompt=True,
)
image_inputs, video_inputs = process_vision_info(messages)mm_data = {}
if image_inputs is not None:mm_data['image'] = image_inputs
if video_inputs is not None:mm_data['video'] = video_inputsllm_inputs = {'prompt': prompt,'multi_modal_data': mm_data,
}outputs = llm.generate([llm_inputs], sampling_params=sampling_params)
generated_text = outputs[0].outputs[0].textprint(generated_text)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1559180.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

网站排名,让网站快速有排名的几个方法

要让网站快速获得并提升排名,需要综合运用一系列专业策略和技术,这些策略涵盖了内容优化、技术调整、外链建设、用户体验提升等多个方面。以下是让网站快速有排名的几个方法: 1.内容为王:创造高质量、有价值的内容 -深入…

The Android SDK location cannot be at the filesystem root

win11, 安装启动完Android Studio后,一直显示 The Android SDK location cannot be at the filesystem root因此需要下载SDK包,必须开启代理。 开启代理后,在System下开启自动检测代理,如图 重启Android Studio&a…

Ubuntu双卡训练过程中电脑总是突然重启【解决方法】

本来以为是温度过热造成的,发现不是,因为在重启的瞬间,gpu温度并没有特别高。 参见视频如下: 双卡训练过程中gpu温度监测 然后尝试了另一种方法: 限制gpu显卡的功率 具体操作如下: 先检查当前gpu功率限…

[论文阅读] DVQA: Understanding Data Visualizations via Question Answering

原文链接:http://arxiv.org/abs/1801.08163 启发:没太读懂这篇论文,暂时能理解的就是本文提出了一个专门针对条形图问答的数据集DVQA以及一个端到端模型SANDY,模型有两个版本,Oracle和OCR。主要解决的问题是固定词表无…

IPguard vs Ping32:防泄密软件的巅峰对决,哪款是你的理想选择

在当今这个数字化时代,数据安全已成为企业不可忽视的重要议题。为了有效防范数据泄露风险,众多企业开始寻求专业的防泄密软件。IPguard与Ping32作为两款备受关注的防泄密软件,各自以其卓越的性能和独特的功能,赢得了广大用户的青睐…

线程(五)线程的同步和互斥——线程信号量

文章目录 线程线程的同步和互斥线程的同步和互斥--线程信号量示例--使用线程信号量来控制线程执行的先后顺序示例--使用信号量实现线程之间的互斥示例--使用信号量实现线程之间的同步 死锁线程状态转换 线程 线程的同步和互斥 线程的同步和互斥–线程信号量 上边讲了互斥的方…

力扣HOT100合集

力扣HOT100 - 1. 两数之和 解题思路&#xff1a; 解法一&#xff1a;暴力 class Solution {public int[] twoSum(int[] nums, int target) {int n nums.length;for (int i 0; i < n; i)for (int j i 1; j < n; j) {if (target nums[i] nums[j])return new int[] …

操作系统-系统调用

应用程序调用printf(),会触发系统调用write() 1、概念 操作系统服务的编程接口&#xff0c;通常由高级语言编写&#xff08;C/C&#xff09;&#xff0c;程序访问通常是通过高层次的API接口而不是直接进行系统调用。 2、三种最常用的应用程序编程接口&#xff08;API&#xf…

Vue深入了解

Vue深入了解 MVVMv-model (双向数据绑定原理)异步更新keep-alive原理$nextTick原理computed 和 watch 的区别css-scoped虚拟DOMVuex && PiniaVue-router原理proxy 与 Object.defineProperty组件通信方式 MVVM <!DOCTYPE html> <html lang"en">&…

AD原理图编译出现Net XX has no driving source

提示无驱动电压源&#xff0c;这是因为你的芯片管脚设置了电气属性造成的。 两种解决AD中出现Net has no driving source警告的方法。 方法一&#xff1a;取消电气属性检测&#xff0c;但不推荐&#xff1b; 打开原理图编译项&#xff0c;将NET no driving source 修改为no …

PostgreSQL的学习心得和知识总结(一百五十三)|[performance]将 OR 子句转换为 ANY 表达式

目录结构 注&#xff1a;提前言明 本文借鉴了以下博主、书籍或网站的内容&#xff0c;其列表如下&#xff1a; 1、参考书籍&#xff1a;《PostgreSQL数据库内核分析》 2、参考书籍&#xff1a;《数据库事务处理的艺术&#xff1a;事务管理与并发控制》 3、PostgreSQL数据库仓库…

树控件QTreeWidget

树控件跟表格控件类似&#xff0c;也可以有多列&#xff0c;也可以只有1列&#xff0c;可以有多行&#xff0c;只不过每一行都是一个QTreeWidgetItem&#xff0c;每一行都是一个可以展开的树 常用属性和方法 显示和隐藏标题栏 树控件只有水平标题栏 //获取和设置标题栏的显…

PPT在线画SWOT分析图!这2个在线软件堪称办公必备!

swot分析ppt怎么做&#xff1f; swot分析是一个非常常用的战略分析框架&#xff0c;经常会在ppt中使用。想在ppt中绘制swot分析图&#xff0c;使用自带的形状工具可以制作出来&#xff0c;但绘制效率不够高&#xff0c;在需要大批量制作的场景下&#xff0c;会让人非常心累………

DepthB2R靶机打靶记录

一、靶机介绍 下载地址&#xff1a;https://download.vulnhub.com/depth/DepthB2R.ova 二、信息收集 根据靶机主页显示&#xff0c;确认靶机ip为192.168.242.132 端口扫描 nmap -p- -A 192.168.242.132 发现只开放了8080端口 用dirsearch扫个目录 apt-get update apt-get …

基于LORA的一主多从监测系统_0.96OLED

关联&#xff1a;0.96OLED hal硬件I2C LORA 在本项目中每个节点都使用oled来显示采集到的数据以及节点状态&#xff0c;OLED使用I2C接口与STM32连接&#xff0c;这个屏幕内部驱动IC为SSD1306&#xff0c;SSD1306作为从机地址为0x78 发送数据&#xff1a;起始…

【Linux】基本认知全套入门

目录 Linux简介 Linux发行版本 发行版选择建议 Centos-社区企业操作系统 Centos版本选择 Linux系统目录 Linux常用命令 SSH客户端 Linux文件操作命令 vim重要快捷键 应用下载与安装 netstat&#xff0c;ps与kill命令使用 Linux应用服务化 Linux用户与权限 Linu…

Telephony CarrierConfig配置

1、CarrierConfig配置介绍 CarrierConfig&#xff08;运营商配置&#xff09;&#xff0c;是Android为了针对不同运营商配置不同功能的配置文件&#xff0c;类似Modem的MBN配置&#xff0c;可以实现插入不同运营商卡&#xff0c;不同的功能实现或菜单显示等。 2、CarrierConfig…

力扣之1355.活动参与者

题目&#xff1a; Sql 测试用例&#xff1a; Create table If Not Exists Friends (id int, name varchar(30), activity varchar(30)); Create table If Not Exists Activities (id int, name varchar(30)); Truncate table Friends; insert into Friends (id, name, acti…

【数据结构与算法-高阶】并查集

【数据结构与算法-高阶】并查集 &#x1f955;个人主页&#xff1a;开敲&#x1f349; &#x1f525;所属专栏&#xff1a;数据结构与算法&#x1f345; &#x1f33c;文章目录&#x1f33c; 1. 并查集原理 2. 并查集实现 3. 并查集应用 1. 并查集原理 在一些应用问题中&…

charAt,chartCodeAt,codePointAt,fromCodePoint,fromCharCode

生僻字的length算2,有些空格是特殊空格,比如\u3000 u3000不是全角空格&#xff0c;u3000是表意字空格&#xff08;Ideographic Space&#xff09;&#xff0c;宽度和一个表意字&#xff08;汉字&#xff09;相同。它应当被当做汉字来处理。比如&#xff0c;在一些排版中&#x…