后GPT书:从GPT-3开始,续写Transformer庞大家族系谱(1)

本文涉及的产品
NLP 自学习平台,3个模型定制额度 1个月
NLP自然语言处理_高级版,每接口累计50万次
NLP自然语言处理_基础版,每接口每天50万次
简介: 后GPT书:从GPT-3开始,续写Transformer庞大家族系谱


一文带你了解Transformer 大家族。


最近,大语言模型军备战争占据了朋友圈的大部分篇幅,关于这些模型能做什么和有什么商业价值,已经有很多文章探讨。然而,作为一个在人工智能领域浸淫多年的小小研究员,我更关注的是这场军备竞赛背后的技术原理,以及这些模型是如何工程化并造福人类的。相比于看这些模型怎样赚钱和工程化以便为更多人带来好处,我更想探索的是这个现象背后的原因,以及在 AI 取代人类之前,我们这些研究员还能为实现 “被 AI 取代然后光荣退休” 做些什么。

三年前,当 GPT-3 在技术界掀起轩然大波时,我曾尝试以史书的方式剖析 GPT 背后的庞大家族。我按时间顺序梳理了 GPT 背后的技术脉络(图 1),并试图解释 GPT 的成功背后的技术原理。今年,GPT-3 的小儿子 ChatGPT 似乎更加聪明,能够用聊天的方式与人交流,这让更多人了解了自然语言处理领域的最新进展。在这个历史性的时刻,作为 AI 史官,我们或许应该花些时间回顾一下最近几年发生了什么。第一篇文章是以 GPT-3 作为起点,所以这个系列其实是对于后 GPT 时代的记录(后 GPT 书),而在探索 GPT 家族的变化时,我意识到大多数故事都与 Transformer 有关,因此这篇文章的名字就是 Transformer 世家。

图 1.  GPT 旧族谱


前情回顾

在正式开始介绍 Transformer 世家前,我们先按照图 1 回顾一下过去发生了什么。从 Word Embedding [1,2] 开始,向量(一串数字)以一种奇特但有效的方式将文字的语义包含了进来,图 2 展示这种表征方式的说明:用数字表示的(国王 - 男人 + 女人 = 女王)。以这个为基础,这一支庞大的 NLP(自然语言处理)家族就创立了。

图 2.  Word2Vec 图解 (King - Man + Woman = Queen)

 在这之后,他的大儿子 ELMo [3] 发现了语境的重要性,比如以下两句话:

“哦!你买了我最爱的披萨,我爱死你了!” “啊,我可真爱死你了!你把我最爱的披萨给蹭到地上了?” “我爱死你了” 的意思显然不同。ELMo 顺利的通过 “给定一个模型一串词,然后让模型预测下一个词和上一个词(前后文语境)” 解决了这个问题。


与此同时,Word Embedding 的一个远房表亲发现了另一个问题 —— 人在理解一句话的时候,是会有重点的关注一部分词的,一个很明显的现象就是我们在读自己母语的时候很多错别字会被轻易地忽略掉,这是因为我们在理解这段话的时候注意力并不在这上面。因此,他提出了 Attention(注意力)机制 [4],但是此时的 Attention 机制很初期,并不能单独工作,因此只能依附在类似于 RNN,LSTM 这种序列模型上。图 3 展示了 attention 机制与 RNN 的结合过程,也说明了为什么 Attention 自身无法单独工作。这里简单说一下 NLP 模型的工作过程,首先我们有一句话,比如 “我爱你中国”,这就是五个字符,可以变成图 3 里的 x_1-x_5,然后每个字符会变成刚刚所说的 word embedding (一串数字),也就是图 3 里的 h_1-h_5,然后他们再最后变成输出,比如 “I love China”(翻译任务),也就是图 3 里的 x_1’-x_3’。图 3 里剩下没说的部分就是 attention 机制了,也就是图 3 里的 A,他相当于给每个 h 赋予了一个权重,这样我们就知道在转换当前这个词的时候,哪些字比较重要了。具体的细节可以参考我最开始写的那篇文章(从 word2vec 开始,说下 GPT 庞大的家族系谱 )。可以看出,这里的数字表征是整个任务的基础,这也是为什么 Attention 机制无法单独工作的原因。
图 3.  早期照片 - Attention 与 RNN 强强联合(source: Attention for RNN Seq2Seq Models (1.25x speed recommended) - YouTube)

