除了生成文本,还可以补全图像、生成音频序列的稀疏 Transformers

雷锋网 AI 科技评论按:OpenAI 设计了一种新的 Transformer 模型:稀疏 Transformer(Sparse Transformer),它在序列预测任务中取得了新的表现记录,不论是预测文本、像素还是声音序列。它在注意力机制的基础上做了算法改进,可以在比以前长 30 倍的序列中提取模式。

AI 科研中现存挑战之一就是对复杂数据中的长距离、细微的互相关联性做建模,比如图像、视频、音频序列内部存在的关联性。原始的 Transformer 中的自我注意力机制有着 O(N 2 ) 的计算复杂度,OpenAI 新提出的稀疏 Transformer 经过重新设计,把计算复杂度降低到了 O(N√N),以及加入了其它一些改进,让它可以处理更长的序列甚至更复杂的数据类型。在此之前,处理这些数据的模型要么是针对单独一种数据类型专门设计的,要么很难处理几千个元素以及更长的序列。而 OpenAI 的稀疏 Transformer 可以用数百层的模型处理上万个元素长的序列额,并且在多个不同的任务中取得最佳表现。雷锋网 AI 科技评论根据 OpenAI 技术博客介绍如下。

深层注意力

在 Transformer 模型中,每一个输出元素都与每一个输入元素相连接,每个连接的权重是根据不同的状况动态计算的,这个过程就叫做注意力。相比连接方式固定的做法,研究人员们相信这样能够让 Transformer 更灵活,但代价就是在实际使用中它需要为每一层、每一个注意力头建立一个 N x N 大小的注意力矩阵,当输入图像、音频波形等含有大量元素的序列时会带来大量的内存开销。

一个具有 64 层、4 个注意力头的深度 Transformer 模型的注意力内存消耗。作为参考,用于深度学习的 GPU 的显存大小一般在 12GB 到 32GB 的水平。

应对这个问题的一种做法是在反向传播中根据建立的检查点重新计算注意力矩阵,这是深度学习中的一种常见做法,可以用消耗更多计算为代价减小内存的使用。对 Transformer 模型中的注意力矩阵使用这种做法之后,它的效果是让最大的内存消耗不再和网络的层数相关,就让训练比以往深得多的模型变得可能。在实际尝试中,OpenAI 的研究人员们训练了最深达 128 层的 Transformer,也在 CIFAR-10 之类的测试任务中击败了较浅的模型。

为了训练更深的模型,OpenAI 的研究人员们还对 Transformer 模型中的运算顺序做了多种调整、修改了最初的注意力机制。详细介绍可以参见论文原文。

稀疏注意力

即便已经有了节省内存的方法,面对很长的序列输入时把每个注意力矩阵都计算出来仍然是不实际的。OpenAI 转而使用稀疏的注意力模式,也就是说,每个输出位置在计算时只考虑一部分输入位置的权重。当取的这一部分相比于全部输入位置很小的时候(比如一共 N 个输入元素,取 √N 个),即便对于很长的序列也是可以计算注意力的了,计算复杂度也就响应降低为 O(N√N),不再是完全计算时的 O(N 2 )。

这种做法的可行性需要加以评估。OpenAI 的研究人员们首先对原本的深度 Transformer 模型学到的注意力模式进行了可视化,他们发现许多样本中都体现出了可解释的、结构化的稀疏模式。在下面的四张图中,用高亮显示出了预测图像中的下一个像素时有哪些已有的像素是被注意力头所使用的。当用到的输入像素数量不多而且表现出高度的规律性的时候,就可以认为网络中的这一层是可以做稀疏化改造的。图中展示的是 128 层的网络模型在 CIFAR-10 数据集中图像上运行时的分析结果。

第 19 层 第 20 层

网络中的某些层学到的是单个维度上注意力模式。19 层关注的是每个横排,20 层关注的是每个竖列,可以看做是完整的注意力操作的分解。

第 6 层 第 36 层

