深度学习领域正在经历一场剧烈的变革,这得益于Transformer模型的诞生和迅速发展。

这些开创性的架构不仅重新定义了自然语言处理(NLP)的标准,还极大地拓宽了人工智能的多个领域。

凭借其独特的注意力机制和并行处理能力,Transformer模型在理解和生成人类语言方面取得了创新性的突破,实现了前所未有的准确性和效率。

Transformer架构最初在2017年由Google发表的《Attention is all you need 》一文中提出,它成为了像ChatGPT这样的革命性模型的核心,引发了人工智能界的新一波热潮。它们在OpenAI的前沿语言模型中发挥了重要作用,并在DeepMind的AlphaStar中扮演了关键角色。

在这个人工智能快速发展的时代,Transformer模型对于有抱负的数据科学家和NLP从业者的重要性不言而喻。

作为大多数最新技术进步的核心领域之一,本文旨在揭示这些模型背后的神秘面纱。

什么是Transformer?

Transformer最初是为了解决序列转换问题或神经机器翻译而开发的,这意味着它们旨在解决将输入序列转换为输出序列的任何任务。这就是为什么它们被称为“Transformer”。

Transformer模型是什么?

Transformer模型是一种先进的神经网络,它能够深入理解序列数据的上下文,并基于这种理解生成新的数据。

简单来说:Transformer是一种人工智能模型,它通过分析大量文本中的语言模式,学习如何理解和创造类似于人类的文本。

作为目前自然语言处理(NLP)领域的前沿模型,Transformer代表了编码器-解码器架构的一次重大进化。与传统的编码器-解码器架构相比,后者通常依赖递归神经网络(RNN)来处理序列信息,而Transformer则完全不使用递归机制。

那么,Transformer是如何实现这一点的呢? 它们通过精心设计,专注于分析文本中不同元素之间的相互关系,以理解上下文和含义。这一过程几乎完全依赖于一种称为“注意力机制”的数学技术,从而实现了对语言的深刻理解和有效生成。

历史背景

Transformer模型,起源于2017年谷歌发表的一篇研究论文,已成为机器学习领域中最具创新性和影响力的发展之一。这一模型首次在具有深远影响的论文《Attention is all you need 》中被详细介绍。

这一突破性的理论不仅在学术上取得了进展,更在实际应用中得到广泛采纳,尤其是在TensorFlow的Tensor2Tensor库中。哈佛大学的自然语言处理小组进一步推动了这一领域的发展,他们提供了一份详尽的注释指南和基于PyTorch的实现。

Transformer模型的推出,引发了人工智能领域,特别是被称为Transformer AI的子领域的迅猛增长。这一模型为包括BERT在内的大型语言模型的后续创新奠定了基础。到了2018年,这些进步已经被公认为自然语言处理(NLP)领域的一个转折点。

2020年,OpenAI的研究人员推出了GPT-3,这一模型的多功能性在短时间内得到了充分展示,人们利用它创作诗歌、编写程序、制作音乐、设计网站等,激发了全球用户的无限想象。

在2021年发表的一篇论文中,斯坦福大学的学者恰当地将这些创新性模型称为"基础模型",强调了它们在人工智能重塑过程中的基础性作用。他们的研究凸显了Transformer模型不仅彻底改变了人工智能领域,而且推动了人工智能的边界,开启了一个充满无限可能的新时代。

正如企业家、谷歌前高级研究员Ashish Vaswani所说:“我们正处于一个简单方法,比如神经网络,为我们带来新能力爆发的时代。”

从像LSTM这样的RNN模型转向Transformer解决NLP问题

在Transformer模型出现之时,RNN(递归神经网络)是处理具有特定序列顺序的输入数据的首选技术。

RNN的运作原理类似于前馈神经网络,但它们是按顺序逐个处理输入元素的。

Transformer模型的构思受到了RNN中编码器-解码器架构的启发。与RNN使用递归处理不同,Transformer模型完全基于注意力机制构建。

Transformer不仅提升了RNN的性能,还为诸如文本摘要、图像描述和语音识别等众多任务提供了一种全新的架构解决方案。

现在,让我们深入了解Transformer模型的工作原理。

Transformer架构

概述

最初设计用于序列转换或神经机器翻译任务,Transformer模型在将输入序列转换为输出序列方面表现出色。它是首个完全依靠自注意力机制来计算其输入和输出的表示,而无需依赖于序列对齐的RNN或卷积网络的第一个转换模型。

