赶上最新的AI论文

变形金刚真的变了吗?

Transformer

个要点  
✔️ 调查各种变形金刚,已经
✔️ 普通变压器模型与25种不同变体的比较
✔️ 变形金刚关于提高架构准确性的建议

Do Transformer Modifications Transfer Across Implementations and Applications?
written by Sharan Narang, Hyung Won Chung, Yi Tay, William Fedus, Thibault Fevry, Michael Matena, Karishma Malkan, Noah Fiedel, Noam Shazeer, Zhenzhong Lan, Yanqi Zhou, Wei Li, Nan Ding, Jake Marcus, Adam Roberts, Colin Raffel
(Submitted on 23 Feb 2021)
Comments: 
Accepted to arXiv.

Subjects: Machine Learning (cs.LG); Computation and Language (cs.CL)

code:  

 

首先

深度学习的大多数进步都是通过性能的快速飞跃,然后是架构、损失函数和学习技术的渐进式改进。剩余的连接、正常化、掉线、亚当等都是各领域技术水平提升的一部分。从一开始,CNN架构的小改进就帮助提高了几个视觉任务的技术门槛。

然而,在2017年,拟变压器仍在使用,没有对原有模式进行重大改动。变压器不仅被用于NLP相关任务中的序列到序列建模,而且同样的架构也被发现对视觉任务(ViT)有效。科学界已经提出了激活、归一化、深度、嵌入和加权等修改方法,这些方法对特定的任务是有效的,但这些技术还没有被广泛采用。

本文件研究了这些不同的修改如何适用于不同于它们所提议的其他模式,以及推测为什么有些方法不能在多种模式中发挥作用。

要害

在本节中,变压器架构简述。更详细的信息,请阅读原文本文

变压器网络主要由两部分组成:编码器和解码器。编码器是一个向量{x[1],x[2],.......x[T]}并取一个标签序列{y[1],y[2],...。.y[U]},并被训练成预测{ y[1],y[2],...,y[U] }。在编码器中,输入序列中的每个标记都被分配了一个维度,即d模型被相应的嵌入向量替换为自我关注由于操作是换元不变的,所以位置编码p[t]被添加到嵌入向量中。

编码器的每个块由两个子块组成:一个是多头自我关注MHSA)层,以及一个密集前馈层。MHSA块的输入通过三个不同的密集投影层key(k), value(v), query(q)向量。网络"l"层的每个头"h"都计算出

所有MHSA块的输出都被连在一起,并且d模型维度。然后将此输出加到残差输入中,进行归一化处理,并传递到一个具有ReLU非线性的密集前馈网络。

两个子块都有残余的连接,并采用层级归一化。层归一化是应用于序列h[1],h[2].... 的操作。...h[T],并定义为应用于的操作。

其中:γ,β∈ 。 Rd_model对每个层-诺姆层有一个唯一的学习参数。

解码器的一个不同之处在于,解码器利用了一个注意掩码,防止解码器关注目标序列中的未来项目。另一个不同之处是,解码器从编码器接收到的是钥匙价值而解码器则接收来自屏蔽的MHSA层的投影输入。疑问接收预测输入的其他部件与编码器中的相同。

对原有模式的修改

本节介绍如何使用变电我们将看到我们为测试所做的各种修改。

活化

将前馈网络中的ReLU替换为GeLU、Swish、指数线性单元(ELU)、SeLU、Sigmoid(σ)、Softplus和门控线性单元(GLU)GLU的定义为: 1.F(x)⋅σ(F(x))用ReLU(ReGLU)、GeLU(GeGLU)和标准线性变换(LiGLU)代替GLU的sigmoid。

归一化

尝试均方根归一化(RMS norm)、Rezero初始化、Rezero+layernorm、Rezero+RMSnorm和Fixup初始化。

深度

前馈子块的宽度(dff)和深度(L)之间的权衡,同时保持参数大小不变,我们考虑了在

参数共享

