前言
由于Transformer模型的出现和快速发展,深度学习领域正在经历一场翻天覆地的变化。这些突破性的架构不仅重新定义了自然语言处理(NLP)的标准,而且拓宽了视野,彻底改变了AI的许多方面。
以其独特的attention机制和并行处理能力为特征,Transformer模型证明了在理解和生成人类语言方面的创新飞跃,其准确性和效率是以前无法实现的。
谷歌在2017年一篇题为《attention就是你所需要的一切》的文章中首次提出,Transformer架构是ChatGPT等突破性模型的核心。它们在OpenAI的尖端语言模型中发挥了重要作用,并在DeepMind的AlphaStar中发挥了关键作用。
在这个AI的变革时代,Transformer模型对有抱负的数据科学家和NLP从业者的重要性怎么强调都不为过。作为大多数最新技术飞跃的核心领域之一,本文旨在破译这些模型背后的秘密。
什么是Transformer?
Transformer最初是为了解决序列转导或神经机器翻译的问题而开发的,这意味着它们旨在解决将输入序列转换为输出序列的任何任务。这就是为什么他们被称为“Transformer”。
什么是Transformer模型?
Transformer模型是一个神经网络,它学习顺序数据的上下文并从中生成新数据。简单地说是一种AI模型,它通过分析大量文本数据中的模式来学习理解和生成类似人类的文本。
Transformer是当前最先进的NLP模型,被认为是编码器-解码器架构的演变。但编码器-解码器架构主要依赖于循环神经网络(RNN)来提取序列信息,Transformer则完全缺乏这种循环性。
那么,他们是怎么做到的呢?
Transformer是专门设计来通过分析不同元素之间的关系来理解上下文和意义的,它们几乎完全依赖于一种叫做attention的数学技巧来做到这一点。

