关注公众号,发现CV技术之美

本文分享论文『Uni-Perceiver: Pre-training Unified Architecture for Generic Perception for Zero-shot and Few-shot Tasks』,商汤(代季峰组)&西交&港中文提出《Uni-Perceiver》,用通用预训练感知模型处理多模态多任务!

详细信息如下:

  • 论文链接:https://arxiv.org/abs/2112.01522

  • 项目链接:尚未开源

导言:

动物的生物智能系统通过整合不同方式的信息并同时处理各种任务来感知世界。相比之下,当前的机器学习研究遵循特定于任务的范式,导致任务之间的协作效率低下,并且为新任务开发感知模型的边际成本较高。在本文中,作者提出了一种名为Uni-Perceiver的通用感知结构,该结构使用统一的建模和共享参数来处理各种模态和任务。

具体而言,Uni-Perceiver使用模态不可知的Transformer编码器和轻量级模态特定tokenizer将来自任意模态的不同任务输入和目标编码到统一表示空间。不同的感知任务被建模为同一个公式,即通过其表示的相似性来确定每个输入的最大似然目标。该模型在几个单模态和多模态任务上进行了预训练,并在各种下游任务上进行了评估,包括在预训练阶段没有出现的新任务。

结果表明,即使在新任务上,本文未经任何微调的预训练模型也可以实现合理的性能。通过对1%的下游任务数据进行prompt tuning,可以将性能提高到接近于SOTA方法的水平。完整的数据上的微调可以接近或优于目前SOTA的结果。

      01      

Motivation

动物的生物智能系统通过以不同的方式接收信息,复杂的中枢神经系统集成并同时处理不同的任务来感知世界。然而,设计一个处理多种模态和众多任务的通用感知模型一直被认为太难了。

为了简化这个问题,以前的机器学习研究集中于为来自某些受限模态的输入开发专门的模型,例如用于视觉识别的卷积神经网络和用于自然语言处理的Transformer。最近,Transformer在视觉领域也展现出了不错的性能。

根据这一范式,最近的工作采用了Transformer作为多模态应用(如视觉语言识别)的主干网络。它们将不同模态的输入用模态特定tokenizer转换为的统一输入标记序列。使用大规模多模态数据集对模型进行预训练,然后通过微调模型以适应下游任务。

尽管具有使用统一结构处理多模态信息的能力,但当前的方法仍然需要针对不同任务的特殊设计和训练。这种限制是由两个原因造成的。首先,特定模型的输入是其目标任务所需的特定模态的组合。其次,以前的工作需要为目标任务专门设计和训练的预测头

作者认为,这一任务特定范式与设计通用感知模型的目标相冲突。具体而言,在预训练期间,针对不同任务的专门设计阻碍了任务之间的协作,这可能会损害表达能力。同时,当将预训练模型应用于新任务时,需要重新设计输入格式和预测头,并在足够的下游数据上进行调整。这在收集和标注数据方面仍然非常昂贵。此外,每个下游任务都需要复制和维护所有参数,随着任务数量和模型大小的增加,这变得不实用且不方便。

另一方面,当在训练数据不足的情况下进行微调时,可能会忘记对下游任务有益的预训练的知识,从而影响泛化性能。所有这些问题都增加了为新任务开发感知模型的边际成本,并限制了满足不同场景快速增长的需求的能力,这表明任务特定范式不适用于通用感知建模

本文的核心思想是通过将不同的任务输入和目标从任意模态编码到统一的表示空间来取代任务特定的设计,并通过输入和目标表示的相似性来建模输入和目标的联合概率。这种设计消除了不同感知任务的表述之间的差距,因此鼓励了表示学习中不同模态和任务之间的协作。此外,通过调整预训练和下游任务的建模,将预训练模型应用于目标任务时,可以更好地传递知识。

