当前位置: 首页 > 科技观察

什么是Transformer机器学习模型?_0

时间:2023-03-13 18:16:16 科技观察

翻译|李锐审稿人|孙淑娟近年来,Transformer机器学习模型成为深度学习和深度神经网络技术进步的主要亮点之一。它主要用于自然语言处理中的高级应用。谷歌正在使用它来增强其搜索引擎结果。OpenAI使用Transformer创建了著名的GPT-2和GPT-3模型。自2017年首次亮相以来,Transformer架构已经发展并扩展为许多不同的变体,从语言任务扩展到其他领域。它们已被用于时间序列预测。它们是DeepMind的蛋白质结构预测模型AlphaFold背后的关键创新。OpenAI的源代码生成模型Codex也是基于Transformer的。Transformer最近也进入了计算机视觉领域,在许多复杂的任务中正在慢慢取代卷积神经网络(CNN)。研究人员仍在探索改进Transformers并将其用于新应用的方法。以下是对《变形金刚》令人兴奋的原因及其工作原理的简要说明。1.使用神经网络处理序列数据传统的前馈神经网络并不是为了跟踪序列数据并将每个输入映射到输出而设计的。它适用于图像分类等任务,但无法处理文本等顺序数据。处理文本的机器学习模型不仅要处理每个单词,还必须考虑单词是如何排序和相互关联的。一个词的意思可能会随着句子中出现在它们前后的其他词而改变。在Transformers出现之前,递归神经网络(RNN)是自然语言处理的首选解决方案。当给定一个单词序列时,循环神经网络(RNN)会处理第一个单词并将结果反馈给处理下一个单词的层。这使它能够跟踪整个句子,而不是单独处理每个单词。循环神经网络(RNN)的缺点限制了它们的实用性。首先,它们的处理速度非常慢。因为它们必须按顺序处理数据,所以它们无法利用并行计算硬件和图形处理单元(GPU)进行训练和推理。其次,它们无法处理长文本序列。随着循环神经网络(RNN)深入到文本摘录中,句子前几个词的影响逐渐减弱。当两个链接的词在文本中相距很远时,就会出现这种称为“梯度消失”的问题。第三,他们只捕捉一个词和它之前的词之间的关系。事实上,单词的含义取决于其前后的单词。长短期记忆(LSTM)网络是循环神经网络(RNN)的继承者,在一定程度上可以解决梯度消失问题,可以处理更大的文本序列。但是长短期记忆(LSTM)的训练速度甚至比循环神经网络(RNN)还要慢,而且仍然无法充分利用并行计算。他们仍然依赖于文本序列的串行处理。2017年发表的一篇名为《注意就是所需要的一切》的论文介绍了Transformers,指出Transformers做出了两个关键贡献:首先,它们使并行处理整个序列成为可能,从而允许顺序深度学习模型在速度和容量方面进行扩展。以前所未有的速度。其次,他们引入了“注意机制”,可以跟踪正向和反向超长文本序列中单词之间的关系。在讨论Transformer模型的工作原理之前,有必要先讨论一下时序神经网络解决的问题类型。“向量到序列”模型采用单个输入(例如图像)并生成一系列数据(例如描述)。序列到向量模型将序列数据作为输入,例如产品评论或社交媒体帖子,并输出单个值,例如情绪分数。序列到序列模型将一个序列(例如英语句子)作为输入,并输出另一个序列,例如该句子的法语翻译。尽管存在差异,但所有这些类型的模型都有一个共同点——它们学习表征。神经网络的工作是将一种类型的数据转换为另一种类型的数据。在训练期间,神经网络的隐藏层(位于输入和输出之间的层)以最能代表输入数据类型特征的方式调整它们的参数并将其映射到输出。最初的Transformer被设计为用于机器翻译的序列到序列(seq2seq)模型(当然,序列到序列模型不仅限于翻译任务)。它由一个编码器模块组成,该模块将来自源语言的输入字符串压缩为表示单词及其相互关系的向量。解码器模块将编码向量转换为目标语言的文本字符串。2.TokenizationandEmbedding输入文本必须经过处理并转换成统一的格式才能输入到Transformer中。首先,文本通过“分词器”,将其分解为可以单独处理的字符块。标记化算法可以取决于应用程序。在大多数情况下,每个单词和标点符号大致算作一个标记。一些后缀和前缀算作单独的标记(例如,“ize”、“ly”和“pre”)。分词器生成一个数字列表,表示输入文本的分词ID。然后将标记转换为“词嵌入”。词嵌入是试图在多维空间中捕获词值的向量。例如,“猫”和“狗”这两个词在某些维度上可能具有相似的值,因为它们都用在关于动物和宠物的句子中。但是,在区分猫科动物和犬科动物的其他维度上,“猫”比“狼”更接近“狮子”。同样,“巴黎”和“伦敦”可能彼此更近,因为它们都是城市。但是,“伦敦”更接近于“英格兰”,“巴黎”更接近于“法国”,这是因为一个国家的区分维度。而词嵌入通常有数百个维度。词嵌入是使用与Transformer分开训练的嵌入模型创建的。有几种用于语言任务的预训练嵌入模型。3.注意层一旦句子被转换成词嵌入列表,它就会被送入Transformer的编码器模块。与循环神经网络(RNN)和长短期记忆(LSTM)模型不同,Transformer不会一次接收一个输入。它可以接收整个句子的嵌入并并行处理它们。这使得Transformers的计算效率高于其前身,也使它们能够以正向和反向序列检查文本场景。为了保持句子中单词的顺序,Transformer应用了“位置编码”,这基本上意味着它修改每个嵌入向量的值以表示其在文本中的位置。接下来,输入被传递到第一个编码器块,该块通过“注意层”对其进行处理。注意层试图捕捉句子中单词之间的关系。例如,考虑一下“大黑猫把瓶子掉在一边后过马路”这句话。在这里,模型必须将“it”与“cat”相关联,将“its”与“bottle”相关联。所以它应该使其他联想如“大”和“猫”或“交叉”和“猫”。否则,注意力层接收表示单个词值的词嵌入列表,并生成表示单个词及其相互关系的向量列表。注意力层包含多个“注意力头”(attentionheads),每个注意力头都可以捕获不同类型的词之间的关系。注意层的输出被馈送到前馈神经网络,后者将其转换为向量表示并将其发送到下一个注意层。Transformer包含多个注意力块和前馈层,以逐渐捕获更复杂的关系。解码器模块的任务是将编码器的注意力向量转换为输出数据(例如,输入文本的翻译版本)。在训练阶段,解码器可以访问编码器产生的注意力向量和预期结果(例如,翻译的字符串)。解码器使用相同的标记化、词嵌入和注意力机制来处理预期结果并创建注意力向量。然后,它在编码器模块中传递这个注意力向量和注意力层,建立输入和输出值之间的关系。在翻译应用程序中,这是源语言和目标语言中的单词相互映射的部分。与编码器模块一样,解码器注意力向量通过前馈层传递。然后将结果映射到一个非常大的向量池,即目标数据的大小(在翻译的情况下,这可能涉及数万个单词)。4.训练Transformer在训练过程中,Transformer提供了一个非常大的配对示例语料库(例如,英语句子及其相应的法语翻译)。编码器模块接收并处理完整的输入字符串。然而,解码器接收到输出字符串的屏蔽版本(一次一个单词)并尝试在编码的注意力向量和预期结果之间建立映射。编码器尝试预测下一个单词,并根据其输出与预期结果之间的差异进行更正。这种反馈使转换器能够修改编码器和解码器的参数,并逐渐在输入和输出语言之间创建正确的映射。Transformer拥有的训练数据和参数越多,它就越能在较长的文本序列中保持连贯性和一致性。5.Transformer的变化在上面研究的机器翻译例子中,Transformer的编码器模块学习英语单词和句子之间的关系,而解码器学习英语和法语之间的映射。但并非所有Transformer应用程序都需要编码器和解码器模块。例如,大型语言模型的GPT家族使用一堆解码器模块来生成文本。BERT是谷歌研究人员开发的Transformer模型的另一种变体,它只使用了编码器模块。其中一些架构的优势在于它们可以通过自我监督学习或无监督方法进行训练。例如,BERT获取大量未标记文本的语料库,屏蔽其中的一部分,并尝试预测其大部分训练的缺失部分。然后,它会根据其预测与实际数据的接近程度或远近程度来调整其参数。通过反复重复这个过程,BERT捕捉到了不同场景下不同词之间的关系。在此预训练阶段之后,可以通过对少量标记示例进行训练,对BERT进行微调以用于下游任务,例如问题回答、文本摘要或情感分析。使用无监督和自我监督的预训练可以减少注释训练数据所需的工作量。关于Transformers和它们正在解锁的新应用程序还有很多要说的,这超出了本文的范围。研究人员仍在寻找从Transformer中获取更多信息的方法。Transformer还引发了关于语言理解和通用人工智能的讨论。显而易见的是,与其他神经网络一样,Transformer是一种统计模型,能够以微妙而复杂的方式捕捉数据中的规律性。虽然他们不像人类那样“理解”语言,但他们的发展仍然令人兴奋,并且可以提供更多。原文链接:https://bdtechtalks.com/2022/05/02/what-is-the-transformer/