如果我们将语言翻译中的Transformer视为一个简单的黑盒,它会接收一种语言的句子,比如英语,作为输入,并产生它的英语翻译作为输出。

进一步观察,我们会发现这个黑盒由两个主要部分组成:

  • 编码器接收我们的输入并输出该输入的矩阵表示。例如,英语句子“How are you?”

  • 解码器接收编码后的表示,并逐步生成输出。在我们的示例中,输出的翻译句子是“¿Cómo estás?”

然而,编码器和解码器实际上是由多层堆叠而成(每种具有相同数量的层)。所有编码器都有相同的结构,输入进入每一层,并传递给下一层。所有解码器也具有相同的结构,从前一个编码器和前一个解码器接收输入。

最初的架构由6个编码器和6个解码器组成,但我们可以按需复制任意数量的层。假设每种有N层。

现在我们已经对Transformer的整体架构有了一个基本的了解,让我们专注于编码器和解码器,以更好地理解它们的工作流程:

编码器工作流程

编码器是Transformer架构的核心组成部分。它的主要任务是将输入的标记(tokens)转换成富含上下文信息的表示形式。这与以往的模型有所不同,那些模型通常是独立地处理每个标记。相比之下,Transformer编码器能够捕捉到每个标记在整个序列中所具有的上下文关系。

这种能力使得Transformer编码器不仅关注单个词语,而是能够理解该词语在句子中的作用和意义,从而生成更加准确和具有上下文关联性的输出。这种全面的上下文理解是通过编码器内部的自注意力机制实现的,该机制允许模型在处理每个标记时考虑到序列中所有其他标记的信息。

其结构组成如下:

第1步 - 输入嵌入

嵌入过程仅在编码器的最底层进行。编码器的初始步骤是利用嵌入层将输入的标记(可以是单词或者更小的语义单元)转换成向量形式。这些嵌入向量捕捉了每个标记的语义信息,并将其转化为可以进行数值计算的向量。

每个编码器层都会接收到一组具有固定大小的向量列表,每个向量的维度为512。在最底层的编码器中,这些向量源自于单词嵌入,即直接将单词转换为向量。而在上层的编码器中,输入的向量则是来自于直接位于其下方的编码器层的输出。这样,每一层编码器都以前一层的输出作为输入,逐层抽象和深化对输入序列的理解。

第2步 - 位置编码

由于Transformer模型不具备像递归神经网络(RNN)那样的递归机制,它们通过将位置编码添加到输入嵌入中来提供序列中每个标记的位置信息。这样的设计使得模型能够识别句子中每个单词的相对或绝对位置。

为了实现这一点,研究者们提出了一种方法,使用不同频率的正弦和余弦函数的组合来生成位置向量。这种方法的优势在于,它能够为任意长度的句子生成位置编码。

在这种编码机制中,每个维度的值由特定的频率和相位偏移确定,取值范围在-1到1之间。这样的值变化能够为模型提供每个位置的独特表示,从而使得Transformer模型能够在处理序列数据时考虑到单词的顺序性,即便它本身并不具备递归处理序列的能力。

第3步 - 编码器层的堆叠

Transformer编码器由多层相同的层堆叠而成,最初的Transformer模型包含6层这样的结构。

每一层编码器层的目的在于将输入的序列数据转换成一个连续的、抽象的表示形式,这种表示能够捕捉并包含整个序列的信息。每一层都由两个主要的子模块构成:

  • 多头注意力机制:这一机制允许模型在处理序列时,能够同时关注序列中的多个位置,从而更好地理解单词之间的关系。

  • 完全连接的网络(通常称为前馈神经网络):在处理完注意力机制后,数据会通过一个完全连接的网络,该网络对每个位置的表示进行进一步的非线性变换。

此外,每一层都采用了残差连接技术,即每一层的输出会加上该层的输入,然后进行层归一化处理。这种设计有助于缓解深层网络训练中的梯度消失问题,使得深层网络能够更有效地学习。通过这种方式,每一层都能够在保持之前层学到的信息的同时,添加新的信息,从而实现更深层次的语义理解。

第3.1多头自注意力机制

在编码器中,多头注意力机制采用了一种称为自注意力的特殊技术。这种技术使得模型能够分析输入序列中每个单词与其他单词之间的关联。例如,模型可能会识别出单词“are”与“you”之间的联系。