在本文中,作者提出了一种名为 Uni-Perceiver 的统一架构,它能够用单个模型和共享参数处理不同的模态。具体地说,来自任意模态组合的任务输入和目标首先用轻量级模态特定的tokenizer转换为的统一token序列。然后,序列由与模态无关的Transformer编码器编码到统一的表示空间中。不同的感知任务被建模为相同的公式,通过其表示的相似性来确定每个输入的最大似然目标,从而促进通用感知建模。

Uni-Perceiver对各种单模态任务 (例如图像/视频分类和语言建模) 以及多模态任务 (例如图像文本检索和具有图像线索的语言建模) 进行了预训练。当应用于下游任务时,由于感知任务的通用建模,预训练模型显示了对未在预训练阶段出现的新任务的zero-shot推理能力。

此外,还可以通过额外的任务特定数据进一步提高性能。对于few-shot场景,作者通过prompt tuning使模型适应下游任务,其中只有少量额外参数针对特定任务进行了优化。本文的模型性能可以通过充分的下游训练数据进行全模型优化而进一步提高。

作者在几个单模态和多模态任务上预训练了本文的模型,并评估了它在各种下游任务上的性能,包括在预训练阶段没有出现的新任务。结果表明,本文的预训练模型在不进行任何微调的情况下,即使在新任务上也能获得合理的性能。通过1% 下游任务数据进行prompt tuning,可以将其性能提高到接近SOTA方法的水平。当用100% 目标数据微调预训练模型时,本文的模型在几乎所有任务上都达到了与SOTA的方法相当或更好的结果,这证明了强大的表示能力。

      02      

方法

2.1. Unified Architecture for Generic Perception

上图展示了本文模型的主要结构,具体地说,该模型首先将不同的任务输入和目标从模态的任意组合转换为具有模态特定tokenizers的token序列。并使用与模态无关的Transformer编码器共享不同输入模态和目标任务的参数,然后将不同的token序列编码到共享的表示空间中。任何感知任务采用统一公式建模,通过其表示的相似性确定每个输入的最大似然目标。

Tokenization

给定来自文本,图像和视频模态的原始输入,模态特定的tokenizers被应用于生成Transformer编码器的输入token序列。在这里,作者将BPE tokenizer用于文本模态,将image patch tokenizer用于图像模态,将temporal frame patch tokenizer用于视频模态。这些输出的token附加了额外的模态类型嵌入,以标识原始输入属于哪个模态。

如上图所示,根据任务要求,Transformer编码器的输入序列x可以由文本token序列、图像token序列和视频token序列的不同组合组成。在序列x的开头,需要插入一个特殊的token。例如,对于图像-文本对输入,,对于仅视频输入,,其中 [] 表示序列连接。编码器输出端的特征用作输入的表示。

Generic Modeling of Perception Tasks

作者使用统一的结构对不同的感知任务进行建模,其参数为所有目标任务共享。每个任务都使用一组输入X和一组候选目标Y进行定义。给定输入x ∈ X,该任务的表述为:找到最大似然目标y∈ Y:

其中是联合概率分布。联合概率是通过计算x和y表示的余弦相似度来估计的:

其中是Transformer编码器,τ> 0是可学习的温度参数。

为了获得通用建模能力,本文的统一架构同时在各种多模态任务上进行了预训练。假设一系列预训练任务表示为,其中和分别是第i个任务的输入集和目标集。则预训练的损失为:

其中,是数学期望,并且表示从第i个任务的数据集采样的ground-truth输入-目标对。

本文的统一架构适用于任何任务,只要其输入集X和目标集Y由图像、文本和视频组成。例如,分类任务中的目标集Y可以是一组类名、一组类描述,甚至是一组带有代表类索引的手写数字的图像。

Relation to Previous Perception Models

