OFA是阿里达摩院发表在ICML2022上有关多模态预训练的工作,论文链接:OFA: Unifying Architectures, Tasks, and Modalities Through a Simple Sequence-to-Sequence Learning Framework。OFA是通用多模态预训练模型,使用简单的seq2seq的学习框架统一模态(跨模态、视觉、语言等模态)和任务(如图片生成、视觉定位、图片描述、图片分类、文本生成等),OFA通过任务指令即可执行pretrain/finetune,无需引入额外设计任务layer或head,OFA在一系列多模态任务上达到了sota结果。
Once For All(OFA)
I/O & Architecture
多模态输入大致分为:图片、文本、位置(坐标)。OFA针对这些不同的输入形式同一成序列形式。对应处理方法如下:
- 图片输入:使用类似SimVLM和CoAtNet的方式,直接使用ResNet模块将图片卷积成多个patch特征;
- 文本输入:使用byte-pair encoding (BPE)进行subword级别分词,然后进行embed;
- 位置(坐标):针对目标框类型的输入,把位置编码成token,每个检测框用
四个token表示,参考pix2seq做法; - 统一的词表:语言和视觉token被统一起来,包括subword、图像token和位置token。
Tasks & Modalities
OFA将单模态/多模态的理解/生成任务统一成seq2seq任务,每个任务通过任务指令进行区分:
- visual grounding (VG):“Which region does the text $x_t$ describe?” $x_t$ 目标区域的文本描述;
- grounded captioning(GC):VG的反向任务,“What does the region describe? region: $
$ ”. - image-text matching (ITM):“Does the image describe $x_t$ ?” $x_t$ 是图片的描述;
- image captioning (IC):“What does the image describe?”
- visual question answering (VQA):使用image和question作为输入,学习正确的答案;
- Detection:“What are the objects in the image?”
- image infilling:“What is the image in the middle part?”
在附录中,列举了针对不同任务数据集下的指令,如下表所示:
Experiments
OFA在image caption、VQA、visual entailment 和 referring expression comprehension 4个跨模态任务中都取得了SOTA。
在image-to-text generation任务中,OFA 也超过了DALLE, CogView和微软的NÜWA模型。
Conclusion
OFA在整体工作上并没有提出新的框架,也没有给人一种眼前一亮的感觉,但是就是抵不住效果好,而且将多种模态\任务都统一成seq2seq任务,做的实验非常solid,而且还开源了代码,很赞。