历史背景
Transformer模型起源于谷歌2017年的一篇研究论文,是机器学习领域最新和最有影响力的发展之一。第一个Transformer模型在有影响力的论文《attention就是你所需要的一切》中得到了解释。
这个开创性的概念不仅是一个理论的进步,而且还找到了实现,特别是在TensorFlow的Tensor2Tensor包中。此外,哈佛NLP小组通过提供论文的注释指南以及PyTorch实现对这个新兴领域做出了贡献。
它们的引入刺激了该领域的显著增长,通常被称为Transformer AI。这个革命性的模型为随后在大型语言模型领域(包括BERT)的突破奠定了基础。到2018年,这些发展已经被誉为NLP的分水岭。
2020年,OpenAI的研究人员宣布了GPT-3。在几周内,GPT-3的多功能性很快得到了证明,人们用它来创作诗歌、程序、歌曲、网站和更多吸引全球用户想象力的东西。
在2021年的一篇论文中,斯坦福大学的学者们恰当地将这些创新称为基础模型,强调了它们在重塑AI方面的基础作用。他们的工作突出了Transformer模型如何不仅彻底改变了该领域,而且推动了AI可实现的前沿,预示着一个充满可能性的新时代。
谷歌的前高级研究科学家、企业家Ashish Vaswani说:“我们正处在这样一个时代,像神经网络这样的简单方法正在给我们带来新能力的爆炸式增长。”
从像LSTM这样的RNN模型到用于NLP问题的transformer的转变
在Transformer模型引入时,RNN是处理顺序数据的首选方法,其特征在于其输入中的特定顺序。RNN的功能类似于前馈神经网络,但它按顺序处理输入,每次处理一个元素。
Transformer的灵感来自于RNN中的编码器-解码器架构。但是,Transformer模型完全基于attention机制,而不是使用递归。
除了提高RNN的性能,Transformer还提供了一种新的架构来解决许多其他任务,如文本摘要、图像字幕和语音识别。
那么,RNN的主要问题是什么呢?它们对于NLP任务是无效的,主要有两个原因:
- 它们依次处理输入数据。这种循环过程不使用现代GPU,GPU是为并行计算而设计的,因此,使得这种模型的训练相当缓慢。
- 当元素彼此距离较远时,它们就变得无效。这是因为信息是在每一步传递的,链越长,信息在链上丢失的可能性越大。
从像LSTM这样的RNN到NLP中Transformer的转变是由这两个主要问题驱动的,Transformer通过利用attention机制的改进来评估这两个问题的能力:
- 注意具体的词语,不管它们相距多远。
- 提高性能速度。
因此,Transformer成为RNN的自然改进。接下来,让我们来看看Transformer是如何工作的。
Transformer架构
概述
最初设计用于序列转导或神经机器翻译,Transformer擅长将输入序列转换为输出序列。这是第一个完全依靠自关注来计算输入和输出表示的转导模型,而不使用序列对齐RNN或卷积。Transformer架构的主要核心特征是它们维护编码器-解码器模型。
如果我们开始将用于语言翻译的Transformer视为一个简单的黑盒,那么它将接受一种语言(例如英语)的句子作为输入,并输出其英语翻译。
如果稍微深入一点,我们会发现这个黑盒子由两个主要部分组成:
-
编码器接受输入并输出该输入的矩阵表示。例如,英语句子“How are you?”
-
解码器接受该编码表示并迭代地生成输出。在我们的例子中,翻译后的句子“¿Cómo estás?”
然而,编码器和解码器实际上都是一个多层的堆栈(每层的数量相同)。所有编码器都呈现相同的结构,输入进入每个编码器并传递给下一个编码器。所有解码器也呈现相同的结构,并从最后一个编码器和前一个解码器获得输入。
最初的架构由6个编码器和6个解码器组成,但我们可以根据需要复制尽可能多的层。假设每个都有N层。
现在对整个Transformer架构有了一个大致的了解,让我们把重点放在编码器和解码器上,以更好地理解它们的工作流程。
编码器
编码器是Transformer体系结构的基本组件。编码器的主要功能是将输入标记转换为上下文表示。与早期独立处理token的模型不同,Transformer编码器根据整个序列捕获每个token的上下文。
其结构组成如下:
把它的工作流程分解成最基本的步骤:
步骤 1 -输入嵌入
嵌入只发生在最底部的编码器中。编码器首先使用嵌入层将输入标记(词或子词)转换为向量。这些嵌入捕获符号的语义并将其转换为数值向量。
所有编码器接收一个向量列表,每个向量的大小为512(固定大小)。在底部的编码器中,这将是单词嵌入,但在其他编码器中,是直接在它们下面的编码器的输出。
步骤 2 -位置编码
由于transformer没有像RNN那样的递归机制,因此它们使用添加到输入嵌入中的位置编码来提供有关序列中每个标记的位置的信息。这使他们能够理解每个单词在句子中的位置。
为了做到这一点,研究人员建议使用各种正弦和余弦函数的组合来创建位置向量,使这种位置编码器能够用于任何长度的句子。在这种方法中,每个维度由波的唯一频率和偏移量表示,其值范围从-1到1,有效地表示每个位置。
步骤 3 -编码器层堆栈
Transformer编码器由一堆相同的层组成(在原始Transformer模型中为6层)。
编码器层用于将所有输入序列转换为连续的抽象表示,该表示封装了从整个序列中学习到的信息。该层包括两个子模块:
- Multi-Head attention机制。
- 一个完全连接的网络。
此外,它结合了每个子层周围的剩余连接,然后进行层规范化。
步骤 3.1 Multi-HeadSelf-Attention机制
在编码器中,Multi-Headattention利用了一种特殊的attention机制,即Self-Attention。这种方法使模型能够将输入中的每个单词与其他单词关联起来。例如,在给定的示例中,模型可能会学习将单词“are”与“you”联系起来。
这种机制允许编码器在处理每个标记时专注于输入序列的不同部分。它计算attention分数的基础是:
- 查询是一个向量,表示attention机制中输入序列中的特定单词或标记。
- 在attention机制中,键也是一个向量,对应于输入序列中的每个单词或标记。
- 每个值都与一个键相关联,并用于构造注意力层的输出。当一个查询和一个键匹配得很好,这基本上意味着它们有很高的attention分数,相应的值在输出中被强调。
第一个Self-Attention模块使模型能够从整个序列中捕获上下文信息。而不是执行单一的attention功能,查询,键和值是线性投影h次。在查询、键和值的每个投影版本上,attention机制并行执行,产生h维输出值。
详细架构如下:
矩阵乘法——查询和键的点积
一旦查询、键和值向量通过线性层,在查询和键之间执行点积矩阵乘法,从而创建分数矩阵。
分数矩阵建立了每个单词对其他单词的强调程度。因此,在同一时间步长内,每个单词相对于其它单词被分配一个分数。分数越高,说明attention越集中。
这个过程有效地将查询映射到相应的键。
降低attention分数的大小
然后通过将分数除以查询维度和关键向量的平方根来缩小分数。这一步的实现是为了确保更稳定的梯度,因为值的乘法可能导致过大的影响。
将Softmax应用于调整后的分数
然后,对调整后的分数应用softmax函数得到关注权重。这导致概率值范围从0到1。softmax函数强调高分,淡化低分,从而增强了模型有效判断哪些词应该得到更多关注的能力。
结合Softmax结果与值向量
attention机制的下一步是将softmax函数的权重与值向量相乘,得到一个输出向量。
在这个过程中,只有呈现高softmax分数的单词被保留。最后,这个输出向量被送入一个线性层进行进一步处理。
我们终于得到了attention机制的输出!
所以,你可能想知道为什么它被称为Multi-Head attention?
请记住,在所有进程开始之前,我们会中断查询、键和值h次。这个过程被称为Self-Attention,在每个小阶段中(heads)分别发生。每个head都独立发挥其魔力,召唤出一个输出向量。
这个整体经过最后的线性层,就像一个过滤器,对集体表现进行微调。这里的美妙之处在于每个head的学习多样性,丰富了编码器模型,具有强大的和多方面的理解。
步骤 3.2 归一化和残留连接
编码器层中的每个子层后面都有一个规范化步骤。此外,每个子层的输出被添加到它的输入(残余连接),以帮助缓解梯度消失问题,允许更深入的模型。这个过程在前馈神经网络之后也会重复。
步骤 3.3 前馈神经网络
归一化剩余输出通过点向前馈网络导航,这是额外细化的关键阶段。
把这个网络想象成两个线性层,在它们之间有一个ReLU激活,作为一个桥梁。一旦处理完毕,输出就会走上一条熟悉的路径:它循环回去,并与点向前馈网络的输入合并。
这次团聚之后是另一轮归一化,确保一切都调整得很好,并与下一步同步。
步骤 4 -编码器的输出
最终编码器层的输出是一组向量,每个向量表示具有丰富上下文理解的输入序列。然后将该输出用作Transformer模型中解码器的输入。
这种编码为解码器铺平了道路,指导它在解码时注意输入中的正确单词。
可以把它想象成建造一座塔,在那里可以堆叠N个编码器层。这个堆栈中的每一层都有机会探索和学习attention的不同方面,就像知识层一样。这不仅使理解多样化,而且可以显著增强Transformer网络的预测能力。
解码器
解码器的作用主要是制作文本序列。与编码器类似,解码器也配备了一组类似的子层。它具有两个Multi-Head attention层,一个点前馈层,并且在每个子层之后都包含剩余连接和层归一化。
这些组件的功能类似于编码器的层,但有所不同:解码器中的每个Multi-Head attention层都有其独特的任务。
解码器的最后一个过程包括一个线性层,作为分类器,顶部是一个softmax函数来计算不同单词的概率。
Transformer解码器具有专门设计用于通过逐步解码编码信息来生成此输出的结构。
重要的是解码器以自回归的方式运行,用开始token启动其进程。它巧妙地使用先前生成的输出列表作为输入,与编码器的输出串联,编码器的输出包含来自初始输入的丰富的attention信息。
这种连续的解码一直持续到解码器到达关键时刻:生成标志其输出创建结束的token。
步骤 1 -输出嵌入
在解码器的起跑线上,这个过程反映了编码器的过程。这里,输入首先通过嵌入层。
步骤 2 -位置编码
在嵌入之后,再次像解码器一样,输入经过位置编码层。这个序列被设计用来产生位置嵌入。
然后将这些位置嵌入引入解码器的第一个Multi-Head attention层,在那里精心计算特定于解码器输入的注意分数。
步骤 3 -解码器层堆栈
解码器由一堆相同的层组成(在原来的Transformer模型中是6层)。每一层有三个主要的子组件:
步骤 3.1 Masked Self-Attention****机制
这类似于编码器中的Self-Attention机制,但有一个关键的区别:它防止位置关注后续位置,这意味着序列中的每个单词都不受未来标记的影响。
例如,当计算单词“are”的attention得分时,重要的是“are”不会偷看到序列中后面的单词“you”。
这种屏蔽确保了对特定位置的预测只能依赖于在它之前位置的已知输出。

