Qwen-VL
模型架构
- Large Language Model: Qwen-VL adopts a large language model as its foundation component. The model
is initialized with pre-trained weights from Qwen-7B - Visual Encoder: The visual encoder of Qwen-VL uses the Vision Transformer (ViT) (Dosovitskiy et al., 2021)
architecture, initialized with pre-trained weights from Openclip’s ViT-bigG - 位置感知视觉语言适配器:为了缓解由长图像特征序列引起的效率问题,Qwen-VL引入了一个视觉语言适配器,用于压缩图像特征。该适配器包括一个单层交叉注意模块,随机初始化。
- 该模块使用一组可训练向量(嵌入)作为查询向量query,并将来自视觉编码器的图像特征作为交叉注意操作的Key。这种机制将视觉特征序列压缩到固定长度的256。
- 为了对细粒度图像进行理解并保留位置信息,Qwen-VL 在交叉注意机制的Query-Key对中加入了2D绝对位置编码,以减轻在压缩过程中可能出现的位置细节丢失。长度为256的压缩图像特征序列随后被送入大型语言模型进行处理。
Qwen-VL模型架构有三部分构成:
Vision Encoder:
采用Openclip’s ViT-bigG的预训练权重
Position-aware Vision-Language Adapter:
- 对图像特征进行压缩
- 一组可学习的query向量(KV),和图像特征(Q)做CrossAttention
- CrossAttention中采用2D绝对位置编码(QK),来减少潜在位置信息的损失
LLM:
Qwen-7B的基座模型
Input & Output
-
图像输入: and 分割图像,且支持多张图片
-
包围框输入和输出:为了增强模型对细粒度视觉理解和定位的能力,Qwen-VL的训练包括区域描述、问题和检测的数据形式。与涉及图像文本描述或问题的传统任务不同,这项任务需要模型准确理解并生成指定格式的区域描述。对于给定的边界框,应用规范化处理(在范围[0, 1000]内)并转换为指定的字符串格式:“(Xtopleft, Ytopleft),(Xbottomright, Ybottomright)”。该字符串被标记为文本,不需要额外的位置词汇。
-
为了区分检测字符串和常规文本字符串,在边界框字符串的开头和结尾分别添加两个特殊标记(< box >和< /box >)。
-
此外,为了适当将边界框与其对应的描述性词或句子进行关联,引入了另一组特殊标记(< ref>和< /ref>),标记边界框所指的内容。
三阶段 - Pre-training
- 数据:1.4 billion data remain, with 77.3% English (text) data and 22.7% Chinese (text) data,图像数据下采样224 x 224
- 模型:冻住LLM,只训练vision encoder和VL adapter
- 训练目标:对文本的token计算CE loss,Next Token Predict?
三阶段 - Multi-task Pre-training
- 数据:高质量的image-text pair标注数据,图像上采样448 x 448
- 模型:在ViT中融合了window attention 和 global attention,VIT和LLM一起训练(整个模型都训练)
- 训练目标:对文本的token计算CE loss,Next Token Predict?
三阶段 - Supervised Fine-tuning
- 数据:
- 人工标注的caption data or dialogue data
- mix multi-modal and pure text dialogue
- 350K的 instruction tuning data
- 模型:freeze the visual encoder and optimize the language model and adapter
module
训练目标
目前的理解:
输入(image,text)随机初始化一组可学习的Query和image做CrossAttention,学习图像中的信息,然后和文本一起拼接后送入LLM ,模型输出预测的文本向量,和原本输入的文本向量计算CE Loss
CogVLM
核心思想:
- CogVLM 核心的思想是“视觉优先”。之前的多模态模型通常都是将图像特征直接对齐到文本特征的输入空间去,且图像特征的编码器通常较小,图像可以看成是文本的“附庸”,效果有限。
- CogVLM在多模态模型中将视觉理解放在更优先的位置,使用5B参数的视觉编码器和6B参数的视觉专家模块,总共11B参数建模图像特征,甚至多于文本的7B参数量。
四个组件:
- ViT encoder:EVA2-CLIP-E
- MLP Adapter:两层MLP(SwiGLU),将ViT输入映射到与词嵌入文本特征相同的空间
- 适配任何预训练GPT-Style大语言模型:Vicuna-7B-V1.5
- 视觉专家模块:发现Shallow Alignment效果不好(如BLIP-2,LLaVA等),存在幻视问题,但是联合训练如会影响LLM的NLP能力(PALI,Qwen-VL,PALM-E),于是提出LLM每层添加一个视觉专家模块,由QKV矩阵和MLP组成,实现视觉-语言特征深度融合
预训练
- 数据集:image-text pair 开源数据集:LAION-2B and COYO-700M,数据清洗后还剩1.5B
构造40M visual grounding 数据集:利用spaCy提取名词,然后用GLIPv2(目标检测模型)进行预测,数据来源是LAION-115M
Stage 1
- 利用image captioning loss(自回归损失)来进行训练,1.5B数据,bs 8192,120k的iterations
得到的是base model(1.5B数据)
Stage 2
- 利用Referring Expression Comprehension( REC是根据图片的文本描述得到物体的边缘框坐标信息)和image captioning混合训练,bs 1024, 60k iterations, 最后30k把图片分辨率从224提升到490得到CogVLM Grounding Model
监督微调
- 数据:LLaVA-Instruct(人工校正),LRV-Instruction,LLaVAR和内部数据集,一共500k个VQA
- 训练:bs 640,lr 10-5, 8k steps,LLM的lr更小(10%)