摘要
我们介绍了CogVLM,这是一个强大的开源视觉语言基础模型。
与流行的
浅层对齐
方法(将图像特征映射到语言模型的输入空间)不同,CogVLM通过注意力和FFN层中的可训练视觉专家模块,弥合了冻结的预训练语言模型和图像编码器之间的差距。 结果,CogVLM实现了视觉语言特征的深度融合,而不会牺牲任何NLP任务的性能。 CogVLM-17B在17个经典跨模态基准测试中取得了最先进的性能,包括:1)图像字幕数据集:NoCaps、Flicker30k;2)VQA数据集:OKVQA、TextVQA、OCRVQA、ScienceQA;3)LVLM基准:MM-Vet、MMBench、SEED-Bench、LLaVABench、POPE、MMMU、MathVista;4)视觉定位数据集:RefCOCO、RefCOCO+、RefCOCOg、Visual7W。 代码和检查点可在https://github.com/THUDM/CogVLM获取。
图1:
CogVLM在广泛的多模态任务上的性能与现有方法的比较。
1
引言
图2:
CogVLM生成的样本。
图3:
多模态预训练阶段的MMLU分数和训练损失。
当使用LAION数据集直接训练VLM的语言部分时,模型在纯文本数据集MMLU上的分数迅速下降,在2500步时下降到24.9。
图4:
CogVLM的架构。
(a) 输入的示意图,其中图像由预训练的ViT处理并映射到与文本特征相同的空间。
(b) 语言模型中的Transformer模块。
图像特征具有不同的QKV矩阵和FFN。
只有
紫色
部分是可训练的。
视觉语言模型用途广泛且功能强大。
许多视觉和跨模态任务可以表述为下一个符元预测,例如图像字幕
(Agrawal等人,2019)
、视觉问答
(Antol等人,2015)
、视觉定位
(Yu等人,2016)
甚至分割
(Chen等人,2022a)
。
随着VLM规模的扩大,在下游任务改进的同时,也有用的能力如上下文学习
(Tsimpoukelli等人,2021; Sun等人,2023a; Alayrac等人,2022)
也随之出现。
然而,训练大型语言模型本身并非易事,从头开始训练VLM以达到与LLaMA2
(Touvron等人,2023)
等训练良好的纯语言模型相同的NLP性能则更具挑战性。
因此,研究如何从现成的预训练语言模型训练VLM是很自然的。
以 InstructBLIP
(Li 等人, 2023b)
和 MiniGPT-4
(Zhu 等人, 2023)
为代表的流行的
浅对齐
方法连接了一个冻结的通过可训练的 Q-Former 或线性层预训练视觉编码器和语言模型,将图像特征映射到语言模型的输入嵌入空间。
这种方法收敛速度快,但其性能明显低于具有可训练语言参数的LLaVA-1.5,尽管它们的模型大小和训练数据集几乎相同。
VLM中浅层对齐方法性能的主要挑战可以归因于视觉和语言数据之间缺乏深度融合。
浅层对齐方法之所以难以奏效,是因为它们依赖于“冻结”的语言模型权重,而这些权重本质上是训练用于处理文本符元的。
这带来了一个重大的不匹配问题,因为视觉特征在文本输入空间中缺乏直接的等价物。
因此,当这些视觉特征经过多层变换后,往往会偏离深度语言模型层预期的输入分布。
这种错位在图像字幕生成等任务中尤为明显,其中任务的具体性——例如写作风格和字幕长度——只能通过浅层方法表面地编码到视觉特征中。
如PaLI
(Chen et al., 2022b)
和Qwen-VL
(Bai et al., 2023)
所示,一种常见的策略是在预训练或监督微调(SFT)阶段直接训练LLM。
然而,这种方法可能会影响模型的泛化能力,特别是对于关注文本输出的任务。
传统上,LLM是在大量的纯文本数据集上进行预训练
(Raffel et al., 2020)
,与LAION
(Schuhmann et al., 2022)
和COYO
(Byeon et al., 2022)
等图像文本对数据集相比,导致数据分布存在显著差异。
这种转变往往会导致灾难性遗忘,即模型在其原始领域的熟练程度下降的现象。
图
4
显示了这一问题,该图显示随着模型越来越适应LAION数据集,MMLU
(Hendrycks et al., 2020)
分数显著下降,从而验证了我们的假设。
这种趋势并非孤立的;在PaLM-E
(Driess et al., 2023)
和Flamingo
(Alayrac et al., 2022)
等模型中也观察到了类似的影响。
例如,将一个80亿参数的语言模型用于VLM预训练,会导致自然语言生成(NLG)性能下降87.3%
(Driess et al., 2023)
。
上述讨论提出了一个重要的问题:是否可以在保留大型语言模型的NLP能力的同时,为其添加一流的视觉理解能力?
CogVLM给出了一个“
yes
”的答案。
CogVLM向语言模型添加了一个可训练的
视觉专家
。
在每一层中,序列中的图像特征都使用一个新的QKV矩阵和与文本特征一起的MLP层。
视觉专家将参数数量增加一倍,同时保持FLOPs不变。
由于原始语言模型中的所有参数都是固定的,如果输入序列不包含图像,则其行为与原始语言模型相同。
这种灵感源于在高效微调中P-Tuning
(Liu et al., 2023f)
和LoRA
(Hu et al., 2021)
之间的比较,其中p-tuning学习输入中的任务前缀嵌入,而LoRA通过低秩矩阵调整每一层的模型权重。
结果表明,LoRA 的性能更好,也更稳定。
类似的现象也可能存在于 VLM 中,因为在浅层对齐方法中,图像特征的作用类似于 P-Tuning 中的前缀嵌入。
本文的主要贡献如下:
•
我们引入了 CogVLM 模型,该模型深度整合了视觉和语言特征,同时保留了预训练大型语言模型的全部功能。
基于 Vicuna-7B 训练的 CogVLM-17B 在 17 个经典跨模态基准测试中取得了最先进的结果。
•
通过大量的消融研究,我们验证了我们提出的视觉专家模块的有效性以及深度融合的重要性。
我们进一步深入研究了多模态预训练中的多个关键因素,包括视觉编码器的规模、注意力掩码的变体、VLM 中影响最大的参数以及结合自监督图像损失的必要性等。
•
我们已将 CogVLM 的权重和 SFT 阶段使用的数据集公开发布。
我们预计 CogVLM 的开源将极大地促进视觉理解的研究和工业应用。
2
方法
2.1
架构
CogVLM 模型包含四个基本组件:视觉 Transformer (ViT) 编码器、MLP 适配器、预训练大型语言模型 (GPT) 和视觉专家模块。
图
4
显示了 CogVLM 架构的概述。
组件的设计和实现细节如下:
ViT 编码器
。
我们在 CogVLM-17B 中使用了预训练的 EVA2-CLIP-E
(Sun et al., 2023b)
。
注意,ViT编码器的最后一层被移除,因为它专门用于聚合用于对比学习的[CLS]特征。
MLP适配器
。
为了将ViT的输出映射到与词嵌入文本特征相同的空间,我们使用了一个MLP适配器,一个两层MLP(SwiGLU
(Shazeer, 2020)
)。
为了实现方便,所有图像特征在语言模型中共享相同的position id。
预训练大型语言模型
。
CogVLM的模型设计兼容任何现成的GPT风格预训练大型语言模型。
特别地,CogVLM-17B采用Vicuna1.5-7B
(Chiang et al., 2023)
进行进一步训练。
一个因果掩码被应用于所有注意力操作,包括图像特征之间的注意力。
视觉专家模块
。
我们在每一层添加一个视觉专家模块,以实现深度视觉语言特征对齐。
特别地,每一层中的视觉专家模块由每一层中的一个QKV矩阵和一个MLP组成。
QKV矩阵和MLP的形状与预训练语言模型中的形状相同,并从预训练语言模型中初始化。
其动机是语言模型中的每个注意力头捕获语义信息的某个方面,而一个
可训练的
视觉专家可以转换图像特征以与不同的注意力头对齐,从而实现深度融合。
正式地,假设注意力层的输入隐藏状态为
X
∈
ℝ
B
×
H
×
(
L
I
+
L
T
)
×
D
,其中
B
是批大小,
L
I
和
L
T
是图像和文本序列的长度,
H
是注意力头的数量,
D
是隐藏大小。
在带有视觉专家的注意力中,
X
首先被分成图像隐藏状态
X
I
和文本隐藏状态
X
T
,注意力计算如下:
其中
W
I
,
W
T
是视觉专家和原始语言模型的QKV矩阵,并且
Tril
(
⋅
)
表示下三角掩码。
FFN层中的视觉专家表现相似,
其中FFN
I
和FFN
T
分别是视觉专家和原始语言模型的FFN。
位置嵌入。
在LLM中的RoPE中,我们允许所有视觉符元共享单个位置ID,因为它们在输入到ViT时已经封装了位置信息。
这种方法减轻了LLM中符元之间远程衰减的影响。
鉴于图像可以占据数百到数千个符元,并且典型的输入序列结构为
‘
query’
,使用传统的位置编码将导致编码序列过长。
此外,这将导致查询更多地关注与其更接近的图像序列,即图像的下部。
2.2
预训练
数据。
用于预训练的图像-文本对都是公开可用的,包括LAION-2B和COYO-700M。
去除损坏的URL、NSFW图像、带有噪声标题的图像、带有政治偏见的图像和纵横比为
>
6
或
<
1
/
6
的图像后,大约剩下15亿张图像用于预训练。
我们还制作了一个包含4000万张图像的视觉接地数据集。
图像标题中的每个名词都与边界框相关联,以指示图像中的位置。
建设过程基本上遵循
(Peng et al., )
,该过程通过spaCy
(Honnibal & Johnson, 2015)
提取名词,并使用GLIPv2
(Zhang et al., 2022)
预测边界框。
图像-文本对采样自LAION-115M,它是LAION-400M的一个子集,由
(Li et al., 2023b)
过滤。
我们过滤并保留了 4000 万张图像的子集,以确保超过 75% 的图像包含至少两个边界框。
训练。
预训练的第一阶段是针对
图像字幕损失
,即文本部分的下一个符元预测。
我们使用批次大小为 8192,对上述 15 亿个图像文本对训练 CogVLM-17B 模型,迭代次数为 120,000 次。
预训练的第二阶段是图像字幕和指称表达式理解 (REC) 的混合。
REC 是一项根据物体的文本描述预测图像中边界框的任务,其训练形式为 VQA,即
问题:
物体
在哪里?
和
答案:
[
[
x
0
,
y
0
,
x
1
,
y
1
]
]
。
x
和
y
坐标的范围从
000
到
999
,表示图像中的归一化位置。
我们只考虑“答案”部分中下一个符元预测的损失。
我们使用上述文本图像对和视觉定位数据集,对第二阶段进行预训练,迭代次数为 60,000 次,批次大小为 1,024。
在最后 30,000 次迭代中,我们将输入分辨率从
224
×
224
更改为
490
×
490
。
可训练参数的总数为 65 亿。
表 1:
图像字幕基准测试的性能。
所有任务都使用 CIDEr 作为评估指标。
OOD 指的是域外测试集。
Karp。
指的是 Karpathy 测试集划分。
Method
Train Data
NoCaps val
NoCaps test
Flickr
COCO
TextCaps
OOD
overall
OOD
overall
Karp.
Karp.
test
Human
-
95.7
87.1
91.6
85.3
-
-
125.1
VinVL
(Zhang et al., 2021)
8.9M
83.8
94.3
78.0
92.5
-
130.8
-
SimVLM
(Wang et al., 2021)
1.8B
115.2
112.2
109.5
110.3
-
143.3
-
CoCa
(Yu et al., 2022)
4.8B
-
122.4
-
120.6
-
143.6
-
LEMON
(Hu et al., 2022)
2B
120.2
117.3
110.1
114.3
-
139.1
-
Flamingo
(Alayrac et al., 2022)
2.3B
-
-
-
-
67.2
138.1
-
Prismer
(Liu et al., 2023d)
12.7M
113.5
112.9
-
110.8
-
136.5
-
BLIP-2
(Li et al., 2023b)
129M
124.8
121.6
-
-
-
144.5
-
InstructBLIP
(Dai et al., 2023)
129M
-
123.1
-
-
82.4
-
-
UniversalCap
(Cornia et al., 2021)
35M
123.4
122.1
114.3
119.3
-
143.4
-
GIT
(Wang et al., 2022a)
0.8B
127.1
125.5
122.0
123.4
49.6
144.8
138.2
GIT2
(Wang et al., 2022a)
12.9B
130.6
126.9
122.3
124.8
50.7
145.0
145.0
Qwen-VL
(Bai et al., 2023)
1.4B
-
121.4
-
-
85.8
-
-
PaLI-17B
(Chen et al., 2022b)
1.6B
-
127.0
-
124.4
-
149.1
135.4
PaLI-X-55B
(Chen et al., 2023b)
-
-
126.3
-
124.3
-
149.2
147.0
CogVLM (ours)
1.5B
132.6
128.3
128.0
126.4
94.9
148.7
144.9
2.3
对齐
在指令对齐阶段,我们训练了两个通用的模型:CogVLM-Chat 和 CogVLM-Grounding。
CogVLM-Chat 接收自然语言输入和输出,而 CogVLM-Grounding 接收包含边界框的输入和输出。
CogVLM-Chat。
在我们的研究中,我们整合了来自各种开源视觉问答数据集的数据,包括 VQAv2
(Antol et al., 2015)
,OKVQA
(Marino et al., 2019)
,TextVQA
(Singh et al., 2019)
,OCRVQA
(Mishra et al., 2019)
,ScienceQA
(Lu et al., 2022)
,以及格式化为多轮对话的数据集,例如 LLaVA-Instruct
(Liu et al., 2023c)
,LRV-Instruction
(Liu et al., 2023a)
,LLaVAR
(Zhang et al., 2023)
。
然后,我们对这些不同的数据集进行了统一的指令监督微调 (SFT)。
SFT 数据的完整性和质量至关重要;值得注意的是,最初通过仅使用语言的 GPT-4 管道生成的 LLaVA-Instruct 数据集包含某些不准确之处。
我们通过人工检查和标注仔细纠正了这些错误,以确保数据质量。
VQA 数据集通常具有简洁的,通常是一个词的答案,这与提供具有广泛推理的详细响应的对话数据集形成对比。
为了适应这种可变性,我们使用了格式为
问题:简短答案:
用于简洁的回复,以及
问题:答案:
用于SFT阶段的扩展话语。
在训练过程中,模型进行了6000次迭代,学习率为1e-5,批量大小为1024。
为了增强和确保训练的稳定性,我们激活了视觉编码器的参数,并将其学习率调整为其余训练参数学习率的十分之一。
CogVLM-Grounding。
为了赋予我们的模型一致的、交互式的视觉定位能力,我们收集了一个高质量的数据集,涵盖了4种类型的定位数据:(1)
基于语境的字幕生成(GC)
——图像字幕数据集,其中每个名词短语后面都跟着相应的参考边界框;(2)
指称表达生成(REG)
——面向图像的数据集,图像中的每个边界框都用准确描述和指代特定区域内容的描述性文本表达进行标注;(3)
指称表达理解(REC)
——面向文本的数据集,每个文本描述都用多个参考链接进行标注,这些链接将短语与相应的框关联起来;(4)
基于语境的视觉问答(GroundedVQA)
——VQA风格的数据集,其中问题可能包含给定图像中的区域引用。
定位数据的来源都是公开可用的,包括Flickr30K Entities
(Plummer et al., 2015)
,RefCOCO
(Kazemzadeh et al., 2014; Mao et al., 2016; Yu et al., 2016)
,Visual7W
(Zhu et al., 2016)
,VisualGenome
(Krishna et al., 2017)
和 Grounded CoT-VQA
(Chen et al., 2023a)
。
[
b
o
x
]
在本节中的格式为
[
[
x
0
,
y
0
,
x
1
,
y
1
]
]
。
值得注意的是,这些精心策划的数据集展现了视觉定位能力的多样性,许多数据集可以适用于不同的任务。
例如,基于语境的字幕数据集可以重新制定以适应REG和REC任务。
以
“一个男人
[
b
o
x
1
]
和一个女人
[
b
o
x
2
]
一起散步。”
为例,这可以重新表述为问答对,例如
(“描述这个区域
[
b
o
x
2
]
。”,“一个女人。”)
和
(“男人在哪里?”,“
[
b
o
x
1
]
”)
。
同样,REC数据集可以通过切换输入和输出转换为REG任务,反之亦然。
但是,某些转换可能会导致歧义。
例如,当给出字幕“一个男人
[
b
o
x
1
]
在跑步,另一个男人
[
b
o
x
2
]
在观看。”中提取的独立查询“另一个男人在哪里?”时,
[
b
o
x
1
]
和
[
b
o
x
2
]
之间的区别变得模糊,可能导致错误。
3
实验
为了严格验证我们基础模型的优越性能和强大的泛化能力,我们在一系列多模态基准上进行了定量评估。
这些基准测试可以分为三个大类,涵盖了全面的测量范围
1
:
•
图像字幕生成
。
这些任务的主要目的是生成文本字幕,总结给定图像的主要内容。
我们利用了包括NoCaps
(Agrawal et al., 2019)
、COCO
(Lin et al., 2014)
、Flickr30K
(Plummer et al., 2015)
和TextCaps
(Sidorov et al., 2020)
在内的著名数据集进行评估。
•
视觉问答
。视觉问答任务要求模型根据给定的图像回答可能关注不同视觉内容的问题。我们的评估涵盖了各种数据集,包括VQAv2
(Antol et al., 2015)
、OKVQA
(Marino et al., 2019)
、TextVQA
(Singh et al., 2019)
、OCRVQA
(Mishra et al., 2019)
和ScienceQA
(Lu et al., 2022)
。
•
大型视觉语言模型基准测试
。大型视觉语言模型基准测试主要用于评估大型多模态模型的高级能力,例如目标识别和定位、光学字符识别、视觉描述和视觉知识推理。我们在包括MM-Vet
(Yu et al., 2023)
、MMBench
(Liu et al., 2023g)
、SEED-Bench
(Li et al., 2023a)
、LLaVA-Bench
(Liu et al., 2023c)
、POPE
(Li et al., 2023c)
、MMMU
(Yue et al., 2023)
和MathVista
(Lu et al., 2023)
在内的数据集上对模型进行了多维度评估。
•
视觉接地
。
视觉接地包含一组任务,这些任务建立句子中文本提及与图像中特定区域之间的参照链接。
我们在典型的数据集上评估我们的模型,包括Visual7w
(Zhu et al., 2016)
、RefCOCO
(Liu et al., 2017)
、RefCOCO+和RefCOCOg,以确保完整性。
3.1
图像字幕生成
我们在上述四个基准测试上评估了我们预训练的基础模型的图像字幕生成能力。
在对Nocaps和Flickr数据集进行零样本评估时,我们评估了模型在描述长尾视觉概念方面的精度。
此外,我们还展示了在COCO和TextCaps数据集上微调的结果。
表2:
视觉问答和大型视觉语言模型基准测试上的泛化性能。
* 表示数据集在SFT阶段已完成训练。我们与最新的最先进的泛化模型进行了比较,包括MiniGPT-4
(Zhu et al., 2023)
、IDEFICS-Instruct
(Laurençon et al., 2023)
、OpenFlamingo
(Awadalla et al., 2023)
、DreamLLM
(Dong et al., 2023)
、InstructBLIP
(Dai et al., 2023)
、Fuyu
(Bavishi et al., 2023)
、Qwen-VL
(Bai et al., 2023)
、LLaVA-1.5
(Liu et al., 2023b)
、mPLUG-Owl2
(Ye et al., 2023)
、SPHINX
(Lin et al., 2023b)
、Emu2
(Sun et al., 2023a)
。
Method
LLM
VQA
LVLM-Benchmark
VQAv2
OKVQA
TextVQA
OCRVQA
ScienceQA
MM-Vet
SEED
MMBench
LLaVA
POPE
MMMU
MathVista
MiniGPT-4
Vicuna-7B
-
-
0.6
-
39.6
22.1
47.4
23.0
45.1
-
-
23.1
IDEFICS-Instruct
LLaMA-65B
37.4
36.9
32.9
-
61.8
39.7
53.2
54.5
56.9
-
-
26.2
OpenFlamingo
MPT-7B
53.0
38.3
28.3
-
44.8
24.8
42.7
5.7
34.2
-
26.3
18.6
DreamLLM
Vicuna-7B
56.6
44.3
34.9
-
-
35.9
-
49.9
-
-
-
-
InstructBLIP
Vicuna-7B
-
-
50.1
-
60.5
26.2
58.8
33.9
59.8
53.8
-
25.3
Fuyu
Fuyu-8B
74.2*
60.6*
-
-
-
-
-
-
-
-
27.4
-
Qwen-VL-Chat
Qwen-7B
78.2*
56.6*
61.5*
70.5*
68.8
-
65.4
61.8
67.7
-
32.9
33.8
LLaVA-1.5
Vicuna-7B
78.5*
-
58.2*
-
66.8
30.5
58.6
64.3
60.7
85.9
-
23.6
mPLUG-Owl2
LLaMA2-7B
79.4*
57.7*
58.2*
-
68.7
36.2
64.1
64.5
25.0
86.2
32.1
25.3
Unified-IO2
UIO-2XXL
79.4*
55.5*
-
-
86.2*
-
65.6
71.5
-
87.7
-
-
LLaVA-1.5
Vicuna-13B
80.0*
-
61.3*
-
71.6
35.4
61.6
67.7
64.6
85.9
33.6
26.1
SPHINX-2k
LLaMA2 13B
80.7*
62.6*
61.2*
67.8*
70.6
40.2
71.6
65.9
-
87.2
32.9
27.8
Emu2-Chat
LLaMA-33B
84.9*
64.8*
66.6*
-
-
48.5
62.8
63.6
56.4
-
34.1
-
CogVLM-Chat
Vicuna-7B
82.3*
64.8*
70.4*
73.8*
91.2*
51.1
72.5
77.6
77.8
87.9
41.1
34.5
详细性能如表
1
所示。
总体而言,我们的模型在所有方面都达到了最先进的或相当的性能。
具体来说,在NoCaps基准测试中,我们的基础模型在四个分割中都优于之前的最佳方法GIT2,在非领域集合中的最大值达到
5.7
分,而仅使用了10%的预训练数据(15亿个符元与129亿个符元)。
在Flickr基准测试中,我们的模型达到了
94.9
的最先进分数,比同时发布的Qwen-VL模型高出
9.1
分。
这些结果证明了我们的预训练模型在图像字幕任务中的卓越能力和鲁棒性。
我们还在COCO
(Lin et al., 2014)
和TextCaps上评估了我们的模型,其中后者专门设计用于将给定图像的文本信息整合到字幕中。
尽管没有使用专门的光学字符识别(OCR)数据进行训练,令人鼓舞的是,我们的基础模型展现出显著的文本阅读能力,并获得了与PaLI-X-55B具有竞争力的性能,并且比同等规模的先前最佳模型PaLI-17B高出
9.1
分。
表3:
指代表达式理解和基于视觉的问答结果。
Type
Model
RefCOCO
RefCOCO+
RefCOCOg
Visual7W
val
test-A
test-B
val
test-A
test-B
val
test
test
Generalist
OFA-L*
(Wang et al., 2022b)
79.96
83.67
76.39
68.29
76.00
61.75
67.57
67.58
-
VisionLLM-H
(Wang et al., 2023b)
-
86.70
-
-
-
-
-
-
-
Shikra-7B
(Chen et al., 2023a)
87.01
90.61
80.24
81.60
87.36
72.12
82.27
82.19
-
Shikra-13B
(Chen et al., 2023a)