Qwen-VL
基于预训练好的Qwen-7B
,支持text recognition、document QA、bounding box detection、multi-image interleaved conversations
等功能。
1.Qwen-VL
模型架构:
-
LLM
:使用预训练好的Qwen-7B
; -
Visual Encoder
:使用预训练好的Openclip ViT-bigG
; -
Vision-Language Adapter
:为了缓解长visual embedding
序列带来的效率问题,引入一个Adapter
,由随机初始化的单层交叉注意力模块构成。该模块使用一组可学习query
,将visual embedding
作为key
进行cross-attention
,最终获得的visual embedding
为长度。此外,考虑位置信息,将二维绝对位置编码加入query-key
中,减少压缩过程中丢失位置细节。
输入输出格式:
-
图像通过
visual encoder
和adapter
变为固定长度的序列后,使用special token
<img>, </img>
作为图像特征序列的开始和结束; -
对于
bounding box
,先归一化为[0, 1000)
,并转换为string
格式(X_topleft, Y_topleft), (X_bottomright, Y_bottomright)
,不需要增加额外的positional vocabulary
,并使用special token
<box>, </box>
进行区分; -
对于
bounding box
和对应的descriptive words or sentences
,使用special token
<ref>, </ref>
标记bounding box
参考的内容。
训练策略:
如下图所示,分为三个阶段进行训练:
每个阶段的详细训练配置则如下图所示:
预训练:
固定LLM
,训练vision encoder
和VL adapter
,使用清洗后的约1.4b中英文image-text pairs
数据;
多任务预训练:
所有模型一起训练,引入具有更大分辨率448x448的高质量细粒度VL annotation data
,和长度为2048的interleaved image-text data
(通过将相同任务的数据packing
)
监督微调:
固定vision encoder
,训练VL adapter
和LLM
,通过instruction finetune
增强指令遵循和对话能力,多模态指令微调数据通常来自于caption data
和self-instruction
的对话数据,但它通常只解决单图对话和推理,且仅限于图像内容理解。本文通过手动注释、模型生成、策略等构建额外的对话数据,包含定位信息和多图理解能力,在训练时则混合多模态以及纯文本对话数据,保证模型对话能力的普适性。
2.Qwen2-VL
Qwen2-VL
基于预训练好的Qwen2
,发布2B, 8B, 72B
三个版本,算法上主要引入了Naive Dynamic Resolution mechanism
,使得模型可以处理不同大小的图像,且集成Multimodal Rotary Position Embedding (M-RoPE)
,使得文本、图像、视频等位置信息可有效融合,并且统一处理文本、图像、视频的方式,增强了模型的视觉感知能力。
-
模型架构:
基本跟
Qwen-VL
一致,由vision encoder
和Qwen2 decoder
组成,vison encoder
可以同时处理图像和视频,主要创新点在于:
-
Naive Dynamic Resolution mechanism
:可以处理任意分辨率图像,即将图像转变为不定长的
visual token
,故去除了ViT
原始的绝对位置编码,改为二维RoPE
以捕捉位置信息;且为了减少每幅图像的visual token
长度,在ViT
后额外增加MLP
将相邻的 2x2visual token
进一步压缩为单token
,即分辨率为224x224的图像使用patch_size=14
的ViT
编码后变为66 token
(,2为
special token
<|vision_start|>, <|vision_end|>
) -
Multimodal Rotary Position Embedding (M-RoPE)
:如下所示,将原始的
rotary embedding
拆分为三部分:temporal, height, width
。对于text
,则所有维度使用相同的position IDs
,等价于1D-RoPE
;对于image
,则temporal
维度为常数,height, width
则使用图像的位置信息;对于video
,则temporal
根据时序关系增加。在输入包含多种模态的情况下,每种模态的位置编码使用前一模态的max position id + 1
来初始化。
-
Unified Image and Video Understanding
:Qwen2-VL
采用混合训练策略。为了尽可能保留视频信息,每个视频每秒两帧采样,并使用3D convolution with depth=2
去处理视频输入,可以在不增加序列长度的情况下处理更多的视频帧;为了一致性,则将图像视为两个相同的视频帧。此外,为了平衡长视频的计算复杂度和训练效率,动态调整视频帧的分辨率,每个视频的总token
限制为16384
。
-
训练策略:
如同
Qwen-VL
分为三阶段训练:1)在第一阶段,只训练ViT
部分,通过image-text pair
增加LLM
的语义理解和视觉对齐;2)在第二阶段,所有组件放开训练;3)在第三阶段,使用多模态对话数据,训练LLM
部分。
3.Qwen2.5-VL
根据transformers
库的PR
,Qwen2.5-VL
在Qwen2-VL
的基础上,可支持的最大分辨率到2048x2048,主要优化的点在于:
-
LLM
部分使用最新的Qwen2.5
; -
ViT
部分使用sliding window attention
去加速(并不是所有层,仅后面的部分层),并使用SwiGLU
和RMSNorm
; -
Naive Dynamic Resolution mechanism
新增temporal
维度; -
Multimodal Rotary Position Embedding (M-RoPE)
在temporal
维度结合绝对时间对齐,提高模型在任意帧率情况下的信息捕捉能力,以实现更好的视频理解。