步骤3.2 -编码器-解码器Multi-Head attention或交叉****attention
在解码器的第二个Multi-Head attention层中,我们看到编码器和解码器组件之间的独特相互作用。在这里,编码器的输出充当查询和键的角色,而解码器的第一个Multi-Head attention层的输出充当值。
这种设置有效地将编码器的输入与解码器的输入对齐,使解码器能够识别并强调编码器输入中最相关的部分。
在此之后,来自第二层Multi-Head attention的输出然后通过点前馈层进行细化,进一步增强处理。
在这个子层中,查询来自前一个解码器层,键和值来自编码器的输出。这允许解码器中的每个位置参与输入序列中的所有位置,从而有效地将来自编码器的信息与解码器中的信息集成在一起。
步骤3.3前馈神经网络
与编码器类似,每个解码器层包括一个完全连接的前馈网络,分别并相同地应用于每个位置。
步骤 4 线性分类器和Softmax用于生成输出概率
数据通过Transformer模型的旅程在其通过最终的线性层时达到高潮,该线性层的功能是分类器。
这个分类器的大小对应于所涉及的类的总数(词汇表中包含的单词数)。例如,在一个有1000个不同的类代表1000个不同单词的场景中,分类器的输出将是一个有1000个元素的数组。
然后将该输出引入softmax层,该层将其转换为概率分数的范围,每个分数位于0到1之间。这些概率得分中最高的是key,它对应的索引直接指向模型预测的序列中的下一个单词。
归一化和剩余连接
每个子层(Masked Self-Attention、编码器-解码器attention、前馈网络)之后是一个归一化步骤,每个子层周围还包括一个残余连接。
解码器的输出
最后一层的输出被转换成一个预测序列,通常是通过一个线性层,然后是一个softmax来生成词汇表的概率。
解码器在其操作流程中,将新生成的输出合并到其不断增长的输入列表中,然后继续进行解码过程。这个循环不断重复,直到模型预测到一个特定的token,表示完成。
预测概率最高的token被分配为结束类,通常由结束token表示。
再次记住,解码器并不局限于单层。它可以由N层组成,每一层都建立在从编码器及其前一层接收的输入上。这种分层架构允许模型分散其焦点,并在其attention head中提取不同的attention模式。
这种多层次的方法可以显著提高模型的预测能力,因为它对不同的attention组合有了更细致的理解。
最终的架构是类似于这样的(来自原始论文)
真实的Transformer模型
BERT
谷歌2018年发布的BERT是一个开源的NLP框架,它以其独特的双向训练彻底改变了NLP,这使得模型能够根据上下文对下一个单词应该是什么进行预测。
通过从单词的各个方面理解上下文,BERT在问答和理解歧义语言等任务中优于以前的模型。它的核心使用Transformer,动态连接每个输出和输入元素。
BERT在维基百科上进行了预先训练,在各种自然语言处理任务中表现出色,这促使谷歌将其整合到自己的搜索引擎中,以获得更自然的查询。这一创新引发了一场开发高级语言模型的竞赛,并显著提高了该领域处理复杂语言理解的能力。
LaMDA
LaMDA(对话应用语言模型)是谷歌开发的基于transformer的模型,专为会话任务设计,并在2021 谷歌I/O主题演讲期间发布。它们旨在生成更自然和上下文相关的响应,增强各种应用程序中的用户交互。
LaMDA的设计使其能够理解和响应广泛的主题和用户意图,使其成为聊天机器人、虚拟助手和其他交互式AI系统应用的理想选择,其中动态对话是关键。
这种对会话理解和响应的关注标志着LaMDA在自然语言处理和AI驱动的通信领域取得了重大进展。
GPT和ChatGPT
由OpenAI开发的GPT和ChatGPT是先进的生成模型,以其生成连贯且与上下文相关的文本能力而闻名。GPT-1是2018年6月推出的首款车型,两年后的2020年推出了最具影响力的模型之一GPT-3。
这些模型擅长各种各样的任务,包括内容创建、对话、语言翻译等等。GPT的体系结构使其能够生成与人类书写非常相似的文本,这使得它在创意写作、客户支持甚至编码辅助等应用程序中非常有用。ChatGPT是一种针对会话环境进行优化的变体,擅长生成类似人类的对话,增强了它在聊天机器人和虚拟助手中的应用。
其它
基础模型,特别是Transformer模型,正在迅速扩展。一项研究确定了50多种重要的Transformer模型,而斯坦福大学的研究小组评估了其中的30种,承认该领域的快速发展。NLP Cloud是NVIDIA Inception计划的创新启动部分,它为航空公司和药房等各个行业使用了大约25种大型商业语言模型。
在诸如hugs Face的模型中心等平台的引领下,越来越多的人倾向于将这些模型开源。此外,已经开发了许多基于Transformer的模型,每个模型都专门用于不同的NLP任务,展示了模型在不同应用中的多功能性和效率。
基准及表现
对NLP中Transformer模型的性能进行基准测试和评估涉及到评估其有效性和效率的系统方法。
根据任务的性质,有不同的方法和资源来做到这一点:
机器翻译任务
在处理机器翻译任务时,可以利用WMT(机器翻译研讨会)等标准数据集,其中机器翻译系统遇到各种语言对,每种语言对都有其独特的挑战。
BLEU, METEOR, TER和chrF等指标作为导航工具,指导我们实现准确性和流畅性。
此外,跨新闻、文学和技术文本等不同领域的测试确保了机器翻译系统的适应性和多功能性,使其成为数字世界中真正的多语言。
质量保证标准
为了评估QA模型,使用特殊的问题和答案集合,如SQuAD(斯坦福问答数据集)、Natural questions或TriviaQA。
每一个都像一个不同的游戏,有自己的规则。例如,《SQuAD》是关于在给定文本中寻找答案,而其它游戏则更像是一款带有来自任何地方的问题的问答游戏。
为了了解这些程序的性能,我们使用Precision、Recall、F1等分数,有时甚至使用精确匹配分数。
NLI基准
在处理自然语言推理(NLI)时,使用特殊的数据集,如SNLI(斯坦福自然语言推理)、多语言推理和ANLI。
这些就像语言变体和棘手案例的大型库,帮助我们了解计算机对不同类型句子的理解程度。我们主要检查计算机在理解陈述是否一致、矛盾或不相关方面的准确性。
同样重要的是,研究计算机是如何处理复杂的语言问题的,比如当一个单词指的是之前提到的东西,或者理解“not”、“all”和“some”。
与其他架构的比较
在神经网络的世界里,有两个突出的结构通常被比作Transformer。它们中的每一种都提供了独特的优势和挑战,为特定类型的数据处理量身定制。
复发层
复发层是递归神经网络(RNN)的基石,擅长处理序列数据。这种体系结构的优势在于其执行顺序操作的能力,这对于语言处理或时间序列分析等任务至关重要。在循环层中,前一步的输出作为下一步的输入反馈到网络中。这种循环机制允许神经网络记住先前的信息,这对于理解序列中的上下文是至关重要的。
然而,正如我们已经讨论过的,这种顺序处理有两个主要含义:
- 这可能导致更长的训练时间,因为每一步都依赖于前一步,使并行处理具有挑战性。
- 由于梯度消失问题,它们经常与长期依赖关系作斗争,在这种情况下,网络在从序列中相距很远的数据点学习时变得不那么有效。
Transformer模型与使用循环层的体系结构明显不同,因为它们缺乏循环性。正如我们之前看到的,Transformer的attention层评估了这两个问题,使它们成为NLP应用程序的RNN的自然进化。
卷积层
另一方面,卷积层,卷积神经网络(CNN)的构建模块,以其在处理空间数据(如图像)方面的效率而闻名。
这些层使用核(过滤器)扫描输入数据以提取特征。这些核的宽度可以调整,允许网络根据手头的任务专注于小的或大的特征。
虽然卷积层非常擅长捕获数据中的空间层次和模式,但它们面临着长期依赖关系的挑战。由于本身不考虑顺序信息,这使得它们不太适合需要理解序列的顺序或上下文的任务。
这就是为什么CNN和Transformers是为不同类型的数据和任务量身定制的。CNN由于其处理空间信息的效率而在计算机视觉领域占据主导地位,而Transformer由于其理解远程依赖关系的能力而成为复杂顺序任务的首选,特别是在NLP中。
结论
总之,Transformer已经成为AI NLP领域的一个巨大突破。
通过其独特的Self-Attention机制有效地管理序列数据,这些模型优于传统的RNN。它们更有效地处理长序列和并行数据处理的能力大大加快了训练速度。
谷歌的BERT和OpenAI的GPT系列等开创性模型体现了Transformer在增强搜索引擎和生成类人文本方面的变革性影响。
因此,它们在现代机器学习中不可或缺,推动了AI的边界,开辟了技术进步的新途径。
最后
感谢你们的阅读和喜欢,作为一位在一线互联网行业奋斗多年的老兵,我深知在这个瞬息万变的技术领域中,持续学习和进步的重要性。
为了帮助更多热爱技术、渴望成长的朋友,我特别整理了一份涵盖大模型领域的宝贵资料集。
这些资料不仅是我多年积累的心血结晶,也是我在行业一线实战经验的总结。
这些学习资料不仅深入浅出,而且非常实用,让大家系统而高效地掌握AI大模型的各个知识点。如果你愿意花时间沉下心来学习,相信它们一定能为你提供实质性的帮助。
这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费
】

