ipfs合租出租(www.ipfs8.vip):Transformer模子有若干种变体?复旦邱锡鹏教授团队做了周全综述_USDT交易所

USDT交易所

U交所(www.usdt8.vip),全球頂尖的USDT場外擔保交易平臺。

,

机械之心报道

编辑:Liyuan、杜伟

自提出至今,Transformer 模子已经在自然语言处置、盘算机视觉以及其他更多领域「大展拳脚」,学界也提出了林林总总基于原始模子的变体。但应看到,学界依然缺少系统周全的 Transformer 变体文献综述。复旦大学邱锡鹏教授团队的这篇综述正好填补了这一空缺。

自 2017 年 6 月谷歌宣布论文《Attention is All You Need》后,Transformer 架构为整个 NLP 领域带来了极大的惊喜。在降生至今仅仅四年的时间里,Transformer 已经成为自然语言处置领域的主流模子,基于 Transformer 的预训练语言模子更是成为主流。

随着时间的推移,Transformer 还最先了向其他领域的跨界。得益于深度学习的生长,Transformer 在盘算机视觉(CV)和音频处置等许多人工智能领域已然杀疯了,乐成地引来了学界和业界研究职员的关注眼光。到现在为止,研究者已经提出了大量且种类驳杂的 Transformer 变体(又名 X-former),然则仍然缺失系统而周全的 Transformer 变体文献综述。

去年,谷歌宣布的论文《Efficient Transformers: A Survey》对高效 Transformer 架构睁开了综述,但主要关注 attention 模块的效率问题,对 Transformer 变体的分类对照模糊。

克日,复旦大学盘算机科学手艺学院邱锡鹏教授团队对种类繁多的 X-former 举行了综述。首先简要先容了 Vanilla Transformer,提出 X-former 的新分类法。接着从架构修改、预训练和应用三个角度先容了种种 X-former。最后概述了未来研究的一些潜在偏向。

论文链接:https://arxiv.org/pdf/2106.04554.pdf

回首 Transformer 的生长

Transformer 最初是作为机械翻译的序列到序列模子提出的,而厥后的研究解释,基于 Transformer 的预训练模子(PTM) 在各项义务中都有最优的显示。因此,Transformer 已成为 NLP 领域的首选架构,尤其是 PTM。除了语言相关的应用,Transformer 还被用于 CV、音频处置,甚至是化学和生命科学。由于取得了乐成,已往几年研究者又提出了种种 Transformer 变体(又名 X-former)。这些 X-former 主要从以下三个差其余角度改善了最初的 Vanilla Transformer

模子效率。应用 Transformer 的一个要害挑战是其处置长序列时的效率低下,这主要是由于自注重力(self-attention)模块的盘算和内存庞大度。改善的方式包罗轻量级 attention(例如希罕 attention 变体)和分而治之的方式(例如循环和分层机制);

模子泛化。由于 Transformer 是一种天真的架构,而且对输入数据的结构误差险些没有假设,因此很难在小规模数据上举行训练。改善方式包罗引入结构误差或正则化,对大规模未符号数据举行预训练等;

模子适配。这一系列事情旨在使 Transformer 顺应特定的下游义务和应用程序。

虽然可以凭证上述角度来组织 X-former,但许多现有的 X-former 可能会解决一个或几个问题。例如,希罕 attention 变体不只降低了盘算庞大度,而且在输入数据上引入了却构先验以缓解小数据集上的太过拟合问题。因此,主要凭证 X-former 改善 Vanilla Transformer 的方式举行分类加倍有条理:架构修改、预训练和应用。思量到本次综述的受众可能来自差其余领域,研究者主要关注的是通用架构变体,仅简要讨论了预训练和应用方面的详细变体。

Vanilla Transformer

架构

Vanilla Transformer 是一个序列到序列的模子,由一个编码器和一个解码器组成,二者都是相同的块 组成的客栈。每个编码器块主要由一个多头 self-attention 模块和一个位置前馈网络(FFN)组成。为了构建更深的模子,每个模块周围都接纳了残差毗邻,然后是层归一化模块。与编码器块相比,解码器块在多头 self-attention 模块和位置方面 FFN 之间分外插入了 cross-attention 模块。此外,解码器中的 self-attention 模块用于防止每个位置影响后续位置。Vanilla Transformer 的整体架构如下图所示:

用法

通常有三种差其余方式使用 Transformer 架构:

使用编码器 - 解码器,通常用于序列到序列建模,例如神经机械翻译;

仅使用编码器,编码器的输出用作输入序列的示意,通常用于分类或序列符号问题;

仅使用解码器,其中也移除了编码器 - 解码器 cross-attention 模块,通常用于序列天生,例如语言建模。

Transformer 变体的的分类

