MLLM(二)| 阿里开源视频理解大模型:Qwen2-VL

news2024/9/24 19:22:19

图片

        2024年8月29日,阿里发布了 Qwen2-VL!Qwen2-VL 是基于 Qwen2 的最新视觉语言大模型。与 Qwen-VL 相比,Qwen2-VL 具有以下能力:

  • SoTA对各种分辨率和比例的图像的理解:Qwen2-VL在视觉理解基准上达到了最先进的性能,包括MathVista、DocVQA、RealWorldQA、MTVQA等。
  • 理解 20 分钟+ 的视频:Qwen2-VL 可以理解 20 分钟以上的视频,以进行高质量的基于视频的问答、对话、内容创建等。
  • 可以操作您的手机、机器人等的代理:Qwen2-VL 具有复杂的推理和决策能力,可以与手机、机器人等设备集成,根据视觉环境和文本指令进行自动操作。
  • 多语言支持:为了服务全球用户,除了英文和中文外,Qwen2-VL 现在还支持理解图像中不同语言的文本,包括大多数欧洲语言、日语、韩语、阿拉伯语、越南语等。

 Qwen2-VL-2B 和 Qwen2-VL-7B模型开源了, Qwen2-VL-72B只开源了API!开源模型已集成到 Hugging Face Transformers、vLLM 和其他第三方框架中。

一、性能

72B:

        从六个关键维度评估模型的视觉能力:复杂的大学水平问题解决、数学能力、文档和表格理解、多语言文本图像理解、一般场景问答、视频理解和基于代理的交互。总体而言, 72B 模型在大多数指标上都展示了顶级性能,甚至超过了 GPT-4o 和 Claude 3.5-Sonnet 等闭源模型。值得注意的是,它在文档理解方面表现出显着优势。

图片

7B:

        在 7B 模型上,保留了对图像、多图像和视频输入的支持,以更具成本效益的模型大小提供有竞争力的性能。具体来说,在 DocVQA 等文档理解任务和图像中的多语言文本理解方面表现出色。

图片

2B:

       此外,更小的 2B 模型针对潜在的移动部署进行了优化。尽管体积小巧,但该模型在图像、视频和多语言理解方面拥有强大的性能。与其他类似规模的模型相比,它在与视频相关的任务、文档理解和一般场景问答方面尤其突出。

图片

二、模型任务表现

2.1 增强的识别功能

       Qwen2-VL 现在拥有改进的对象识别功能,超越了植物和地标,可以理解场景中多个对象之间的复杂关系。我们还显著提高了该模型识别图像中的手写文本和多种语言的能力,使其更易于全球用户访问。

示例:多对象识别

User:Output the color and number of each box.

输出每个框的颜色和编号。

图片

Qwen2-VL:

The image shows a stack of colorful blocks with numbers on them. Here is the color and number of each block from top to bottom:
该图像显示了一堆带有数字的彩色块。以下是每个块的颜色和编号,从上到下:

  • Top row (single block): Blue with the number 9
    顶行(单个块):带有数字 9 的蓝色

  • Second row (two blocks): Light blue with the number 7, and green with the number 8
    第二行(两个块):浅蓝色的数字 7 和绿色的数字 8

  • Third row (three blocks): Purple with the number 4, pink with the number 5, and light green with the number 6
    第三行(三个块):紫色的数字 4、粉红色的数字 5 和浅绿色的数字 6

  • Bottom row (four blocks): Red with the number 0, orange with the number 1, yellow with the number 2, and light green with the number 3
    底行(四个块):红色的数字 0、橙色的数字 1、黄色的数字 2 和浅绿色的数字 3

2.2 视觉推理:解决现实世界的问题

       在这次迭代中,显著提高了 Qwen2-VL 的数学和编码能力。该模型不仅能够通过分析图片来解决问题,还可以通过图表分析来解释和解决复杂的数学问题。极度纵横比失真的图像也可以被正确解释。此外,还增强了模型从真实世界图像和图表中提取信息的能力,并提高了其指令跟踪技能。这种视觉感知和逻辑推理的融合使模型能够解决实际问题,弥合抽象概念和有形解决方案之间的差距。

示例:数学

User 用户

