Transformer神经网络架构的整体指南

原文地址:The Transformer Blueprint:A Holistic Guide to the Transformer Neural Network Architecture

深入探讨2017年著名论文“attention is all you need”中介绍的神经网络架构,Transformer的应用、影响、挑战和未来方向。

2023 年 7 月 29 日

介绍

Transformer模型于2017年发明,并首次在开创性论文“Attention is All You Need”中提出,它对深度学习做出了革命性的贡献,可以说是对整个计算机科学的贡献。作为一个神经机器翻译的工具,它已经被证明是深远的,扩展了它的适用性,超越了自然语言处理(NLP),巩固了它作为一个通用的神经网络架构的地位。

在这个全面的指南中,我们将剖析transformer模型的核心,深入探索从其注意机制到编码器-解码器(encoder-decoder)结构的每个关键组件。我们不会停留在基础层面,我们将遍历利用transformer功能的大型语言模型,深入研究它们独特的设计属性和功能。进一步扩大视野,我们将探索transformer模型在NLP之外的应用,并探讨这一有影响力的架构当前的挑战和潜在的未来方向。此外,还将为那些有兴趣进一步探索的人提供一个精心策划的开源实现列表和补充资源。

transformer

图0:我们将在本文中深入探讨的Transformer体系结构。

Transformers出现之前的神经网络

Transformer神经体系结构的设计者对寻找一种可以用于序列到序列建模的体系结构很感兴趣。这并不是说没有现有的序列建模体系结构,只是它们有很多缺点。还有哪些类型的神经网络可以用于序列建模?它们的缺点是什么?让我们在激励transformers的过程中寻找这些问题的答案。

多层感知器(MLP)

让我们从多层感知器(MLP)开始,这是一种经典的神经网络方法。MLP本身并不是超级强大,但你会发现它们几乎集成在任何其他架构中(令人惊讶的是,甚至在transformer中)。MLP基本上是一个线性层序列或完全连接的层。

2mlps

图1:多层感知器(MLP)。

在AI社区找到各种模式的最佳架构之前,MLP长期以来一直用于建模不同类型的数据,但有一点是肯定的,它们不适合序列建模。由于它们的前馈设计,它们不能保持序列中信息的顺序。当数据的顺序丢失时,序列数据就失去了意义。因此,MLP不能保持信息的顺序使其不适合序列建模。此外,MLP需要许多参数,这是神经网络可能具有的另一个不希望的属性。

卷积神经网络

卷积神经网络(CNN或ConvNets)是一类神经网络架构,以处理图像和其他模式(如文本和视频)而闻名。

3convnets

图2:用于文本理解的卷积神经网络。

迄今为止,卷积神经网络在小尺度和大尺度视觉识别方面取得了成功,但在序列建模方面并不十分成功。由于它们的局部性(计算被捆绑在输入数据的局部部分),它们很容易并行化(对GPU很好),它们需要许多层来处理长期依赖关系。与固定长度的图像相反,大多数顺序数据具有可变长度,这是ConvNets或MLP都无法处理的。

卷积神经网络(ConvNets)由于其局部性质,即计算只涉及输入数据的局部部分,因此在并行计算方面非常有效。并行计算对于使用图形处理单元(GPU)等硬件来加速神经网络训练和推理非常重要。由于卷积神经网络的计算可以在不同的位置和通道之间进行并行处理,因此可以充分利用GPU等并行计算设备的优势,加快计算速度

循环神经网络

与MLP或ConvNets不同,递归神经网络(RNN)的设计考虑了序列。RNN在其设计中具有反馈回路,这是其模拟序列数据能力的关键因素。RNN的另一个令人满意的特性是它们可以处理可变长度的数据

RNN的连接方式存在一些基本问题。首先,由于它们的顺序设计,它们可能对长期序列不稳定。

img

图3:循环神经网络(RNN)。

循环网络有很多变体。其中一个著名的版本是长短期记忆(LSTM)。LSTM可以处理长期序列。它们有一个细胞状态(下图中的水平直线)和,它们都平滑信息流。

img

图4:长短期记忆(LSTM)

LSTM的另一个稍微有效的版本是门循环单元(GRUs)。LSTM对于基本的序列建模问题非常有效,但它们的应用范围仍然有限。正如我们之前所说,它们不能被平行化,也就是说它们不能被缩放。此外,即使它们能够保持信息的顺序,它们也无法推断出它们正在处理的数据的全局上下文。背景很重要。以机器翻译为例(这个任务基本上给了我们transformer),被翻译的句子的上下文和顺序一样重要。

"不能被缩放"表示某个系统或算法无法有效地扩展到处理更大规模的数据或更复杂的任务。这意味着随着输入规模或任务复杂度的增加,系统或算法的性能表现不佳,无法保持良好的效率或准确性。

我们所做的基本上就是激励transformers。到目前为止,我们已经看到,先前的神经网络要么不适合序列建模,要么不可并行化,要么不稳定,要么受上下文长度的限制,这些都是序列神经结构的主要特征。

现在我们有了正确的背景知识,让我们深入了解transformer架构。

Transformer架构