本文的方法与以前的感知模型具有相同的学习多模态表示的目标。然而,现有的工作遵循一种特定于任务的范式,而本文的方法是为通用感知建模而设计的。主要区别在于两个部分:

  1. 以前的工作侧重于目标任务所需的某些模态组合的输入,而本文的方法是用统一架构和共享参数处理任意的模态组合。

  2. 以前的工作需要为每个感知任务专门设计和训练的预测头,而本文的方法使用相同的公式对不同的任务进行建模,并使用统一的建模对其进行处理。

因此,当迁移到新任务时,以前的方法需要相应地重新设计其输入格式和预测头。模型需要对充分的特定任务数据进行微调,从而产生显著的人力和计算成本。相比之下,本文的方法可以直接对预训练阶段没有出现的新任务进行zero-shot推理。通过对少量下游数据的prompt tuning和对充足下游数据的fine tuning,可以进一步提高性能。

2.2. Pre-training on Multi-Modal Tasks

本文的模型同时在各种任务上进行预训练,以学习多模态泛型表示,各种预训练任务的输入输出表示如上图所示。具体而言,对于单模态预训练任务,作者采用最广泛使用的图像分类、视频分类和语言建模任务。

为了进一步加强不同模态之间的关系,作者在本文中也采用了一些多模态任务,例如具有图像线索的语言建模和图像文本检索任务。对于图像和视频分类任务,作者将每个类名处理为一个文本序列。这为弥合图像、视频和文本表示之间的差距提供了弱监督。

Image and Video Classification

在图像和视频分类任务中,X表示训练数据集中所有可能的图像或视频的集合,Y由每个数据集中的候选类标签组成。每个类名称都被视为文本序列,以提供对文本关系的弱监督。输入x ∈ X和目标y ∈ Y都以token开始,其在编码器输出处的特征表示相应的序列。

Language Modeling with and without Image Clues

语言建模任务旨在根据上下文预测mask词。当输入没有图像时,自回归和自编码任务分别对应于文本生成和mask语言建模任务。当输入有图像时,自回归和自编码任务分别对应于image caption和带有图像线索的mask语言建模任务。

对于自编码语言建模,作者遵循BERT中的做法,从文本中随机mask 15% 的单词。该模型根据所有输入预测每个mask词。对于自回归语言建模,该模型根据其先前的文本和图像 (如果有) 预测每个单词。

在此任务中,X由语言句子或图像-文本对组成。Y表示词汇中所有单词的集合,其中每个单词被视为单个文本序列。每个需要在x ∈ X中预测的单词都被token代替,该token在编码器输出处的特征用于匹配词汇Y中的单词。

Image and Text Retrieval

对于图像文本检索,输入集X和Y分别由图像和文本序列组成,反之亦然。对于纯文本检索,输入集X和Y都是文本序列。X和Y中的每个序列在开始时都有一个特殊的token,其在编码器输出处的特征用作最终表示。

2.3. Zero-shot, Prompt Tuning and Fine-tuning

在预训练阶段,本文的统一结构学习从任意模态对输入和目标序列的联合分布进行建模。由于通用的感知建模,本文的预训练模型可以对预训练阶段未出现的新任务执行zero-shot推断。本文的模型可以通过任务特定的额外训练数据进一步适应下游任务。对于few-shot场景,作者采用了prompt tuning方案,该方案仅向模型中添加了一些额外的任务特定参数。特定任务的性能可以通过在可靠的下游数据上调整整个模型来进一步提高。

Zero-shot Inference on Novel Tasks

本文的模型可以对任何可由联合概率分布建模的感知任务执行Zero-shot推理。对于输入x ∈ X和候选目标y ∈ Y的任务,作者将x和y tokenize为两个序列。然后根据公式估计联合概率P(x,y)。Zero-shot推理可以通过最大似然估计来进行。

Prompt Tuning

对于训练数据有限的few-shot场景,作者采用了Prompt Tuning,Prompt Tuning已经证明在few-shot NLP中优于fine tuning方案。在prompt tuning中,大多数预训练的参数都是固定的,只剩下一小部分任务特定参数需要优化。具体而言,在Transformer编码器的每一层添加具有随机初始化的可学习提示token,并为分类任务添加带有线性头的类标签。