自注意力机制在处理每个标记时,能够使模型关注序列中的不同部分,并据此计算注意力分数。这一过程涉及以下几个要素:

  • 查询(Query):代表输入序列中特定单词或标记的向量。

  • 键(Key):同样作为向量,与输入序列中的每个单词或标记相对应。

  • 值(Value):与每个键相关联的值,用于构建注意力层的输出。如果查询和键的匹配度很高,即它们之间的注意力分数高,那么相应的值在输出中就会被赋予更多的权重。

自注意力模块的第一个特点在于它能够捕捉整个序列的上下文信息。它不是简单地执行一次注意力函数,而是将查询、键和值线性地投影h次,其中h代表注意力头的数量。在这些不同投影的版本上,注意力机制会并行地执行,生成h个维度的输出值。

这种多头注意力机制的优势在于,它允许模型同时从不同的表示子空间中提取信息,并且在不同位置捕捉信息,从而丰富了模型对序列的理解。通过这种方式,Transformer模型能够更全面地理解输入数据的上下文,为后续的处理步骤提供了更丰富的信息。

详细的架构如下:

矩阵乘法(MatMul)- 查询和键的点积

经过线性层处理的查询、键和值向量,会在查询和键之间进行点积操作,形成得分矩阵。

这个得分矩阵决定了每个单词对序列中其他单词的关注度。换言之,每个单词会根据与其他单词的关系获得一个分数,这个分数反映了在当前时间步内,该单词应被赋予的关注度。分数越高,表示该单词在模型的注意力中占有更重要的位置。

通过这种方式,查询向量能够与相应的键向量关联起来,实现了将查询映射到它们对应的键上,为接下来的注意力加权和信息整合打下了基础。这个过程是自注意力机制的核心,它使得模型能够捕捉序列内部的复杂依赖关系。

降低注意力分数的幅度

接着,为了控制分数的规模并确保梯度的稳定性,会将得到的分数除以查询(Q)和键(K)向量维度的平方根。这样做可以防止在计算过程中由于数值过大而导致梯度过大,从而避免在训练过程中出现数值不稳定的问题。

具体来说,当查询和键的维度较大时,它们的点积可能会非常大,这会导致softmax函数的输出分布非常尖锐,即某些输出的概率会非常高,而其他的概率则接近于零。这种尖锐的分布会导致梯度非常小,从而使得模型难以学习。通过除以平方根项 (\sqrt{d_k})(其中(d_k)是查询和键的维度),可以降低这种影响,使得梯度保持在合理的范围内,有助于模型更加稳定地训练。

应用Softmax调整分数

随后,模型会将softmax函数应用于经过调整的分数上,以此来计算每个位置的注意力权重。Softmax函数的输出是一个概率分布,其值介于0和1之间,并且所有输出值的总和为1。

这个概率分布反映了每个单词对于其他单词的相对重要性。Softmax函数通过提高高分数的权重并降低低分数的权重,使得模型能够更加集中地关注那些与当前单词在语义上更为相关或者重要的单词。

通过这种方式,模型能够更有效地确定在生成输出时应该更多地关注输入序列中的哪些部分。这种注意力权重的计算是Transformer模型中自注意力机制的关键步骤,它使得模型能够捕捉到长距离依赖关系,并且提高了模型对序列数据的理解能力。

将Softmax结果与值向量结合

注意力机制的下一步涉及将Softmax函数输出的权重与值向量相乘,以此生成输出向量。这一步骤实质上是一个加权求和的过程,其中权重由Softmax函数确定,而值向量包含了与查询向量相关的信息。

在这个过程中,与高Softmax分数相对应的值向量(即那些对当前任务或目标更为重要的信息)会被强化,而那些Softmax分数较低的值向量的影响则会减弱。这样,模型就能够集中于那些对于当前处理步骤更为关键的信息。

最终得到的加权和向量,也就是输出向量,随后会被送入一个线性层进行进一步的变换和处理。这个线性层可以看作是一个全连接的神经网络层,它能够对输出向量进行非线性变换,以便为模型的下一层或最终的输出任务(如分类、预测等)提供更丰富的特征表示。

第3.2归一化和残差连接

在Transformer编码器中,每个子层之后都紧跟着一个归一化步骤,这是为了确保层内的操作不会对模型的稳定性和性能产生负面影响。归一化通常有助于减少内部协变量偏移(internal covariate shift),即确保网络的每一层输入数据的分布保持相对稳定。

此外,每个子层的输出在加权求和后会与其原始输入相加,形成残差连接。这种设计有助于解决深层网络训练中的梯度消失问题,因为它允许梯度在网络中更直接地流动,从而减少了深层网络训练的难度。

