Transformer是一个强大的序列模型,但是它需要的时间和内存会随着序列长度的增加而二阶增长。OpenAI研究人员最近开发了SparseTransformer,这是一种深度神经网络,它为预测长序列(无论是文本、图像还是声音)创造了新记录。在注意力机制中使用改进的算法,神经网络可以从比以前长30倍的序列中提取模式。AI研究当前面临的挑战之一是对复杂数据(例如图像、视频或声音)中的细粒度相关性的长序列进行建模。SparseTransformer结合了O(N^2)Transformer自注意力机制的O(N√N)重组,以及其他几项改进,以直接处理这些丰富的数据类型。以前,用于这些数据的模型要么是特定领域的,要么难以将序列扩展到数千个元素。相比之下,OpenAI开发的模型可以使用数百层对包含数万个元素的序列进行建模,并在多个领域取得了良好的性能。OpenAI研究人员使用该模型来帮助创建能够更好地理解世界的人工智能系统。Deepattention在Transformer中,每个输出元素都与输入元素相连,它们之间的权重是根据具体情况动态计算的。这个过程被称为“注意力机制”。虽然据信这使得Transformer比那些具有固定连接模式的模型更灵活,但实际上有必要为每个层和注意力头创建一个N×N注意力矩阵,当应用于图像或原始音频等时,它具有许多元素的数据类型会消耗大量内存。当矩阵存储在内存中或在逆计算期间重新计算时,注意深度Transformer(64层和4头)的内存使用情况。作为参考,用于深度学习的标准GPU内存通常为12-32GB。减少内存消耗的一种方法是在反向传播过程中从检查点重新计算注意力矩阵,这是深度学习中一种行之有效的方法。通过更多计算减少内存使用的方法。当Transformer中的注意力矩阵完成时,意味着内存消耗将不再受层数支配,从而使研究人员能够比以前更深入地训练网络。在实践中,研究人员发现,深度达128层的Transformer在CIFAR-10等基准任务上的表现优于较浅的网络。为了训练更深层次的模型,研究人员对transformer的操作顺序进行了多次调整,并对初始化方法进行了修改。有关详细信息,请参阅论文。稀疏注意力然而,即使是为非常大的输入计算单个注意力矩阵也是不切实际的。因此,OpenAI使用稀疏注意力模型,其中每个输出位置仅计算来自输入位置子集的权重。当子集相对于整个输入集较小时(比如元素个数为√N而不是N),即使对于很长的序列,attention计算也变得容易,算法复杂度为O(N√N)而NotO(N^2)。为了评估该方法的可行性,我们首先可视化和学习深度Transformer在图像上的注意力模式,发现其中许多表现出可解释和结构化的稀疏模式。下面的每张图片都显示了给定的注意力头处理哪个输入像素(以白色突出显示)以预测图像中的下一个值。当输入部分集中在一个小子集上并表现出高度规律性时,该层容易受到稀疏化的影响。以下是CIFAR-10图像上128层模型的示例:左图:第19层,右图:第20层。学习128层CIFAR-10网络的多个层的注意模式(以白色突出显示)。这些层学会在两个维度上分割注意力。第19层聚合每一行的信息,第20层按列聚合这些信息,有效地分解了完整的注意力操作。经过训练以获取位置记忆的层(左:第6层;右:第36层),通常关注相似的位置,而不管输入数据或时间步长如何(第6层)。其他层学习高度依赖数据的访问模式(第36层)。虽然许多层显示出稀疏结构,但一些层清楚地显示了扩展到整个图像的动态注意力。为了保持网络学习此类模式的能力,研究人员对注意力矩阵进行了二维分解,其中网络可以通过两步稀疏注意力关注所有位置。Stridedattention大致相当于每个位置处理自己的行和列,这与上述网络学习到的attentionpattern类似。(注意,columnattention可以等同于处理转置矩阵的行)。fixedattention的第二个版本处理固定的列和列元素之后的元素。研究人员认为,这种模式对于无法适应二维结构(例如文本)的数据很有用。实验结果SparseTransformer刷新了CIFAR-10、Enwik8和Imagenet64数据集上的当前密度估计分数。CIFAR-10、Enwik8和Imagenet64数据集上的密度估计性能(以每字节/维数为单位)。M代表网络中使用的参数(百万),W代表网络宽度,L代表层数,H代表头数。研究人员还发现,稀疏注意力比全注意力损失更低,速度更快。这可能指向由稀疏模式引起的有用的归纳偏差,或者指向密集关注的潜在优化问题。使用稀疏注意力生成图像的变形金刚似乎具有全局结构的概念,可以通过查看图像补全来定性评估。下图可视化了一个在64×64ImageNet上训练的模型:损坏的原始图像修复图像真实图像研究人员还生成了完全无条件的样本,其未调整的softmax温度为1.0。这些模型使用涵盖所有数据模式(包括可能不存在的数据)的似然目标进行训练,而不是增强较小部分数据的保真度。从温度未调整的模型中取样,研究人员看到了模型认为世界上存在的图像的完整分布。结果,一些样本看起来很奇怪。生成原始音频波形的模型示例SparseTransformer也可用于通过简单地更改位置嵌入来生成原始音频而不是图像。随着深度学习扩展到新的数据类型,也很容易指定此类网络的归纳偏差。该模型在原始古典音乐片段上进行训练,并使用稀疏注意力生成长度为65000的序列。这相当于大约5秒的原始音频,研究人员在下面的每个片段中将多个样本连接在一起。代码发布通常,实现稀疏注意力需要将查询和关键矩阵拆分为块,因此为了简化实验,OpenAI实现了一组块稀疏内核,可以在GPU上高效地执行这些操作。OpenAI开源了这些内核,并提供了一个稀疏注意力函数的示例:https://github.com/openai/sparse_attention未来的发展和局限本文中介绍的稀疏注意力模型只是对高效建模长序列的初步尝试。研究人员认为,探索稀疏注意力的不同模式和各种组合非常有用,学习稀疏模式也是下一代神经网络架构的重要研究途径。即使有了上述改进,自回归序列生成对于非常高分辨率的图像和音频仍然不切实际。然而,研究人员引入的优化注意力操作可能是有用的,将其与其他方法(如多尺度方法)相结合,对高维数据进行建模。论文:GeneratingLongSequenceswithSparseTransformers论文链接:https://d4mucfpksywv.cloudfront.net/Sparse_Transformer/sparse_transformers.pdf摘要:Transformer是一个强大的序列模型,但是它需要的时间和内存会随着序列长度的增加而增加Second-订单增长发生。本文介绍了注意力矩阵的稀疏分解,可以减少到O(N√N)。该研究提出了a)用于训练更深层网络的架构和初始化变体;b)重新计算注意力矩阵以节省内存;c)用于训练的快速注意力内核。研究人员将具有这些变化的网络称为稀疏变换器,并证明它可以使用数百层来模拟数万个时间步长的序列。该网络使用相同的架构从原始字节对图像、音频和文本进行建模,在Enwik8、CIFAR10和ImageNet-64数据集上实现了最先进的密度估计性能。研究人员生成的无??条件样本表现出全局一致性和极大的多样性,并证明原则上可以使用自注意力来对长度超过一百万的模型序列进行建模。参考链接:https://openai.com/blog/sparse-transformer/【本文为《机器之心》专栏原文翻译,微信公众号“机器之心(id:almosthuman2014)”】点此查看该作者更多好文
