人脑可以整合不同模态的信息,并同时处理各项任务来感知世界。相比之下,当前机器学习研究者多是为不同的任务开发不同的模型和算法,并在特定于任务的数据上进行训练。然而,这种特定于任务的方法会大大增加为新任务开发模型的边际成本,无法满足快速增长的应用场景的需求。
本文的研究者们希望提出一种通用感知架构,通过在多模态大规模数据上进行预训练得到良好的表征,并对不同下游任务使用同一套预训练参数;在应用于下游任务时,模型无需额外数据,或仅需少量的数据即可达到良好的效果。研究者们的核心想法是将不同模态的数据编码到统一的表示空间中,并将不同任务统一为相同的形式。这种统一的设计鼓励了不同模态和任务在表示学习中的协作,并且可以更好地将预训练中学到的知识迁移到下游任务中。由于任务形式的统一,该模型甚至可以对预训练阶段没有见过的新任务进行 zero-shot 推理。
基于此想法,来自商汤、西安交通大学等机构的研究者们提出了 Uni-Perceiver 。
论文地址:https://arxiv.org/pdf/2112.01522.pdf
图 1 对比了 Uni-Perceiver 和现有的为特定任务设计和训练的模型。Uni-Perceiver 以统一的模型处理各种模态和任务,在各种单模态任务以及多模态任务上进行了预训练。在下游任务上,由于对不同任务使用了统一的建模,模型显示了没有见过的新任务的 zero-shot 推理能力,不经任何额外训练也能达到合理的性能。此外,通过使用 1% 的下游任务数据进行 prompt tuning,模型性能可以提升到接近 SOTA 的水平。使用 100% 的目标数据对预训练模型进行微调时,Uni-Perceiver 在几乎所有任务上都达到了与 SOTA 方法相当或更好的结果。
方法
1. 统一的通用感知模型
图 2 统一模型架构
2. 多模态预训练
为了学习多模态的通用 representation,Uni-Perceiver 使用一系列单模态或跨模态任务进行了预训练。值得一提的是,在图像和视频分类任务中,作者将类别名称视作文本内容,这为连接起图像、视频和文本多个模态的 representation 提供了一定的监督。
图 3 展示了不同预训练任务的 input 和 target 的序列格式。图中,上标I、V、T分别代表来自图像、视频和文本模态的 token。
图 3 预训练任务格式
3. 应用于下游任务:Zero-shot, Prompt Tuning 和 Fine-tuning
相比于额外增加 prediction head 并 finetune 的方式,Uni-Perceiver 可将预训练模型更高效地迁移到下游任务上。本文中,作者考虑三种不同场景:零样本(Zero-shot),少样本(Few-shot)和全量数据,并对三种情况分别介绍。
在新任务上的 Zero-shot 推理:Uni-Perceiver 可以对预训练阶段没有见过的全新任务进行零样本推理,在不经过任何额外训练和调整的情况下取得合理的效果。
Prompt Tuning:在下游任务数据量有限的场景下,通过 Prompt Tuning,Uni-Perceiver 可以在仅调整小部分模型参数的情况下取得接近全数据 SOTA 的结果。
Fine-tuning:当下游任务数据量足够时,Uni-Perceiver 的预训练模型可以通过 fine-tuning 取得超过 SOTA 或与 SOTA 不相上下的结果。
实验
Uni-Perceiver 在表 1 所示的大规模单模态和多模态数据集上进行了训练。实验中,作者使用与 BERT-base 相同配置的 Transformer 编码器。在每次迭代中,每个 GPU 独立采样任务和数据集,并在梯度反向传播之后同步不同 GPU 之间的梯度。该模型在 128 个 Tesla V100 GPU 上以分布式方式进行了 50 万次迭代的预训练。
研究者接下来在多项任务上对预训练模型进行了评估,包括预训练中出现过的任务(Image Classification, Image-Text Retrieval, Image Caption)以及与预训练不同的任务(Video Caption, Video-Text Retrieval, VQA)。表 2 – 表 8 展示了这些结果。实验表明,和具有相似模型尺寸的 task-specific SOTA 方法相比:
-
在不经任何调整的情况下,Uni-Perceiver 即可以达到合理的精度。值得注意的是,对于预训练中不存在的任务,由于 task-specific head 的限制,现有的其他工作无法执行这种类型的 zero-shot 推理。
-
通过 1% 的数据对少量模型参数进行 Prompt Tuning,Uni-Perceiver 即可以接近 SOTA 的效果。
-
进一步全数据 Fine-tune 可以使模型在某些任务上超过 SOTA 结果,并在其他任务上取得与 SOTA 相媲美的精度。