Find the length of AC in the isosceles triangle ABC.
求等腰三角形 ABC 中 AC 的长度。

图片

Qwen2-VL

Since triangle ABC is isosceles, we know that AC = BC. Therefore, we can set the expressions for AC and BC equal to each other and solve for x:
由于三角形 ABC 是等腰三角形,我们知道 AC = BC。因此,我们可以将 AC 和 BC 的表达式设置为彼此相等并求解 x:

4x + 1 = 5x - 0.5

Subtracting 4x from both sides, we get:
从两侧减去 4 倍,我们得到:

1 = x - 0.5

Adding 0.5 to both sides, we get:
将 0.5 加到两侧,我们得到:

1.5 = x

Now that we know the value of x, we can substitute it back into the expression for AC to find its length:
现在我们知道了 x 的值,我们可以将其代入表达式中,让 AC 找到它的长度:

AC = 4x + 1

AC = 4(1.5) + 1

AC = 6 + 1

Therefore, the length of AC is 7.
因此,AC 的长度为 7。

2.3 视频理解和实时聊天

       除了静态图像之外,Qwen2-VL 还将其能力扩展到视频内容分析。它可以总结视频内容,回答与之相关的问题,并实时保持持续的对话流,提供实时聊天支持。此功能允许它充当个人助理,通过提供直接从视频内容中提取的见解和信息来帮助用户。

User:Please describe the video in detail.
请详细描述视频。

Qwen2-VL

The video begins with a man speaking to the camera, followed by a group of people sitting in a control room. The camera then cuts to two men floating inside a space station, where they are seen speaking to the camera. The men appear to be astronauts, and they are wearing space suits. The space station is filled with various equipment and machinery, and the camera pans around to show the different areas of the station. The men continue to speak to the camera, and they appear to be discussing their mission and the various tasks they are performing. Overall, the video provides a fascinating glimpse into the world of space exploration and the daily lives of astronauts.
视频开始时,一名男子对着镜头讲话,然后是一群坐在控制室里的人。然后镜头切换到漂浮在空间站内的两名男子,可以看到他们对着镜头说话。这些人似乎是宇航员,他们穿着宇航服。空间站里装满了各种设备和机械,摄像机四处平移以显示空间站的不同区域。这些人继续对着镜头说话,他们似乎在讨论他们的任务和他们正在执行的各种任务。总体而言,该视频提供了对太空探索世界和宇航员日常生活的迷人一瞥。

User 用户

What is the color of the clothes the two astronauts wearing?
两位宇航员穿的衣服是什么颜色的?

Qwen2-VL

The two astronauts are wearing blue and black clothes.
这两名宇航员穿着蓝色和黑色的衣服。

2.4 可视化代理功能:函数调用和可视化交互

       Qwen2-VL 作为视觉代理表现出强大的潜力,可促进类似于人类对世界感知的交互。

       该模型可以函数调用,使其能够利用外部工具通过破译视觉线索来实时检索数据,无论是航班状态、天气预报还是包裹跟踪。这种视觉解释与功能执行的集成提升了它的实用性,使其成为信息管理和决策的强大工具。

示例:函数调用

Ask about the weather 询问天气

  • Visual Interactions represent a significant stride towards mimicking human perception. By allowing the model to engage with visual stimuli akin to human senses, we’re pushing the boundaries of AI’s ability to perceive and respond to its environment. This capability paves the way for more intuitive and immersive interactions, where Qwen2-VL acts not just as an observer, but an active participant in our visual experiences.
    视觉交互代表了向模仿人类感知迈出的重大一步。通过允许模型与类似于人类感官的视觉刺激互动,我们正在突破 AI 感知和响应环境的能力的界限。此功能为更直观和身临其境的交互铺平了道路,Qwen2-VL 不仅充当观察者,而且是我们视觉体验的积极参与者。

三、模型架构

        总体而言,继续使用 Qwen-VL 架构,该架构利用了 Vision Transformer (ViT) 模型和 Qwen2 语言模型。对于所有这些变体,使用了具有大约 600M 参数的 ViT,旨在无缝处理图像和视频输入。为了进一步增强模型有效感知和理解视频中视觉信息的能力,引入了几项关键升级:

  • Qwen2-VL 中的一项关键架构改进是实现了 Naive Dynamic Resolution 支持。与前代产品不同,Qwen2-VL 可以处理任意图像分辨率,将它们映射到动态数量的视觉标记,从而确保模型输入与图像中固有信息之间的一致性。这种方法更接近于人类视觉感知,使模型能够处理任何清晰度或大小的图像。

