多模态模型中的动态分辨率总结
在最近的多模态模型中,均表明动态分辨率策略是提升模型性能的要点(这里的动态分辨率不同于传统ai中的多尺度训练,多尺度训练是为了提升模型泛化能力
),动态分辨率可以使模型能针对不同的数据场景,与固定分辨率相对立,避免了将高清数据resize到低分辨率,从而丢失大量信息,导致在特定任务下效果下降(如InfoVQA、HallusionBench和OCRBench等任务,具体与数据任务相关)。为此对InternVL 1.5、LLaVA-OneVision、ORYX MLLM、qwen2-vl等论文中提到到动态分辨率规则进行对比分析。总体看来基于原生分辨率效果最佳,动态分辨率的目光应该是在平衡计算性能与训练效率(qwen2-vl的效率最佳),让模型在单图、多图、视频输入环境下输入token变化小保存性能与效率的平衡;而不是切片策略。
1 InternVL 1.5
公开时间:2024年4月29日
论文翻译:https://hpg123.blog.csdn.net/article/details/142696921
该模型是针对于图文的多模态模型,故动态分辨率策略只针对与图片。
1.1 策略设计
InternVL 1.5中指出专有的商业模型通常采用动态分辨率的方法,保留原始的纵横比,以促进详细的场景和文档的理解。相比之下,开源模型通常使用固定分辨率的进行训练,如336×336和448×448,这导致了相对于商业同行的相当大的能力差距。
,故此,其设计了类似于GPT-4V [87]的“低”或“高”模式,InternVL1.5使用户选择最佳图像分辨率,如使用低分辨率场景主题描述和高分辨率(4k分辨率)文档理解,有效地平衡计算效率和细节保存。
具体实现方式:
1、Dynamic Aspect Ratio Matching. 分辨率比例匹配,最多将图片分为12个patch,根据长宽比设计了35中切片模式
2、Image Division & Thumbnail. 分配率对齐,根据切片模式对齐宽高为448的倍数进行切片,然后附加一个全局缩略图。
3、token规则:一个448x448的图片对应256个token,训练期间最多13个分块(12个patch+1个缩略图)| 3328个token,推理期间最多41个分块(40个patch+1个缩略图)| 10,496个token。这里可以发现,InternVit对于448的输入,输出为16,总共进行了28x28的下采样
论文原文
Dynamic Aspect Ratio Matching. 如图4所示,为了在处理过程中保持自然的长宽比,我们从预定义的长宽比集中动态地匹配最佳长宽比。由于有限的计算资源,我们在训练期间最多允许12个patch
。因此,这个集合包括由1到12个切片组成的所有35种可能的高宽比组合
,例如{1:1、1:2、2:1、3:1、…,2:6}。在匹配过程中,我们对每个输入图像计算其长宽比,并通过测量绝对差将其与35个预先预定义的长宽比进行比较。如果多个预定义的高宽比匹配(例如,1:1和2:2),我们将对不超过输入图像面积两倍的图像进行优先排序,从而防止低分辨率图像的过度放大。
Image Division & Thumbnail. 一旦确定了适当的高宽比,图像就会被调整到相应的分辨率。例如,一个800×1300的图像将被调整为896×1344。调整后的图像被分成448×448像素的切片。在切片旁边,我们还包括了整个图像的缩略图来捕获全局上下文。这个缩略图被缩小到448×448,帮助模型理解整个场景。因此,在训练期间,视觉令牌的数量从256到3328不等
。在测试期间,切片的数量最多可以增加到40个,从而产生10,496个视觉token
。
1.2 实施效果
作者发现,并非所有的任务都需要高分辨率。具体来说,与OCR相关的任务,如DocVQA、InfoVQA、TextVQA和OCRBench,都受益于提高的分辨率。然而,像AI2D、MMMU、MMBench和HallusionBench等任务在较高分辨率下表现出性能略有下降。总的来说,InternVL1.5对动态分辨率具有很强的鲁棒性。它可以根据每个任务的具体需求来调整分辨率,在高分辨率有益的地方确保最佳性能,在不有利的地方节约资源。
这里并没有表明是自动甄别任务,动态resize图片,应该是手动针对任务,根据当下的效果表选择patch数进行推理。
2、LLaVA-OneVision
公开时间:2024年9月14日
论文翻译:https://hpg123.blog.csdn.net/article/details/142724936
2.1 策略设计
基于AnyRes策略进行动态分辨率设计,图b为原始策略,图a为基于插值的AnyRes策略,图a的策略效果更佳。同时需要定义一组空间配置(a,b)来指定裁剪图像的各种方法,从而容纳不同分辨率和长径比的图像,这与InternVL 1.5的策略类似
。
基于token阈值动态选择原始分辨率或AnyRes策略,这里与InternVL 1.5恒定选择AnyRes策略不一样
对于宽度为a、高度为b的AnyRes,它将图像分成一个a*b个切片,每个切片都具有相同的分辨率形状(a,b)。假设每种crop有T个标记,视觉标记的总数是L =(a×b + 1)×T,其中基本图像在被输入视觉编码器之前被调整大小。我们考虑一个阈值τ,并减少切片的token数,如果需要,使用双线性插值。
-
Single-image
: 我们考虑一个大的最大空间配置(a,b)的单图像表示,以保持原始图像的分辨率而不调整大小
。此外,我们有目的地为每幅图像分配大量的视觉标记,从而得到一个长序列来有效地表示视觉信号。每个图片占729个token,根据patch数调整总token大小。
-
Multi-image
: 只考虑图像的原始分辨率,并将其输入视觉编码器以获得特征图,消除了对高分辨率图像的多次裁剪,从而节省了计算资源[68]。每个图片占729个token,总token大小由图像数量确定。
-
Video
: 视频的每一帧都被调整到一个基本分辨率,并由视觉编码器处理以生成特征地图。采用双线性插值法来减少token的数量,允许通过减少每一帧的token来考虑更多的帧数。每帧图像最少196个token,总token大小由帧数确定。
这里的729个token,是由于SigLIP对于384x384的输入,输出为27x27,进行了14的下采样。
2.2 实施效果
在LLaVA-OneVision中并没有提供动态分辨率下,各种任务的效果。其所反映的是高质量数据训练对于效果的提升最有效。
以下图表中反应的数据可以看出LLaVA-OneVision是一个极具竞争力的模型。主要是该论文的核心是分享了一个OneVision的架构设计,以统一对单图、多图及视频任务的训练框架(token编码规则),将单图训练的能力迁移到多图与视频中
即对图像进行切片,形成序列。同时分享了一种动态分辨率设计规则,以提供更好的视觉表示(兼容图像视频)即对图像、视频采用不同的分辨率规则,以控制token的总数;最后介绍了训练数据的收集步骤与训练步骤,其中重点表明高质量知识是lmm中最为重要的环境。
3、ORYX MLLM
发布时间:2024年9月19
翻译地址:https://hpg123.blog.csdn.net/article/details/142691856 论文中3.1节对于动态分辨率描述较为详细,建议精读
3.1 策略设计
oryx设计一个动态压缩模块,支持1倍到16倍压缩的视觉令牌的请求(主要是针对单图、多图 视频的压缩策略,与分辨率无关
)。这些设计特性使Oryx能够适应极长的视觉上下文,如视频,具有较低的分辨率和高压缩,同时保持高识别精度的任务,如文档理解与本地分辨率和无压缩。对视频数据每秒采样1帧,并将最大帧数设置为64帧。如果数字超过上界,我们就对所有帧之间的帧进行均匀采样。最大序列长度设置为16384
1、oryx基于最大输入size构建嵌入P,针对不同的分辨率输入对P进行resize操作,然后将其与输入x进行叠加。
2、对于视觉输入,等间隔编码效果过低;oryx提出动态压缩机制,纯图像不做压缩(或压缩率为1),短视频或多图压缩率为4,长视频压缩率为16.
3、为了降低压缩机制的影响,基于交叉注意操作连通高分辨率特征图的Q与低分辨率特征图K、V进行关联。Q与KV的shape不一致,基于网格选择使Q与KV的shap一致
3.2 实施效果
这里只是对比了各种分辨率下的效果,表明原始分辨率(非固定size)效果最佳,放大图像对效果影响不大,并没有oryx动态压缩模块的效果论证。
作者缩放到768像素、1024像素、原始分辨率的图像,2x原始分辨率的图像。结果表明,原始分辨率始终优于固定大小,在DocVQA和OCRBench数据集中,性能差距更加明显。这些数据集需要视觉编码器来处理更自然的图像输入,以理解文本。此外,进一步扩大分辨率并不会在大多数基准测试中产生显著的收益。右图显示了MMBench(Liu et al.,2023a)和OCRBench(202al.,2023b)在不同视觉输入分辨率下的性能趋势。研究结果表明,虽然更大的图像通常会带来更好的性能,但保持原生分辨率是一种简单而有效的优化性能的策略。这里主要论证了原始分辨率推理的有效性,表明训练模型应该基于原始数据分辨率实现
4、qwen2-vl
公开时间:2024年10月3日
翻译地址:https://hpg123.blog.csdn.net/article/details/142724901
4.1 策略设计
在Qwen2-VL中动态分辨率策略被称为Naive Dynamic Resolution,其可以处理任何分辨率的图像,动态地将它们转换为可变数量的视觉令牌。为了支持这一特性,我们修改了ViT,删除了原始的绝对位置嵌入,引入2D-RoPE
(Su et al.,2024;Su,2021)来捕获图像的二维位置信息。在推理阶段,不同分辨率的图像被打包成一个单一的序列,并控制打包的长度以限制GPU内存的使用
。此外,减少每个图像的视觉标记,一个简单的MLP层使用后对2×2的token下采样为1个token
,与特殊<|vision_star|><|vision_end|>标记放置在开始和结束的压缩视觉标记。因此,一个分辨率为224×224的图像,使用patch_size=14用ViT编码,在进入LLM之前将被压缩到66个令牌。224x224 /14(patch size) /2 (2x2下采样)=64 ;64+开始与结束token=66
Multimodal Rotary Position Embedding (M-RoPE) 另一个关键的架构改进是多模态旋转位置嵌入(M-RoPE)的创新。与传统的llm中的1D-RoPE仅限于编码一维位置信息不同,M-RoPE可以有效地对位置进行了建模多模态输入的信息。这是通过将原来的旋转嵌入分解为三个组成部分:时间、高度和宽度
。对于文本输入,这些组件使用相同的位置id,使M-RoPE在功能上等效于1D-RoPE(Su,2024)
。在处理图像时,每个视觉标记的时间id保持不变,而根据标记在图像中的位置分配给高度和宽度组件
。对于被视为帧序列的视频,每一帧的时间ID都为增量,而高度和宽度组件遵循与图像相同的ID分配模式
。在模型的输入包含多个模态的情况下,每个模态的位置编号通过增加前一个模态的最大位置ID来初始化。M-RoPE的说明如图3所示。M-RoPE不仅增强了位置信息的建模,而且降低了图像和视频的位置id的值,使模型在推理过程中能够推断出更长的序列。
Unified Image and Video Understanding Qwen2-VL采用了一种结合图像和视频数据的混合训练方案,确保了熟练的图像理解和视频理解。为了尽可能完整地保存视频信息,以每秒两帧的速度采样每个视频
。此外,我们集成了3D卷积(Carrerira和Zisserman,2017)的两个深度来处理视频输入,允许模型处理3D切片而不是2D patch
,从而使其能够在不增加序列长度的情况下处理更多的视频帧(Arnab et al.,2021)。为了保持一致性,每幅图像都被视为两个相同的帧
。为了平衡长视频处理的计算需求和整体训练效率,我们动态调整每个视频帧的分辨率,将每个视频的token总数限制在16384个
。这种训练方法在模型理解长视频的能力和训练效率之间取得了平衡
4.2 实施效果
比较了动态分辨率和固定分辨率之间的性能。对于固定的分辨率,调整图像的大小,以确保输入到模型的图像token数量不变
,而不是调整到特定的高度和宽度,因为这将扭曲原始的长宽比。对于动态分辨率,我们只设置了min_pixels= 100×28×28和max_pixels= 16384×28×28
,图像token的数量主要取决于图像的原生分辨率。可以观察到,调整图像大小只会导致性能上的小扰动,证明了模型对不同图像大小的鲁棒性。此外,动态分辨率方法更有效。可以观察到,没有一个固定分辨率能在所有基准测试中达到最佳性能。相比之下,动态分辨率方法始终能达到顶级性能,同时平均消耗更少的token。
此外,仅仅增加图像大小并不总是能提高性能。更重要的是要为不同的图像选择合适的分辨率
。如图4所示,我们将小图像放大,以超过指定的min_pixels阈值。对升级图像的评估显示,在InfoVQA、HallusionBench和OCRBench等感知任务上的表现有所增强。我们将这些增益归因于增加的计算负荷。然而,对于OCRBench来说,min_pixels值过高会导致严重的性能下降。这可能是因为OCRBench包含大量非常小的图像,而过度放大导致这些图像偏离训练数据分布,使它们变成分布外的样本
。相比之下,增加min_pixels对MMMU基准测试的影响可以忽略不计。我们假设MMMU中的性能瓶颈与模型的性能瓶颈更相关推理能力,而不是图像分辨率。
5、整体结论
5.1 纵向对比
在InternVL 1.5与LLaVA-OneVision使用了类似的动态策略,即缩略图+动态patch,patch的尺寸是固定的。InternVL 1.5只是针对图片处理,而LLaVA-OneVision将多patch构成序列的思想应用到了多图数据下,同时为了在有限token下支持更多的数量|帧,提出可以降低图像size。这里并不是原始分辨率输入,而是根据长宽比动态切成多个小patch输入
oryx表明原始分辨率输入效果最佳,其动态分辨率是指单图、多图、视频帧之间的动态策略,不同类型输入的token压缩策略不一致;在训练时采用原生分辨率,在特征空间将不同尺寸统一resize到最大size
qwen2-vl也是表明原始分辨率输入效果最佳,其基于3d卷积的方式支持图像与视频(单个图片被视为2个相同的帧),以min_pixels= 100×28×28和max_pixels= 16384×28×28(最大支持16384个token输入)的size规则动态约束图像分辨率,同时对图像的宽高比进行一定的限制。
5.2 策略点评
多模态视频理解应该指出多图与视频,LLaVA-OneVision将单图切片构成序列以支持拓展到视频领域,该模式可以使模型能自然的从单图能力迁移到多图序列;oryx的动态size策略核心思路就是输入越多,那size就需要于越小,但输入数据在特征空间最终会resize到同一规模;qwen2-vl的策略则是以总输入token 大小的边界制约输入大小,该模式在模型理解长视频的能力和训练效率之间取得了平衡。
总体来看,基于原生分辨率效果最佳,oryx的动态size策略与qwen2-vl类似,但oryx会使进入llm的token长度变大(是P个倍数,如将224图像的token插值到4096图像的token数,该操作预计会增加训练量),而qwen2-vl会制约输入到llm的token长度的大小(即将大于或小于输入边界的数据进行resize),qwen2-vl的策略使得模型能支持更多的视频帧(786帧),并进行训练加速
。