Transformer是一种神经网络架构,可以处理文本、音频、视频和图像等顺序数据(作为图像补丁的序列)。Transformer不使用任何循环层或卷积层。它的基础层叫做Attention(注意力)。它还包含其他基本层,如全连接层、规范化层[主要是LayerNorm]、Embedding层和位置编码层。在下一节中,我们将看到这些层的作用。

6transformer

图5:Transformer体系结构。

正如我们在开头提到的,transformer最初是为机器翻译引入的,这是一项需要处理两个序列(输入和输出都是序列)的任务。因此,transformer模型有两个部分:处理输入的编码器和生成输出的解码器。关于编码器、解码器和其他层的更多信息将在下面讨论。

Encoder(编码器)

编码器是transformer结构的主要模块之一,位于输入序列的输入端。编码器将输入序列转换为压缩表示。在原始的transformer架构中,encoder重复了6次(这取决于架构的整体尺寸,可以更改)。每个encoder块有3个主要层,即多头注意(MHA),层规范MLP(或根据论文的前馈)。

多头注意和MLP在transformer论文中被称为子层。子层之间有层归一化,层之间有dropout残差连接(各层的正确流程见图)。

  • 子层之间采用层归一化(Layer Normalization)的技术。层归一化是一种对子层输出进行归一化的方法,目的是在不同层之间保持输出的一致性和稳定性,有助于模型的训练和优化。
  • 层之间的连接方式包括残差连接(Residual Connection)和dropout。残差连接是指将子层的输入与子层的输出相加,使得模型可以直接学习输入的变换,从而更容易进行梯度传播和优化。而dropout是一种正则化技术,以一定的概率随机将一部分神经元的输出置为零,有助于减少模型的过拟合。
  • 整体而言,Transformer模型中的子层按照图示的正确流程进行运算,其中多头注意力和MLP是两个重要的子层。层归一化、残差连接和dropout则是用于增强模型的稳定性、学习能力和泛化能力的重要技术手段。这些设计和组合方式使得Transformer模型在处理序列数据(如自然语言处理)时取得了优异的性能。

如前所述,encoder层数为6层。Encoder层的数量越多,模型就越大,模型就越有可能捕获输入序列的全局上下文,从而产生更好的任务泛化。

Decoder(解码器)

解码器几乎与编码器相同,除了在encoder的输出上操作额外的多头注意。解码器的目标是将encoder输出与目标序列融合,并进行预测(或预测下一个token)。

在解码器中占用目标序列的注意力被屏蔽,以防止当前(正在处理的)token关注目标序列中的后续tokens。如果解码器可以访问完整的目标序列,这基本上是作弊,并且可能导致模型不能泛化到训练数据之外。

解码器通常也与编码器重复相同的次数。在原transformer中,解码器块的数量也是6块。

Attention(注意力)

注意力到底是什么

注意力是transformer结构的基本要素。从本质上讲,注意是一种机制,它可以让神经网络更多地关注输入数据中包含有意义信息的部分,而较少关注输入的其余部分。

早在transformer架构引入之前,注意力机制就被用于各种任务中。注意力的概念最早出现在神经机器翻译(NMT)方法中,该方法使用注意力来寻找输入句子中最相关信息集中的[位置集]。因为他们基于注意力的NMT可以联合或同时对齐和翻译,所以它比以前的方法表现得更好。如下图所示,该网络能够在翻译的句子中找到正确的单词顺序,这是之前的神经机器翻译方法难以实现的壮举。

7attention

图6:

  • 22
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Transformer 神经网络架构有很多种,以下是其中几种常见的神经网络架构: 1. 循环神经网络(Recurrent Neural Network,RNN):RNN 是一种经典的神经网络架构,它通过在网络中引入循环连接来处理序列数据。RNN 在处理序列数据时具有记忆能力,可以捕捉到序列中的上下文信息。 2. 卷积神经网络(Convolutional Neural Network,CNN):CNN 是一种主要用于图像处理的神经网络架构,它通过卷积操作来提取图像中的特征。CNN 在处理图像数据时具有平移不变性和局部感知性,适用于图像分类、目标检测等任务。 3. 深度信念网络(Deep Belief Network,DBN):DBN 是一种由多个受限玻尔兹曼机(Restricted Boltzmann Machine,RBM)组成的深度神经网络。DBN 在无监督学习中表现出色,可以用于特征学习和生成模型等任务。 4. 自编码器(Autoencoder):自编码器是一种无监督学习的神经网络架构,它通过将输入数据编码为低维表示,再将低维表示解码为重构数据,从而学习到输入数据的特征表示。自编码器常用于降维、特征提取等任务。 5. 深度强化学习网络(Deep Reinforcement Learning Network,DRLN):DRLN 是一种结合了深度学习和强化学习的神经网络架构,用于解决具有延迟奖励的决策问题。DRLN 在游戏、机器人控制等领域取得了显著的成果。 这些非 Transformer 神经网络架构在不同的任务和领域中都有广泛的应用。它们各自具有不同的特点和适用范围,可以根据具体的需求选择合适的神经网络架构来解决问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值