图片

  • 另一个关键的架构增强功能是多模态旋转位置嵌入 (M-ROPE) 的创新。通过将原始旋转嵌入物解构为代表时间和空间(高度和宽度)信息的三个部分,M-ROPE 使 LLM 能够同时捕获和整合 1D 文本、2D 视觉和 3D 视频位置信息。

图片

四、使用 Qwen2-VL 进行开发

       要使用最大的 Qwen2-VL 模型 Qwen2-VL-72B,您可以通过我们的官方 API(注册账号并通过 DashScope 获取 API 密钥)临时访问它,如下所示:

from openai import OpenAIimport osimport base64def encode_image(image_path):    with open(image_path, "rb") as image_file:        return base64.b64encode(image_file.read()).decode("utf-8")# Path to your imageimage_path = "dog_and_girl.jpeg"# Getting the base64 stringbase64_image = encode_image(image_path)def get_response():    client = OpenAI(        api_key=os.getenv("DASHSCOPE_API_KEY"),        base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",    )    completion = client.chat.completions.create(        model="qwen-vl-max-0809",        messages=[            {                "role": "user",                "content": [                    {"type": "text", "text": "What is this?"},                    {                        "type": "image_url",                        "image_url": {                            "url": "https://dashscope.oss-cn-beijing.aliyuncs.com/images/dog_and_girl.jpeg"                        },                    },                    {                        "type": "image_url",                        "image_url": {"url": f"data:image/jpeg;base64,{base64_image}"},                    },                ],            }        ],        top_p=0.8,        stream=True,        stream_options={"include_usage": True},    )    for chunk in completion:        print(chunk.model_dump_json())if __name__ == "__main__":    get_response()

       Qwen2-VL 系列的 2B 和 7B 型号是开源的,可在 Hugging Face 和 ModelScope 上访问。

        确保你从源安装transformers, pip install git+https://github.com/huggingface/transformers 因为Qwen2-VL 的代码刚刚合并到 main 分支中。如果您未从源码安装它,则可能会遇到以下错误:

KeyError: 'qwen2_vl'

       阿里提供了一个工具包来帮助您更方便地处理各种类型的视觉输入。它支持的输入包括 base64、URL 以及交错图像和视频。您可以使用以下命令安装它:

pip install qwen-vl-utils

       下面是一个用于演示的代码片段。具体来说,我们建议尽可能使用 flash attention 2,以便加速和节省内存。

from transformers import Qwen2VLForConditionalGeneration, AutoTokenizer, AutoProcessorfrom qwen_vl_utils import process_vision_info# default: Load the model on the available device(s)model = Qwen2VLForConditionalGeneration.from_pretrained(    "Qwen/Qwen2-VL-7B-Instruct", device_map="auto")# We recommend enabling flash_attention_2 for better acceleration and memory saving, especially in multi-image and video scenarios.# model = Qwen2VLForConditionalGeneration.from_pretrained(#     "Qwen/Qwen2-VL-7B-Instruct",#     torch_dtype=torch.bfloat16,#     attn_implementation="flash_attention_2",#     device_map="auto",# )# default processerprocessor = AutoProcessor.from_pretrained("Qwen/Qwen2-VL-7B-Instruct")# The default range for the number of visual tokens per image in the model is 4-16384. You can set min_pixels and max_pixels according to your needs, such as a token count range of 256-1280, to balance speed and memory usage.# min_pixels = 256*28*28# max_pixels = 1280*28*28# processor = AutoProcessor.from_pretrained("Qwen/Qwen2-VL-7B-Instruct", min_pixels=min_pixels, max_pixels=max_pixels)messages = [    {        "role": "user",        "content": [            {                "type": "image",                "image": "https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen-VL/assets/demo.jpeg",            },            {"type": "text", "text": "Describe this image."},        ],    }]# Preparation for inferencetext = processor.apply_chat_template(    messages, tokenize=False, add_generation_prompt=True)image_inputs, video_inputs = process_vision_info(messages)inputs = processor(    text=[text],    images=image_inputs,    videos=video_inputs,    padding=True,    return_tensors="pt",)# Inference: Generation of the outputgenerated_ids = model.generate(**inputs, max_new_tokens=128)generated_ids_trimmed = [    out_ids[len(in_ids) :] for in_ids, out_ids in zip(inputs.input_ids, generated_ids)]output_text = processor.batch_decode(    generated_ids_trimmed, skip_special_tokens=True, clean_up_tokenization_spaces=False)print(output_text)

           Qwen2-VL已经支持开源生态系统中的一系列工具和框架,包括量化 (AutoGPTQ、AutoAWQ)、部署 (vLLM)、微调 (Llama-Factory) 等

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

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