某些层学习到的是使用某些空间位置,在不同的输入数据或者时间步骤中这些位置都是相似的。还有一些其他的层学到的访问模式会随着数据的不同而变化。

虽然许多层都确实表现出了稀疏结构,不过也有一些层明显表现出了可以覆盖整个图像范围的动态注意力模式。为了仍然在网络中保留学到这种模式的能力,OpenAI 的研究人员们实现了一种注意力矩阵的二维分解,网络通过两步稀疏注意力操作就仍然可以访问图像中的所有位置。

其中的第一种,条状注意力,基本就和前面例子中关注单行、单列一样;第二种,固定注意力,关注的是某个固定的列以及其中最后一个列元素之后的元素,研究人员们发现这种模式对于无法用前一种模式覆盖的数据结构(比如文本)非常有用。更多的细节可以参见论文原文。

实验结果

稀疏 Transformers 模型在 CIFAR-10、Enwik8、Imagenet 64 数据集上的密集估计任务中取得了目前的最好成绩。

对于稀疏 Transformer 模型的参数,W 表示网络宽度、L 表示网络层数、H 表示注意力头的数量。

OpenAI 的研究人员们还发现稀疏注意力不仅比完整的注意力快多了,损失也要更低(具体对比见论文)。这表明他们的稀疏注意力设计可能附带了有好处的先验偏倚,或者是密集注意力自身隐含着一定的优化问题。

用稀疏注意力生成图像

使用稀疏注意力的 Transformer 模型在测试中似乎体现出了全局结构的概念,这在图像补全任务中可以进行量化测量。下面展示了对于 64×64 尺寸 ImageNet 图像的补全演示。

待补全图像

补全结果

真实图像

他们还生成了完全无限制的图像,对应的未调节 softmax 温度为 1。模型是使用最大似然作为目标训练的,这种方法可以覆盖数据的所有模式(包括训练数据中未出现甚至不存在的模式),而不是某一小部分数据中继续增加保真度而已。取未调节的温度对模型进行采样,得出的图像可以看作是「模型认为这样的图像在世界上是存在的」。当人类观察的时候,自然会觉得有一些样本很奇怪。

模型在无条件限制下生成的样本

生成原始音频波形

只要简单地改变位置嵌入,稀疏 Transformer 可以用来生成音频波形。这样可以让深度学习模型轻松地在不同的数据类型上工作,OpenAI 的研究人员们认为这减小了之前的研究中处理不同类型数据时分别引入的不同先验偏倚,对科研会有所帮助。

他们在古典音乐片段(钢琴曲)上训练了模型,然后通过稀疏注意力生成长度为 65000 的音频波形序列,对应的播放时长大约为 5 秒钟。他们把多组生成结果拼成了三个音频文件,试听可以访问 https://soundcloud.com/openai_audio/sample-set-1 。雷锋网 (公众号:雷锋网) AI 科技评论试听后的评价是,有些片段较为激烈杂乱,也有一些较为简单安静,能感觉到细微的节奏感(轻重节拍变换);总的来说,能轻松辨别出是钢琴演奏,但是旋律比较难以欣赏。

现阶段的不足以及未来方向

论文中设计的稀疏注意力模式仅仅是对高效地建模长序列的新方法的非常初步的研究。作者们认为探究不同的稀疏模式以及它们的组合是有用的研究,而且对于下一代神经网络架构的发展也可以起到尤其有帮助的探路作用。

即便作者们提出的方法已经带来了明显的改进,非常高分辨率的图像或者视频的自回归序列生成仍然是不可行的。论文中提出的注意力机制的优化方法可以成为多尺度方法之类的高维数据建模方法的有效补充。

论文原文见: https://arxiv.org/abs/1904.10509

GitHub 地址: https://github.com/openai/sparse_attention

via openai.com ,雷锋网 AI 科技评论编译

雷锋网版权文章,未经授权禁止转载。详情见 转载须知

Add a Comment

电子邮件地址不会被公开。 必填项已用*标注