Fine-Tuning

对于具有充分训练数据的下游任务,本文的模型也可以进行优化以进一步提高其性能。在微调过程中,本文的模型可以作为联合概率估计器或特征提取器。在联合概率估计的设置下,下游任务的建模方式与预训练相同。另一方面,与之前的感知模型类似,本文的模型也可以通过在编码器顶部添加特定于任务的头部来用作特征提取器。实验表明,这两种方案的性能非常相似,因此默认情况下使用联合概率分布估计方案以保持一致性。

      03      

实验

3.1. Datasets

上表展示了本文用到的预训练数据以及每个数据集中的图片、视频和文本数量。

3.2. Evaluation on Pre-training Tasks

上表展示了不同tuning设置下的图像和视频分类性能。PT表示prompt-tuning,FT表示 fine-tuning。

上表展示了不同tuning设置下的图像-文本检索性能。PT表示prompt-tuning,FT表示 fine-tuning。

上表展示了不同tuning设置下的image captioning性能。

3.3. Generalization to Novel Tasks

上表展示了不同tuning设置下的video captioning性能。video captioning任务在预训练时并没有涉及到。

上表展示了不同tuning设置下的视频-文本检索性能。视频-文本检索任务在预训练时并没有涉及到。

上表展示了不同tuning设置下的visual question answering性能。visual question answering任务在预训练时并没有涉及到。

      04      

总结

这篇文章提出,单模态和多模态的各种任务都可以通过比较embedding的相似度来解决,因此,作者在本文中提出了一个双Encoder的结构,一个Encoder用于处理input信息,一个Encoder用于处理target信息,最后通过余弦相似度得到input和target的相似度,预训练的目标是最大化匹配的input和target的相似度。通过这种方式模型就可以zero-shot,prompt-tuning,fine-tuning到各种任务了。

▊ 作者简介

研究领域:FightingCV公众号运营者,研究方向为多模态内容理解,专注于解决视觉模态和语言模态相结合的任务,促进Vision-Language模型的实地应用。

知乎/公众号:FightingCV

END

欢迎加入「计算机视觉交流群

