大道至简,本文用通俗易懂的语言解释了Transformer的核心原理,对于我们这种没有基础的普通人,也是能快速理解的,也能对当前的大模型有更深入的认识。
过去几年中,人工智能(AI)技术的澎湃发展引领了一场前所未有的工业和科技革命。在这场革命的前沿,以OpenAI的GPT系列为代表的大型语言模型(LLM)成为了研究和应用的热点。
IDC近日发布发布的《全球人工智能和生成式人工智能支出指南》显示,2022年全球人工智能(AI)IT总投资规模为1324.9亿美元,并有望在2027年增至5124.2亿美元,年复合增长率(CAGR)为31.1%。
而带来这一轮人工智能科技革命的技术突破是来自2017年的一篇论文《Attention is All You Need》,在这篇论文中,首次提出了Transformer架构,这个架构是目前大语言模型的核心技术基础。GPT中的T就是Transformer的缩写。
下面,我先带大家简明了解下这个突破性架构的核心原理(原文:What Are Transformer Models and How Do They Work?),其实大道至简,原理没有很复杂,对于我们这种没有基础的普通人,也是能快速理解的,也能对当前的大模型有更深入的认识。
顺便抛出一个问题,为什么这轮技术变革不是来自Google、Meta、百度阿里这样的「传统」AI强势公司,而是初创公司OpenAI引领的呢?
Transformer是机器学习中最令人兴奋的新进展之一。它们首次在论文《Attention is All You Need》中被介绍。Transformer可以用来写故事、论文、诗歌,回答问题,进行语言翻译,与人聊天,甚至能通过一些对人类来说很难的考试!但它们究竟是什么呢?你会高兴地发现,Transformer模型的架构并不复杂,它实际上是一些非常有用的组件的组合,每个组件都有其特定的功能。在这篇博客文章中,你将了解所有这些组件。
这篇文章包含了一个简单的概念性介绍。如果你想了解更多关于Transformer模型及其工作原理的详细描述,请查看Jay Alammar在Cohere发布的两篇出色的文章:
简单来说,Transformer都做些什么呢?
想象一下你在手机上写短信。每打一个词,手机可能会推荐给你三个词。例如,如果你输入“Hello, how are”,手机可能会推荐“you”或者“your”作为下一个词。当然,如果你继续选择手机推荐的词语,你会很快发现这些词语组成的信息毫无意义。如果你看看每组连续的三四个词,它们可能听起来有点道理,但这些词并没有连贯地组成有意义的句子。这是因为手机中的模型不会携带整个信息的上下文,它只是预测在最近的几个词之后,哪个词更可能出现。而Transformer则不同,它们能够追踪正在写的内容的上下文,这就是为什么它们写出的文本通常都是有意义的。
手机可以对短信中使用的下一个单词给出建议,但没有生成连贯文本的能力
我必须得说,当我第一次发现Transformer是一次生成一个词来构建文本的时候,我简直不敢相信。首先,这不是人类形成句子和思想的方式。我们通常先形成一个基本的思想,然后开始细化它,添加词汇。这也不是机器学习模型处理其他事情的方式。例如,图像的生成就不是这样的。大多数基于神经网络的图形模型会先形成图像的粗略版本,然后慢慢细化或增加细节,直到完美。那么,为什么Transformer模型要一词一词地构建文本呢?一个答案是,因为这样做效果非常好。更令人满意的答案是,因为Transformer在跟踪上下文方面实在是太厉害了,所以它选择的下一个词正是继续推进一个想法所需要的。
那么,Transformer是如何被训练的呢?需要大量的数据,实际上是互联网上的所有数据。所以,当你在Transformer输入句子“Hello, how are”时,它就知道,基于互联网上的所有文本,最好的下一个词是“you”。如果你给它一个更复杂的命令,比如说,“write a story.”,它可能会想出来下一个合适的词是“Once”。然后它将这个词添加到命令中,发现下一个合适的词是“upon”,依此类推。一词一词地,它将继续写下去,直到写出一个故事。
命令:Write a story.
回应:Once
下一个命令:Write a story. Once
回应:upon
下一个命令:Write a story. Once upon
回应:a
下一个命令:Write a story. Once upon a
回应:time
下一个命令:Write a story. Once upon a time
回应:there
等等。
现在我们知道了Transformer都做些什么,让我们来看看它的架构。如果你见过Transformer模型的架构,你可能像我第一次看到它时一样惊叹,它看起来相当复杂!然而,当你把它分解成最重要的部分时,就没那么难了。
Transformer主要有四个部分:
其中,第4个部分,即Transformer块,是所有部分中最复杂的。这些块可以被连在一起,每个块包含两个主要部分:注意力机制和前馈组件。
让我们逐个学习这些部分。
一、Tokenization(分词)
分词是最基本的步骤。它涵盖了一个庞大的词汇库,包括所有的单词、标点符号等。分词步骤会处理每一个单词、前缀、后缀以及标点符号,并将它们转换为词库中已知的词汇。
举例来说,如果句子是“Write a story.”,那么对应的4个token将是,