以Transformer为核心的自回归attention程序一直难以克服scaling的困难。为此,DeepMind/谷歌最近成立了一个新项目,提出一个很好的方法来帮助这类程序有效瘦身。由DeepMind和GoogleBrain构建的PerceiverAR架构避开了将输入和输出的组合属性计算到潜在空间中的一项繁重的资源密集型任务。相反,他们将“因果掩蔽”引入潜在空间,从而实现典型的Transformer的自回归顺序。AI/深度学习中最令人印象深刻的趋势之一是模型的规模不断扩大。业内专家表示,由于规模往往与业绩直接挂钩,这波扩容潮很可能会持续下去。然而,项目的规模越来越大,消耗的资源自然也越来越多,这就导致了深度学习,并在社会和伦理层面引发了新的问题。这一困境引起了《自然》等主流科学期刊的关注。也正是因为如此,我们可能不得不回到“效率”这个古老的词——AI程序,难道就没有进一步提升效率的空间了吗?来自DeepMind和谷歌大脑的科学家最近对他们去年推出的神经网络Perceiver进行了一些改进,希望能够提高其对计算资源的使用效率。新程序名为PerceiverAR。这里的AR来源于autoregressive“自回归”,这是当今越来越多的深度学习程序的另一个发展方向。自回归是一种允许机器将输出用作程序新输入的技术。它是一种递归操作,从而形成一个具有多个相互关联的元素的注意力图。Google在2017年推出的热门神经网络Transformer也具有这种自回归特性。事实上,后来出现的GPT-3和第一版Perceiver延续了自我回归的技术路线。在PerceiverAR之前,今年3月推出的PerceiverIO是Perceiver的第二个版本,可以追溯到去年这个时候发布的第一个版本的Perceiver。最初Perceiver的创新是采用Transformer并进行调整,使其可以灵活吸收各种输入,包括文本、声音和图像,从而摆脱对特定类型输入的依赖。这使研究人员能够开发具有多种输入类型的适当神经网络。作为时代潮流的一员,Perceiver和其他模型项目一样,也开始使用自回归注意力机制来混合不同的输入模式和不同的任务域。此类用例还包括Google的Pathways、DeepMind的Gato和Meta的data2vec。到今年3月,原始Perceiver的创建者AndrewJaegle和他的同事团队发布了“IO”版本。新版本增强了Perceiver支持的输出类型,实现了大量不同结构的输出,包括文本语言、光流场、视听序列甚至符号无序集等,PerceiverIO甚至可以生成指令对于《星际争霸2》游戏。在这篇最新论文中,PerceiverAR已经能够为长上下文实施通用自回归建模。但在研究中,Jaegle和他的团队也遇到了新的挑战:如何在处理各种多模态输入输出任务时扩展模型。问题在于Transformer的自回归质量,以及任何类似构建输入到输出注意力图的程序,都需要高达数十万个元素的大规模分布。这就是注意力机制的致命弱点所在。更准确地说,需要关注所有内容以在注意力图上构建概率分布。正如Jaegle和他的团队在论文中提到的,当输入中需要相互比较的事物数量增加时,模型对计算资源的吞噬会越来越夸张:这种长上下文结构与Transformer的计算特性。Transformers对输入重复执行自注意力操作,这导致计算需求随输入长度呈二次方增长,并随模型深度呈线性增长。输入数据越多,与观察到的数据内容对应的输入标记越多,输入数据中的模式变得越微妙和复杂,产生的模式必须用更深的层进行建模。由于计算能力有限,Transformer用户被迫要么截断模型输入(防止观察到更远的模式),要么限制模型的深度(从而在对复杂模式建模时剥夺其表现力)。事实上,Perceiver的第一个版本也试图提高Transformers的效率:它不是直接进行注意力,而是对输入的潜在表示进行注意力。通过这种方式,可以“(解耦)处理大型输入数组的计算能力需求和大型深度网络的相应计算能力需求”。PerceiverAR与标准Transformer深度网络、增强型TransformerXL的对比。在潜在部分,输入表示被压缩,从而成为更高效的注意力引擎。这样,“对于深度网络,大部分计算实际上发生在自注意力堆栈上”,而不必对无限数量的输入执行操作。但是挑战依然存在,因为latentrepresentation没有顺序的概念,所以Perceiver不能像Transformer那样产生输出。虽然顺序在自回归中至关重要,但每个输出都应该是它之前而不是之后的输入的乘积。“但由于每个潜在模型都会处理所有输入,而不管它们的位置如何,Perceiver不会直接适用于自回归生成,其中每个模型输出必须仅取决于其先前的输入,”研究人员写道。“当谈到PerceiverAR时,研究团队更进一步,将序列插入到Perceiver中,使其能够实现自动回归功能。这里的关键是对输入和潜在表示进行所谓的“因果掩蔽”.在输入端,causalmasking强制“交叉注意”,而在latentrepresentation端,它强制程序只关注给定符号之前的东西。这种方法恢复了Transformer的定向性,仍然显着降低了结果是PerceiverAR可以基于更多的输入实现与Transformer相当的建模结果,但性能大大提高。他们写道,“PerceiverAR完美地识别和学习由至少100k个标记分隔的长上下文模式合成复制任务。”相比之下,Transformer有2048个令牌的硬限制,令牌越多,上下文越长,程序输出为变得更加复杂。与广泛使用纯解码器的Transformer和Transformer-XL架构相比,PerceiverAR的效率更高,并且可以根据目标预算灵活改变测试时实际使用的计算资源。论文中写道,在相同的注意力条件下,计算PerceiverAR的挂钟时间明显更短,在相同的计算能力预算下它可以吸收更多的上下文(即更多的输入符号):Transformer的上下文长度是有限的到2048Markup,相当于只支持6层——因为更大的模型和更长的上下文会消耗大量内存。使用相同的6层配置,我们可以将Transformer-XL内存的总上下文长度扩展到8192个标记。PerceiverAR可以将上下文长度扩展到65k标签,如果进一步优化,甚至有可能突破100k。所有这些都导致了更灵活的计算:“我们可以更好地控制给定模型在测试过程中产生的计算量,它使我们能够在速度和性能之间取得稳定的平衡。”Jaegle及其同事还写道,这种方法适用于任意输入类型,不限于文字符号。例如,可以支持图像中的像素:只要应用因果掩蔽技术,相同的过程适用于任何可排序的输入。例如,图像的RGB通道可以通过序列中每个像素的R、G和B颜色通道的按顺序或乱序解码按光栅扫描顺序排序。作者发现了Perceiver的巨大潜力,在论文中写道,“PerceiverAR是具有长上下文的通用自回归模型的理想候选者。”但是为了追求更高的计算效率,又增加了不稳定的因素。作者指出,研究界最近还尝试通过“稀疏性”来降低自回归注意力的计算能力要求,即限制赋予某些输入元素的重要性的过程。在相同的挂钟时间内,PerceiverAR能够以相同的层数从输入运行更多的符号,或者在运行相同数量的输入符号的情况下显着减少计算时间。作者认为,这种出色的灵活性有望为大型网络找到普遍的效率提升。但是稀疏性也有自己的缺点,主要是太死板了。论文写道,“使用稀疏性方法的缺点是,这种稀疏性必须通过手动调整或启发式方法来创建。这些启发式方法通常只适用于特定领域,而且往往难以调整。”2019年OpenAI和Nvidia2009年发布的SparseTransformer属于sparsity项目。他们解释说,“相比之下,我们的工作并不强制在注意力层上手动创建稀疏模式,而是让网络自主学习哪些长上下文输入需要更多的注意力并通过网络传播。”该论文还补充说,“初始的交叉注意力操作减少了序列中的位置数量,可以看作是一种稀疏学习形式。”以这种方式学习的稀疏性本身可能会在未来几年成为深度学习的一个特征。对您的建模工具包的另一个强大补充。