此时,作为骄傲的皇族直系亲属,Transformer 不认可这种依附他人的工作方式,在论文 “Attention is all you need”(你只需要注意力机制就够了)[5] 中提出了自己独立的方式, 将 “注意力机制” 加了一个字变成了 “自注意力机制”,只用注意力机制就能生成那串数字。我们用中医开药来说明这个变化。最开始的 Attention 机制可以说是每种材料的剂量,但是最终去拿药的时候,药品是存在 RNN 或者 LSTM 这种采药者手里的,我们开出的药方当然也要基于药房(RNN、LSTM)里有什么药。Transformer 做的只是将采药权要了回来(加入了 value 矩阵),然后换了一种开药方的方式(加入 key 和 query 矩阵)。此时,Source 可以看作一个中药铺子的储物箱,储物箱里的药品由地址 Key(药品名)和值 Value(药品)组成,当前有个 Key=Query(药方)的查询,目的是取出储物箱里对应的 Value 值(药品),即 Attention 数值。通过 Query 和储物箱内元素 Key 的地址进行相似性比较来寻址,之所以说是软寻址,指的是我们不只从储物箱里面找出一中药物,而是可能从每个 Key 地址都会取出内容,取出内容的重要性(量的多少)根据 Query 和 Key 的相似性来决定,之后对 Value 进行加权求和,这样就可以取出最终的 Value 值(一副中药),也即 Attention 值。所以不少研究人员将 Attention 机制看作软寻址的一种特例,这也是非常有道理的 [6]。

从此之后,Transformer 正式开始带领家族走向繁荣。

Transformer 继位

其实从图 1 也可以看出,transformer 就是爷爷家族里子嗣最旺盛的一支了,也证实了当年”Attention is all you need” 这个题目狂的确实有理有据。虽然刚刚讲过他提出的自注意力机制是什么,前面那篇文章 (从 word2vec 开始,说下 GPT 庞大的家族系谱 ) 已经详细讲过 transformer 的演化过程了,这里还是快速给新来的同学回顾一下 transformer 这个架构到底是什么。

简单来说,我们可以将 Transformer 看作一个 “演员”,对这个 “演员” 来说,编码器就像是演员的记忆,负责将台词转化为一个中间表示(抽象成脑海里我们不知道是什么的东西,也就是演员的理解),而解码器则像是演员的表演,负责将脑海里的理解转化成荧幕上的展示。这里面最重要的自注意力机制则充当了演员的专注力,能够自动调整演员在不同位置的注意力,从而更好地理解所有台词,使其在不同的情境中表演得更加自然流畅。

更具体一点来说,我们可以将 Transformer 看作一个大型 “语言处理工厂”。在这个工厂中,每个工人(编码器)都负责处理输入序列中的一个位置(比如说一个字),对其进行加工和转换,然后将其传递给下一个工人(编码器)。每个工人都有一份详细的工作说明书(自注意力机制),其中详细描述了如何处理当前位置的输入以及如何与前面的位置建立关联。在这个工厂中,每个工人都可以同时处理自己的任务,因此整个工厂可以高效地处理大量的输入数据。

Transformer 一登场,直接因为其强大的实力和两个争气的儿子(BERT 和 GPT)毫无悬念的夺下皇位。BERT (Bidirectional Encoder Representations from Transformers) [1] 继承了 Transformer 的 Encoder 部分,赢得了前半程比赛,但是因为其限制性,在通用性上输给了 GPT。老实的 GPT (Generative Pre-trained Transformer)[7-10] 继承了 Decoder 部分,老老实实从头学起,学习人类的交流方式,最终在后半程实现了了反超。

当然,Transformer 的野心显然不止于此,”Attention is all you need”,指的并不只是 NLP 领域。在介绍 GPT 和 BERT 之间的恩怨情仇之前,先看看他们老当益壮的父亲都做了些什么吧。 新族谱 - 诸侯林立

“父亲,时代变了。我们家族会因为我的努力,走上真正的辉煌。” ——Transformer


