CVPR 2024 | 中科大&微软提出:迈向更统一的上下文视觉理解
点击下方卡片,关注“CVer”公众号
点击下方卡片,关注“CVer”公众号
AI/CV重磅干货,第一时间送达
AI/CV重磅干货,第一时间送达
添加微信:CVer444,小助手会拉你进群!
扫描下方二维码,加入CVer学术星球!可以获得最新顶会/顶刊上的论文idea和CV从入门到精通资料,及最前沿应用!发论文/搞科研/涨薪,强烈推荐!
Towards More Unified In-context Visual Understanding
作者单位:中国科学技术大学,微软亚研院,Microsoft Cloud + AI,北京理工大学,北京电子科技学院
介绍与方法动机
一些早期工作为将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网络来对交织的统一表示执行生成建模。
视觉语言提示
在视觉语言提示设计,我们参考了之前的工作,对Vision-only tasks在每个图像表示前面插入一个特殊的标签“[BOI]”,指代当前图像的位置;对Vision-language tasks,对于每个图像,同样在图像表示前使用特殊的“[BOI]”标签。对于文本部分,我们用它们对应的实例类别和边界框 (bbox) 来进行区域描述,例如“Category:
多模态上下文统一嵌入框架
有了上下文任务的视觉语言提示后,需要解决的是如何对多模态数据进行建模,从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版本。
何恺明在MIT授课的课件PPT下载
何恺明在MIT授课的课件PPT下载
在CVer公众号后台回复:何恺明,即可下载本课程的300+页课件PPT!赶紧学起来!
CVPR 2024 论文和代码下载
CVPR 2024 论文和代码下载
在CVer公众号后台回复:CVPR2024,即可下载CVPR 2024论文和代码开源的论文合集
多模态和扩散模型交流群成立
扫描下方二维码,或者添加微信:CVer444,即可添加CVer小助手微信,便可申请加入CVer-多模态和扩散模型微信交流群。另外其他垂直方向已涵盖:目标检测、图像分割、目标跟踪、人脸检测&识别、OCR、姿态估计、超分辨率、SLAM、医疗影像、Re-ID、GAN、NAS、深度估计、自动驾驶、强化学习、车道线检测、模型剪枝&压缩、去噪、去雾、去雨、风格迁移、遥感图像、行为识别、视频理解、图像融合、图像检索、论文投稿&交流、PyTorch、TensorFlow和Transformer、NeRF等。
一定要备注:研究方向+地点+学校/公司+昵称(如多模态或者扩散模型+上海+上交+卡卡),根据格式备注,可更快被通过且邀请进群
▲扫码或加微信号: CVer444,进交流群
CVer计算机视觉(知识星球)来了!想要了解最新最快最好的CV/DL/AI论文速递、优质实战项目、AI行业前沿、从入门到精通学习教程等资料,欢迎扫描下方二维码,加入CVer计算机视觉(知识星球),已汇集近万人!
▲扫码加入星球学习
▲点击上方卡片,关注CVer公众号
整理不易,请点赞和在看
▲扫码或加微信号: CVer444,进交流群
CVer计算机视觉(知识星球)来了!想要了解最新最快最好的CV/DL/AI论文速递、优质实战项目、AI行业前沿、从入门到精通学习教程等资料,欢迎扫描下方二维码,加入CVer计算机视觉(知识星球),已汇集近万人!
▲扫码加入星球学习
▲点击上方卡片,关注CVer公众号
整理不易,请点赞和在看
微信扫码关注该文公众号作者