变电包含编码器输入嵌入、解码器输入嵌入和解码器输出(softmax)层权重,称为d模型×d词汇有三种形状的重量矩阵我们试图将这些矩阵连接起来(使权重共同),并解决(使用不同的权重)。具体来说,我们测试将编码器输入嵌入与解码器输入嵌入绑定,将解码器输入嵌入与输出嵌入绑定,以及解除所有嵌入矩阵的绑定。我们还测试了项目在自适应输入嵌入中根据其频率进行聚类。嵌入的维度与簇的大小成正比,嵌入向量在同一维度上进行投影和协整。在某些情况下,d模型×d词汇和一个大小为d模型 × d内心d内心 × d模型因数化为除了共享嵌入矩阵外,其他参数(自觉性块等),我们也曾试验过在所有L层共享一组参数。

柔美

作为Softmax的一个变种,我们尝试Adaptive Softmax,它根据词的频率形成聚类。每个聚类可以有不同的大小,使用投影矩阵减少稀有词的聚类大小。另一种称为Mixture of softmax (MoS)的方法不仅计算一个softmax,而且计算一个由学习系数加权的softmax的线性组合。

建筑学

我们将使用科学界多年来提出的几种架构进行测试。

  1. 透明注意力采用加权残差连接。
  2. 采用进化型建筑探索设计的进化型变压器。
  3. 我们运行因子化的、密集的和随机的合成器变体,用"合成注意力"模式代替自我注意力操作。"加"表示在合成注意力中加入点产品注意力的情况,"加α"表示在合成注意力和点产品注意力之间使用标量α进行补偿的情况。
  4. 漏斗变换器缩短了编码器的阵列长度,以便对输入阵列进行有效编码。
  5. 在Lightweight Convolutions中,连续m个通道(总d_model通道)的权重是共享的,并一起归一化;在Dynamic Convolutions中,m的值没有作为固定的超参数留下,而是作为层输入的简单线性函数是用来确定的。
  6. 开关变压器和专家混合物(MoE)变压器采用自适应计算。也就是说,前馈层被一个稀疏激活的专家层所取代,该层可以学习选择每个令牌的参数。
  7. 产品密钥记忆网络与专家层类似,但使用k个最近邻的加权和来选择参数,而不是学习的方法。
  8. 通用变压器将重复使用同一变压器块进行输入序列,直到满足某些条件。

实验和评估

上一节中列出的所有变化都可以与基线模型相结合,即原始的变电模型(称为"香草变压器"),并通过两种修改进行测试。在所有模型中,超参数、参数/FLOPs数、训练集和优化器都保持不变。这些模型在C4数据集上进行了预训练,并对三个转移学习任务进行了评估。用于自然语言理解的SuperGLUE,用于抽象总结的XSum,以及用于回答问题的WebQuestions。此外,它还在WMT'14英德翻译任务的监督学习任务上进行了评估。具体实施细节,请参考原论文。

GLU的变体(LiGLU、SwiGLU...)。被发现比ReLU激活更有效。此外,RMSNorm还提高了模型的速度和性能:Mixture-of-experts和Switch变换器表现出了良好的性能,但由于不是所有的参数都在每一步中使用,所以操作(Ops)是相当的,但参数的数量是比香草变压器多得多。

显著提高性能的修改是次要的(GLU变体、RMSNorm、解绑嵌入矩阵)、增加参数数量(Switch Transformer、产品键内存)或缓慢的(softmax混合物、更深的模型)。需要注意的是,我们在实验中使用的Mesh TensorFlow代码库的三类中的一类(Expert Mixture、Switch Transformer、Synthesizer)。

很少有技术能够改善香草变压器的模型性能,这与原论文中包含的这些技术的实验所建议的相反。为了确保可信度,我们请这些论文的12位作者对他们的实现进行验证,所有的作者都给予了肯定的答复。

摘要

本文表明,在提出架构变更之前,在各种任务和代码库上测试对模型的变更是多么重要。变压器的改进应该在监督学习、转移学习、语言建模,甚至视觉任务上进行测试。在比较变化时,保持超参数不变是很重要的,选择调整好的模型可以避免。这些行为规则应该使我们能够开发出灵活的技术,在未来的各种任务中可能被广泛采用,而不会浪费宝贵的时间和资源。

  • メルマガ登録(ver
  • ライター
  • エンジニア_大募集!!

如果您对文章内容有任何改进建议等,请通过 "联系我们 "表格与爱学网编辑部联系。
如果您能通过咨询表与我们联系,我们将非常感激。

联系我们