共计 4691 个字符,预计需要花费 12 分钟才能阅读完成。
编者按:ChatGPT 以近乎狂热之势席卷了全网。在沉浸于“ChatGPT 潮”的同时,让咱们也来深刻理解一下它和基石技术 – 大模型 Transformer 吧。
Dale Markowitz 的这篇文章为咱们深入浅出地介绍了 Transformer 的重要性、创新性、应用领域等。
以下是译文,Enjoy!
作者 | Dale Markowitz
编译 | 岳扬
你知据说过这句话吗?当你领有一把锤子时,所有货色看起来都像钉子。那么,在机器学习中,咱们仿佛真的发现了一个神奇的锤子,对于它来说,所有的货色都是钉子,它们被称为 Transformers。
Transformers 是能够被设计用来翻译文本、写诗和文章的模型,甚至能够生成计算机代码。很多备受瞩目的模型就是基于 Transfomer, 如风靡全网的 ChatGPT,AlphaFold 2(这个模型能够依据蛋白质的基因序列预测其构造),以及其余弱小的自然语言解决(NLP)模型,如 GPT-3、BERT、T5、Switch、Meena 等等。
如果你想在机器学习,特地是 NLP 方面跟上时代的步调,那么至多要对 Transformers 有肯定的理解。因而,在这篇文章中,咱们将探讨 Transformers 是什么,它们如何工作,以及它们为什么如此有影响力。
Transformers 是神经网络架构的一种类型。简而言之,神经网络是一种十分无效的模型类型,用于剖析图像、视频、音频和文本等简单数据类型。但有不同类型的神经网络为不同类型的数据进行优化。例如,对于剖析图像,咱们通常会应用卷积神经网络 [1] 或“CNNs”。其实能够说它们模拟了人脑解决视觉信息的形式。
卷积神经网络,由 Wikicommons 的 Renanar2 提供
而自 2012 年 [2] 左右开始,咱们在用 CNN 解决视觉问题方面曾经相当胜利,比方辨认照片中的物体、辨认人脸和手写数字。但在很长一段时间里,没有任何相似的好办法存在于语言工作(翻译、文本总结、文本生成、命名实体辨认等)的解决中。这是可怜的,因为语言是咱们人类交换的次要形式。
在 2017 年呈现 Transformers 之前,咱们应用深度学习来了解文本的形式是应用一种叫做循环神经网络或 RNN 的模型:
RNN 的图片,由 Wikimedia 提供
比方说,你想把一个英语句子翻译成法语。RNN 会把英语句子作为输出,一次解决一个词,而后按程序输入它们的法语对应词。这里的要害是“按程序”。在语言中,单词的程序很重要,不能轻易更改。
“Jane went looking for trouble.”
下面这句话与上面上面这句话的意思齐全不同。
“Trouble went looking for Jane.”
因而,任何要了解语言的模型都必须捕捉到单词的程序,而递归神经网络(recurrent neural networks)通过一次解决一个单词的办法来做到这一点。
然而,RNN 也存在很多问题。首先,它们在解决大型文本序列时很吃力,比方长段文本或文章。当到了一个段落的结尾时,它们会遗记结尾产生了什么。例如,一个基于 RNN 的翻译模型可能难以记住一个长段落的主题。
更糟的是,RNNs 很难训练。它们很容易受到所谓的梯度隐没 / 收缩问题 [3] 影响(有时你只需从新开始训练,而后祷告)。更麻烦的是,因为它们是按程序解决单词,RNNs 很难达到并行化。这意味着你不能通过应用更多的 GPU 来放慢训练,这反过来意味着你不能在所有的数据上训练它们。
01 进入 Transformers 的世界
Transformers 是由谷歌和多伦多大学的钻研人员在 2017 年开发的,最后是为了做翻译。但与递归神经网络(RNN)不同,Transformers 能够十分无效地进行并行化操作。这意味着,如果有适合的硬件条件,你能够训练一些真正的大模型。
多大的大模型?
十分大。
如果要说一件对于 Transformers 的事件,那应该会是:将一个具备良好扩展性的模型与一个微小的数据集相结合,其后果可能会让你大吃一惊。
02 Transformers 是如何工作的?
原始论文中的 Transformer 示意图
尽管原始论文 [4] 的图表有点吓人,但 Transformer 背地的翻新能够归结为三个次要概念。
Positional Encodings 地位编码
Attention 注意力
Self-Attention 自注意力
2.1 Positional Encodings 地位编码
让咱们从第一个——地位编码开始介绍。比方说,咱们正试图将文本从英语翻译成法语。RNNs,即用 AI 进行文本翻译的老办法,通过按程序解决单词来了解词序。但这也是使它们难以并行化的起因。
Transformers 通过一种叫做地位编码的翻新办法绕过了这个阻碍。这个想法是把你的输出序列中的所有单词(在这个例子中是一个英语句子)用它的程序给每个单词附加一个数字。因而,要给你的网络提供一个序列,如:
[(“Dale”, 1), (“says”, 2), (“hello”, 3), (“world”, 4)]
从概念上讲,你能够认为这是把了解词序的累赘从神经网络的构造转移到数据自身。
起初,在 Transformers 对任何数据进行训练之前,它不晓得如何解释这些地位编码。但随着模型看到越来越多的句子及其编码的例子,它学会了如何无效地应用它们。
我在这里做了许多简化——原作者是应用正弦函数来进行地位编码,而不是简略的整数 1、2、3、4,但重点是一样的。将词序存储为数据,而不是构造,这样神经网络就变得更容易训练了。
2.2 Attention 注意力
Transformers 的下一个重要局部叫做注意力。
注意力是一种神经网络构造,如果你在学习机器学习,你就可能常常听到。事实上,2017 年介绍 Transformers 的论文的题目并不叫《We Present You the Transformer》。相同,它被称为“Attention is All You Need”。
注意力 [5] 是在论文的两年前,即 2015 年,在文本翻译的背景下引入的。为了了解它,请看原始论文中的这个例句。
The agreement on the European Economic Area was signed in August 1992.
当初想一下,将这句话翻译成法语的相应内容:
L’accord sur la zone économique européenne a été signé en août 1992.
翻译这句话的一个坏办法是:通过英语句子中的每个单词找到其法语的对应词,一次一个单词。这样做成果并不好,起因有几个。首先,法语翻译中的一些词被颠倒了:英语是“European Economic Area”,而法语是“la zone économique européenne”。另外,法语是一种带有性别色调的语言。形容词“économique”和“européenne”必须采纳阴性模式,以配合阴性对象“la zone”。
注意力(Attention)是一种机制,容许文本模型在决定如何翻译输入句子中的单词时“查看”原句中的每一个单词。这里有该过程的可视化图片,来自那篇对于注意力的论文。
原图来自论文《Neural Machine Translation by Jointly Learning to Align and Translate (2015)》
这是一种热力求,显示了模型在输入法语句子中的每个词时“关注”的中央。正如咱们想要的那样,当模型输入“européenne”这个词时,它重点关注了“European”和“Economic”这两个输出词。
那么,模型是如何晓得它在每个步骤中应该“关注”哪些词的呢?这是从训练数据中学习到的货色。通过看到数以千计的法语和英语句子的例子,该模型学会了哪些类型的词是相互依赖的。它学会了如何遵循词性别、复数和其余语法规定。
自 2015 年呈现以来,注意力机制始终是自然语言解决的一个十分有用的工具,但在其原始模式下,它是与递归神经网络一起应用的。所以,2017 年 Transformers 论文的翻新之处在于,在某些局部齐全摈弃了 RNN。这就是为什么 2017 年的论文被称为“Attention is all you need”。
2.3 Self-Attention 自注意力
Transformers 的最初一部分(兴许是最有影响的一部分)是对注意力的一种扭转,称为“自注意力”。
咱们方才谈到的那种注意力有助于在英语和法语句子中对齐单词,这对翻译很重要。然而,如果你不是要翻译单词,而是要建设一个可能了解语言中潜在意义和模式的模型——一种能够用来实现任何数量的语言工作的模型,那该怎么办呢?
一般来说,使神经网络变得弱小、令人激动和酷的起因是它们通常会主动建设它们所训练的数据的有意义的外部示意。例如,当你查看视觉神经网络的各层时,你会发现有几组神经元能够“辨认”边缘、形态,甚至像眼睛和嘴巴这样的高级构造。一个依据文本数据训练的模型可能会主动学习语篇、语法规定,以及单词是否是同义词。
一个神经网络学习的语言内部表征越好,它在任何语言工作中的体现就越好。而事实证明,如果把注意力放在输出文本自身上,它能够是一个十分无效的办法。
以这两句话为例。
“Server, can I have the check?”
“Looks like I just crashed the server.”
server 这个词在这里有两种截然不同的意思,咱们人类能够通过观察四周的词来轻易地将其辨别开来。自注意力容许神经网络在它四周的词的背景下了解一个词。
因而,当一个模型解决第一句中的“server”一词时,它可能会留神到“check”一词。
在第二句中,该模型可能会留神到“crashed”这个词,以确定“server”是指一台机器。
自注意力有助于神经网络辨别单词、进行语篇标记、实体解析、学习语义角色以及更多[6]。
如果你想理解更深刻的技术解释,我强烈建议你看看 Jay Alammar 的博文:http://jalammar.github.io/ill…。
03 Transformers 能做什么?
BERT 是最受欢迎的基于 Transformers 的模型之一,是“Bidirectional Encoder Representations from Transformers”的简称。它是由谷歌的钻研人员在 2018 年推出的,并很快进入了简直所有的 NLP 我的项目(包含谷歌搜寻[7])。
BERT 指的不仅仅是一种模型架构,而是一个经过训练的模型自身,你能够在这里(https://github.com/google-res…)收费下载和应用它。它是由谷歌的钻研人员在一个微小的文本语料库上训练进去的,并且曾经成为 NLP 的瑞士军刀,能够扩大解决一堆不同的工作,比方。
- 文本总结
- 问题答复
- 文本分类
- 命名实体解析
- 文本相似性
- 攻击性 / 触犯性语言检测
- 理解用户查问内容
- …
BERT 证实,你能够在无标签的数据上进行训练来创立比拟好的语言模型,比方从维基百科和 Reddit 收集的文本,而后这些大型“根底”模型能够用特定畛域的数据来适应许多不同的应用状况。
由 OpenAI 创立的模型 GPT-3[8],其生成文本的能力引人注目。(编者:最近爆火的 ChatGPT 也有 Transformer 的功绩!)。谷歌研究院推出的 Meena[9]是一款基于 Transformers 的聊天机器人(akhem,“conversational agent”),能够就简直任何话题进行对话(本文作者已经花了 20 分钟与 Meena 争执什么是人类)。
Transformers 也在 NLP 之外掀起了波澜,它能够谱写音乐,通过文本形容中生成图像,并预测蛋白质构造。