来源丨CVer
编辑丨极市平台
Towards More Unified In-context Visual Understanding
会议:CVPR 2024
论文链接:https://arxiv.org/abs/2312.02520
作者单位:中国科学技术大学,微软亚研院。Microsoft Cloud + AI,北京理工大学,北京电子科技学院
介绍与方法动机随着大型语言模型的快速发展,上下文学习(ICL)逐渐成为自然语言处理(NLP)领域的一种新范式。如GPT-3中所述,给定语言序列作为通用接口,该模型可以通过使用有限数量的提示和示例,快速适应以不同语言为中心的任务。这是一种基于提示和示例的策略,通过修改演示和模板,大大简化了将任务知识集成到LLM中的过程。最近,ICL已被应用在视觉理解任务中,例如语义分割和图像字幕,在推理时表现出良好的泛化性能。 一些早期工作为将ICL应用于视觉语言(VL)任务进行了一些探索,通过将图像模态用预训练的语言模型建模以实现上下文学习。例如,Flamingo[2]将图像输入作为一个特殊的标记,以文本的形式进行交错输入提示,并将视觉信息注入到具有门控交叉注意力密集块的预训练LLM中。它展示了处理各种视觉语言任务的非凡能力。然而,基于LLM解码器设计使其只能输出文本。
后续视觉上下文学习方案中,大多采用图像修复的方式,同样将示例与输入图片表示为n宫格图像,通过修复指定的输出区域以实现上下文学习[3-5]。MAE-VQGAN[3]利用视觉相关文献中的插图和信息图,基于预训练的MAE进行图像修复,显示了基本上下文推理能力。此外,Painter[4]的研究在连续像素上使用MAE进行掩码图像建模,通过将各个视觉任务的输出统一为RGB格式的图像进行上下文学习。随后,SegGPT[5]采用类似的框架解决多样化的分割任务。但上述模型只能输出图片。
如图1所示,先前的工作通常局限于特定模态的输出。我们尝试了多模态输入输出的上下文学习,旨在通过特定模态的量化和共享嵌入来统一视觉语言数据,然后对预先组织好的交错上下文样本序列执行自回归预测以实现上下文推理。
图1. 我们方法的动机说明。
方法我们提出了一个框架可以将自回归模型的优势与上下文学习的视觉语言任务的具体要求无缝集成。主要分为三个流程:(1)通过组织良好的视觉语言提示,以描述基本的视觉理解任务,如分割和字幕。(2)在将输入转换为预定义的提示格式后,使用特定于模态的标记器将输入对的上下文提示量化为离散标记,然后使用通用嵌入网络将它们嵌入到统一表示中。(3)引入具有稀疏MoE的解码器transformer网络来对交织的统一表示执行生成建模。
视觉语言提示多模态上下文统一嵌入框架有了上下文任务的视觉语言提示后,需要解决的是如何对多模态数据进行建模,从DALLE的结构收到启发,我们多模态上下文统一嵌入框架实现对不同输入模态的表示。具体而言分为两个阶段:Stage1:多模态量化,为了支持多模态输入,采用模态特有的量化器对不同模态数据量化为离散token;Stage2:统一编码,对多模态的输入离散token通过特定的prompt组织后通过统一的embedding网络编码到统一空间。
经过这样的处理后,不同模态的数据在表示空间得到统一,方便下个阶段的学习。
稀疏MoE解码器框架最后,为了对输入序列进行建模以实现上下文学习。我们决定采用transformer decoder-only的结构,基于next-token prediction的预测方式天然和上下文较为匹配。为了解决多模态和多任务可能带来的相互干扰,引入稀疏MoE结构替换decoder transformer块中的FFN,来对输入序列执行生成式建模。损失采用标准的交叉熵损失和MoE门控网络的辅助损失。所提出的多模态上下文统一嵌入框架和稀疏MoE解码器框架分别如图2和图3所示:
图2. 所提出的多模态上下文统一嵌入框架
图3. 所提出的稀疏MoE解码器框架
实验实现细节为了评估模型对上下文能力,我们设计了两个任务来验证模型的有效性。因此,我们利用语义线索重新定义传统视觉任务,强调视觉语言理解任务,例如语义分割和图像字幕,分别称为类感知上下文分割和描述(CA-ICL Segmentation、Captioning)。通过利用MS-COCO和Visual-Genome数据集分别构建类别实例池,我们为这两个任务构建了相应的训练与评估数据。
实现细节上,图片量化器我们采用了码本大小为1024的VQ-GAN,文本量化器采用码本大小为50257的GPT-2 BPE 量化器。我们使用 GPT-small架构来实现我们的模型,同时替换部分解码器层中的 FFN 为基于Uni-Perceiver v2引入的属性路由MoE,具体超参数参考补充材料。
消融实验在本节中,我们从任务定义、模型定义和多任务协同训练策略三个角度进行了分析。
任务定义在任务定义上,我们针对两个任务进行了实验上的探索。对分割任务,我们研究了不同实例大小与缩放尺度的影响,发现较大的实例与更丰富的实例缩放有助于学习。
对描述任务,我们从密集字幕和视觉定位任务中汲取灵感,分析提供对象位置信息是否有利于模型捕获上下文样本传达的语义线索。我们尝试了两种不同的边界框定义。第一种方法要求模型将目标对象的 bbox 输出为二进制掩码,其中 0 表示目标,1 表示背景。第二种方法将 bbox 信息直接集成到标题中。实验表明采用文本编码的方式更有利于模型关注到指定的区域,并且可以大大减小输入序列的长度。
模型定义通过将原始的GPT-2结构,单独任务训练作为基准,我们分析了不同的模型结构设置。简单地将baseline结构用于多任务训练会导致两个任务性能下降,尤其对于分割任务。因此,我们用G-shard中提出的MoE层和Uni-Perceiver v2中引入的AG_MoE替换部分变压器块中的FFN以期解决多任务联合训练的问题。结果表明AG_MoE结构可以缓解多任务之间的干扰。
多任务协同训练策略在模型定义中我们发现采用标准 GPT-2 小型架构进行协同训练会导致性能显着下降,这表明在处理涉及不同数据模态的任务时存在相当大的差异。AG MoE架构的实现使得跨任务性能更加均衡,但与单任务场景相比仍然存在明显的性能差距。
为了进一步提高基于AG_MoE模型的性能,我们采用多任务学习范式来缓解任务干扰问题,同时稳定MoE结构的训练。我们引入了非混合批采样策略和相关的优化器。这里,每个数据集的采样权重sk被配置为与数据集大小的平方根成正比,并控制每个batch只采样一种任务数据以减小batch内干扰。并对Adam优化器梯度进行加权平衡。实现表明这可以有效地缓解多任务干扰,结合了AG_MoE结构和多任务策略在两个任务上都相对baseline有提升。
主要实验我们与few-shot segmentation和dense captioning任务上当前最先进的专家模型以及视觉理解上下文通才SegGPT和OpenFlamingo的对比实验表明,本文所提出的多模态上下文模型可以在一个通用架构内实现相近甚至更优的性能。并具有良好的任务与模态扩展性。
可视化结果
值得一提的是,我们对训练未见过的类别进行测试,发现模型表现出一定的OOD泛化能力。
其他细节与代码开源敬请期待我们的camera-ready版本。
相关教程
2024-08-18
2023-10-27
2024-10-01
2024-04-22
2023-10-26
2023-11-15
2023-12-09
2023-11-15
2024-05-07
2023-12-27
2024-11-14
2024-11-14
2024-11-13
2024-11-13
2024-11-12
2024-11-09
copyright © 2012-2024 保成网 m.zsbaocheng.net 版权声明