qwen2-vl论文阅读笔记

GME-Qwen2-VL-2B-Instruct

GME-Qwen2-VL-2B-Instruct

PyTorch
文本生成
Qwen

基于GME-Qwen2-VL-2B-Instruct模型开发的本地图文匹配度计算工具,修复官方指令缺失导致的打分不准问题,支持单图片+多文本候选的匹配度打分,采用向量点积计算相似度,适配GPU推理(FP16精度优化),纯本地运行无网络依赖,是图文检索、内容匹配、视觉文本对齐场景的高效解决方案

论文
Qwen-vl: https://arxiv.org/pdf/2308.12966
qwen2-vl: https://arxiv.org/pdf/2409.12191

代码:https://github.com/QwenLM/Qwen2-VL
1、为什么要做这个研究(理论走向和目前缺陷) ?
Qwen-vl的图像输入需要固定分辨率,其实对很多需要理解细节的任务效果不友好,且不支持场视频裂解。
2、他们怎么做这个研究 (方法,尤其是与之前不同之处) ?
引入动态分辨率+多模态旋转位置编码(NaViT+ M-RoPE),以支持动态分辨率+原始高宽比+长视频输入的处理。特别的,在编码图像和文本输入时,用的是3D卷积同时处理两张临近图像,对于单张图像图像先复制一份再输入到3D卷积层提取特征,这样就实现了提取图像和视频特征的统一。
3、发现了什么(总结结果,补充和理论的关系)?
能够处理20min+的长视频输入,效果相对qwen-vl有大幅提升,碾压所有开源多模态模型,比肩GPT-4o和Claude3.5-Sonnet。

摘要

Qwen2-VL系列模型引入了朴素动态分辨率机制(Naive Dynamic Resolution mechanism),可以把不同分辨率的图像处理成不同数目的视觉token,进而实现更加准确和高效的表达,比较贴合人类的感知系统。此外,还引入了多模态旋转位置编码(M-RoPE),有利于将文本、图像及视频的位置信息进行高效的融合,在处理图像和视频输入的时候,采用统一的处理范式,增强了模型的视觉感知能力。此外,还做了一下不同模型大小+不同数据大小训练的实验,验证scaling law。最终Qwen2-VL-72B效果达到了GPT-4o和Claude3.5的水平。

1 引言

最近的多模态的研究工作基本遵循 视觉编码器提取特征->跨模态特征链接->LLM,以及next-token预测的范式,结合大规模的高质量的数据集,模型效果上已经有了较大的进步。此外,其他的技巧,如:更大的模型架构,更高的分辨率,模型集成(model ensembles),更复杂的连接器(连接图像和视觉token)也在增强多模态模型能力方面扮演了重要的角色。
但是,现在的模型一般都把图像输入限制在固定的尺寸,如224x224,这就导致对一些需要较多细节信息的任务有很大负面影响。
此外,现有的多模态模型多采用clip系列的预训练模型直接提特征,而不再微调,不禁让人怀疑用预训练的模型提的特征是否够用。本文为了增强模型对不同分辨率的图像的处理能力,采用了动态分辨率输入训练策略,并且在ViT中引入了2D的旋转位置编码,使得模型能够更好的捕获不同空间尺度的信息。
处理视频输入不像处理文本输入,文本数据是一维的,而视频数据是三维的(w,h,t),故引入了多模态旋转位置编码处理这种数据。
Qwen2-VL模型共有3个,即2B, 7B和72B, 如下图所示
[图片]

注:模型的命名是依据LLM的大小来命名的,不用考虑视觉编码器的大小。
本文贡献总结如下:

  • 对不同分辨率和高宽比的图像输入理解能力最强。
  • 支持对超长视频(20min+)的理解。
  • 更强的agent能力:对手机、机器人的操作更加丝滑。
  • 支持多语言。

2 方案

2.1 模型架构

模型架构下图所示,重新实现了一个6.75亿参数的ViT,以处理各种大小的图像和视频数据。
[图片]

