Qwen2-VL 技术报告阅读笔记
Date:2024.10.03 【paper】
在引言部分文章就提到,大型视觉-语言模型(LVLMs),普遍采用“视觉编码器(visual encoder)→跨模态连接器(cross-modal connector)→LLM”的通用架构
随后采用,词元预测算法,即[[Qwen-VL 技术报告阅读笔记#补充]]中的算法,进行下一词元预测
影响LVLMs能力的关键因素:
- 更大的模型架构
- 更高分辨率的图像
- 专家混合模型
- 模型集成
- 更精巧的视觉-文本模态间连接器
原有LVLMs的缺陷:
- 采用静态、冻结的Clip风格的视觉编码器:该模型的视觉表达可能并不足够
- 固定图像的输入尺寸:会导致模型丢失大量细节
- 视频视作独立模态:一维位置编码限制建模时空的能力
- 数据量和参数量: 稀缺
Qwen2-VL:
- ViT:引入2D旋转位置编码(2D RoPE) 前文提到的"Naive Dynamic Resolution"机制,将不同尺寸的图片处理为不同长度的视觉序列
- 不同scale的模型
- 针对视频优化:多模态旋转位置编码(MRoPE):使用独立的组件来表示时间和空间信息,促进文本、图像和视频中位置信息的有效融合;采用统一的范式来处理图像和视频,从而增强模型的视觉感知能力
Qwen2-VL
Qwen2-VL 家族,后续Qwen2.5-VL[[Qwen2.5-VL 技术报告阅读笔记]]基本延续改设计
| 模型名称 | 视觉编码器 | LLM | 模型描述 |
|---|---|---|---|
| Qwen2-VL-2B | 6.75亿 | 15亿 | 最高效的模型,专为端侧运行设计。在资源有限的场景下,能为大多数任务提供足够的性能。 |
| Qwen2-VL-7B | 6.75亿 | 76亿 | 在成本效益方面性能最优的模型,其文本识别和视频理解能力得到显著升级。它在广泛的视觉任务上表现出色。 |
| Qwen2-VL-72B | 6.75亿 | 720亿 | 能力最强的模型,在视觉推理、指令遵循、决策和**智能体(agent)**能力方面得到进一步提升。它能在大多数复杂任务上提供最佳性能。 |
模型结构
![![[Pasted image 20250822101807.png]]](https://i-blog.csdnimg.cn/direct/046bba3264c7412095630a5f5d9b8ba3.png)
延续Qwen-VL[[Qwen-VL 技术报告阅读笔记]]的技术框架,也是ViT+LLM的形式,其中ViT约6.75亿参数,LLM选择Qwen2
朴素动态分辨率
目的:使模型可以处理任意分辨率的图像,并将其转化为动态大小的视觉词元(据文章说,在Qwen-VL的plus和max版本中已经初步实现)
实现方式:修改ViT,移除原先的绝对位置编码,采用2D-RoPE来编码图像的位置信息。
- 推理阶段:不同分辨率的图像被打包为一个单一序列,并通过控制打包长度,限制显存使用
- 在ViT之后,添加一个简单的MLP:将相邻的 2 × 2 2\times 2 2×2的词元压缩为一个单一词元,依旧为了节省显存;同时在压缩后的视觉词元的序列开头和结尾处,分别插入特殊词元
<|vision_start|>和<|vision_end|>;文章举例,假设分辨率为224x224的图片,patch_size=14,最终在进入LLM之前被压缩为66个token
在Qwen2.5VL中依旧延续了这种做法,但其分割方式同Qwen2VL好似也有不同,在两个特殊词元中存在大量的<|image_pad|>字段,因为其具备输入原始分辨率的能力(初步猜测)
多模态旋转位置编码(M-RoPE)
LLM中常规的1D-RoPE仅编码一维位置信息,M-RoPE可以同时建模多模态输入的位置信息
实现方式:M-RoPE将原始的旋转编码分解为三个组件来实现:时间、高度和宽度
- 对于文本输入:组件使用相同的位置ID,即功能上等价于1D-MoPE
- 对于图像输入:每个Vison token(前文提到具体怎么做的),固定时间ID不变,高度和宽度根据token在图片中的位置分配不同的ID
- 对于视频输入:其等价于一系列具备时间关联的帧序列,因此时间ID随每一帧递增,高度和宽度的编码方式遵循图像输入
如果输入包含多个模态,每种模态的位置ID初始化为上一个模态的最大位置ID+1![![[Pasted image 20250822133510.png]]](https://i-blog.csdnimg.cn/direct/f3a38782c33345d7b8ac83eac1ea5c60.png)
文章中存在一句不太理解的话:
M-RoPE 不仅增强了位置(positional)信息的建模能力,还降低了图像和视频中位置 ID 的重要性,使模型在推理过程中能够外推至更长的序列。
统一的图像和视频理解
Qwen2-VL采用图像和视频数据混合的训练方案
- 视频以每秒两帧进行采样
- 单张图片视作两个相同的帧
- 集成深度为2的3D卷积处理视频输入:使模型可以处理3D tube而不是仅处理2D patch,不增加序列长度的情况下,可以处理更多的视频帧【Paper】
训练
延续Qwen-VL的三阶段训练方法[[Qwen-VL 技术报告阅读笔记#训练]]
初始预训练阶段:
- 6000亿个词元的语料库
- Qwen2作为LLM,视觉编码器采用==源于DFN的ViT==,同时将原有的位置编码用2D-RoPE替代
- 目的:侧重于学习图文关系、通过OCR识别图像中的文本内容以及图片分类任务(基础预训练)
第二预训练阶段:
- 8000亿个与图像相关的数据词元,有视觉问答数据集,和多任务数据集等
- 目的:细致化视觉-文本之间的相互作用;提升图像查询能力;提升多任务能力;维持语言能力
总结:在预训练阶段,共采用了1.4万亿个词元(文本、图像),训练过程中,仅对文本词元进行监督
思考:此处说仅对文本词元进行监督,个人理解是对LLM的最终输出进行监督,因为图片的特征最终也是以文本相同的形式送入LLM之中
指令微调阶段(instruction fine-tuning):
- 数据构成:纯文本对话、多模态对话(图像问答,文档解析,视频理解,视频流对话和agent-base交互
- 数据格式:采用ChatML格式,详见下方描述
数据格式
同Qwen-VL一致,也采用特殊的词元区分视觉和文本输入,具体而言在图像特征的序列的开头和结尾分别插入:<|vision_start|> 和 <|vision_end|> 词元,标明图像内容的边界
说明:依旧是仅对蓝色标注的部分进行监督
对话数据:![![[Pasted image 20250822152311.png]]](https://i-blog.csdnimg.cn/direct/494f941c6b324e209f2e2a665dab0d23.png)
每次交互都由两个特殊词元(<|im_start|> 和 <|im_end|>)标记,促进对话终止
Vision Grounding:![![[Pasted image 20250822153116.png]]](https://i-blog.csdnimg.cn/direct/f49fdba6abdf4ac2beebbfa0c8647a8c.png)
Bounding box统一归一化到[0,1000)的范围内,并表示为:
( X t o p l e f t , Y t o p l e f t ) , ( X b o t t o m r i g h t , Y b o t t o m r i g h t ) ) (X_{top left}, Y_{top left}), (X_{bottom right}, Y_{bottom right})) (Xtopleft,Ytopleft),(Xbottomright,Ybottomright))
使用 <|box_start|> 和 <|box_end|> 词元来标记bbox文本;<|object_ref_start|> 和 <|object_ref_end|> 词元来指示bbox的描述(如果在小模型算法中即为其Classes)
Visual Agent:终极目标![![[Pasted image 20250822153241.png]]](https://i-blog.csdnimg.cn/direct/7b6cedbea372468e8c9b8d4c657d5a0c.png)
思路:将 UI 操作、机器人控制、游戏、导航等任务统一视为序列决策问题,从而使模型能够通过多步动作执行完成复杂任务
流程:
- 定义任务规则
- 确定允许的动作集合
- 设定函数调用的关键词模式
- 任务执行循环
- 根据当前观测信息进行分析、推理与规划
- 选择合适的动作并执行
- 与环境交互,获取新的观测信息
- 迭代执行
- 重复上述过程,直到任务完成
更多推荐



所有评论(0)