AI大模型系统学习路线
在面对AI大模型开发领域的复杂与深入,精准学习显得尤为重要。一份系统的技术路线图,不仅能够帮助开发者清晰地了解从入门到精通所需掌握的知识点,还能提供一条高效、有序的学习路径。
但知道是一回事,做又是另一回事,初学者最常遇到的问题主要是理论知识缺乏、资源和工具的限制、模型理解和调试的复杂性,在这基础上,找到高质量的学习资源,不浪费时间、不走弯路,又是重中之重。
AI大模型入门到实战的视频教程+项目包
看视频学习是一种高效、直观、灵活且富有吸引力的学习方式,可以更直观地展示过程,能有效提升学习兴趣和理解力,是现在获取知识的重要途径
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
海量AI大模型必读的经典书籍(PDF)
阅读AI大模型经典书籍可以帮助读者提高技术水平,开拓视野,掌握核心技术,提高解决问题的能力,同时也可以借鉴他人的经验。对于想要深入学习AI大模型开发的读者来说,阅读经典书籍是非常有必要的。
600+AI大模型报告(实时更新)
这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。
AI大模型面试真题+答案解析
我们学习AI大模型必然是想找到高薪的工作,下面这些面试题都是总结当前最新、最热、最高频的面试题,并且每道题都有详细的答案,面试前刷完这套面试题资料,小小offer,不在话下
这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费
】