具体来说,残差连接允许每个子层专注于学习输入的残差(即变化量),而不是直接学习整个输出表示。这样,即使在深层网络中,每个层也可以保持较小的权重更新,从而有助于梯度在网络中的传播。

在前馈神经网络(即Transformer中的点式前馈网络)之后,同样的归一化和残差连接过程也会重复执行。这种结构确保了模型在处理深层结构时的稳定性和有效性。通过这种方式,Transformer模型能够构建更深的网络架构,同时保持训练的可行性和效率。

第3.3前馈神经网络

归一化处理后的残差输出随后进入一个逐点前馈网络,这是对特征进行进一步精细化处理的关键步骤。

可以将这个网络想象为由两个线性变换层组成的结构,其中夹着一个ReLU激活函数,它像一座桥梁一样连接这两个线性层。这样的结构允许模型在保持维度不变的同时,对每个位置的表示进行非线性变换,增强模型的表达能力。

经过这个逐点前馈网络处理后,输出会沿着一条熟悉的路径返回,与输入再次合并。这种设计形成了一个残差连接,有助于梯度在网络中的流动,减少深层网络训练中的梯度消失问题。

在这次重聚之后,会进行另一轮的归一化处理,这一步骤确保了网络的输出在进行下一步处理之前,已经得到了适当的调整,并且与模型的后续部分保持同步。这样的归一化有助于维持网络在训练过程中的稳定性,使得模型可以更有效地学习复杂的特征表示。

第4步 - 编码器的输出

最终,编码器层的输出形成了一组向量,这些向量深刻地捕捉了输入序列的上下文信息。这些富含上下文的向量随后作为输入传递给Transformer模型中的解码器部分。

编码器的这一精心设计为解码器的工作奠定了基础,它在解码过程中起到了指导作用,帮助解码器准确地识别并关注输入序列中的关键单词。这种机制使得解码器能够更准确地预测和生成与上下文相匹配的输出序列。

可以这样想象:建造一座塔时,你可以将N层编码器堆叠起来,每一层都像是在不同层次上探索和学习新的知识和理解。每一层编码器都能够从不同的角度捕捉和学习序列的特征,这类似于知识的层次结构。通过这种方式,Transformer模型不仅能够获得对输入数据多样化的理解,还能够显著提升其预测和处理复杂序列数据的能力。

解码器工作流程

解码器的核心任务是生成文本序列。与编码器类似,解码器也由一系列子层构成,包括两个多头注意力层、一个逐点前馈层,并在每个子层后都进行残差连接和层归一化处理。

这些组件虽然与编码器中的类似,但解码器中的多头注意力层有着它们独特的功能和使命。它们不仅要考虑输入序列的信息,还要考虑之前已经生成的输出,以确保生成的文本序列连贯且符合语境。

在解码器的最后阶段,有一个线性层作为分类器,其上接有softmax函数,用于计算词汇表中每个单词的概率。这个概率最高的单词将被认为是模型预测的下一个输出词。

Transformer解码器的结构专门设计用来逐步解码编码器的信息,生成连贯的文本输出。解码器以自回归的方式工作,从开始标记开始,逐步构建输出序列。它利用之前生成的输出作为输入,并结合编码器提供的丰富注意力信息,来生成下一个词的预测。

这种自回归的解码过程一直持续,直到生成一个结束标记,这个标记表示解码器的输出创建过程已经完成。这样的设计使得Transformer解码器能够生成符合语言习惯和上下文的文本序列。

第1步 - 输出嵌入

在解码器的起始阶段,其处理过程与编码器相似。输入数据首先进入嵌入层,这是解码器的第一个处理步骤。嵌入层的作用是将输入的文本序列转换成数值型向量形式,为后续的处理步骤做准备。

这些向量不仅携带了原始文本的信息,还被赋予了额外的上下文信息,这些信息是通过在编码器中学习到的。在解码器中,这些嵌入向量将作为生成输出序列的起点,确保生成的文本与给定的上下文和先前生成的词序列保持一致性。

随后,这些嵌入向量会通过位置编码层,进一步丰富每个词在序列中的位置信息,使得解码器能够在生成文本时考虑到词序。这样,解码器就能够在生成每个词时,不仅基于输入文本的内容,还基于其在序列中的位置来做出预测。

第2步 - 位置编码

紧接着嵌入层之后,输入数据流经位置编码层,这一步骤对于解码器来说同样重要。位置编码层的目的是为输入序列中的每个元素(如单词或标记)添加位置信息,确保模型能够识别并利用它们在序列中的顺序。