相关文章

Qt中使用DAG(有向无环图)

之前做的一个视觉检测项目,本来各个视觉检测工具之间是独立的,单独执行图像输入、得出结果,然后综合汇总结果,简单明了。 后来要求工具之间能存在依赖关系,也就是A工具的输出可以作为B工具的输入,这样就很麻…

【Android】ViewPager基本用法总结

文章目录 一、添加ViewPager控件二、构建适配器类三、在 MainActivity 中设置适配器示例一:图片切换适配器MainActivity 示例二:Fragment切换适配器FragmentMainActivity ViewPager 是 Android 中一个用于在同一屏幕上滑动不同页面(通常是左右…

【C++】C++中的花式操作:lambda表达式、类成员初始化列表、三元运算符、运算符及其重载。。。

八、C中的花式操作:lambda表达式、构造函数初始化列表、三元运算符 10、lambda表达式 见mutable关键字:【C】C中的关键字:const、mutable、auto、new....-CSDN博客。 11、构造函数初始化列表 当我们编写一个类时,一般都要有一个…

鼠标指针美化 一大批鼠标指针特效 喜欢的快点收藏~!

鼠标指针美化 一大批鼠标指针特效 喜欢的快点收藏~!鼠标指针美化,这个功能可能许多人都没用过,应该还有很多人都是用着系统默认的鼠标指针,我们今天给大家分享一个可以修改鼠标指针的工具,如果你也喜欢,那麻…

类比推理-错题集

001 解析 : 002

[Visual Stuidio 2022使用技巧]3.模板

本文主要介绍本人在使用vs2022开发WPF桌面程序时使用到的一些插件及配置。 语言:C# IDE:Microsoft Visual Studio Community 2022 框架:WPF,.net 8.0 一、工程模板 1.1 创建模板 编辑好模板代码,扩展及NuGet包之…

【2024全国大学生数学建模竞赛】E题 模型建立与求解(含代码与论文)

目录 一、问题重述 1.1 问题背景 1.2 问题回顾与分析 四、问题求解与分析 4.1 问题1求解与分析 4.1.1 问题1分析 4.1.2 问题1建模与求解 按照提交论文的格式进行撰写!完整版请看文章最后! 一、问题重述 1.1 问题背景 随着城市化进程的加快、机动…

mysql笔记3(数据库和表的基础操作)

文章目录 一、数据库的基础操作1. 显示所有的仓库(数据库)2. 创建数据库注意(命名规范): 3. 删除数据库4. 查看创建数据库的SQL5. 创建数据库时跟随字符编码6. 修改数据库的字符编码 二、表的基础操作1. 引入表的思维2. 引用数据库3. 查看该数据库下面的表4. 创建表…

微信小程序webgl 显示图片

// wxml <view class"container"><!-- 加载地图容器 --><canvas type"webgl" id"testMap" style"width: 100%; height: 100%;" disable-scroll bindtouchstart"touchStart" bindtouchmove"touchMove&qu…

直播美颜SDK与主播美颜工具:实时美颜技术的深度解析

本篇文章&#xff0c;笔者将深入解析直播美颜SDK的核心技术与主播美颜工具的开发原理。 一、什么是直播美颜SDK&#xff1f; 通过集成美颜SDK&#xff0c;开发者可以在直播应用中快速实现脸部优化、滤镜添加、皮肤调整等功能&#xff0c;帮助主播在直播过程中实时呈现最佳状态…

linux线程cp模型,posix信号量,线程池,线程封装,单例模型,懒汉饿汉实现方式,自旋锁,读者写者模型

1.生产者消费者模型 前面的同步&#xff0c;我们并没有一个很好的场景来模拟同步&#xff0c;只是简单的将有序的现象输出出来&#xff1b;现在我们来讲解一个比较合理且常见的模型——生产者消费者模型&#xff1b; 1.1模型理解 什么是生产者消费者模型&#xff1a; 这个模…

书籍爱好者的福音:Spring Boot实现的个性化推荐

1 绪论 1.1研究背景 随着网络不断的普及发展&#xff0c;图书个性化推荐系统依靠网络技术的支持得到了快速的发展&#xff0c;首先要从学生的实际需求出发&#xff0c;通过了解学生的需求开发出具有针对性的首页、图书信息、好书推荐、留言反馈、个人中心、后台管理功能&#x…

Go Web 编程 PDF

&#x1f4da; Go Web开发必读:《Building Web Applications with Go》PDF资源分享 &#x1f50d; 找寻良久,终于寻得这本珍贵资源!现在我免费分享给大家 你是否正在学习Go语言开发Web应用?是否想要提升Go并发编程能力?这本书绝对不容错过! &#x1f4d6; 关于这本书 《B…

AC访问规则--规则优先级

按照以下进行优先级排序&#xff1a; 1.Specific Rules Have Priority 特定规则是一种关联以下内容的规则&#xff1a; ・通过指定其 AID 或指定隐式选择的应用来关联安全元件应用&#xff0c;并且 ・通过指定其 DeviceAppID 来解释一个设备应用&#xff0c; 通用规则是适用…

力扣1049-最后一块石头的重量II(Java详细题解)

题目链接&#xff1a;1049. 最后一块石头的重量 II - 力扣&#xff08;LeetCode&#xff09; 前情提要&#xff1a; 因为本人最近都来刷dp类的题目所以该题就默认用dp方法来做。 最近刚学完01背包&#xff0c;所以现在的题解都是以01背包问题为基础再来写的。 如果大家不懂…

Xilinx高速接口文档简介

Xilinx的高速资源手册比较详细的介绍的介绍有ug482-GTP&#xff0c;ug486-GTX&#xff0c;ug576-GTH 基本结构资源和原语都大致相同 GTP主要在A系列芯片中 GTX主要在K系列芯片中 XILINX系列中有专用的高速接口资源&#xff0c;这些也是FPGA中最有价值的存在。 这些高速资源被称…

springboot小儿推拿培训系统

基于springbootvue实现的小儿推拿培训系统 &#xff08;源码L文ppt&#xff09;4-50 3系统设计 3.1系统功能结构 系统结构图可以把杂乱无章的模块按照设计者的思维方式进行调整排序&#xff0c;可以让设计者在之后的添加&#xff0c;修改程序内容的过程…

网传“有手就能过”的PMP,是不是真的那么水?!

“PMP真的很简单啊&#xff0c;我都没有复习就刷刷题就过了。” “3A上岸&#xff0c;就刷了两天题就直接去考了。” “感觉真的就是花钱随便过&#xff0c;我还以为多难呢&#xff0c;一次就考过了。” …… 上面这样的发言你是不是在好多平台都见过&#xff1f; 你是不是也在…

SAP HCM 如何计算缺勤实数

导读 INTRODUCTION 缺勤实数&#xff1a;这几天好几个朋友问题有什么办法可以计算出缺勤的时长&#xff0c;因为计算时长需要和排班去匹配&#xff0c;所以逻辑复杂度还是比较高的&#xff0c;希望有标准的函数能完成。其实SAP有个标准的函数可以完成&#xff0c;复杂的时候填…

合宙Air780E硬件设计手册02

上文文主要介绍了Air780E的硬件设计中的的应用接口部分。 上文链接&#xff1a;Air780E低功耗4G模组硬件设计手册01-CSDN博客 在本文我们会继续介绍Air780E的硬件设计介绍。 二、应用接口 2.10 SIM卡接口 Air780E支持2路SIM卡接口&#xff0c;支持ETSI和IMT-2000卡规范&am…