在了解了 Transformer 的机制之后,我们可以来看看在 Transformer 的强力发展下,Transformer 世家现在发展到什么程度了(新族谱)。从前面的 “演员” 例子可以看出,Transformer 代表了一种符合人类逻辑的学习方式,因此它不仅可以处理文字,还可以处理图像。图 2 总结了 Transformer 世家强大的家族背景。除了让 GPT 和 BERT 在最开始的 NLP(自然语言处理)领域继续开疆裂土外,Transformer 还开始涉足计算机视觉领域。它的小儿子(谷歌提出的 ViT 等)也在这个领域发光发热。2021 年,Vision Transformer 迎来了大爆发,一大批基于 Vision Transformer 的工作席卷了计算机视觉任务。自然而然地,作为一个世家,Transformer 家族总会互通有无,连接文本和图像(AI 作画)的 CLIP 应运而生。2022 年底,Stable Diffusion 在 ChatGPT 之前风光无限。除此之外,CLIP 还为 Transformer 世家打开了多模态的新大门。除了文字和图像,文字是否也能做音乐,是否也能画图?多模态和多任务 Transformer 也应运而生。总之,每个领域都是一个诸侯,一个 NLP 领域白手起家的 Transformer,在努力发展后成了可以分封诸侯的 “周王”。

诸侯林立,当是盛世。

图 4.  Transformer 世家日益繁盛的家族族谱 牛刀小试 - Vision Transformer [12]

在说 GPT 之前,还是要先说说 Transformer 做出的第一个大胆尝试 - 那就是让小儿子去掺和 CV 领域。先看看小儿子生平:

  • 其父亲 Transformer 出生于 2017 年一篇叫做 Attention is All You Need 的论文中。
  • 2019 年,Google 提出了一种 Vision Transformer(ViT)的架构,可以直接处理图像,而不需要使用卷积层(CNN)。论文题目一如既往的直白:“An image is worth 16x16 words”(一张图片就是 16*16 个词)。如图 5 所示,它的基本思想是把输入的图像分成一系列的小块,每个小块可以理解成过去处理文章时候的一个文字,然后把这些小块转换成向量,就像在普通的 Transformer 中处理文字一样。如果说在自然语言处理(NLP)领域,Transformer 的注意力机制试图捕捉文本中不同单词之间的关系,那么在计算机视觉(CV)领域,ViT 则试图捕捉图像中不同部分之间的关系。


图 5.  ViT 如何处理图片(source: Are Transformers better than CNN’s at Image Recognition? | by Arjun Sarkar | Towards Data Science) 在那之后,各种基于 Transformer 的模型层出不穷,而且在相应的任务上都取得了超越 CNN 的成绩。那 Transformer 的优势是什么呢,我们先回到电影的例子上,看看 Transformer 和 CNN 的区别:

想象你是一位导演,要拍摄一部电影,你需要给演员安排好位置,把不同的元素放在合适的位置上,比如说,将演员放在适当的背景下,使用合适的光线,使整个画面看起来和谐美观。对于 CNN 来说,它像是一个专业的摄影师,会逐像素地拍摄每一帧画面,然后从中提取出一些边缘、纹理等低层次特征。然后,它将这些特征组合起来,形成更高层次的特征,例如人脸、动作等,最终得到一帧画面。随着电影的进行,CNN 会不断重复这个过程,直到完成整部电影的拍摄。

而对于 ViT 来说,它像是一个艺术指导,会把整个画面看作是一个整体,考虑到背景、光线、颜色等因素,为每个演员分配合适的位置和角度,创造出一个完美的画面。然后,ViT 会把这些信息汇总成一个向量,并使用多层感知器对它们进行处理,最终得到一帧画面。随着电影的进行,ViT 会不断重复这个过程,直到完成整部电影的创作。

回到图像处理任务上,假设我们有一张 224x224 像素的猫的图片,我们想要用一个神经网络对它进行分类。如果我们使用传统的卷积神经网络,它可能会采用多个卷积层和池化层来逐渐缩小图像的大小,最终得到一个较小的特征向量,然后通过全连接层进行分类。这种方法的问题是,在卷积和池化的过程中,我们会逐渐丢失图像中的信息,因为我们不能同时考虑所有像素点之间的关系。此外,由于卷积和池化层的顺序限制,我们无法进行全局的信息交互。相比之下,如果我们使用 Transformer 和 self-attention 机制来处理这个图像,我们可以直接将整个图像视为一个序列,并对它进行 self-attention 计算。这种方法不会丢失任何像素点之间的关系,并且可以进行全局的信息交互。