这些位置嵌入随后进入解码器的第一个多头注意力层。在这一层中,模型会细致地计算与解码器输入相关的注意力分数,这些分数反映了序列中每个元素相对于其他元素的重要性。通过这种方式,解码器能够在生成每个输出步骤时,考虑到当前元素与之前所有元素的关系。

这种注意力分数的计算对于保持生成文本的连贯性和准确性至关重要。它使得解码器在生成序列的过程中,能够根据已经生成的内容和编码器提供的上下文信息,合理地关注输入序列中的相关部分。这样的机制是Transformer模型能够有效处理序列到序列任务的关键之一。

第3步 - 解码器层的堆叠

解码器由相同层的堆叠组成(原始Transformer模型中有6层)。每层有三个主要子组件:

第3.1蒙版自注意力机制

蒙版自注意力机制是Transformer解码器中的一个关键特性,它与编码器中的自注意力机制在核心理念上是相似的,但引入了一个重要的修改:它通过防止解码器中的每个位置关注序列中更靠后的位置,来保持解码过程的自回归特性。

这种机制确保了在生成序列时,每个单词的预测只能基于它之前已经生成的单词,而不是之后的单词。这样做的目的是为了维持语言生成的因果关系,即在自然语言中,一个词的出现通常不会受到它之后才出现的词的影响。

例如,在计算单词“are”的注意力分数时,解码器不应该利用到它之后才生成的单词“you”的信息。这种蒙版操作通过在softmax操作之前,将那些不应该被当前位置所关注的值设置为一个非常大的负数(通常是负无穷),从而使它们在经过softmax函数后的概率接近于零。

这样的设计允许解码器在生成每个词时,只能利用到它之前已经生成的词的信息,从而保证了生成过程的合理性和逻辑性。这是Transformer模型在处理序列生成任务时,如机器翻译、文本摘要等,能够生成高质量输出的关键因素之一。

第3.2编码器-解码器多头注意力或交叉注意力

编码器-解码器多头注意力,也称为交叉注意力,是Transformer解码器中的一个关键组成部分。在解码器的第二层多头注意力中,编码器和解码器的交互作用尤为显著。

在这个过程中,编码器的输出同时充当了查询和键的角色,这意味着它们将用于计算注意力分数,以确定解码器应该在多大程度上关注编码器的每个部分。而解码器第一层多头注意力的输出则作为值,即实际被加权和合并的信息,这些信息将被用来生成解码器的下一步输出。

这种机制允许解码器在生成每个词时,不仅考虑已经生成的词(通过自注意力层),还考虑编码器提供的输入序列中的相关信息。这样的对齐操作使得解码器能够更加精准地识别和强调编码器输入中对于当前生成任务最相关的部分。

经过第二层多头注意力处理后,输出会被送入一个逐点前馈网络进行进一步的细化。这个前馈网络对每个位置的输出进行独立的线性变换和非线性激活,增强了模型对信息的处理能力。

最终,这种编码器-解码器之间的交叉注意力机制使得解码器能够在每一步生成过程中,有效地整合编码器的全局信息和解码器自身逐步构建的上下文信息,从而生成更加准确和连贯的输出序列。

第3.3前馈神经网络

与编码器类似,每个解码器层都包括一个完全连接的前馈网络,分别且统一地应用于每个位置。

第4步线性分类器和Softmax用于生成输出概率

数据通过Transformer模型的旅程最终通过一个最终的线性层,该层充当分类器。

这个分类器的大小对应于涉及的类别总数(词汇表中包含的单词数量)。例如,在有1000个不同类别代表1000个不同单词的场景中,分类器的输出将是一个具有1000个元素的数组。

然后,这个输出被引入到一个softmax层,将其转换为一系列介于0和1之间的概率分数。这些概率分数中最高的是关键的,其对应的索引直接指向模型预测为序列中的下一个单词。

每个子层(蒙版自注意力、编码器-解码器注意力、前馈网络)之后都跟着一个归一化步骤,每个子层也都包括一个残差连接。

解码器的输出

最终层的输出被转换为预测序列,通常通过一个线性层后跟一个softmax来生成词汇表上的概率。

在解码器的操作流程中,它将新生成的输出纳入其不断增长的输入列表中,然后继续解码过程。这个循环重复进行,直到模型预测一个特定的标记,发出完成信号。

具有最高概率的预测标记被分配为结束类别,通常由结束标记表示。

