构建能处理全球数据的架构
构建全球数据处理架构
Perceiver和Perceiver IO作为多功能AI工具
如今,大多数AI系统使用的架构都是专业的。2D残差网络可能是处理图像的不错选择,但对于其他类型的数据(例如自动驾驶车辆中使用的激光雷达信号或机器人中使用的扭矩),它最多也只是一个宽松的匹配。此外,标准架构通常只针对一项任务进行设计,这通常导致工程师们不得不费尽心思地改变、扭曲或以其他方式修改输入和输出,希望标准架构能够正确处理他们的问题。处理多种类型的数据(如组成视频的声音和图像)甚至更加复杂,通常需要使用由许多不同部分构建的复杂、手动调整的系统,即使是对于简单的任务也是如此。作为DeepMind解决智能以推进科学和人类发展的使命的一部分,我们希望构建可以处理多种输入和输出类型的问题的系统,因此我们开始探索一种更通用、更灵活的架构,可以处理所有类型的数据。
在ICML 2021(国际机器学习大会)上发表的一篇论文中,并作为预印本发布在arXiv上,我们介绍了Perceiver,这是一种通用架构,可以处理包括图像、点云、音频、视频及其组合在内的数据。尽管Perceiver可以处理许多种类的输入数据,但它只限于具有简单输出(如分类)的任务。arXiv上的一篇新的预印本描述了Perceiver IO,这是Perceiver架构的更通用版本。Perceiver IO可以从许多不同的输入产生各种各样的输出,因此适用于语言、视觉、多模态理解以及像《星际争霸II》这样具有挑战性的游戏等实际领域。为了帮助研究人员和机器学习社区,我们现在已经开源了代码。
Perceiver建立在Transformer的基础上,Transformer使用一种称为“注意力”的操作将输入映射到输出。通过比较输入的所有元素,Transformer根据它们彼此之间和任务之间的关系来处理输入。注意力是简单且广泛适用的,但是当输入数量增加时,Transformer使用注意力的方式可能很快变得昂贵。这意味着Transformer适用于最多具有几千个元素的输入,但是像图像、视频和书籍这样的常见数据形式很容易包含数百万个元素。通过原始的Perceiver,我们解决了通用架构的一个主要问题:将Transformer的注意力操作扩展到非常大的输入,而不引入特定领域的假设。Perceiver通过使用注意力将输入首先编码为一个小的潜在数组来实现这一点。这个潜在数组可以进一步处理,而其成本与输入的大小无关,使得Perceiver的存储和计算需求可以随着输入的增长而平稳增长,即使对于特别深的模型也是如此。
图3. Perceiver IO在光流估计这一具有挑战性的任务上产生了最先进的结果,即跟踪图像中所有像素的运动。每个像素的颜色显示了Perceiver IO估计的运动方向和速度,如上方的图例所示。
这种“优雅的增长”使感知器能够实现前所未有的广泛性 – 在基于图像、3D点云和音频与图像的基准测试中,它与特定领域的模型竞争。但是,由于原始的感知器只对每个输入产生一个输出,它不如研究人员所需的那样灵活。感知器IO通过使用注意力不仅编码到潜在数组中,而且解码自潜在数组,从而为网络提供了极大的灵活性。感知器IO现在可以扩展到大规模和多样化的输入和输出,甚至可以同时处理许多任务或数据类型。这为各种应用打开了大门,例如从文本的每个字符理解其含义,跟踪图像中所有点的运动,处理构成视频的声音、图像和标签,甚至玩游戏,所有这些都使用了比其他选择更简单的单一架构。
原始感知器IO原始感知器IO原始感知器IO图4.感知器IO可以学习同时理解多种类型的数据。在这里,我们展示了该模型如何重建输入视频的图像和音频。
在我们的实验中,我们发现感知器IO可以在广泛的基准领域中发挥作用,例如语言、视觉、多模态数据和游戏,为处理多种数据提供了一种即插即用的方法。我们希望我们最新的预印本和在Github上提供的代码可以帮助研究人员和实践者解决问题,而不需要投入时间和精力构建使用专门系统的定制解决方案。随着我们不断从探索新类型的数据中学习,我们期待进一步改进这种通用架构,并使其在科学和机器学习领域更快、更容易地解决问题。