高效Transformer层出不穷,谷歌团队综述文章一网打尽

选自arXiv
作者:YiTay等
机器之心编译
编辑:魔王
自2017年诞生以来 , Transformer模型在自然语言处理、计算机视觉等多个领域得到广泛应用 , 并出现了大量变体 。 近期涌现的大量Transformer变体朝着更高效的方向演化 , 谷歌研究者对这类高效Transformer架构进行了综述 。
Transformer是现代深度学习领域一股令人敬畏的力量 , 它广泛应用于语言理解、图像处理等多个领域 , 并产生了极大的影响 。 过去几年 , 大量研究基于Transformer模型做出基础性改进 。 人们对此的巨大兴趣也激发了对更高效Transformer变体的研究 。
近期涌现了大量Transformer模型变体 , 研究者和从业者可能难以跟上创新的节奏 。 在该论文写作时(2020年8月) , 之前的半年出现了十多个新的高效Transformer模型 。 因此 , 对已有文献进行综述对于社区而言是有益和及时的 。
自注意力机制是Transformer模型的核心典型特征 。 该机制可被看作是一种类似图的归纳偏置 , 将序列中的所有token与基于相关性的池化操作连接起来 。 对于自注意力的一个担忧是其时空复杂度都是平方级的 , 这妨碍模型在多种环境下的可扩展性 。 最近出现了大量试图解决该问题的Transformer模型变体 , 本文将这类模型称作「高效Transformer」(efficientTransformer) 。
基于此 , 模型的效率有了不同的诠释 。 效率可能指模型的内存占用 , 当模型运行的加速器内存有限时这尤为重要;效率也可能指训练和推断过程中的计算成本 , 如FLOPs数 。 尤其对于设备端应用而言 , 模型应在有限的计算预算下运行 。 该综述论文从内存和计算两个角度来考虑Transformer的效率 。
高效自注意力模型对于建模长序列的应用很关键 , 如通常包括较多像素或token的文档、图像和视频 。 因此 , 广泛采用Transformer优先考虑的是处理长序列的效率 。
该论文旨在对这类模型的近期发展进行综述 , 主要聚焦于通过解决自注意力机制的平方级复杂度来提升Transformer效率的建模发展和架构创新 , 同时该论文还简要探讨了通用改进和其他效率改进 。
该论文提出了一种针对高效Transformer模型的分类法 , 按照技术创新和主要用途进行分类 。 具体而言 , 该论文综述了在语言和视觉领域均有应用的Transformer模型 , 并为其中的部分模型提供了详细的解读 。
高效Transformer层出不穷,谷歌团队综述文章一网打尽
文章图片
论文链接:https://arxiv.org/pdf/2009.06732.pdf
关于Transformer
Transformer是将Transformer块一个个堆叠而成的多层架构 , 标准Transformer的架构如下图所示:
高效Transformer层出不穷,谷歌团队综述文章一网打尽
文章图片
【高效Transformer层出不穷,谷歌团队综述文章一网打尽】Transformer块的特征是多头自注意力机制、position-wise前馈网络、层归一化模块和残差连接 。 Transformer模型的输入通常是形状为R^B×R^N的张量 , B表示批大小 , N表示序列长度 。
输入首先经过嵌入层 , 嵌入层将每个one-hottoken表示转换为d维嵌入 , 即R^B×R^N×R^D 。 然后将这个新的张量与位置编码(positionalencoding)相加 , 并输入到多头自注意力模块中 。 位置编码可以采用正弦输入的形式 , 或者可训练嵌入 。
多头自注意力模块的输入和输出由残差连接和层归一化层来连接 。 将多头自注意力模块的输出传送至两层前馈网络 , 其输入/输出通过残差和层归一化来连接 。 子层残差连接与层归一化可表示为:
其中F_S是子层模块 , 它要么是多头自注意力 , 要么是position-wise前馈层 。
高效Transformer模型综述
这部分对高效Transformer模型进行了综述 。 首先我们来看不同模型的特点 , 表1列出了目前发布的高效Transformer模型 , 图2展示了多种重要高效Transformer模型的图示 。
高效Transformer层出不穷,谷歌团队综述文章一网打尽
文章图片
图2:高效Transformer模型的分类 , 分类标准是模型的核心技术和主要应用场景 。
高效Transformer层出不穷,谷歌团队综述文章一网打尽
文章图片
表1:按发布时间顺序整理的高效Transformer模型 。
此外 , 这部分还详细介绍了多个重要的高效Transformer模型 , 并分析了它们的优缺点和独特之处 。 这些模型包括:MemoryCompressedTransformer、ImageTransformer、SetTransformers、SparseTransformers、AxialTransformers、Longformer、ETC、BigBird、RoutingTransformers、Reformer、SinkhornTransformers、Linformer、Synthesizers、Performer、LinearTransformers、Transformer-XL和CompressiveTransformers 。
具体细节此处不再赘述 , 详情参见原论文第三章 。
论文最后讨论了这些模型的评估情况和设计趋势 , 并简要概述了可以提高Transformer效率的其他方法 , 如权重共享、量化/混合精度、知识蒸馏、神经架构搜索(NAS)和TaskAdapter 。


    推荐阅读