通向高分辨率VLM (10): 原生动态分辨率

文摘   科技   2024-09-25 18:30   上海  

原生动态分辨率

在之前介绍的高分辨率VLM系列中,以InternVL为代表的绝大多数方法,都使用了固定输入分辨率的ViT预训练模型作为vision encoder。而实现高分辨率输入则多是采用了一个取巧的方案:对输入图像进行动态切图,使得图像切成很多固定大小的小块,再依此通过固定分辨率的vision encoder编码后,按顺序送入LLM decoder。

而其实动态分辨率的实现还有一种显然更naive的方法,即原生的分辨率直接输入,但原生分辨率输入可能会需要在位置编码上做更好的设计,而且训练起来上可能不如动态切图来的容易收敛。

然而,最近的一些工作展示了在多模态大模型中使用原生图像分辨率输入的可能性。具有代表性的是Mistral AI团队的Pixtral 12B和国产通义团队的Qwen2-VL。


Pixtral 12B

为了优化速度和性能,Mistral团队从头训练了一个新的400M参数量,使用2D-RoPE位置编码的ViT视觉编码器,原生支持可变图像大小:

无论什么尺寸的图像,将图像以其原始分辨率和纵横比通过ViT视觉编码器,按16x16的patch,提取每个图像patch的token。

然后将这些token展平,创建序列,在图像patch换行处添加[IMG BREAK]的特殊token,整张图像末尾添加[IMG END]。

[IMG BREAK]的token使模型能够区分具有相同token数量但不同宽高比的图像。

这种添加特殊token的方式,在本号之前推送的高分辨率VLM的几个工作中,也有不少体现,如:

通向高分辨率VLM (5): InternLM-XComposer-4KHD

通过这种方式,Pixtral可用于以高分辨率准确理解复杂的图表、图表和文档,同时对图标、剪贴画和方程式等小图像提供快速的推理速度。

值得注意的是,Pixtral的图像编码器是从头开始训练的(from scratch),让我们再看一下整个Pixtral的整体结构,来猜测一下训练方法。

与MLLM的基本范式相同,Pixtral有两个组件:视觉编码器(vision encoder,用于把图像转换为token)和LLM解码器(多模态transfromer decoder,在给定文本和图像序列的情况下预测下一个token即自回归输出)。Pixtral模型经过训练,可以预测图文交错数据(interleaved image-text)上的下一个文本token。这种架构允许Pixtral在其128K上下文窗口中处理任意大小的任意数量的图像。

可以猜测,很可能Pixtral也是利用了图文交错数据进行了自回归预训练,使用了新范式,从0训练出了这个全新的动态分辨率输入的视觉编码器。相似工作可参考OpenGVLab的开源工作:

超越CLIP,视觉大模型训练新范式?


Qwen2-VL

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

这个工作比Pixtral开源稍微早几周,可以认为这两个工作都是最近且同一时期的两个作品。

相比于Pixtral-12B在vision encoder中使用了比较经典的,2D RoPE位置编码的ViT。Qwen2-VL的另一个关键的架构增强是多模态旋转位置嵌入(M-ROPE)的创新。通过将原始的旋转嵌入分解为表示时间和空间(高度和宽度)信息的三个部分,M-ROPE使LLM能够同时捕获和整合1D文本、2D视觉和3D视频位置信息。相比于添加特殊token的方式,更加原生、彻底且优雅,还节约了token数目。不需要在换行时使用特殊token,仅仅在图像的开始和结束使用两个特殊token作为标记。最小的图片可能仅占4个token数目(patch大小为14,28*28的最小输入尺寸)。

M-RoPE不仅增强了位置信息的建模,还降低了图像和视频的位置ID值,使模型能够在推理过程中外推到更长的序列。

Qwen2-VL的视觉编码器使用DFN(DataFilterNet CLIP pretrain)的ViT进行初始化,并将位置编码替换为RoPE-2D。总计经过了2个阶段、1.4T token的预训练,再进行指令微调。有效地融合了跨模态的信息,甚至能够理解长度超过20分钟的视频。


[高分辨率VLM系列解读]

通向高分辨率VLM (1): Monkey

通向高分辨率VLM (2): LLaVA-UHD

通向高分辨率VLM (3): mPLUG-DocOwl 1.5

通向高分辨率VLM (4): Idefics2

通向高分辨率VLM (5): InternLM-XC-4KHD

通向高分辨率VLM (6): InternVL 1.5

通向高分辨率VLM (7): Ferret-V2

通向高分辨率VLM (8): DeepStack

通向高分辨率VLM (9): SliME


点击👇关注 “思源数据科学

👇点个“赞”和“在看”吧

思源数据科学
Towards AGI
 最新文章