朴素动态分辨率(Naive Dynamic Resolution):即NaViT(Native Resolution ViT)改了个名字,根据图像的大小和高宽比确定每张图像提取的token数目,而不是固定的resize到224x224提取固定的token数目。同时引入2D-RoPE位置编码。注意NaViT + 2D-RoPE可以支持任意大小任意高宽比的图像提取特征。这里为了避免每张图的token过多,会应用一个MLP在临近的4个patch token上,使其转化为1个token,使其总的token数目变为原来的1/4。这样的话,一个224x224输入的图像,patch_size=14,最终进入LLM的token数目就是 (224/14)*(224/14)/4 + 2个边角料token = 66.
多模态旋转位置编码(Multimodal Rotary Position Embedding (M-RoPE)):原始的RoPE只针对1维序列编码,针对视频输入现改为了3个维度,即时间,高度,宽度。对于一维的文本序列输入,时间,高度,和宽度编码是一样的,即退化为一维位置编码。对于二维的图像输入,时间维度是一样的,即退化为二维位置编码。对于视频输入,时间维度(帧ID)才会发挥作用。如果是同时有多个模态的输入,每个模态的位置会在前一个模态的最大位置基础上加一,比如第一张图的所有token的时间位置都是0,到第二张图时所有token的时间位置都是1。
统一图像与视频理解: 对于视频输入,每秒采样两帧,临近的两帧使用一个3D卷积先提取特征,再分patch进视觉编码器,而不是每张图单独分patch后进视觉编码器。对于图像输入,为了和视频输入保持一致,先把图像复制一份,再进3D卷积,之后再进视觉编码器。如果视频太长的话,会对其分辨率进行缩小,限制视频总的token数目最大为16384.

2.2 训练

同qwen-vl一样,三阶段训练策略,第一阶段仅放开视觉编码器(ViT)的参数在图像文本对数据上预训练训练,第二阶段全部参数放开(包含LLM)在大量数据上预训练,第三阶段冻结视觉编码器放开LLM在指令数据集上微调。
注:qwen-vl有一个单独的图像特征转换为LLM输入的投影器,而qwen-vl没有显式的投影器,而是直接把这个投影过程放到ViT中,ViT输出直接拼接就可以输入到LLM中了。

2.2.1 数据格式

chat-ML格式,图像的token会用<|vision_start|>和<|vision_end|>这两个token包住。
对话数据:如下图所示,蓝色内容部分是训练时需要监督的部分,每段对话用<|im_start|>和<|im_end|>包裹。
[图片]

视觉grounding: 为了赋予模型grounding能力,每个边界框需要归一化到[0, 1000),用左上和右下角点"(Xtop left, Ytop left), (Xbottom right, Ybottom right)"表示,并用特殊token <|box_start|>和<|box_end|>包裹,对于图像的描述内容用<|object_ref_start|>和<|object_ref_end|>包裹,下图所示。
[图片]

视觉Agent:数据形式如下
[图片]

2.3 多模态模型基础架构

阿里云基础设施

3 实验

3.1 和SOTA对比

超越大多开源和闭源模型。
[图片]

3.2 高质量结果

这里仅展示grounding任务效果,72B的模型在coco的grounding数据指标上已经超越的专有模型了,但是实际用下来效果还是不行,和专有模型仍有较大差距。
[图片]

3.3 消融实验

即NaViT + M-RoPE.

3.3.1 动态分辨率

动态分辨率输入效果最好且效率最高。
[图片]

3.3.2 M-RoPE

相对于1维的RoPE, 3维的RoPE效果很好。
[图片]

3.3.3 模型大小和训练数据多少的影响

总体上是模型越大、数据越多、效果越好。
[图片]

4 结论

Qwen2-VL共三种参数量2B,8B和72B,效果碾压所有开源多模态模型,比肩GPT-4o和Claude3.5-Sonnet。主要改进点就是引入NaViT+M-RoPE,支持动态分辨率+原始高宽比+长视频输入的理解。

您可能感兴趣的与本文相关的镜像

GME-Qwen2-VL-2B-Instruct

GME-Qwen2-VL-2B-Instruct

PyTorch
文本生成
Qwen

基于GME-Qwen2-VL-2B-Instruct模型开发的本地图文匹配度计算工具,修复官方指令缺失导致的打分不准问题,支持单图片+多文本候选的匹配度打分,采用向量点积计算相似度,适配GPU推理(FP16精度优化),纯本地运行无网络依赖,是图文检索、内容匹配、视觉文本对齐场景的高效解决方案

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值