全能型AI!用通用预训练感知模型处理多模态多任务!商汤西交港中文提出:Uni-Perceiver...相关推荐

  1. 通用视觉预训练大模型巡礼系列(一):UFO大模型

    ©PaperWeekly 原创 · 作者 | 张燚钧 单位 | 中国移动云能力中心 研究方向 | 预训练大模型 近来,以 ChatGPT 为代表的自然语言对话大模型,以及以 Stable Diffus ...

  2. 《达摩院2023十大科技趋势》发布,生成式AI、多模态预训练大模型入选

    点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入! 1月11日,达摩院发布<达摩院2023十大科技趋势>,生成式AI.多模态预训练大模型等技术入选. 达摩院认为,AI正在加速奔 ...

  3. 王小川新公司开源 70 亿参数量的中英文预训练大模型,可商用;谷歌要求员工慎用 AI,即便是自己家的 Bard|极客头条

    「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧. 整理 | 梦依丹 出品 | CSDN(ID:CSDNnews ...

  4. 王小川新公司开源 70 亿参数量的中英文预训练大模型,可商用;谷歌要求员工慎用 AI,即便是自己家的 Bard|极客头条...

    「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧. 整理 | 梦依丹 出品 | CSDN(ID:CSDNnews ...

  5. 《预训练周刊》第8期:首个千亿中文大模型「盘古」问世、谷歌等提出视频音频文本转换器VATT...

    No.08 智源社区 预训练组 预 训 练 研究 观点 资源 活动 关于周刊 超大规模预训练模型是当前人工智能领域研究的热点,为了帮助研究与工程人员了解这一领域的进展和资讯,智源社区整理了第8期< ...

  6. 超越Facebook、谷歌、微软,百度发布全球首个百亿参数对话预训练生成模型PLATO-XL...

    点击上方"AI遇见机器学习",选择"星标"公众号 重磅干货,第一时间送达 来自:机器之心 和 AI 进行无障碍的对话,是什么样的体验?你或许能够在这篇文章里找到 ...

  7. 《预训练周刊》第33期:艾伦AI研究所等 | 预训练语言模型的高效分层域适应

    No.33 智源社区 预训练组 预 训 练 研究 观点 资源 活动 关于周刊 本期周刊,我们选择了9篇预训练相关的论文,涉及词汇迁移.常识问答.多模态训练.层次训练.对比学习.图像分割.图文模型.蛋白 ...

  8. NeurIPS 2022 | 清华提出P2P:基于预训练图像模型的点到像素提示学习方法

    点击下方卡片,关注"CVer"公众号 AI/CV重磅干货,第一时间送达 点击进入-> CV 微信技术交流群 在这里和大家分享一下我们被NeurIPS 2022录用的点云理解工 ...

  9. 新一代人工智能院士高峰论坛-视觉预训练大模型及其在智慧城市中的应用分论坛顺利举办

    2021年12月20日,新一代人工智能院士高峰论坛-视觉预训练大模型及其在智慧城市中的应用分论坛在深圳市人才研修院成功举办.  该论坛由鹏城实验室视觉智能研究所主办,邀请了企业界和学术界的技术大咖和资 ...

最新文章

  1. 解决Xamarin Android SDK Manager闪退问题
  2. 20155303 2016-2017-2 《Java程序设计》第二周学习总结
  3. 想都不敢想!这8个神奇“黑科技”原来已经有人弄出来了
  4. 对大文件进行只打印过滤条件到列表元素(优化)
  5. 热议|上海交大等6所“双一流”明确,博士生毕业,不再要求发表论文!
  6. matlab读取数据 溢出,matlab读取400多兆的wav数据,内存溢出,如何解决
  7. 一位JAVA程序员的七夕情书——致未来的另一半
  8. 神经网络反向传播寻找极小值小实例
  9. springboot 整合 Servlet、Filter、Listener、访问静态资源
  10. UI基础(四)之tableView (cell重用、原型cell、静态cell)/xib注意事项
  11. linux 自学笔记
  12. hashCode()和equals()的若干问题
  13. 利用ABBYY Screenshot Reader快速截取网页并识别文本
  14. 6*6数独,要求输出结果
  15. 常见的几种推荐系统算法
  16. 在线URLEncode编码,URLDecode解码工具
  17. pythonpdf识别文字_python 提取pdf文字
  18. 分享咖啡基础知识——从咖啡小白到咖啡发烧友需要了解的那些事儿!
  19. 学计算机的买HP合适吗,大学生买笔记本电脑,这样选就对了。
  20. 微信服务商的分账功能总结

热门文章

  1. 基于人机交互设备测量用户情绪。
  2. Virtual.Lab模拟钢板冲击声
  3. ubuntu 16.04下切换python版本小结
  4. C 免费窗体控件Krypton Toolkit 4 2 0的使用
  5. Git本地库版本控制和分支管理
  6. [git] 基础操作-01-diff / diff head 版本比较 - 非常的详细讨论版本比较中的各种符号的意思,以及如何在git中进行版本比较
  7. js计算器代码加减乘除_理不清亲戚关系,程序员直接写了一个亲戚关系计算器,来试试?...
  8. java 控制 sortedset_Java集合的checkedSortedSet()方法和示例
  9. 16 分频 32 分频是啥意思_CD4017是什么?十进制计数器分频器CD4017的逻辑功能呢?...
  10. mvc4 html.dropdownlist,ASP.NET MVC4中使用Html.DropDownListFor的方法示例