Lazy loaded image
Tansformer让我们了解GPT-3-BERT与T5模型
字数 3719阅读时长 10 分钟
2023-12-4
2023-12-7
type
Post
status
Published
date
Dec 4, 2023
slug
summary
如果您想在机器学习,尤其是 NLP 领域保持领先地位,您必须至少了解一点关于 Transformer 的知识。
tags
ChatGPT相关
AI教程
AI知识库
AI发展
AI思维
推荐
category
ChatGPT
icon
password
Files & media

分析Tansformer模型:我们去了解GPT-3 - BERT与T5背后的模型

你知道这句话吗,当你有一把锤子时,一切看起来都像钉子?嗯,在机器学习中,我们似乎真的发现了一把神奇的锤子,事实上,它的一切都是钉子,它们被称为变形金刚。变形金刚是可以被设计用来翻译文本、写诗和评论、甚至生成计算机代码的模型。事实上,我在 daleonai.com 上写的许多令人惊叹的研究都是基于 Transformers 构建的,例如AlphaFold 2,该模型可以根据基因序列预测蛋白质的结构,以及强大的自然语言处理 (NLP) 模型(例如GPT-3、BERT、T5、Switch、Meena 等。你可能会说他们不仅仅是满足……呃,算了。
如果您想在机器学习,尤其是 NLP 领域保持领先地位,您必须至少了解一点关于 Transformer 的知识。因此,在这篇文章中,我们将讨论它们是什么、它们如何工作以及为什么它们如此有影响力。
Transformer 是一种神经网络架构。回顾一下,神经网络是一种非常有效的模型,用于分析图像、视频、音频和文本等复杂数据类型。但有不同类型的神经网络针对不同类型的数据进行了优化。例如,为了分析图像,我们通常会使用卷积神经网络或“CNN”。它们隐隐约约地模仿了人类大脑处理视觉信息的方式。
notion image
卷积神经网络,图片来自 Wikicommons 的 Renanar2。
自2012 年左右以来,我们在使用 CNN 解决视觉问题方面取得了相当成功,例如识别照片中的物体、识别人脸以及读取手写数字。但很长一段时间以来,对于语言任务(翻译、文本摘要、文本生成、命名实体识别等)来说,没有任何相对好的东西存在。这是不幸的,因为语言是我们人类交流的主要方式。
在 2017 年推出 Transformer 之前,我们使用深度学习来理解文本的方式是使用一种称为循环神经网络 (RNN) 的模型,如下所示:
notion image
RNN 的图像,来自维基媒体的fdeloche 
假设您想将一个句子从英语翻译成法语。RNN 会输入一个英语句子,一次处理一个单词,然后按顺序输出对应的法语单词。这里的关键词是“顺序”。在语言中,单词的顺序很重要,你不能随意打乱它们。这句话:
“简去找麻烦了。”
意思与下面的句子非常不同:
“寻找简遇到了麻烦”
因此,任何要理解语言的模型都必须捕获词序,而循环神经网络通过按顺序一次处理一个词来做到这一点。
但 RNN 存在问题。首先,他们很难处理大量的文本序列,比如长段落或论文。当读到一段的结尾时,他们就会忘记开头发生了什么。例如,基于 RNN 的翻译模型可能难以记住长段落主题的性别。
更糟糕的是,RNN 很难训练。众所周知,它们很容易受到所谓的梯度消失/爆炸问题的影响(有时你只需重新开始训练并祈祷)。问题更大的是,由于 RNN 是按顺序处理单词的,因此很难并行化。这意味着你不能仅仅通过向它们投入更多 GPU 来加速训练,这意味着你无法使用那么多数据来训练它们。

输入变形金刚

这就是变形金刚改变一切的地方。它们由谷歌和多伦多大学的研究人员于 2017 年开发,最初设计用于翻译。但与循环神经网络不同的是,Transformers 可以非常有效地并行化。这意味着,有了合适的硬件,你就可以训练一些非常大的模型。
多大?
很大很大。
GPT-3 是一种特别令人印象深刻的文本生成模型,其书写能力几乎与人类相同,它接受了约45 TB文本数据的训练,其中几乎包括所有公共网络。
因此,如果您还记得有关《变形金刚》的任何事情,请记住:将可扩展的模型与庞大的数据集相结合,其结果可能会让您大吃一惊。

变压器如何工作?

notion image
原始论文中的变压器图:https://arxiv.org/abs/1706.03762
虽然原始论文中的图表有点吓人,但 Transformers 背后的创新可归结为三个主要概念:
  1. 位置编码
  1. 注意力
  1. 自我关注

位置编码

让我们从第一个开始,位置编码。假设我们正在尝试将文本从英语翻译成法语。请记住,RNN(旧的翻译方式)通过按顺序处理单词来理解单词顺序。但这也是它们难以并行化的原因。
变形金刚通过一种称为位置编码的创新技术绕过了这一障碍。这个想法是获取输入序列中的所有单词(在本例中是一个英语句子),并为每个单词附加一个按顺序排列的数字。因此,您可以向网络提供如下序列:
[("Dale", 1), ("says", 2), ("hello", 3), ("world", 4)]
从概念上讲,您可以将其视为将理解词序的负担从神经网络结构转移到数据本身。
首先,在 Transformer 对任何数据进行训练之前,它不知道如何解释这些位置编码。但随着模型看到越来越多的句子及其编码的示例,它会学习如何有效地使用它们。
我在这里做了一些过度简化——原作者使用正弦函数来提出位置编码,而不是简单的整数 1、2、3、4——但要点是相同的。将词序存储为数据而不是结构,这样您的神经网络就会变得更容易训练。

注意力

《变形金刚》的下一个重要部分称为“注意力”。
呵呵。
注意力是一种神经网络结构,如今您在机器学习中随处可见。事实上,2017 年介绍 Transformer 的论文标题并不叫“ We Present You the Transformer”。相反,它被称为“注意力就是你所需要的”。
注意力机制是在两年前(即 2015 年)的翻译背景下引入的。要理解它,请看原始论文中的这个例句:
欧洲经济区协定于1992年8月签署。
现在想象一下尝试将这句话翻译成法语:
1992 年签署的《欧洲经济区协议》。
尝试翻译该句子的一种不好的方法是遍历英语句子中的每个单词,然后尝试一次一个单词地吐出其法语对应词。由于多种原因,这种做法效果不佳,但其中之一是,法语翻译中的一些单词被颠倒了:英语是“European Economic Area”,法语是“la zone économique européenne”。此外,法语是一种带有性别词汇的语言。形容词“économique”和“européenne”必须采用阴性形式才能与阴性宾语“la zone”相匹配。
注意力是一种机制,允许文本模型在决定如何翻译输出句子中的单词时“查看”原始句子中的每个单词。这是原始注意力论文中的一个很好的可视化:
notion image
图片来自论文“Neural Machine Translation by Jointly Learning to Align and Translate (2015)”,https://arxiv.org/abs/1409.0473
这是一种热图,显示模型在输出法语句子中的每个单词时“参与”的位置。正如您所料,当模型输出单词“européenne”,它会重点关注输入单词“European”和“Economic”。
模型如何知道在每个时间步应该“关注”哪些单词?这是从训练数据中学到的东西。通过查看数千个法语和英语句子的示例,该模型可以了解哪些类型的单词是相互依赖的。它学习如何尊重性别、复数和其他语法规则。
自 2015 年发现以来,注意力机制一直是自然语言处理中极其有用的工具,但在其原始形式中,它与循环神经网络一起使用。因此,2017 年 Transformers 论文的创新部分是完全抛弃 RNN。这就是为什么 2017 年的论文被称为“注意力就是你需要的”。

自我关注

Transformer 的最后一个(也许也是最有影响力的)部分是对注意力的一种扭曲,称为“自我注意力”。
我们刚才谈到的“香草”注意力有助于在英语和法语句子中对齐单词,这对于翻译很重要。但是,如果您不想翻译单词,而是构建一个能够理解语言的潜在含义和模式的模型(一种可用于执行任意数量的语言任务的模型),该怎么办?
一般来说,神经网络之所以强大、令人兴奋和酷,是因为它们通常会自动为它们所训练的数据建立有意义的内部表示。例如,当您检查视觉神经网络的各层时,您会发现一组神经元可以“识别”边缘、形状甚至眼睛和嘴巴等高级结构。基于文本数据训练的模型可能会自动学习词性、语法规则以及单词是否是同义词。
神经网络学习的语言内部表征越好,它在任何语言任务中的表现就越好。事实证明,如果注意力集中在输入文本本身上,那么注意力可能是实现这一目标的一种非常有效的方法。
例如,拿这两句话来说:
“服务员,可以给我支票吗?”
“看起来我刚刚让服务器崩溃了。”
这里的“服务器”一词意味着两个截然不同的事物,我们人类可以通过查看周围的单词来轻松消除歧义。自注意力使神经网络能够在单词周围的上下文中理解该单词。
因此,当模型处理第一句中的“服务器”一词时,它可能会“参与”“检查”一词,这有助于区分人类服务器和金属服务器。
在第二句话中,模型可能会关注“崩溃”一词来确定“服务器”指的是一台机器。
自注意力有助于神经网络消除单词歧义、进行词性标记、实体解析、学习语义角色等等。
所以,我们在这里:变形金刚,在 10,000 英尺的高度解释,归结为:
如果您想要更深入的技术解释,我强烈建议您查看 Jay Alammar 的博客文章The Illustrated Transformer。

变压器能做什么?

最流行的基于 Transformer 的模型之一称为 BERT,是“Transformers 的双向编码器表示”的缩写。它是在 2018 年我加入公司时由 Google 的研究人员引入的,很快就进入了几乎所有 NLP 项目——包括Google 搜索。
BERT 不仅指模型架构,还指经过训练的模型本身,您可以在此处免费下载和使用。它由谷歌研究人员在海量文本语料库上进行训练,现已成为 NLP 的通用小刀。它可以扩展解决许多不同的任务。
例如:
  • 文本摘要
  • 问答
  • 分类
  • 命名实体解析
  • 文本相似度
  • 攻击性信息/脏话检测
  • 了解用户查询
  • 还有很多
BERT 证明,您可以构建基于未标记数据(例如从维基百科和 Reddit 抓取的文本)训练的非常好的语言模型,并且这些大型“基础”模型可以使用特定于领域的数据适应许多不同的用例。
最近,OpenAI 创建的模型GPT-3因其生成真实文本的能力而令人惊叹。Meena是 Google Research 去年推出的一款基于 Transformer 的聊天机器人(akhem,“对话代理”),可以就几乎任何主题进行引人入胜的对话(笔者曾经花了 20 分钟与 Meena 争论人类意味着什么) 。
Transformer 还通过创作音乐、根据文本描述生成图像以及预测蛋白质结构,在 NLP 之外掀起波澜。

如何使用变压器?

既然您已经了解 Transformer 的强大功能,您可能想知道如何开始在您自己的应用程序中使用它们没问题。
您可以从TensorFlow Hub下载常见的基于 Transformer 的模型,例如 BERT 。有关代码教程,请查看我编写的关于构建由语义语言支持的应用程序的教程。
但如果你想变得真正时尚并编写 Python,我强烈推荐由HuggingFace公司维护的流行“Transformers”库。该平台允许您以对开发人员非常友好的方式训练和使用当今大多数流行的 NLP 模型,如 BERT、Roberta、T5、GPT-2。
💡
原文作者最初发布于2021年5月6日:https://daleonai.com/transformers-explained
上一篇
ChatGPT作用的概述
下一篇
游戏中的生成式AI智能革命