停止现在,领域研究职员从架构修改类型、预训练方式和应用这三个方面提出了种种基于 vanilla Transformer 的变体模子。下图显示了 这些变体模子的种别:

而下图显示了本文研究者的分类和一些代表性模子:

Attention 模块

Self-attention 在 Transformer 中异常主要,但在现实应用中存在两个挑战:

庞大度。self-attention 的庞大度为 O(T^2・D)。因此,attention 模块在处置长序列时会遇到瓶颈;

结构先验。Self-attention 对输入没有假设任何结构性误差,甚至指令信息也需要从训练数据中学习。因此,无预训练的 Transformer 通常容易在中小型数据集上过拟合。

Attention 机制的改善可以分为以下几个偏向:

希罕 attention。将希罕误差引入 attention 机制可以降低了庞大性;

线性化 attention。解开 attention 矩阵与内核特征图,然后以相反的顺序盘算 attention 以实现线性庞大度;

原型和内存压缩。这类方式削减了查询或键值影象对的数目,以削减注重力矩阵的巨细;

低阶 self-Attention。这一系列事情捕捉了 self-Attention 的低阶属性;

Attention 与先验。该研究探索了用先验 attention 漫衍来弥补或替换尺度 attention;

改善多头机制。该系列研究探索了差其余替换多头机制。

希罕 attention

在尺度的 self-attention 机制中,每个 token 都需要 attend 所有其他的 token。然而,据考察,对于经由训练的 Transformer,学习到的 attention 矩阵 A 在大多数数据点上通常异常希罕。因此,可以通过连系结构误差来限制每个查询 attend 的查询键对的数目来降低盘算庞大度。

从另一个角度来看,尺度 attention 可以被视为一个完整的二部图,其中每个查询从所有内存节点吸收信息并更新其示意。而希罕 attention 可以看成是一个希罕图,其中删除了节点之间的一些毗邻。基于确定希罕毗邻的指标,研究者将这些方式分为两类:基于位置和基于内容的希罕 attention。

原子希罕 attention

基于位置的希罕 attention 之一是原子希罕 attention,如下图所示主要有五种模式。彩色方块示意盘算的 attention 分数,空缺方块示意放弃的 attention 分数。

复合希罕 attention

而另一种基于位置的希罕 attention 是复合希罕 attention,下图显示了其五种主要模式,其中红色框示意序列界限。

扩展希罕 attention

除了上述模式,一些现有的研究已经针对特定数据类型探索了扩展希罕模式。下图(a)展示了全局 attention 扩展的抽象视图,其中全局节点是分层组织的,任何一对 token 都与二叉树中的路径相连。红色框示意查询位置,橙色节点 / 方块示意查询关注响应的 token。

另有一些视觉数据的扩展。Image Transformer 探索了两种类型的 attention:

按光栅扫描顺序展平图像像素,然后应用块局部希罕 attention;

2D 块局部 attention,其中查询块和内存块直接排列在 2D 板中,如上图 (b) 所示。

视觉数据希罕模式的另一个例子,Axial Transformer 在图像的每个轴上应用自力的 attention 模块。每个 attention 模块沿一个轴夹杂信息,同时保持另一个轴的信息自力,如上图 (c) 所示。这可以明白为按光栅扫描顺序水平和垂直展平图像像素,然后划分应用具有图像宽度和高度间隙的跨步 attention。

线性化 attention

下图显示了尺度 self-attention 和线性化 linear-attention 的庞大度区别。

查询原型和内存压缩

除了使用希罕 attention 或基于内核的线性化 attention 之外,还可以通过削减查询或键值对的数目来降低 attention 的庞大度,这划分引向了查询原型和内存压缩的方式。

在查询原型设计中,几个查询原型作为盘算 attention 漫衍的主要泉源。该模子要么将漫衍复制到示意的查询的位置,要么用离散平均漫衍填充这些位置。

下图 (a) 说明晰查询原型的盘算流程。除了通过查询原型削减查询数目外,还可以通过在应用 attention 机制之前削减键值对的数目(压缩键值内存)来降低庞大度,如下图(b)所示。

先验 attention

Attention 机制通常将预期值输出为向量的加权和,其中权重是值上的 attention 漫衍。传统上,漫衍是从输入天生的,例如 Vanilla Transformer 中的 softmax(QK )。一样平常情形下,attention 漫衍也可以来自其他泉源,也就是先验。先验注重力漫衍可以弥补或替换输入发生的漫衍。Attention 的这种表述可以抽象为具有先验 attention,如下图所示。在大多数情形下,两个 attention 漫衍的融合可以通过在应用 softmax 之前盘算对应于先验 attention 和天生 attention 的分数的加权和来完成。

改善的多头机制

多头 attention 的吸引力在于能够配合 attend 来自差异位置的差异示意子空间的信息。然而,没有机制可以保证差其余 attention 头确实地捕捉到差其余特征。

