Qwen2-VL:增强视觉语言模型对世界任意分辨率的感知能力
1、摘要
Qwen2-VL系列是Qwen-VL模型的高级升级版本,它重新定义了传统视觉处理中预设分辨率的方法。Qwen2-VL引入了Naive Dynamic Resolution机制,使模型能够动态处理不同分辨率的图像,并将其转换为不同数量的视觉标记。这种机制使模型能够生成更高效、更准确的视觉表示,更接近人类的感知过程。此外,模型还集成了多模态旋转位置嵌入(M-RoPE),有效融合了文本、图像和视频中的位置信息。Qwen2-VL采用统一的图像和视频处理范式,增强了模型的视觉感知能力。通过扩展模型规模(2B、8B和72B参数)和训练数据量,Qwen2-VL系列在多模态基准测试中取得了极具竞争力的性能,特别是Qwen2-VL-72B模型,在各种多模态基准测试中表现与GPT-4o和Claude3.5Sonnet相当,超越了其他通用模型。
2、引言
大型视觉语言模型(LVLMs)是人工智能领域的重要进展,它们在传统大型语言模型的基础上扩展了对图像、音频和视频等多种数据的处理能力。这些模型通过整合不同形式的数据,更接近人类感知和与环境互动的方式。然而,当前的LVLMs通常受限于固定的图像输入大小,这限制了模型对不同尺度信息的捕捉能力。此外,大多数LVLMs依赖于静态的、冻结的CLIP风格视觉编码器,这引发了对预训练模型生成的视觉表示是否足够的担忧。Qwen2-VL通过引入动态分辨率训练和2D旋转位置嵌入(RoPE)来解决这些问题,进一步增强了模型对不同分辨率的适应能力。
3、方法
Qwen2-VL系列包括三种不同规模的模型:Qwen2-VL-2B、Qwen2-VL-7B和Qwen2-VL-72B。所有模型均采用675M参数的Vision Transformer(ViT)作为视觉编码器,以确保计算负载与LLM的规模无关。以下是Qwen2-VL的关键改进:
3.1、Naive Dynamic Resolution
Qwen2-VL引入了动态分辨率支持,能够处理任意分辨率的图像,并将其动态转换为不同数量的视觉标记。为此,模型移除了ViT中原有的绝对位置嵌入,并引入了2D-RoPE来捕获图像的二维位置信息。在推理阶段,不同分辨率的图像被打包成一个序列,通过简单的MLP层将相邻的2×2标记压缩成一个标记,从而减少视觉标记的数量。
3.2、多模态旋转位置嵌入(M-RoPE)
M-RoPE通过将旋转嵌入分解为时间、高度和宽度三个分量,有效建模多模态输入的位置信息。对于文本输入,这些分量使用相同的位置ID,与1D-RoPE功能等效。对于图像,每个视觉标记的时间ID保持不变,而高度和宽度分量根据标记在图像中的位置分配不同的ID。对于视频,时间ID随每帧递增,高度和宽度分量的ID分配模式与图像相同。
3.3、统一的图像和视频理解
Qwen2-VL采用混合训练方案,同时处理图像和视频数据,确保模型在图像理解和视频理解方面的能力。为了保留尽可能多的视频信息,模型以每秒两帧的频率对视频进行采样,并结合3D卷积处理视频输入,使模型能够处理3D管而不是2D块,从而在不增加序列长度的情况下处理更多视频帧。
4、训练
Qwen2-VL采用三阶段训练方法:
第一阶段:专注于训练Vision Transformer(ViT)组件,使用大量的图像-文本对来增强语义理解。
第二阶段:解冻所有参数,并使用更广泛的数据进行训练,以实现更全面的学习。
第三阶段:锁定ViT参数,仅对LLM进行微调,使用指令数据集进行训练。
模型在预训练阶段接触了约6000亿个标记,包括图像-文本对、OCR数据、图像-文本文章、视觉问答数据集、视频对话和图像知识数据集。数据来源包括清理后的网页、开源数据集和合成数据。预训练阶段主要关注图像-文本关系学习、图像中文本内容识别和图像分类任务。第二阶段预训练引入了额外的8000亿个标记的图像相关数据,进一步提升了模型对视觉和文本信息交互的理解能力。在指令微调阶段,模型使用ChatML格式构建指令跟随数据,包括纯文本对话数据和多模态对话数据。
5、实验
Qwen2-VL在多个视觉基准测试中表现出色,特别是在文档理解任务中。以下是关键的实验结果和分析:
多语言文本识别与理解
Qwen2-VL在多语言OCR方面超越了所有现有的通用LVLMs,包括GPT-4o和Claude 3.5 Sonnet等。模型不仅在公共可用的MTVQA数据集上表现出色,还在内部基准测试中超越了GPT-4o,支持多种欧洲语言、日语、韩语、阿拉伯语、越南语等。
数学推理
Qwen2-VL在MathVista和MathVision数据集上进行了数学推理能力的评估。MathVista包含6141个数学和视觉任务的多样化示例,而MathVision包含3040个嵌入视觉上下文中的数学问题。Qwen2-VL在MathVista上取得了70.5的优异成绩,并在MathVision上设定了新的开源基准,得分为25.9。
视觉定位任务
Qwen2-VL在RefCOCO、RefCOCO+和RefCOCOg数据集上进行了评估,这些数据集专注于科学图表中的文本选择问题。Qwen2-VL在这些任务中取得了顶尖的通用模型结果,尤其是在高分辨率图像细节感知方面表现出色。
视频理解
Qwen2-VL在多个视频理解任务上进行了评估,包括MVBench、PerceptionTest和EgoSchema等。Qwen2-VL-72B在这些基准测试中表现最佳,尤其是在处理长达一小时的视频时,模型展现了强大的能力。
视觉代理能力
Qwen2-VL在功能调用和复杂任务完成方面表现出色。在UI操作、机器人控制、卡牌游戏和视觉语言导航等任务中,Qwen2-VL展现了强大的能力,特别是在需要多步操作的任务中。
7、消融研究
动态分辨率
动态分辨率方法在不同基准测试中表现优于固定分辨率方法,同时平均消耗的标记数量更少。通过调整图像大小,模型在不同分辨率下表现出色,尤其是在InfoVQA、HallusionBench和OCRBench等感知任务中。
M-RoPE
M-RoPE在多种下游任务中表现优于1D-RoPE,尤其是在视频基准测试中。M-RoPE还使模型在推理长度超出训练最大长度时表现出色,即使在训练时限制了最大标记数量,模型在推理时也能处理长达80K标记的视频。
模型规模扩展
随着模型规模的增加,模型在多种能力维度上的表现一致提升,尤其是在数学能力方面。模型在OCR相关任务中表现出色,即使在较小规模的模型中也能取得较好的成绩。
8、结论
Qwen2-VL系列是功能强大的大型视觉语言模型,包括2B、8B和72B参数的模型。Qwen2-VL在多种多模态场景中与GPT-4o和Claude3.5-Sonnet等顶级模型表现相当,超越了其他所有开源的LVLMs。Qwen2-VL引入了动态分辨率和M-RoPE,能够理解超过20分钟的视频,并支持多语言文本理解。Qwen2-VL模型权重已公开,以便研究人员和开发人员在各种应用和研究项目中充分利用其潜力。
相关文章:
Qwen2-VL:增强视觉语言模型对世界任意分辨率的感知能力
1、摘要 Qwen2-VL系列是Qwen-VL模型的高级升级版本,它重新定义了传统视觉处理中预设分辨率的方法。Qwen2-VL引入了Naive Dynamic Resolution机制,使模型能够动态处理不同分辨率的图像,并将其转换为不同数量的视觉标记。这种机制使模型能够生…...
原神新版本角色牌上新 七圣召唤增添新玩法
在原神这款游戏中,5.4版本更新后七圣召唤玩法将新增2张角色牌和对应天赋牌、3张行动牌,并进行部分卡牌平衡调整,今天就给大家介绍一下。 一、角色牌【基尼奇】 1.元素战技:选一个我方角色,自身附属钩索链接并进入夜魂…...
Spring 中的 事务 隔离级别以及传播行为
1. 事务隔离级别(Isolation Level) 事务隔离级别定义了事务在并发环境下的行为,主要解决以下问题: 脏读(Dirty Read):一个事务读取了另一个未提交事务的数据。 不可重复读(Non-Re…...
为多个GitHub账户配置SSH密钥
背景 当需要同时使用多个GitHub账户(例如工作和个人账户)时,默认的SSH配置可能导致冲突。本文介绍如何通过生成不同的SSH密钥对并配置SSH客户端来管理多个账户。 操作步骤 生成SSH密钥对 为每个GitHub账户生成独立的密钥对,并指…...
OSPF基础(3):区域划分
OSPF的区域划分 1、区域产生背景 路由器在同一个区域中泛洪LSA。为了确保每台路由器都拥有对网络拓扑的一致认知,LSDB需要在区域内进行同步。OSPF域如果仅有一个区域,随着网络规模越来越大,OSPF路由器的数量越来越多,这将导致诸…...
android studio无痛入门
在Android Studio中创建和管理项目主要涉及以下几个步骤: 1. 创建新项目 打开Android Studio,点击“Start a new Android Studio project”或者“File” > “New” > “New Project”。 选择一个模板,例如“Empty Activity”࿰…...
免费windows pdf编辑工具Epdf
Epdf(完全免费) 作者:不染心 时间:2025/2/6 Github: https://github.com/dog-tired/Epdf Epdf Epdf 是一款使用 Rust 编写的 PDF 编辑器,目前仍在开发中。它提供了一系列实用的命令行选项,方便用户对 PDF …...
CNN 卷积神经网络处理图片任务 | PyTorch 深度学习实战
前一篇文章,学习率调整策略 | PyTorch 深度学习实战 本系列文章 GitHub Repo: https://github.com/hailiang-wang/pytorch-get-started CNN 卷积神经网络 CNN什么是卷积工作原理深度学习的卷积运算提取特征不同特征核的效果比较卷积核感受野共享权重池化 示例源码 …...
LeetCode 128: 最长连续序列
LeetCode 128: 最长连续序列 题目: 给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。 请你设计并实现时间复杂度为 O(n) 的算法解决此问题。 示例 1: 输入:nums […...
大语言模型需要的可观测性数据的关联方式
可观测性数据的关联方式及其优缺点 随着现代分布式架构和微服务的普及,可观测性(Observability)已经成为确保系统健康、排查故障、优化性能的重要组成部分。有效的可观测性数据关联方式不仅能够帮助我们实时监控系统的运行状态,还…...
【韩顺平linux】部分上课笔记整理
整理一下一些韩顺平老师上课时候的笔记 课程:【小白入门 通俗易懂】韩顺平 一周学会Linux linux环境:使用阿里云服务器 笔记参考 : [学习笔记]2021韩顺平一周学会Linux 一、自定义函数 基本语法 应用实例: 计算两个参数的和…...
python调用pc的语音借口
先安装: pip install pyttsx3再运行: import pyttsx3 # 初始化语音引擎 def init_engine():engine pyttsx3.init()# 设置中文语音voices engine.getProperty(voices)for voice in voices:if chinese in voice.name.lower():engine.setProperty(voice…...
【Golang学习之旅】Golang 内存管理与 GC 机制详解
文章目录 前言1. Go 语言的内存管理的简述2. Golang 内存管理机制2.1 Go 语言的内存分配模型2.2 Go 变量分配示例2.3 Go 语言的内存池(sync.Pool) 3. Golang 垃圾回收(GC)机制详解3.1 Go 的 GC 机制概述3.2 GC 触发条件3.3 手动触…...
Kamailio 各个功能的共同点、不同点及应用场景
Kamailio 各个功能的共同点、不同点及应用场景: 功能共同点不同点应用场景SIP 注册服务器处理用户注册请求,维护用户位置信息专注于用户设备的注册和注销,维护设备位置企业内部通信系统,确保用户设备的动态注册和注销SIP 代理服务…...
Linux(CentOS)安装 Nginx
CentOS版本:CentOS 7 Nginx版本:1.24.0 两种安装方式: 一、通过 yum 安装,最简单,一键安装,全程无忧。 二、通过编译源码包安装,需具备配置相关操作。 最后附:设置 Nginx 服务开…...
string 与 wstring 的字符编码
测试代码: #include<stdio.h> #include<stdlib.h> #include<windows.h> #include <locale.h> #include <string> #include <iostream>// 函数用于计算UTF-8字符串中的字符数 int utf8_strlen(const char* str) {int len = 0;for (; *s…...
C#面试常考随笔14: 方法如何传递不定数量的参数?params关键字怎么使用?
使用params关键字,就可以像python传参那样传递多个参数,类似元组 主要作用 params 关键字的主要作用是让方法可以接受不定数量的参数,而不需要在调用方法时显式地创建数组来传递多个参数。这为方法调用提供了更大的灵活性,使得代…...
开发一款类似《王者荣耀》的游戏是一个复杂的系统工程,涉及多个领域的知识和技术。以下是从多个角度详细阐述如何开发的思维。
一、明确游戏定位与核心玩法 游戏类型 MOBA(Multiplayer Online Battle Arena):强调团队合作、策略性和即时战斗。确定游戏模式(如5v5、3v3等)和地图设计。 核心玩法 角色设计:英雄技能、属性、成长曲线。…...
VMware下Linux和macOS安装VSCode一些总结
本文介绍VMware下Linux和macOS安装VSCode的一些内容,包括VSCode编译器显示中文以及安装.NET环境和Python环境。 VSCode下载地址:Download Visual Studio Code - Mac, Linux, Windows 一.Linux系统下 1.安装中文包 按 Ctrl Shift P 打开命令面板。输…...
aspectFill(填充目标区域的同时保持图像的原有宽高比 (aspect ratio)图像不会被拉伸或压缩变形
“aspectFill” 是一个常用于图像和视频处理的术语,尤其是在用户界面 (UI) 设计和图形编程领域。它描述的是一种图像缩放或调整大小的方式,旨在填充目标区域的同时保持图像的原有宽高比 (aspect ratio)。 更详细的解释: Aspect Ratio (宽高比): 指的是图…...
云计算——弹性云计算器(ECS)
弹性云服务器:ECS 概述 云计算重构了ICT系统,云计算平台厂商推出使得厂家能够主要关注应用管理而非平台管理的云平台,包含如下主要概念。 ECS(Elastic Cloud Server):即弹性云服务器,是云计算…...
DockerHub与私有镜像仓库在容器化中的应用与管理
哈喽,大家好,我是左手python! Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库,用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...
智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql
智慧工地管理云平台系统,智慧工地全套源码,java版智慧工地源码,支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求,提供“平台网络终端”的整体解决方案,提供劳务管理、视频管理、智能监测、绿色施工、安全管…...
linux 错误码总结
1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...
.Net Framework 4/C# 关键字(非常用,持续更新...)
一、is 关键字 is 关键字用于检查对象是否于给定类型兼容,如果兼容将返回 true,如果不兼容则返回 false,在进行类型转换前,可以先使用 is 关键字判断对象是否与指定类型兼容,如果兼容才进行转换,这样的转换是安全的。 例如有:首先创建一个字符串对象,然后将字符串对象隐…...
MySQL 知识小结(一)
一、my.cnf配置详解 我们知道安装MySQL有两种方式来安装咱们的MySQL数据库,分别是二进制安装编译数据库或者使用三方yum来进行安装,第三方yum的安装相对于二进制压缩包的安装更快捷,但是文件存放起来数据比较冗余,用二进制能够更好管理咱们M…...
Git 3天2K星标:Datawhale 的 Happy-LLM 项目介绍(附教程)
引言 在人工智能飞速发展的今天,大语言模型(Large Language Models, LLMs)已成为技术领域的焦点。从智能写作到代码生成,LLM 的应用场景不断扩展,深刻改变了我们的工作和生活方式。然而,理解这些模型的内部…...
人工智能--安全大模型训练计划:基于Fine-tuning + LLM Agent
安全大模型训练计划:基于Fine-tuning LLM Agent 1. 构建高质量安全数据集 目标:为安全大模型创建高质量、去偏、符合伦理的训练数据集,涵盖安全相关任务(如有害内容检测、隐私保护、道德推理等)。 1.1 数据收集 描…...
Python 训练营打卡 Day 47
注意力热力图可视化 在day 46代码的基础上,对比不同卷积层热力图可视化的结果 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pypl…...
TCP/IP 网络编程 | 服务端 客户端的封装
设计模式 文章目录 设计模式一、socket.h 接口(interface)二、socket.cpp 实现(implementation)三、server.cpp 使用封装(main 函数)四、client.cpp 使用封装(main 函数)五、退出方法…...