此外,由于 self-attention 计算是可并行化的,因此我们可以同时处理整个图像,大大加快了计算速度。举个例子,假设我们有一个句子:“I like to eat ice cream”, 其中包含 6 个单词。现在假设我们正在使用一个基于自注意力机制的模型来理解这个句子,Transformer 可以:

  • 最小化每层的总计算复杂度:基于自注意力机制的模型中,我们只需要计算每个单词与所有其他单词之间的注意力权重,这样每一层的计算量只取决于输入长度而不是隐藏层的大小。在这个例子中,输入长度为 6 个单词,因此每一层的计算复杂度只取决于这 6 个单词的数量。
  • 最大化可并行化的计算量:基于自注意力机制的模型可以同时计算每个单词与其他所有单词之间的注意力权重,因此计算可以高度并行化,从而加速模型的训练和推断。


然而,ViT 需要大规模数据集和高分辨率图像才能发挥其全部潜力 ,因此,虽然 Vision Transformers 在 CV 领域表现不凡,CNN 在计算机视觉领域的应用和研究仍然更为广泛,并且在目标检测和分割等任务中具有优势 。

但是没关系,你做的已经够好了,你父亲涉足 CV 的初衷也不是为了取代 CNN,他有更宏大的目标。

这个目标的基础,就是前面我说的 “此外”。 初露峥嵘 - CLIP [13]

前面我说过,Transformer 还有更宏大的目标,那就是 “大模型”,超级超级大的模型。除了我在前一篇文章里说的 transformer 可以更好地获得全局信息外,更小的计算复杂度和更好的并行度成为了支撑大模型的基础。

2021 年,除了 Vision Transformer 有了长足进展以外,GPT 那一支还在紧锣密鼓的筹备 GPT3.5,闲不下来的劳模 Transformer 又引领了一个新的高潮 —— 连结文本和图像。这个高潮也为 “大模型” 计划打响了除 NLP 领域外的第一枪。而此时,Transformer 在视觉任务上的缺点,在这里反而变成了优势。”ViT 需要大规模数据集和高分辨率图像才能发挥其全部潜力 “如果换个说法,就是 “ViT 可以处理大规模数据集和高分辨率图像”。

老规矩,先说 CLIP 是什么。

CLIP 的全称是 Contrastive Language-Image Pre-Training,很明显其基本思想就是传统 CV 领域里的对比学习 (Contrastive learning)。当我们学习新知识时,我们会阅读不同的书籍和文章,获取大量的信息。但是,我们并不是只记住了每个书籍或文章中的所有单词和句子。相反,我们会试图找到这些信息之间的相似性和区别。例如,我们可能会注意到在不同的书中,某个主题的描述方式和关键概念的表述方式可能会有所不同,但它们所描述的概念本质上是相同的。这种寻找相似性和区别的方式就是对比学习的基本思想之一。我们可以将每本书或文章看作不同的样本,而相同主题的书籍或文章可以被视为来自同一类别的不同实例。在对比学习中,我们会训练模型来学习如何区分这些不同类别的样本,以此来学习它们的相似性和区别。

接下来更学术一点,假设你想训练一个模型来识别汽车品牌。你可以有一组带标签的汽车图像,每个图像都有一个品牌标签,例如 “奔驰”、“宝马”、“奥迪” 等等。在传统的监督学习中,您可以将图像和品牌标签一起输入模型,并让模型学习如何预测正确的品牌标签。

但在对比学习中,你可以使用未标记的图像来训练模型。假设你有一组未标记的汽车图像,你可以将这些图像分为两组:正样本和负样本。正样本是同一品牌的不同角度的图像,而负样本是不同品牌的图像。接下来,就可以使用对比学习来训练模型,以便将同一品牌的正样本彼此靠近,而将不同品牌的负样本彼此远离。这样,模型可以学会从图像中提取品牌特定的特征,而不必明确地告诉它每个图像的品牌标签。

很明显,这是一个自监督学习模型,CLIP 也是一个类似的自监督学习模型,只不过它的目标是将语言和图像联系起来,从而使计算机能够理解文本和图像之间的关系。

