VILA 是 NVIDIA Research 提出的一种视觉语言基础模型,它通过在预训练阶段对大型语言模型(LLM)进行增强,使其能够处理和理解视觉信息。其核心思路是将图像和文本数据进行联合建模,通过控制比较和数据增强,提升模型在视觉语言任务上的性能。这里主要是自己对VILA论文的阅读记录,感兴趣的话可以参考一下,如果想要直接阅读原文,可以来这里,如下所示:
摘要
视觉语言模型(VLMs)随着大型语言模型的近期成功而迅速发展。越来越多的努力集中在视觉指令调优上,以扩展LLM以处理视觉输入,但缺乏对视觉语言预训练过程的深入研究,其中模型学习在两种模态上进行联合建模。在这项工作中,我们通过逐步可控的比较,研究了增强LLM向VLM的预训练设计选项。我们介绍了三个主要发现:(1)在预训练期间冻结LLM可以实现不错的零样本性能,但缺乏上下文学习能力,这需要解冻LLM;(2)交错预训练数据是有益的,而仅使用图像-文本对则不是最佳的;(3)在指令微调期间将纯文本指令数据重新混合到图像-文本数据中,不仅修复了纯文本任务的退化,还提升了VLM任务的准确性。通过增强的预训练配方,我们构建了VILA,一个在主要基准上始终优于最先进模型的视觉语言模型家族,无需花哨的功能。多模态预训练还帮助揭示了VILA的吸引人特性,包括多图像推理、增强的上下文学习和更好的世界知识。VILA还可以部署在Jetson Orin上进行设备上的VLM。
1 引言
大型语言模型(LLMs)在自然语言任务中展示了卓越的能力[4, 8, 10, 15, 16, 19, 31, 46, 51, 59, 60, 61]。增强LLM以支持视觉输入,使最终模型继承了一些吸引人的特性,如指令遵循、零样本泛化和少样本上下文学习(ICL),赋能各种视觉语言任务[1, 2, 6, 9, 14, 20, 35, 39, 73]。统一视觉和语言进行协同推理的核心挑战在于连接LLM和视觉基础模型(如CLIP编码器):这两个基础模型通常是单独预训练的,然后通过视觉语言联合训练进行对齐。该领域的大多数努力都集中在改进视觉语言指令调优过程上,包括监督微调(SFT)或从人类反馈中进行强化学习(RLHF)[38, 39, 57]。然而,缺乏对预训练过程的彻底研究,其中模型在大规模图像-文本数据集/语料库上进行训练[11, 54, 74]。这个过程成本高昂但对模态对齐至关重要。
图1. VILA的增强视觉语言预训练在与近期方法[8, 18, 39]的比较中,持续提升了下游任务的准确性。
在这项工作中,我们旨在探索增强视觉语言模型预训练的不同设计选项。特别是,我们旨在回答“视觉语言模型预训练中的各种设计选择如何影响下游性能?”我们遵循预训练 + SFT管道,并消融了不同设计选项,重点关注数据集属性和训练协议。我们发现了几个发现:(1)在预训练期间冻结LLM可以实现不错的零样本性能,但没有上下文学习(ICL)能力,而更新LLM则鼓励深度嵌入对齐,我们发现这对ICL很重要;(2)交错视觉语言数据对预训练至关重要,它提供了准确的梯度更新并保持了纯文本能力;(3)在SFT期间添加纯文本指令数据可以进一步修复纯文本退化并提升视觉语言任务的准确性。
图2. 我们研究自回归视觉语言模型,其中图像被标记化并输入到LLM中。我们发现更新LLM对于上下文学习能力至关重要,并且像[74]这样的交错语料库有助于预训练。与纯文本数据联合进行SFT有助于保持纯文本能力。
我们介绍了实用的指导来设计视觉语言模型,称为VILA。无需花哨的功能,VILA在广泛的视觉语言任务上显著优于最先进的模型[38](图1),这得益于改进的预训练。此外,我们观察到预训练过程解锁了模型的一些有趣能力,如(i)多图像推理(尽管模型在SFT期间只看到单个图像-文本对),(ii)更强的上下文学习能力,以及(iii)增强的世界知识。我们希望我们的发现能为未来的视觉语言模型提供良好的预训练配方。
2 背景
模型架构。多模态LLM通常可以分为两种设置:基于交叉注意力的[6, 35]和基于自回归的[2, 20, 39]。后一种VLM家族将图像标记化为视觉标记,这些标记与文本标记连接并作为输入馈送到LLM(即将视觉输入视为外语)。它是通过增加视觉嵌入来增强输入的纯文本LLM的自然扩展,可以处理任意交错的图像-文本输入。在这项研究中,我们关注自回归VLM的预训练,因其灵活性和流行性。如图2所示,自回归VLM由三个组件组成:一个视觉编码器、一个LLM和一个桥接两种模态嵌入的投影器。投影器可以是一个简单的线性层[39]或更强大的Transformer块[7, 18]——我们将在实验中比较它们的效能。模型接受视觉和文本输入并生成文本输出。
训练阶段。遵循常见做法[7, 20, 39],我们研究如何增强预训练的纯文本LLM以支持视觉输入。训练可以分为三个阶段:
投影器初始化。LLM和ViT是单独预训练的,而投影器通常从随机权重初始化。因此,我们首先在图像-标题对上预训练投影器,同时冻结ViT和LLM,遵循现有文献[18, 35, 39]。
2.0.1 视觉语言预训练
然后我们在视觉语言语料库上预训练模型(LLM和投影器)。我们考虑两种类型的语料库:交错的图像-文本语料库(如MMC4 [74])和图像-文本对(如COYO [11]和LAION [54])。我们重点研究这项工作的预训练过程,这是最昂贵和最重要的视觉语言对齐过程。
2.0.2 视觉指令调优
最后,我们在视觉语言指令数据集上对预训练模型进行进一步的指令调优。我们遵循[18]将现有的视觉语言数据集转换为FLAN风格(即带有数据集特定的提示)。请在补充材料中找到视觉指令数据的混合。
评估。在我们的消融研究中,我们在4个视觉语言任务上评估微调模型:OKVQA [45]和TextVQA [55]的准确性,以及COCO [37]和Flickr [67]的CIDEr分数。我们评估零样本和四样本性能,这反映了模型的上下文学习能力。
3 视觉语言模型的预训练研究
在本节中,我们讨论视觉语言预训练过程的实际设计选择和学习到的教训。
更新LLM是必要的
微调 vs. 提示调优。有两种流行的方法来增强预训练的纯文本LM以处理视觉输入:在视觉输入标记上微调LLM [20, 39],或冻结LLM并仅训练视觉输入投影器作为提示调优[18, 35]。后者具有吸引力,因为冻结LLM可以防止预训练的纯文本LLM的退化。尽管如此,我们发现更新基础LLM对于继承一些吸引人的LLM特性(如上下文学习)是必不可少的。
表1. 关于在视觉语言预训练(PreT)期间是训练LLM还是冻结LLM并仅进行提示调优的消融研究。有趣的是,在预训练期间冻结LLM不会损害零样本准确性,但会导致更差的上下文学习能力(更差的四样本表现)。使用简单的线性投影器迫使LLM更多地学习,从而导致更好的泛化能力。我们报告了VQA数据集(OKVQA,TextVQA)的准确性和字幕数据集(COCO和Flickr)的CIDEr分数。注意:我们仅为此消融研究使用了不同的评估设置;此设置中的绝对值较低,不应与其他工作进行比较。
图3. 提示调优以支持视觉标记只能实现浅层对齐,而微调LLM则导致更深层对齐。从配置(b)到(d)(如表1所示),更深层对齐得到改善,上下文学习(四样本)的准确性也随之提高。
为了验证这一想法,我们在表1中比较了两种训练协议。我们在设置a-c中使用Transformer块作为投影器,而不是单一的线性层[39],这提供了足够的容量来冻结LLM。我们使用MMC4-core [74]*进行比较。我们观察到:
(1) 仅在SFT期间训练投影器会导致性能不佳(设置a),尽管使用了高容量设计。在SFT期间微调LLM是有益的。
(2) 有趣的是,在预训练期间冻结LLM不会影响零样本性能,但会降低上下文学习能力(即四样本,比较设置b和c)。对于字幕数据集(COCO & Flickr),差距更大,因为指令调优数据大多是类似VQA的(见补充材料),显示了冻结LLM时更差的泛化能力。
(3) 当使用小容量投影器(线性层而不是Transformer块)时,准确性略好(比较c和d)。我们假设一个更简单的投影器迫使LLM更多地学习处理视觉输入,从而导致更好的泛化。
深度嵌入对齐假设。为了理解为什么微调LLM是有益的,我们假设重要的是对齐视觉和文本潜在嵌入的分布(特别是在更深层),以便模型可以无缝地建模两种模态之间的交互。如果我们希望继承LLM的一些良好特性(如视觉语言应用的上下文学习),这是必不可少的。
为了验证这一想法,我们计算不同层中视觉和文本嵌入的Chamfer距离,以衡量它们对齐的程度。我们计算成对余弦相似度以排除幅度的影响。从配置(b)到(d),更深层相似度更高,四样本准确性也更高,显示了深度嵌入对齐和上下文学习之间的正相关关系。
鉴于这些观察结果,我们在后续研究中在预训练和指令调优期间微调LLM,并使用一个简单的线性投影层。
交错视觉语言语料库有助于预训练
我们的目标是“增强”LLM以支持视觉输入,而不是训练一个仅在视觉语言输入上表现良好的模型。因此,保持LLM的纯文本能力是至关重要的。我们发现数据混合是一个关键因素,无论是预训练还是指令调优。
预训练数据集选项。大多数VLM预训练[35, 39, 63]依赖于图像-文本对(即图像和标题),由于其广泛可用性和多样性(如LAION [54],COYO [11])。另一方面,交错图像-文本数据集(如MMC4 [74],M3W [6])遵循更类似于纯文本语料库的分布,并在Flamingo风格模型训练中被发现是重要的[6]。我们假设交错数据集在LLM骨干更新以适应视觉输入时更为重要。为了更好地理解这两种数据类型,我们在表2中比较了统计数据:COYO存在短文本分布问题,因为伴随文本取自alt-text。我们通过按CLIP相似度排序并仅保留25M图像(与MMC4-core大小相似)对COYO数据集进行子采样。
我们遵循相同的预训练 + SFT过程,并消融不同的预训练语料库。我们比较了零样本和少样本视觉语言准确性以及纯文本准确性(MMLU [27]),如表3所示。由于篇幅限制,我们报告了一个例子如图4所示)。它也通过图5中的损失曲线得到证明,其中训练在交错语料库上导致更低的损失,表明完整文本段提供了更多信息。因此,交错数据结构是关键,允许模型挑选图像相关信息,而不强制其学习不相关的文本建模。
数据混合改善预训练。仅在图像-文本对上训练导致纯文本准确性急剧下降(超过17%)。幸运的是,混合交错语料库和图像-文本对允许我们在语料库中引入更多多样性,同时防止严重退化。在MMC4+COYO上训练进一步提升了视觉语言基准的准确性(当我们进行联合SFT时,增益更大,如稍后所示(表4)。
表4. 联合SFT(视觉+文本)不仅弥补了纯文本能力的退化(MMLU准确性),还提高了视觉语言任务的性能(包括零样本和少样本)。
Table 2: 考虑用于预训练的两个图像-文本语料库。COYO字幕通常非常短,与用于LLM训练的纯文本语料库分布不同。我们通过选择具有高CLIP相似度的样本对每个数据源进行采样,以包含25M图像。
Table 3: 在MMC4数据上预训练提供了更好的视觉语言准确性(零样本和少样本)和更小的纯文本准确性退化,相比于字幕数据(COYO)。好处来自于交错性质,而不是更好的文本分布(MMC4 vs. MMC4-pairs)。混合交错和字幕数据提供了更好的多样性和下游准确性。
图4:MMC4 [74]数据集中的一个样本,包含交错的图像和文本段。图像放置在相应文本之前。文本与图像弱相关:只有彩色文本可以更好地通过图像推断。
图5:预训练在MMC4上的训练损失低于MMC4-pairs(样本被分解为图像-文本对),因为文本段为语言建模提供了更多信息。
通过联合SFT恢复LLM退化
尽管交错数据有助于保持纯文本能力,但仍有5%的准确性下降。一种潜在的方法是添加纯文本语料库(用于LLM预训练的语料库)以保持纯文本能力。然而,即使是开源模型的纯文本语料库通常也是专有的;也不清楚如何对数据进行子采样以匹配视觉语言语料库的规模。
幸运的是,我们发现纯文本能力是暂时隐藏的,而不是遗忘的。在SFT期间添加纯文本数据可以帮助弥补退化,尽管使用比纯文本预训练语料库(通常是万亿规模)小得多的规模。
联合监督微调。指令调优的常见方法是微调模型在一些视觉语言数据集上(VQA/字幕风格[18]或GPT生成[39])。我们发现混合纯文本指令数据可以同时(i)恢复纯文本准确性的退化,和(ii)提高视觉语言准确性。为此,我们还混合了从FLAN [17]中采样的1M纯文本指令调优数据,我们称之为联合SFT。我们在表4中提供了比较。
我们可以看到,混合纯文本SFT数据不仅弥补了纯文本能力的退化(MMLU准确性与原始Llama-2模型在相同纯文本指令数据上微调的准确性相当),还提高了视觉语言能力。我们假设纯文本指令数据提高了模型的指令遵循能力,这对视觉语言任务也很重要。有趣的是,混合COYO数据的益处在联合SFT时更为显著。我们相信,通过联合SFT,模型不再因预训练时使用短字幕而遭受纯文本退化,从而解锁了更好的视觉多样性的全部益处。
4 实验
扩展VLM预训练
我们在以下方面扩展了VLM的训练以形成我们的最终模型:
更高的图像分辨率。上述消融研究使用了OpenAI CLIP-L [49],分辨率为224×224作为视觉编码器。我们现在使用336×336的图像分辨率,以包含更多视觉细节,这可以帮助需要细粒度细节的任务(如TextVQA [55])。
更大的LLM。默认情况下,我们使用Llama-2 [61] 7B进行消融研究。我们还扩展到更大的LLM骨干(如Llama-2 [61] 13B)以进一步提高性能。
预训练数据。我们同时使用交错图像-文本数据和图像-文本对进行预训练(我们大致按1:1的图像比例采样)以提高数据多样性。总的预训练语料库包含约50M图像。它比十亿规模的预训练数据[6, 14, 63]小,但已经在下游任务上展示了显著的改进。
表5. 与12个视觉语言基准上的最先进方法的比较。我们的模型在头对头比较中始终优于LLaVA-1.5,使用相同的提示和相同的基础LLM(Vicuna-1.5基于Llama-2),展示了视觉语言预训练的有效性。我们用粗体标记最佳性能,用下划线标记第二佳性能。由于篇幅限制,基准名称被缩写。VQA-v2 [25];GQA [29];VisWiz [26];SQA††:ScienceQA-IMG [41];VQATT:TextVQA [55];POPE [36];MME [24];MMB:MMBench [40];MMBCNCN:MMBench-Chinese [40];SEED:SEED-Bench [33];LLaVAWW:LLaVA-Bench(In-the-Wild)[39];MM-Vet [68]。∗∗训练期间观察到数据集的训练图像。我们还尝试在VILA-13B(最后一行)的SFT混合中添加ShareGPT4V [13],显著提高了LLaVA-Bench和MM-Vet的性能(用绿色标记)。
SFT数据。我们还包含了来自LLaVA-1.5 [38]的更好的SFT数据混合,这更具多样性(例如,包含基于引用的注释)并具有高质量提示。新的SFT数据混合可以显著提高下游评估指标。我们在附录中包含了详细信息。
表6. VILA在纯文本基准上保持了竞争性的准确性。与7B的纯文本模型相比,差距较小;但在13B下,准确性甚至更好。
由于计算预算有限,我们无法进一步将预训练语料库的规模扩展到十亿规模,这留作未来工作。尽管如此,在50M图像上预训练已经展示了显著的性能改进。
定量评估
视觉语言任务。我们在表5中对12个视觉语言基准进行了与最先进模型的全面比较。与现有模型(如LLaVA-1.5 [38])相比,我们的模型在不同模型大小下在大多数数据集上表现一致更好,使用相同的提示和基础LLM(Vicuna-1.5基于Llama-2),展示了视觉语言预训练的有效性。值得注意的是,我们的7B模型在VisWiz [26]和TextVQA [55]上能够显著优于LLaVA-1.5 13B,这得益于预训练。我们的7B模型甚至在某些数据集上优于13B LLaVA模型。我们的模型还具有多语言能力,尽管视觉语言指令数据是英文的,但在MMBench-Chinese基准上优于LLaVA-1.5。我们的结果展示了视觉语言预训练在下游任务上的益处,即使使用高质量的指令调优数据[38]。
纯文本性能。我们的目标是增强LLM以支持视觉输入。保持模型的纯文本能力是至关重要的。因此,我们在三个基准上进一步评估模型的纯文本性能:MMLU [27],BBH [58]和DROP [22],如表6所示。我们没有选择像MT-Bench [72]这样的基准,因为文本指令调优不是这项工作的重点。总体而言,我们的模型在Llama-2在相同文本SFT数据上微调的性能相当:我们的7B模型的准确性略低,而13B模型的准确性更高。我们怀疑较小的模型在预训练期间可能遭受更大的纯文本性能退化,如[20]中所观察到的。
图6. 得益于预训练过程,我们的模型VILA能够推理多个图像。样本取自[6, 65]。
图7. VILA由于交错图像文本预训练而不是单个图像-文本对,具有更好的上下文学习能力。我们输入两个图像+文本对和一个第三图像作为上下文来提示VLM。LLaVA在第一个样本中由于有限的OCR能力失败,并在第三个示例中重复了第二个样本的语义。
图8. 我们的模型能够根据视觉输入执行思维链推理。在提示中添加“一步一步思考”时,它能够生成正确答案。放大以获得更好的图像细节视图。样本来自[20, 65]。
定性评估
在这里,我们研究视觉语言预训练如何为模型启用新能力。部分图像样本取自[6, 14, 65]。
多图像推理。得益于预训练,我们的模型有能力推理多个图像,尽管SFT数据由单个图像样本组成。我们在图6中提供了两个例子。在第一个例子中,我们的模型能够找出三个图像中的共同对象(即火烈鸟)和每种不同的艺术风格,而LLaVA模型失败了。LLaVA模型产生了幻觉,无法区分不同输入图像中的信息。在第二个例子中,我们的模型能够找出两个差异之一(即头饰)。
上下文学习。上下文学习是LLM的一个重要特性,允许人们用少样本示例提示LLM以启用新任务。我们在图7中提供了上下文学习样本。有趣的是,LLaVA-1.5 [38]也可以在一定程度上进行上下文学习,尽管只训练了单个图像-文本对样本。我们相信这种能力是从基础LLM的纯文本预训练中继承的。尽管如此,我们的模型在上下文学习方面优于LLaVA-1.5:LLaVA-1.5在第一个样本中由于有限的OCR能力失败,并在第三个示例中重复了第二个样本的语义。
视觉思维链(CoT)。我们的模型能够根据视觉输入执行思维链推理。如图8所示,VILA能够在提示末尾添加“一步一步思考”时对输入图像(多图像或单图像)执行复杂的CoT推理。
更好的世界知识。由于我们的模型在大型语料库上进行了预训练,它对世界知识有更好的理解。我们通过提示模型识别一些著名地标的地点来进行案例研究(请参见补充材料,由于篇幅限制)。VILA可以正确识别4个样本中的4个,而LLaVA-1.5只得到4个样本中的2个,显示了预训练的有效性。样本取自[65]。
其他学习
图像分辨率重要,标记数不重要。我们选择了336的图像分辨率,因为它比224提供了更多的细粒度细节,导致TextVQA [55]的准确性从41.6%提高到49.8%。然而,更高的分辨率导致每个图像的标记数更多(336对应576个标记/图像)和更高的计算成本。它还限制了上下文学习的演示数量。
幸运的是,我们发现原始分辨率比每个图像的视觉标记数更重要。我们可以使用不同的投影器设计来压缩视觉标记。这里我们尝试了一个“下采样”投影器,它简单地将每2×2个标记连接成一个并使用线性层融合信息。它在336分辨率下将标记数减少到144,甚至比224+线性设置更小。尽管如此,TextVQA的准确性更高(约46% vs. 41.6%),尽管仍比336+线性设置差3%,显示了图像标记中的大量冗余。其他数据集(如OKVQA和COCO)的差距较小,因为它们通常需要更高层次的语义。
表7. 将图像分辨率从224提高到336可以显著提高TextVQA的准确性。原始分辨率比标记数更重要;高分辨率加上标记下采样比低分辨率效果更好。我们报告OKVQA和TextVQA的准确性,以及COCO的CIDEr分数。注意:评估协议与表5不同,只能在此表内进行比较。
表8. 在预训练期间直接微调LLM导致更好的VLM准确性和上下文学习能力。它还享有更小的模型大小。两种设置都在MMC4-core数据集[74]上进行了预训练。
表9. 微调LLM始终优于LoRA调优。
在我们的主要结果中,我们没有使用任何标记压缩方法以提供最佳准确性,尽管这一令人鼓舞的观察结果,并将其留作未来工作。
与冻结LLM和视觉专家的比较。另一种在预训练期间保持LLM纯文本能力的有趣方法是冻结基础LLM并添加一个额外的视觉专家来处理视觉标记[63]。专家的定义类似于MoE框架,但根据标记类型手动路由机制。由于基础LLM被冻结,模型在预训练期间完全保留了纯文本输入的原始功能。然而,我们发现直接在视觉语言预训练期间微调LLM仍然导致更好的VLM准确性和上下文学习能力(表8)。添加额外的视觉专家也导致近2倍的模型大小增加,这不利于边缘部署。因此,我们选择直接微调基础LLM。
与PEFT/LoRA的比较。除了视觉专家,我们还在表9中提供了使用秩64(7B模型)进行LoRA调优的额外结果。微调LLM显著优于LoRA调优。
重新格式化交错结构。为了获得更多见解,我们还重新格式化了MMC4数据集,使其为而不是,并在表1的设置下评估模型。我们观察到重新格式化的MMC4降低了平均零样本准确性(在4个基准上)4.4%,并降低了平均四样本准确性37.5%。这种无序破坏了上下文学习能力,显示了交错数据的重要性。
5 相关工作
大型语言模型(LLMs)。基于Transformer [62]的LLMs从根本上改变了语言处理领域。通过扩大模型规模和预训练语料库[1, 10, 16, 19, 21, 23, 28, 50, 56],它们的能力不断提高。人们认为LLM的大部分能力是通过大规模预训练过程获得的,这些能力随后通过指令调优[17, 46, 47]解锁。开源社区正在努力构建强大的基础LLM [60, 61, 70],对话变体[15, 59]和大型LLM的参数高效微调版本[42, 69]。在这项工作中,我们从基础Llama-2模型[61]开始。
视觉语言模型(VLMs)。VLMs是增强视觉输入以提供视觉语言任务统一接口的LLMs。VLMs主要有两种设计:1. 基于交叉注意力的,其中LLM被冻结,视觉信息通过交叉注意力机制融合到中间嵌入中[6, 7];2. 自回归的,其中视觉输入被标记化并与文本标记一起馈送到LLM [2, 5, 8, 14, 20, 35, 39, 66, 73]。后者是通过将视觉输入视为外语的自然扩展。VLMs也经过指令调优,以便更好地遵循人类指令或进行对话[18, 39, 57]。在这项工作中,我们研究了自回归VLMs的预训练过程,因其处理多模态输入的灵活性。
遵循纯文本LLMs,人们也研究了VLMs的不同训练配方。一些工作冻结LLM并训练辅助组件[6, 34, 35, 63],其他工作微调LLM以启用视觉能力[14, 20, 71]。还有使用不同数据语料库,包括图像-文本对[14, 20, 34, 39],交错数据集[7],视频-文本对[43],视觉接地注释[38, 48]等。在这项工作中,我们为预训练阶段提供了不同设计选择的整体消融。
6 结论
本文探讨了增强LLM向视觉任务的有效预训练设计选项。利用LLM学习的全部力量,图像-文本数据的交错性质和仔细的文本数据重新混合,VILA在保持纯文本能力的同时超越了最先进的视觉任务方法。VILA还展示了强大的多图像分析、上下文学习和零/少样本任务的推理能力。我们希望我们的论文能促进VLM预训练和跨模态数据集收集的进一步研究。