如下图所示,多头机制下三种跨度屏障函数()。横轴代表距离,纵轴代表掩码值。

其他模块级修改

位置的主要性

验证卷积和循环网络不是置换等变是很简朴的。然而,Transformer 中的 self-attention 模块和位置前馈层都是置换等变的,这在建模问题时可能是一个问题。例如,在对文本序列建模时,单词的顺序很主要,因此在 Transformer 架构中准确编码单词的位置至关主要。因此,需要分外的机制将位置信息注入到 Transformer 中。一种常见的设计是首先使用向量示意位置信息,然后将向量作为附加输入注入模子。

层的归一化

层归一化 ( Layer Normalization, LN) 以及残差毗邻被以为是一种稳固深度网络训练的机制(如减轻不适定梯度和模子退化)。在 Vanilla Transformer 中,LN 层位于残差块之间,被称为 post-LN 。厥后的 Transformer 实现将 LN 层放在 attention 或 FFN 之前的残差毗邻内,在最后一层之后有一个分外的 LN 来控制最终输出的巨细,即 pre-LN。Pre-LN 已被许多后续研究和实现所接纳。pre-LN 和 post-LN 的区别如下图所示。

位置方面的 FFN

只管很简朴,但位置前馈网络 (feed-forward network, FFN) 层对于 Transformer 实现优越性能至关主要。研究者考察到简朴地堆叠 self-attention 模块会导致品级溃逃问题以及 token 平均性归纳误差,而前馈层是缓解此问题的主要构建块之一。本节探索了研究者对 FFN 模块的修改。

架构级修改

在本章中,研究者先容了架构层面的 X-former 变体模子。

轻量级 Transformer

除了在模块层面为减轻盘算开销所做的起劲外,领域内还泛起了一些在更高层面举行修改的轻量级 Transformer 模子,如 Lite Transformer、Funnel Transformer 和 DeLighT。

Strengthening Cross-Block Connectivity

在 deep Transformer 编码器 - 解码器模子中,解码器中的 cross-attention 模块仅行使编码器的最终输出,因此误差信号必须沿着编码器的深度举行遍历。这使得 Transformer 更易于受到梯度消逝等优化问题的影响。

Transparent Attention [8] 使用每个 cross-attention 模块中所有编码器层(包罗嵌入层)上的编码器示意的加权和。对于第 j 个编码器块,cross-attention 应示意如下:

Feedback Transformer[34] 提出在 Transformer 解码器添加反馈机制,其中每个位置均关注来自所有层的历史示意的加权和:

自顺应盘算时间

与大多数神经模子一样,Vanilla Transformer 使用牢靠(学习的)盘算程序来处置每个输入。一个有趣且有生长潜力的修改是使盘算时间以输入为条件,即在 Transformer 模子中引入自顺应盘算时间(Adaptive Computation Time, ACT)。

如下图 12(a)所示,Universal Transformer (UT) 连系了深度循环(recurrence-over-depth)机制,该机制使用一个在深度上共享的模块来迭代地改善所有符号的示意;图 12(b)中,Conditional Computation Transformer (CCT) 在每个自注重力和前馈层添加一个门控模块来决议是否跳过当前层;图 12(c)中,与 UT 中使用的动态停机机制类似,有一条事情线专门用于调整每个输入的层数以实现优越的速率 - 准确率权衡,这称为「提前退出机制」(early exit mechani *** )。

行使「分而治之」战略的 Transformer

自注重力对序列长度的二次庞大度会显著限制一些下游义务的性能。研究者确定了两类有具有代表性的方式,划分是循环和层级 Transformer,详细如下图 13 所示

在循环 Transformer 中,维护一个高速缓存(cache memory)用来合并历史信息。在处置一段文本时,该网络从缓存中的读取作为分外输入。处置完成后,网络通过简朴地复制隐藏状态或使用更庞大的机制来写入内存。

层级 Transformer 将输入分层剖析为更细粒度的元素。低级特征首先被馈入到 Transformer 编码器,发生输出示意,然后使用池化或其他操作来聚合以形成高级特征,然后通过高级 Transformer 举行处置。

更多细节内容请参阅原论文。

CVPR 2021 线下论文分享会

时间:6 月 12 日 9:00-18:00

地址:北京市望京凯悦旅店

  • 评论列表:
  •  皇冠app怎么下载
     发布于 2021-08-15 00:00:05  回复
  • 新2手机代理管理端(www.9cx.net)实时更新最新最快的新2手机管理端网址、新2手机代理管理端、新2手机会员管理端。提供新2APP下载,新2APP包含新2代理线路、新2会员线路、新2备用登录线路、新2手机版登录线路、新2皇冠登录线路及网址。看文一直爽啊

添加回复:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。