论文:VILA: On Pre-training for Visual Language Models
代码:https://github.com/NVlabs/VILA
出处:NVLabs
时间:2024.05
贡献:
- 证明在预训练阶段对 LLM 进行微调能够提升模型对上下文任务的效果
- 在 SFT 阶段混合图像-文本数据和纯文本数据能够缓解模型在纯文本任务上的退化,同时提升视觉理解能力
一、背景
大型语言模型(LLMs)在自然语言任务中展示了卓越的能力 [4, 8, 10, 15, 16, 19, 31, 46, 51, 59–61]。将LLMs扩展以支持视觉输入,使得最终模型能够继承一些吸引人的特性,如指令跟随、零样本泛化和少样本上下文学习(ICL),从而增强各种视觉语言任务的能力 [1, 2, 6, 9, 14, 20, 35, 39, 73]。
统一视觉和语言进行协作推理的核心挑战在于连接LLM和视觉基础模型(例如,CLIP编码器):这两种基础模型通常是单独预训练的,然后通过视觉-语言联合训练进行对齐。在这一领域的大多数努力都集中在改进视觉语言指令调整过程中,即监督微调(SFT)或基于人类反馈的强化学习(RLHF) [38, 39, 57]。然而,对于预训练过程缺乏全面的研究,在该过程中,模型在大规模图像-文本数据集/语料库上进行训练 [11, 54, 74]。这一过程虽然成本高昂,但对于模态对齐至关重要。
本文中,作者旨在探索不同设计选项对增强视觉语言模型预训练的影响。
作者希望能回答这个问题:“视觉语言模型预训练中的各种设计选择如何影响下游性能?”
作者遵循了预训练 + SFT 的流程,并对监督数据集属性和训练协议进行了不同设计选项的消融实验。发现了几个有趣的结果:
- (1)在预训练期间冻结LLM可以实现不错的零样本性能,但无法实现上下文学习(ICL)能力,而更新LLMs则鼓励深度嵌入对齐,作者发现这对于ICL非常重要;
- (2)交错的视觉语言数据对于预训练至关重要,它提供了准确的梯度更新并保持了纯文本能力;
- (3)在SFT期间添加纯文本指令数据可以进一步补救纯文本退化并提升视觉语言任务的准确性。
作者引入了一种设计视觉语言模型的实用指南,称为VILA。在没有花哨技巧的情况下,VILA在广泛的视觉语言任务中明显超越了最先进的模型 [38],这得益于改进后的预训练过程。此外,作者观察到预训练过程为模型解锁了几种有趣的能力,例如:
- (i)多图像推理(尽管模型在SFT期间仅看到单一图像-文本对)
- (ii)更强的上下文学习能力
- (iii)增强的世界知识。我们希望我们的发现能为未来的视觉语言模型提供良好的预训练配方
多模态模型的模型结构:
- 多模态大模型的结构一般分为两种,一种是 cross-attention-based,另一种是 auto-regressive-based,后者是将图像编码为 token,然后和语言 token 结合起来送入 LLM 中的形式,更常用也更加灵活,所以本文也选择了后者的结构。
- 基于自回归的 VLM 一般有 3 个部分:visual encoder、LLM、projector,且 projector 可以是 linear layer 或 MLP 或 Transformer block,作者会对比不同的形式所带来的效果
二、方法
2.1 Pre-training
更新 LLM 很有必要!
目前有两种流行的对 LLM 进行视觉微调的方法:
- fine-tuning:训练 LLM 和 projector
- prompt tuning:冻结 LLM,只微调 projector,这种方式目前比较流行,但作者发现更新 LLM 参数对上下文学习很重要,结果见表 1
- 仅在SFT(微调)期间训练投影器会导致性能不佳(设置a),尽管使用了高容量设计。在SFT期间微调大型语言模型(LLM)是有回报的。
- 在预训练期间冻结LLM并不会影响零样本性能,但会降低上下文学习能力(即4-shot,比较设置b和c)。对于描述数据集(如COCO和Flickr),这种差距更大,因为它们是分布外数据(指令微调数据主要是VQA类的,见补充材料),这表明冻结LLM时的泛化能力更差。
- 当使用小容量投影器(一个线性层)时,准确性略有提高(比较设置c和d)。作者认为一个更简单的投影器迫使 LLM 在处理视觉输入方面学习更多,从而有更好的泛化能力。
为什么 4-shot 能够表示上下文学习能力呢:上下文学习能力通常指模型根据给定的上下文信息进行推理和预测的能力
- 有限示例:在4-shot学习中,模型只有四个示例来推断任务或问题的模式。因此,它需要有效地利用这些有限的上下文信息来进行准确预测。这对模型的上下文理解和泛化能力提出了很高的要求。
- 依赖于上下文信息:在少样本学习中,模型必须能够从少量示例中提取出有用的信息,并将其应用到新的、未见过的数据上。这意味着它需要理解和利用给定示例中的上下文信息,以便在新的情境下做出正确的推断。
- 模型适应性:4-shot设置要求模型能够快速适应新任务或新数据。这种适应性依赖于模型对上下文信息的敏感度和处理能力。换句话说,模型需要能够从有限的示例中推断出更广泛的规律,并将其应用到不同但相关的任务上。
- 综合能力测试:相比于零样本(0-shot)设置,4-shot设置更能测试模型在处理复杂任务时综合利用多条上下文信息的能力。零样本情况下,模型完全依赖于预训练时学到的一般知识,而在4-shot情况下,它还需要整合和应用新的特定示例。
为什么微调 LLM 会更好呢:
- 作者假设对齐视觉和文本潜在嵌入的分布(特别是在更深层次)是很重要的,这样模型才能无缝地模拟这两种模态之间的交互。如果想在视觉语言应用中继承LLM的一些优良特性(如上下文学习能力),这一点至关重要。
- 为了验证这一观点,作者计算了不同层次上视觉和文本嵌入的Chamfer距离,以衡量它们对齐的程度,如图3所示。计算了成对的余弦相似度,以排除幅度的影响。从配置(b)到(d),较深层次的相似度更高,表1中的4-shot准确率也随之提高,这表明深层嵌入对齐和上下文学习之间存在正相关关系。
- 基于这些观察结果,在后续研究中,作者在预训练和指令微调期间都对LLM进行了微调,并使用了一个简单的线性投影层。
使用交错的数据很有必要!
其实多模态模型是为了增强 LLM 对视觉输入能力的支持,所以保持LLM的纯文本处理能力很重要。
数据混合:在预训练和指令微调过程中,使用混合的视觉和语言数据是关键因素。
预训练数据集可选择的类型:
-
图像-文本对:大多数视觉语言模型(VLM)的预训练依赖于图像-文本对(例如,LAION,COYO),因为这些数据集广泛可用且多样性高。
-
交错图像-文本数据集:一些数据集(如MMC4,M3W)包含交错的图像和文本,这些数据集的分布与纯文本语料库更相似。这种相似性在Flamingo风格模型训练中被证明是重要的。
-
图像-文本对(COYO)的问题:
使用COYO进行预训练会导致“灾难性遗忘”,即模型忘记了如何处理纯文本任务。纯文本任务的准确性下降了17.2%(MMLU)。视觉语言任务的准确性也显著下降,特别是在4-shot设置下表现更差,这表明模型无法正确进行上下文学习,因为它在预训练期间从未见过超过一张图像。
- 交错数据集(MMC4)的优势:
MMC4的数据分布与纯文本语料库更接近。使用交错数据进行预训练时,纯文本任务的准确性只下降了约5%。通过适当的指令微调,这种降级可以完全恢复。交错数据促进了视觉上下文学习,使得4-shot设置下的准确性高于0-shot设置。