想象你正在学习一组词汇表,其中每个单词都有其定义和相应的图像。对于每个单词和其对应的图像,你可以将它们视为一对(pair)。你的任务是找出这些单词和图像之间的相互关系,即哪些单词与哪些图像匹配,哪些不匹配。

如图 6 所示,对于对比学习算法而言,这些单词和图像对就是所谓的 “anchor”(锚定样本)和 “positive”(正样本)。“anchor” 指的是我们想要学习的对象,而 “positive” 则是与 “anchor” 匹配的样本。与之相对的是 “negative”(负样本),即与 “anchor” 不匹配的样本。

在对比学习中,我们将 “anchor” 和 “positive” 组成一对,并尝试将它们区分开来。同时,我们也会将 “anchor” 和 “negative” 组成一对,并尝试将它们区分开来。这个过程可以理解为是在寻找 “anchor” 和 “positive” 之间的相似性,以及在排除 “anchor” 和 “negative” 之间的相似性。
图 6. 对比学习(Contrastive Learning)图示 [14]。Anchor 就是原始图像,positives 一般是经过裁切、旋转后的原始图像,或是已知的相同类别的图像,negatives 可以被简单粗暴的定义为未知的图像(有可能是同一类别),或者是已知的不同类别的图像。

为了达到这个目标,CLIP 首先对大量的图像和文本进行预训练,然后使用预训练的模型进行下游任务,例如分类、检索和生成等。CLIP 模型采用了一种新的自监督学习方法,即同时处理文本和图像,通过训练来学习如何将它们联系起来。它在文本和图像之间共享注意力机制,并使用一组简单的可调参数来学习这个映射。它用的是基于 transformer 的文本编码器和基于 CNN 的图像编码器,然后计算图像和文本嵌入之间的相似度。CLIP 通过使用对比学习目标来学习关联图像和文本,该目标最大化数据中存在的图像 - 文本对之间的一致性,并最小化随机采样的图像 - 文本对之间的一致性。
图 7. CLIP 图示 [13]。相比图 6,可以简单理解成图 6 中的 positive 和 negative 都是文字了。

举个例子,如果我们想用 CLIP 来识别一张图片是否是 "红色的沙滩",我们可以输入这个文本描述和一张图片,CLIP 将生成一个向量对来表示它们的联系。如果这个向量对的距离很小,那么就说明这张图片可能是 "红色的沙滩",反之则不是。通过这种方法,CLIP 可以实现图像分类和图像搜索等任务。

回到全称,CLIP 的最后一个词是 pretraining,所以其本质还是预训练模型,但是它可以用于涉及匹配图像和文本的各种下游任务,例如图像分类、零样本学习和图像描述生成等。例如,CLIP 可用于将图像分类为自然语言标签给出的类别,例如 “狗的照片” 或 “风景画”。CLIP 还可用于通过使用以 CLIP 提取的图像特征为条件的语言模型来为图像生成说明文字。此外,CLIP 可用于通过使用以 CLIP 提取的文本特征为条件的生成模型从文本生成图像。 DALL-E & Stable Diffusion

在 CLIP 的帮助下,一个新的诸侯崛起了 - 他叫 AIGC(AI generated content)。其实 ChatGPT 本质上也是 AIGC 的一种,但是在这个小节,我们主要说的是 AI 作画。先来看看 AI 作画这个小家族的发展史:

  • 2021.01,OpenAI 发布 DALL-E [15](AI 作画软件),它改进了 GPT-3 从而让 GPT-3 生成图像,而不是文本 (Image Transformer Network)
  • 几乎同时(2021.01),OpenAI 发布 CLIP [13]
  • 2021.05,Google Brain 和 DeepMind 发布 Stable diffusion [17],并持续迭代新版本。它采用 frozen CLIP 文本编码器来根据文本提示调整模型。Stable diffusion 将图像生成过程分解为运行时的 “扩散”(diffusion)过程。从仅有的噪声开始,它逐渐修正图像,直到没有任何噪声,让其更接近提供的文本描述。
  • 2022.04,DALL-E-2 [16] 发布。它可以根据自然语言的描述创建逼真的图像和艺术品。DALL-E-2 采用由先验和解码器组成的两部分模型。先验是一个 GPT-3 模型,根据文本提示生成 CLIP 图像嵌入。解码器是一个扩散模型,根据 CLIP 嵌入生成图像。DALL-E-2 还可以进行 outpainting, inpainting,以及对现有图像的变化。