再次记住,解码器不仅限于单层。它可以构建为N层结构,每一层都在编码器和前一层接收到的输入上建立。这种分层架构允许模型多样化其焦点,并在其注意力头上提取不同的注意力模式。

这种多层次方法可以显著提高模型的预测能力,因为它对不同的注意力组合有了更细致的理解。

最终的架构类似于这样

基准和性能

在NLP中对Transformer模型的基准测试和性能评估涉及一种系统性的方法来评估它们的有效性和效率。

根据任务的性质,有不同的方法和资源可以做到这一点:

机器翻译任务

在处理机器翻译任务时,您可以利用像WMT(机器翻译研讨会)这样的标准数据集,MT系统在这些数据集中遇到了各种语言对,每对都提供了其独特的挑战。

像BLEU、METEOR、TER和chrF这样的指标作为导航工具,引导我们朝着准确性和流畅性前进。

此外,跨新闻、文学和技术文本等不同领域的测试确保了MT系统的适应性和多功能性,使其成为数字世界中真正的多语种。

QA基准

要评估QA模型,我们使用像SQuAD(斯坦福问题回答数据集)、Natural Questions或TriviaQA这样的特殊问题和答案集合。

每一个都像是有自己规则的不同游戏。例如,SQuAD是关于在给定文本中找到答案,而其他的更像是来自任何地方的问题的测验游戏。

为了看看这些程序做得如何,我们使用像精确度、召回率、F1,有时甚至是完全匹配分数这样的分数。

NLI基准

在处理自然语言推理(NLI)时,我们使用像SNLI(斯坦福自然语言推理)、MultiNLI和ANLI这样的特殊数据集。

这些就像大型的语言变体和棘手案例库,帮助我们了解计算机理解不同类型句子的能力。我们主要检查计算机在理解陈述是否一致、矛盾或无关方面的准确性。

了解计算机如何处理棘手的语言问题也很重要,比如当一个词指的是前面提到的东西,或者理解'不'、'所有'和'一些'。

与其他架构的比较

在神经网络的世界里,有两种突出的结构通常与Transformer进行比较。它们各自提供独特的好处和挑战,适合特定类型的数据处理。RNN,已经在文章中多次出现,以及卷积层。

递归层

递归层,是递归神经网络(RNN)的基石,在处理序列数据方面表现出色。这种架构的优势在于其执行序列操作的能力,这对于像语言处理或时间序列分析这样的任务至关重要。在递归层中,前一步的输出被反馈到网络中作为下一步的输入。这种循环机制允许网络记住以前的信息,这在理解序列中的上下文至关重要。

然而,正如我们已经讨论过的,这种顺序处理有两个主要含义:

  • 它可能导致更长的训练时间,因为每一步都依赖于前一步,使并行处理变得具有挑战性。

  • 它们经常因为梯度消失问题而难以处理长期依赖关系,网络在从序列中 相距较远的数据点学习时变得不那么有效。

Transformer模型与使用递归层的架构有显著不同,因为它们缺乏递归性。正如我们之前看到的,Transformer的注意力层评估了这两个问题,使它们成为NLP应用中RNN的自然演变。

卷积层

另一方面,卷积层,作为卷积神经网络(CNN)的构建块,以其在处理像图像这样的空间数据方面的效率而闻名。

这些层使用内核(过滤器)扫描输入数据以提取特征。这些内核的宽度可以调整,允许网络根据手头的任务关注小或大的特征。

虽然卷积层在捕获数据中的空间层次结构和模式方面非常出色,但它们在处理长期依赖关系方面面临挑战。它们并不固有地考虑顺序信息,使它们不适合需要理解序列的顺序或上下文的任务。

这就是为什么CNN和Transformer针对不同类型的数据和任务进行了定制。由于CNN在处理空间信息方面的效率,在计算机视觉领域占据主导地位,而Transformer由于其理解长期依赖关系的能力,在NLP等复杂序列任务中成为首选。

结论

总之,Transformer在人工智能领域,特别是在NLP领域,已经成为一个重大突破。

通过其独特的自注意力机制有效管理序列数据,这些模型已经超越了传统的RNN。它们处理长序列的能力和数据并行处理的效率显著加快了训练。

像Google的BERT和OpenAI的GPT系列这样的先锋模型展示了Transformer在增强搜索引擎和生成类人文本方面的变革性影响。

因此,它们已经成为现代机器学习中不可或缺的一部分,推动了AI的边界,并在技术进步中开辟了新的途径。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部