1. Qwen-VL
整体结构
Qwen-VL包含三个组件:
-
1)LLM:
使用Qwen8B的预训练权重。
-
2)Visual Encoder:
使用 Openclip 的 ViT-bigG的预训练权重。将输入的图片resize到固定分辨率,然后将图像分为大小为14的patch来提取特征。
-
3)位置感知的视觉-语言适配器(Position-aware Vision-Language Adapter) :
为了缓解由长图像特征序列引起的效率问题,使用 Vision-Language Adapter 用于压缩图像特征。
该 Adapter 由一个单层的交叉注意力模块组成,模块参数随机初始化。模块使用一组可训练的向量(Embedding)作为查询向量,并以视觉编码器提取的图像特征作为交叉注意力操作的键。从而将视觉特征序列压缩为固定长度 256。
此外,考虑到位置信息对细粒度图像理解的重要性,二维绝对位置编码被纳入交叉注意力机制的 Quary – Key 对中,以减轻压缩过程中潜在的位置信息丢失。长度为 256 的压缩图像特征序列随后被输入到大型语言模型 (LLM) 中。

训练
使用三阶段的训练方式:
-
Stage 1) 预训练 (Pre-training)
在这一阶段,冻结 LLM,仅训练 Visual encoder 和 VL-adapter。
使用 大规模 (large-scale) 的 弱标签 (weakly labeled) 图文对。 输入图像调整为224×224。训练目标是最小化文本标记的交叉熵。
-
Stage 2) 多任务与训练 (Multi-taskPre-training)
解锁 LLM 并训练了整个模型,训练目标与预训练阶段相同。
在多任务预训练的第二阶段,引入高质量、细粒度 (fine-grained) 的视觉-语言标注数据,并使用更高的输入分辨率以及交错的图像文本数据。
将视觉编码器的输入分辨率从 224 × 224 提高到 448 × 448,从而减少图像下采样造成的信息损失。
同时训练了Qwen-VL的7个任务。
-
Stage 3) 监督微调 (Supervised Fine-tuning)
冻结 Visual encoder,训练 LLM 和 Adapter。
通过指令微调对 Qwen-VL 预训练模型进行了微调,以增强其遵循指令和对话的能力,从而得到交互式 Qwen-VL-Chat 模型。
1)多模态指令调优数据主要来自字幕数据或通过大语言模型自我指令生成的对话数据,这些数据通常只涉及单张图像的对话和推理,并且仅限于图像内容理解。
2)通过人工标注、模型生成和策略拼接构建了额外的一套对话数据,以将本地化和多图像理解能力引入 Qwen-VL 模型。
3)此外,在训练过程中混合了多模态和纯文本对话数据,以保证模型在对话能力上的通用性。

[1] 减轻压缩过程中潜在的位置信息丢失:我们在把上千个视觉 patch 压到 256 个 token 时,容易丢掉“空间结构”,比如模型知道有“一个人”和“一只狗”,但搞不清谁在左谁在右。所以它在 cross-attention 里给 Query / Key 都加了二维位置编码,让注意力在聚合信息时能感知 “这是图像左上/右下的 patch”。这样做的目的,就是在压缩特征的同时,尽量保住空间位置信息,减轻“压缩导致的位置信息丢失”。
[2] 弱标签:弱标签就是只知道整体配对对不对,但不知道细节怎么对。
典型例子是:从网页上爬下来的图片 + 一段说明文字(alt-text、标题、周围几句话)。有“图 + 文”这个配对,但文本可能不精准、可能只是大概描述、没有框出哪个物体、也没有区域级标注。对比一下“强标签”(strongly labeled):
- Strong:有 bbox、mask、region-caption、指代标注,告诉你“这句话描述的是图中这个区域”。
- Weak:只有 整张图对应一句话,粒度很粗。
[3] 细粒度:细粒度可以理解为:不只是“这张图在说什么”,而是“图里具体每个东西、每个关系、每块区域在说什么” 。
例如:
RefCOCO / RefCOCO+:一句话“the man in blue on the left”,要在图中框出具体那个人;
文本阅读/DocVQA:回答“第3行第2列单元格是什么内容?”
Visual grounding:给一段短语,要求在图中定位对应区域。
这些都属于“fine-grained VL data”:
- 有区域级标注 / 框 / 关系,
- 让模型学会“局部对齐”和“细节理解”,而不是只会看大概。
2. Qwen2-VL