相关文章
|
3月前
|
算法 搜索推荐 机器人
【ChatGPT】参加计算机科学考试(GPT-4对比GPT-3.5)
【ChatGPT】参加计算机科学考试(GPT-4对比GPT-3.5)
59 0
|
4月前
|
机器学习/深度学习 数据可视化 UED
黑匣子被打开了!能玩的Transformer可视化解释工具,本地运行GPT-2、还可实时推理
【9月更文挑战第4天】Transformer Explainer是一款基于网页的交互式可视化工具,专为帮助用户理解复杂的Transformer模型而设计。通过多层次抽象、实时推理及互动实验,以及无需安装即可使用的便捷性,此工具选取GPT-2作为教学模型,降低了学习门槛并提升了教育普及度。用户可以通过输入自定义文本观察预测过程,深入了解内部组件的工作原理。此外,它还减少了认知负荷,增强了互动学习体验。未来,该工具将在复杂性管理和性能优化方面继续改进,并通过用户研究进一步提升功能和可用性。[论文地址:https://arxiv.org/pdf/2408.04619]
112 1
|
6月前
|
机器学习/深度学习 人工智能 自然语言处理
算法金 | 秒懂 AI - 深度学习五大模型:RNN、CNN、Transformer、BERT、GPT 简介
**RNN**,1986年提出,用于序列数据,如语言模型和语音识别,但原始模型有梯度消失问题。**LSTM**和**GRU**通过门控解决了此问题。 **CNN**,1989年引入,擅长图像处理,卷积层和池化层提取特征,经典应用包括图像分类和物体检测,如LeNet-5。 **Transformer**,2017年由Google推出,自注意力机制实现并行计算,优化了NLP效率,如机器翻译。 **BERT**,2018年Google的双向预训练模型,通过掩码语言模型改进上下文理解,适用于问答和文本分类。
179 9
|
6月前
|
机器学习/深度学习 自然语言处理 计算机视觉
Transformer深度学习架构与GPT自然语言处理模型
Transformer和GPT(Generative Pre-trained Transformer)是深度学习和自然语言处理(NLP)领域的两个重要概念,它们之间存在密切的关系但也有明显的不同。
154 2
|
8月前
|
机器学习/深度学习 自然语言处理
解析GPT-3、GPT-4和ChatGPT关系-迈向自然语言处理的新高度“
解析GPT-3、GPT-4和ChatGPT关系-迈向自然语言处理的新高度“
264 1
|
8月前
|
人工智能 自然语言处理 API
【极客技术】真假GPT-4?微调 Llama 2 以替代 GPT-3.5/4 已然可行!
【极客技术】真假GPT-4?微调 Llama 2 以替代 GPT-3.5/4 已然可行!
88 0
|
自动驾驶 Serverless 云栖大会
2023云栖大会 | Serverless化进程——阿里云发布通义千问2.0 性能超GPT-3.5 加速追赶GPT-4
云计算也能“自动驾驶”了!阿里云用大模型对云产品进行AI化改造
1011 6
|
数据采集 自然语言处理 分布式计算
Pre-trained Transformer,GPT
预训练 Transformer 是一种基于 Transformer 架构的预训练语言模型,它使用大量的文本数据进行预训练,以便在后续任务中提高其性能。预训练 Transformer 可以通过两种方式进行预训练:一种是使用掩码语言建模(Masked Language Modeling,MLM),另一种是使用下一句预测(Next Sentence Prediction,NSP)。
140 2
|
数据采集 JSON API
使用GPT-4生成训练数据微调GPT-3.5 RAG管道
OpenAI在2023年8月22日宣布,现在可以对GPT-3.5 Turbo进行微调了。也就是说,我们可以自定义自己的模型了。然后LlamaIndex就发布了0.8.7版本,集成了微调OpenAI gpt-3.5 turbo的功能
349 1
|
人工智能 自然语言处理 测试技术
只有GPT-4可以自我改进,GPT-3.5都不行,MIT&微软代码生成实验新发现
只有GPT-4可以自我改进,GPT-3.5都不行,MIT&微软代码生成实验新发现
131 0

热门文章

最新文章