人人都能看得懂的大模型技术原理
2025年4月6日
本文作者:Timothy Lee and Sean Trott
翻译:小匠
原文:点击这里
"嗨,我是李提姆。我拥有计算机科学硕士学位,是一名记者。这篇文章是我两个月深入研究的成果。
今天这篇文章由加州大学圣地亚哥分校的认知科学家肖恩·特罗特共同撰写。
当 ChatGPT 去年秋天发布时,它在科技界乃至整个世界引起了巨大反响。在此之前,机器学习研究人员已经对大型语言模型进行了几年的探索,但公众并未过多关注,也未意识到它们的强大力量。
今天几乎每个人都听说过大模型(LLMs),成千上万的人尝试过它们。然而,真正了解其工作原理的人并不多。
如果你对这个主题有所了解,你可能听说过LLMs被训练用来“预测下一个单词”,并且它们需要大量文本来完成这项任务。但解释通常就到此为止。它们预测下一个单词的细节往往被看作是一个深奥的谜。
这种情况的一个原因是这些系统的开发方式非常特别。常规软件是由程序员编写的,他们为计算机提供明确的、逐步的指令。而 ChatGPT 则是基于一个神经网络构建的,这个神经网络是通过数十亿普通语言词汇进行训练的。
因此,地球上没有人完全理解LLMs的内部运作。研究人员正在努力深入了解,但这个过程可能需要数年甚至数十年的时间,进展缓慢。
尽管专家们对这些系统的工作原理有很多了解,但本文旨在将这些知识广泛传播给大众。我们将尽量解释这些模型内部运作的已知信息,避免使用复杂的技术术语和高级数学知识。
我们首先解释词向量,这是语言模型表示和推理语言的一种令人惊讶的方法。接着,我们将深入探讨 Transformer,它是 ChatGPT 等系统的基础组件。最后,我们将阐述这些模型的训练过程,并探讨为何优异的性能需要如此庞大的数据量。
词向量
要理解语言模型的工作原理,首先必须了解它们如何表示单词。人类用字母序列来表示英语单词,例如用 C-A-T 来表示“猫”。而语言模型则使用一个由许多数字组成的词向量。例如,以下是一种表示“猫”的向量方法:
[0.0074, 0.0030, -0.0105, 0.0742, 0.0765, -0.0011, 0.0265, 0.0106, 0.0191, 0.0038, -0.0468, -0.0212, 0.0091, 0.0030, -0.0563, -0.0396, -0.0998, -0.0796, …, 0.0002]
(完整的向量由 300 个数字组成——要查看全部内容,请点击此处,然后点击“显示原始向量”。)
为什么要用这种巴洛克式的记号呢?打个比方,华盛顿特区位于北纬 38.9 度,西经 77 度。我们可以用向量记号来表示这个位置。
- 华盛顿特区坐标为[38.9, 77]
- 纽约的坐标是[40.7, 74]
- 伦敦的坐标是[51.5, 0.1]
- 巴黎的坐标是[48.9, -2.4]
这对于理解空间关系非常有帮助。你能看出纽约靠近华盛顿特区,因为 38.9 接近 40.7,77 接近 74。同样,巴黎也靠近伦敦。然而,巴黎与华盛顿特区相距较远。
语言模型采用类似的方法:每个词向量 1 代表一个在想象中的“词空间”中的一个点,意义相近的词被放置得更近。例如,在向量空间中与“猫”最接近的词包括“狗”、“小猫”和“宠物”。使用实数向量(而非像“C-A-T”这样的字母串)来表示词,其关键优势在于数字可以进行字母无法进行的操作。
单词难以仅用二维空间来表示,因此语言模型采用数百甚至数千维的向量空间。人类难以想象如此高维度的空间,但计算机却能轻松地进行推理并得出有用的结果。
研究人员多年来一直在尝试使用词向量,但这一概念真正受到关注是在 2013 年谷歌发布其 word2vec 项目之后。谷歌分析了从谷歌新闻中搜集的数百万份文档,以找出哪些词经常出现在相似的句子中。经过一段时间的训练,一个神经网络学会了预测哪些词会与哪些词一起出现,从而在向量空间中将相似词汇(例如“狗”和“猫”)聚集在一起。
谷歌的词向量具有一个有趣的特性:你可以通过向量运算“推理”单词。例如,谷歌研究人员将“最大”的向量减去“大”,再加上“小”,结果向量最接近的单词是“最小”。这个翻译更加自然,易于理解。
您可以通过向量代数来构建类比!在此例中,大与最大相对应,小与最小相对应。谷歌的词向量还捕捉到了许多其他关联关系:
- 瑞士对应瑞士,柬埔寨对应柬埔寨。(国籍)这句话表达了国家名称与其对应国籍的关系。
- 巴黎是法国的首都,柏林是德国的首都。这样的表述简洁明了。
- 不道德与道德,就像可能和不可能一样(对立)。这样的表达更加自然易懂。
- 鼠和 mice 的关系,就像美元和 dollar 的关系一样。(复数形式)
- 男人和女人之间的关系,就像国王和王后之间的关系一样。(性别角色)
因为这些向量是根据人类使用语言的方式构建的,所以它们最终反映了人类语言中存在的许多偏见。例如,在一些词向量模型中,医生减去男人加上女人会得到护士。缓解这类偏见是当前研究的热点问题。
尽管如此,词向量是构建语言模型的有用基石,因为它们能够捕捉词语之间关系的细微但关键信息。例如,如果一个语言模型了解到猫的一些特性(比如:它有时会去看兽医),那么这些特性很可能也适用于幼猫和狗。同样地,如果一个模型了解到巴黎与法国的关系(比如:他们使用相同的语言),那么这种关系很可能也存在于柏林与德国、罗马与意大利之间。
词语的含义与上下文密切相关
这种简单的词向量方案并不能完全捕捉到自然语言的一个重要特点:一个词往往有多种含义。
例如,"银行"这个词可以指代金融机构,也可以指河流沿岸的土地。或者,让我们看看以下句子:
- 约翰捡起了一本杂志。
- 苏珊在一家杂志社工作。
这些句子中的“杂志”一词含义相关,但细微差别在于,约翰拿起的是一本实体杂志,而苏珊则供职于一家出版实体杂志的机构。
当一个词有两个不相关联的含义时,例如“bank”,语言学家称之为同音异义词。而当一个词有两个紧密相关的含义时,例如“magazine”,则称之为多义词。这样的表述在中文中更为自然和易于理解。
与 ChatGPT 等类似,大型语言模型能够根据单词所处的上下文,用不同的向量来表示同一个单词。比如,“银行”这个词,一个向量代表金融机构,另一个向量代表河流。同样,“杂志”这个词,一个向量代表实体出版物,另一个向量代表组织。正如您所预料的,在处理多义词时,模型倾向于使用更相似的向量,而在处理同音异义词时,则倾向于使用不同的向量。
到目前为止,我们还没有讨论过语言模型是如何实现这一点的——我们很快就会深入探讨。不过,我们之所以详细解释这些向量表示,是因为它对于理解语言模型的工作机制至关重要。
传统软件的设计旨在处理明确的数据。例如,当计算机执行“2 + 3”的计算时,2、加号和 3 的含义是明确的。然而,自然语言中充满了各种歧义,这些歧义远不止同音异义词和多义词那么简单:
- 在“顾客要求修理工修他的车”这句话中,“他”是指顾客还是修理工呢?
- 在“教授敦促学生做作业”这句话中,“她”是指教授还是学生?
- 在“水果飞得像香蕉”这句话中,“飞”是动词,表示水果在天空中飞翔,还是名词,指代那些喜爱香蕉的昆虫呢?
人们会根据上下文来处理这种歧义,但并没有简单的规则可以遵循。这需要我们对世界有一定的了解。比如,我们知道机械师通常负责修车,学生通常自己完成作业,而水果是不会飞的。
词向量为语言模型提供了一种灵活的方法,可以在特定段落中精确地表示每个词的含义。接下来,我们就来探讨一下它们是如何实现这一点的。
将词向量转换为词预测
GPT-3,作为 ChatGPT 2 原始版本背后的模型,由数十层构成。每一层都接收输入文本中每个单词对应的向量序列作为输入,并添加信息以帮助明确该单词的含义,并更准确地预测下一个可能出现的单词。
让我们从一个小巧的例子开始讲解:
每一层LLM都是一个 Transformer,这是一种由谷歌在 2017 年发表的一篇具有里程碑意义的论文首次提出的神经网络架构。
模型的输入,如图中底部所示,是部分句子“John wants his bank to cash the.” 这些词被转换成 word2vec 风格的向量,然后输入到第一个 Transformer 中。这样的表述更加自然,易于理解。
变换器发现“想要”和“现金”都是动词(这两个词也可以作为名词)。我们用括号中的红色文字来表示这种额外的上下文,但实际上,模型会通过修改人类难以理解的词向量来存储这些信息。这些新的向量被称为隐藏状态,并将被传递给下一个变换器。
第二个转换器增加了两个额外的上下文信息:它明确指出“银行”是指金融机构而非河岸,并且“他”这个代词是指约翰。第二个转换器生成了一组新的隐藏状态向量,反映了模型到那个时刻所学习到的所有内容。
上图展示的是一个纯粹假设的场景LLM,所以不必过分关注细节。接下来,我们将探讨真实语言模型的研究。实际上,真实的语言模型往往包含超过两层的结构。例如,GPT-3 最强大的版本就拥有 96 层。
研究表明,前几层主要关注理解句子的语法和解决歧义,就像我们上面展示的那样。后面的层(为了保持图表大小适中,这里没有展示)则致力于对整个段落进行高层次的理解。
例如,当LLM“阅读”一篇短篇小说时,它似乎会记录关于故事人物的各种信息,包括性别和年龄、与其他人物的关系、过去和现在的位置、个性和目标等。
研究人员并不完全清楚LLMs是如何跟踪这些信息的,但从逻辑上分析,模型很可能通过调整各层之间传递的隐藏状态向量来完成这一任务。幸运的是,在当今的LLMs中,这些向量规模极大,这也为模型的实现提供了便利。
例如,GPT-3 最强大的版本使用了 12,288 维的词向量——也就是说,每个词都由一个包含 12,288 个数字的列表来表示。这比谷歌 2013 年的 word2vec 方案大 20 倍。你可以把这些额外的维度想象成 GPT-3 用来记录每个词上下文信息的一种“笔记空间”。早期层所做的笔记可以被后续层读取和修改,这样模型就能逐渐提升对整个段落的整体理解水平。
假设我们将上面的图表改为描绘一个 96 层的语言模型解读一篇 1000 字的故事。在第 60 层,可能包含一个关于约翰的向量,其中会有类似“(主角,男,与 Cheryl 结婚,Donald 的堂兄,来自明尼苏达州,现居博伊西,正在寻找丢失的钱包)”这样的注释。所有这些信息(以及可能还有更多)都会被编码成与“John”相关的 12,288 个数字列表。也许,这些信息中的一部分也可能被编码在描述 Cheryl、Donald、Boise、钱包等故事中其他单词的 12,288 维向量中。
网络的最后一层,也就是第 96 层的目标是输出一个包含预测下一个词所需所有信息的隐藏状态。
请大家注意,现在开始
现在我们来聊聊 transformer 内部的工作原理。transformer 对输入文本中的每个单词更新隐藏状态分为两个步骤:
- 在注意力步骤中,单词会“环顾四周”,寻找与自身相关的其他单词,并相互交流信息。
- 在前馈步骤中,每个单词会根据之前注意力步骤收集到的信息进行思考,并尝试预测下一个单词。
当然,是网络而非单个单词在执行这些步骤。我们这样表述是为了强调,Transformer 将单词而非整个句子或段落作为基本分析单位。这种方法使得 LLMs 能够充分利用现代 GPU 芯片强大的并行处理能力,同时也帮助 LLMs 扩展到包含数千单词的段落。这两个方面都是早期语言模型所面临的挑战。
将注意力机制比作为单词配对的婚介服务,可以这样理解:每个单词都会列出一份清单(即查询向量),描述它所寻找的单词特征;同时,每个单词也会列出一份清单(即键向量),描述自身的特征。网络通过计算点积的方式,将每个键向量与查询向量进行匹配,找到最匹配的单词。匹配成功后,网络会将信息从产生键向量的单词传递到产生查询向量的单词。
例如,在上一节中,我们展示了假设的 Transformer 如何理解在部分句子“约翰想要他的银行兑现的”中,“他的”指的是约翰。下面是这种理解在底层可能的样子。对于“他的”的查询向量可能有效地说“我在寻找:描述一个男性的名词。”而约翰的关键向量可能有效地说“我是:描述一个男性的名词。”网络会检测到这两个向量匹配,并将关于约翰向量的信息转移到“他的”向量中。这样的翻译更加自然,易于理解。
每个注意力层都包含多个“注意力头”,这意味着信息交换过程在每个层中都会多次(并行)进行。每个注意力头专注于不同的任务:
- 一个注意力头可能将代词与名词进行匹配,正如我们之前所讨论的那样,这样的表述更为自然。
- 另一个注意力头可能负责处理像“bank”这样的同音异义词的含义,使其表达更自然、易懂。
- 第三个注意力头可以将像“Joe Biden”这样的双词短语连接起来,表达更自然。
等等...
注意力头通常按顺序工作,一个层的注意力操作结果会作为下一层注意力头的输入。实际上,我们刚才提到的每个任务都可能需要多个注意力头,而不仅仅是单个注意力头。
GPT-3 最大的版本拥有 96 层,每层包含 96 个注意力头,所以在预测每个新词时,它需要进行 9,216 次注意力运算。
一个现实世界的例子
在前两节中,我们介绍了一种风格化的注意力头工作方式。现在,让我们深入探讨一下关于真实语言模型内部运作机制的研究。去年,Redwood Research 的研究人员对 GPT-2(ChatGPT 的前身)进行了研究,该模型是如何预测句子“玛丽和约翰去商店时,约翰给了一杯饮料。”的下一个单词的。
GPT-2 预测下一个词是“Mary”。研究人员发现,三种不同的注意力机制共同促成了这一预测。
- 他们称之为“Name Mover Heads”的三个头将从 Mary 向量中复制的信息转移到最终的输入向量(用于单词“to”)。GPT-2 正是利用这个最右侧向量中的信息来预测下一个单词。
- 网络是如何决定复制“玛丽”这个词的?科学家们通过逆向追踪 GPT-2 的计算过程,发现了一组被称为“主题抑制头部”的四个注意力头,这些头部以某种方式标记了第二个“约翰”向量,从而阻止了“名称移动头部”复制“约翰”这个名字。
- 主题抑制头是如何知道不应该复制 John 的?通过进一步回溯,团队发现了两个被称为“重复标记头”的注意力头。他们将第二个 John 向量标记为第一个 John 向量的重复,从而帮助主题抑制头做出不应该复制 John 的决定。
简单来说,这九个注意力机制使得 GPT-2 能够识别出“约翰给约翰倒了一杯饮料”这句话不通顺,因此选择了“约翰给玛丽倒了一杯饮料”作为正确答案。
我们喜欢这个例子,因为它生动地说明了要完全理解LLMs的难度。由五人组成的 Redwood 团队发表了一篇 25 页的论文,详细阐述了他们如何识别和验证这些注意力头。尽管他们已经做了大量工作,但我们对于 GPT-2 为何预测“Mary”为下一个单词,仍然缺乏一个全面而自然的解释。
例如,模型是如何知道下一个词应该是某人的名字而不是其他类型的词呢?我们很容易想到一些类似的句子,在这些句子中玛丽并不适合作为下一个词的预测。比如,“当玛丽和约翰去餐馆时,约翰把钥匙交给了,”接下来的词很自然应该是“停车场管理员。”
可能,通过深入研究,计算机科学家能够揭示并解释 GPT-2 推理过程中的额外步骤。最终,他们或许能够全面理解 GPT-2 为何认为“Mary”是这个句子的下一个最有可能的单词。但要理解这个单词的预测,可能需要投入几个月甚至几年的额外努力,这并不奇怪。
ChatGPT 背后的语言模型——GPT-3.5 和 GPT-4,比 GPT-2 规模更大,结构也更复杂。它们的推理能力远超红木团队研究的简单句子补全任务。因此,全面解释这些系统的工作原理是一项庞大的工程,人类可能难以在短时间内完成。
前馈步骤
在注意力头在词向量之间传递信息之后,有一个前馈网络 3 会“思考”每个词向量并尝试预测下一个词。在这个阶段,词与词之间没有信息交换:前馈层独立分析每个词。不过,前馈层可以访问之前由注意力头复制的所有信息。以下是 GPT-3 最大版本中前馈层的结构:
绿色和紫色的圆圈代表神经元,它们通过计算输入的加权总和来进行数学运算。
前馈层的强大之处在于其庞大的连接数。我们用三个神经元代表输出层,六个神经元代表隐藏层来绘制这个网络,但 GPT-3 的前馈层规模更大:输出层有 12,288 个神经元(对应于模型的 12,288 维词向量),隐藏层则有 49,152 个神经元。
在 GPT-3 最大版本中,隐藏层有 49,152 个神经元,每个神经元对应 12,288 个输入(因此每个神经元有 12,288 个权重参数)。同时,有 12,288 个输出神经元,每个神经元对应 49,152 个输入值(因此每个神经元有 49,152 个权重参数)。这意味着每个前馈层包含 49,152 * 12,288 + 12,288 * 49,152 = 12 亿个权重参数。总共有 96 个前馈层,总参数量达到 12 亿 * 96 = 1160 亿个参数!这几乎占据了 GPT-3 总参数量 1750 亿的近三分之二。
在 2020 年的一篇论文中,特拉维夫大学的研究人员发现,前馈层通过模式匹配来工作:隐藏层中的每一个神经元都会与输入文本中的特定模式相匹配。以下是一些在 GPT-2 的 16 层版本中神经元所匹配到的模式:
- 层 1 中的一个神经元匹配以“替代品”结尾的单词序列。这个表述经过调整,使其在简体中文中更加自然易懂。
- 层 6 中的一个神经元识别出与军事相关的序列,并且这些序列都以“基地”或“bases”作为结尾。
- 第 13 层的神经元能够识别以时间范围为结尾的序列,比如“下午 3 点到 7 点”或“从周五晚上 7 点开始。”这样的表达。
- 第 16 层的神经元识别出与电视节目相关的序列,例如“原始 NBC 白天版本存档”或“时移观看使该集观看人数增加了 57%。”
正如您所看到的,随着层数的增加,模式变得越来越抽象。早期的层通常匹配具体的单词,而后续的层则匹配更广泛的语义类别,例如电视节目或时间段。
这很有趣,因为正如之前提到的,前馈层一次只分析一个单词。因此,当它将“the original NBC daytime version, archived”这一序列归类为与电视相关时,它只能获取“archived”这个单词的向量,而不是像“NBC”或“daytime”这样的词汇。大概是因为之前注意力头已经将相关的上下文信息转移到了“archived”这个单词的向量中,所以前馈层能够识别出“archived”是电视相关序列的一部分。
当神经元匹配这些模式之一时,它会将信息添加到词向量中。虽然这些信息并不总是容易理解,但在很多情况下,我们可以将其看作是对下一个词的初步预测。
前馈网络如何通过向量数学进行推理
布朗大学最近的研究揭示了一个优雅的例子,说明了前馈层如何帮助预测下一个单词。我们之前提到,谷歌的 word2vec 研究显示,可以通过向量运算进行类比推理。比如,柏林(德国)+ 法国 = 巴黎。
布朗大学的研究人员发现,前馈层有时会采用这种方法来预测下一个单词。例如,他们考察了 GPT-2 在以下提示下的反应:“问:法国的首都是什么?答:巴黎 问:波兰的首都是什么?答:”
团队对 24 层的 GPT-2 版本进行了研究。在每一层之后,布朗科学家们都会探测模型,以观察其在下一个标记上的最佳猜测。在前 15 层中,模型的最佳猜测看起来像是一个随机的单词。从第 16 层到第 19 层,模型开始预测下一个单词将是波兰——虽然不对,但越来越接近了。到了第 20 层,最佳猜测变成了华沙——这是正确答案,并且在最后的四层中一直保持这个结果。
布朗研究团队发现,通过添加一个将国家向量映射到对应首都的向量,第 20 层前馈层将波兰转换成了华沙。同样的向量应用于中国,则生成了北京。
同一模型中的前馈层运用向量运算,将小写字母转换为大写字母,并将现在时态的单词转化为它们的过去时态形式。
注意力和前馈层承担着不同的职责
到目前为止,我们已经探讨了两个 GPT-2 单词预测的真实案例:注意力头帮助预测约翰给玛丽倒了一杯饮料,前馈层则帮助预测华沙是波兰的首都。以下是对这些案例的简要概述。
在第一种情况下,玛丽的信息来源于用户提供的提示。而在第二种情况下,华沙并未出现在提示中。相反,GPT-2 必须“记住”华沙是波兰的首都——这一信息是它在训练过程中学到的。
当布朗研究团队关闭了将“波兰”转换为“华沙”的前馈层后,模型就不再预测“华沙”作为下一个单词。然而,如果他们在提示的开头添加了“波兰的首都是华沙”这句话,GPT-2 又能重新回答这个问题了。这很可能是因为 GPT-2 利用注意力机制,从提示的早期内容中复制了“华沙”这个名称。
这种劳动分工在更广泛的意义上成立:注意力头从提示中的早期单词中提取信息,而前馈层则帮助语言模型“记住”提示中未包含的信息,使其能够更好地理解和处理语言。
确实,我们可以将前馈层看作是模型从训练数据中学到的信息数据库。早期的前馈层更倾向于编码与特定单词相关的简单事实,比如“特朗普经常跟在唐纳德后面。”而后续层则负责编码更复杂的关系,例如“通过添加这个向量,可以将一个国家转换为其首都。”这样的表述在中文中更为自然和易于理解。
语言模型是如何进行训练的
早期的许多机器学习算法都需要人类手动标记训练数据。比如,训练数据可能是带有标注(“狗”或“猫”)的狗或猫的照片。由于需要人工标注数据,因此很难且成本很高才能收集到足够大的数据集来训练强大的模型。
LLMs 的一个关键创新在于,它不需要使用显式标记的数据。它通过尝试预测普通文本段落中的下一个单词来进行学习。无论是维基百科页面、新闻文章还是计算机代码,几乎所有类型的书面材料都适用于训练这类模型。
例如,一个LLM可能被输入“我喜欢加奶油的咖啡”并预测下一个词是“糖”。由于 GPT-3 最强大版本中包含 1750 亿个权重参数,这些参数一开始都是接近随机数,因此新初始化的语言模型在预测下一个词时表现会很差。
但是随着模型接触到越来越多的例子——数百亿个单词——这些权重会逐步调整,以实现更精准的预测。
这里有一个类比来说明它是如何工作的。想象一下你要洗个澡,希望水温刚刚好——既不要太热也不要太冷。你之前从未使用过这个水龙头,于是你随意转动旋钮,感受水的温度。如果水太热,你就往一个方向调整;如果水太冷,你就往另一个方向调整。当你越来越接近理想的水温时,你的调整幅度也会越来越小,变得更加精细。
现在我们对这个类比进行一些调整。想象一下,有 50,257 个水龙头,而不是只有一个。每个水龙头对应一个单词,比如“the”、“猫”或“银行”。你的任务是让水流只从代表下一个单词顺序的水龙头中流出。
第二,水龙头后面隐藏着一个错综复杂的管道网络,管道上布满了阀门。如果水从错误的水龙头流出,你不仅需要转动水龙头上的旋钮,还得派遣一群聪明的松鼠沿着管道逆向追踪,逐一调整它们找到的每个阀门。
因为一个管道通常要连接多个水龙头,所以需要仔细考虑,确定要调节哪些阀门,以及如何调整松紧度,这需要仔细思考。
显然,如果过于字面地看待这个例子,它很快就会变得荒谬。建造一个拥有 1750 亿个阀门的水管网络既不现实也不实用。但得益于摩尔定律,计算机能够以这样的规模运行,这也是事实。
本文至今所讨论的LLMs的所有部分——包括前馈层的神经元和负责在单词间传递语境信息的注意力头——都通过一系列简单的数学函数(主要是矩阵乘法)来实现,其行为由可调整的权重参数决定。正如我故事中的松鼠通过调节阀门来控制水流一样,训练算法通过调整语言模型的权重参数来控制信息在神经网络中的流动,从而实现信息的有效传递。
The training process happens in two steps. First there’s a “forward pass,” where the water is turned on and you check if it comes out the right faucet. Then the water is turned off and there’s a “backwards pass” where the squirrels race along each pipe tightening and loosening valves. In digital neural networks, the role of the squirrels is played by an algorithm called backpropagation, which “walks backwards” through the network, using calculus to estimate how much to change each weight parameter.5
完成这个过程——对一个示例进行前向传播,然后进行反向传播以提升网络在该示例上的性能——需要数百亿次的数学运算。训练一个像 GPT-3 这么大的模型,需要重复这个过程数十亿次,每次针对训练数据中的一个单词。据 OpenAI 估计,训练 GPT-3 需要超过 3000 亿亿次的浮点运算,这相当于数十个高端计算机芯片数月的工作量。
GPT-3 令人惊叹的表现
你可能觉得有点惊讶,这个训练过程竟然这么有效。ChatGPT 能够完成各种复杂的任务,比如写文章、做类比,甚至编写代码。这么简单的学习机制,究竟是如何打造出如此强大的模型的呢?
一个原因是规模。很难强调像 GPT-3 这样的模型所接触到的例子数量之多。GPT-3 在约 5000 亿字的语料库上接受了训练。而一个普通的孩子在 10 岁前大约会遇到 1 亿个单词。
在过去五年里,OpenAI 逐步扩大了其语言模型规模。2020 年,OpenAI 在一篇备受瞩目的论文中指出,其语言模型的准确性与模型规模、数据集规模以及训练所使用的计算量呈幂律增长,部分趋势甚至跨越了七个数量级以上。
模型越大,在处理语言相关任务时的表现就越出色。然而,这仅当它们以相同比例增加训练数据时才成立。为了在更多数据上训练更大的模型,就需要更多的计算资源。
OpenAI 首个模型 GPT-1 于 2018 年推出。该模型采用了 768 维的词向量,结构包含 12 层,总参数量达到 1.17 亿。随后,OpenAI 推出了 GPT-2。GPT-2 的最大版本则采用了 1,600 维的词向量,拥有 48 层,总参数量高达 15 亿。
2020 年,OpenAI 发布了 GPT-3,该模型包含 12,288 维的词向量,共 96 层,总参数量高达 1750 亿。
今年,OpenAI 终于发布了 GPT-4。虽然公司没有透露具体的架构信息,但普遍认为 GPT-4 的规模远超 GPT-3。
每个模型不仅比其前辈学到了更多知识,而且在需要抽象推理的任务上表现更为出色:
例如,让我们来看这样一个故事:
这里有一个装满爆米花的袋子,里面却没有巧克力。但标签上却写着“巧克力”,而不是“爆米花”。山姆发现了这个袋子,她之前从未见过这个袋子。她看不到袋子里面的东西,只是看了看标签。
你可能猜得到,山姆以为包里装的是巧克力,结果发现里面是爆米花,这让他感到很惊讶。心理学家把这种能够推测他人心理状态的能力称为“心智理论”。大多数人从小学时期就开始具备这种能力。至于非人类动物(比如黑猩猩)是否也具有心智理论,专家们意见不一,但普遍认为这对于人类的社会认知至关重要。
今年初,斯坦福大学心理学家米哈伊尔·科斯金斯基发布了一项研究,旨在探讨LLMs在解决心智理论问题上的能力。他向不同的语言模型展示了我们之前提到的段落,并要求它们补全句子“她认为包里装满了……”。正确的答案是“巧克力”,但一个简单的语言模型可能会错误地回答“爆米花”或其他选项。
GPT-1 和 GPT-2 在这项测试中未能通过。然而,2020 年发布的 GPT-3 首个版本的正确率几乎达到了 40%,Kosinski 将其比作三岁孩子的水平。去年 11 月推出的最新版 GPT-3 将这一比例提升至约 90%,与七岁儿童的表现相当。GPT-4 在心智理论问题上的正确率高达 95%。
“由于没有证据表明这些模型被有意设计出类似心智理论的能力,也没有研究证明科学家知道如何实现这一点,因此,类似心智理论的能力很可能是在模型语言能力不断增强的过程中自发产生的,科斯金斯这样解释。”
值得注意的是,研究人员对于这些结果是否表明心智理论存在分歧:例如,对错误信念任务进行微小调整后,GPT-3 的表现大幅下降;在其他测试心智理论的任务中,GPT-3 的表现也更为不稳定。正如我们中的一员(Sean)所指出的,这种成功的表现可能只是任务中的混杂因素造成的——类似于“聪明的汉斯”效应,但这种效应出现在语言模型中,而不是马身上。
尽管 GPT-3 在多个旨在衡量心智理论的测试任务中表现出接近人类的水平,这在几年前是难以想象的——这也说明,更大规模的模型在需要高级推理的任务上通常表现得更好。
这只是众多语言模型中,看似自发发展出高级推理能力的一个例子。4 月份,微软的研究人员发表了一篇论文,指出 GPT-4 初步展现出了令人兴奋的人工通用智能迹象——即能够以复杂、类似人类的方式思考。
例如,一位研究人员要求 GPT-4 使用一种名为 TiKZ 的冷门图形编程语言绘制独角兽。GPT-4 给出了几行代码,研究人员随后将这些代码输入到 TiKZ 软件中。生成的图像虽然简陋,但明显表明 GPT-4 对独角兽的外观有一定的理解。
研究人员怀疑 GPT-4 可能记住了从训练数据中获取的绘制独角兽的代码,于是他们提出了一个后续挑战:他们修改了独角兽的代码,移除了角并调整了其他身体部位的位置。随后,他们要求 GPT-4 将角重新放回原位。GPT-4 成功地将角放到了正确的位置:
GPT-4 即便是在作者测试的版本中,其训练数据全部是文本,没有包含任何图像,也能做到这一点。这表明,GPT-4 在经过大量文本训练后,已经能够理解独角兽身体的形状。
目前,我们尚不清楚LLMs是如何完成此类壮举的。有人认为,此类例子表明模型开始真正理解训练集中单词的含义。然而,也有人坚信,语言模型不过是“随机鹦鹉”,它们只是重复越来越复杂的单词序列,实际上并未真正理解其含义。
这场辩论揭示了可能无法解决的深层哲学矛盾。尽管如此,我们认为关注 GPT-3 等模型的实际表现至关重要。如果一个语言模型能够持续准确地回答特定类型的问题,并且研究人员有信心已经排除了所有可能的干扰因素(例如,确保模型在训练过程中没有接触过相关内容),那么这无论在模型是否真正理解语言方面都与人类相同,都是一个值得注意和重要的发现。
另一种解释是,使用下一个标记预测进行训练之所以效果显著,是因为语言本身具有可预测性。语言的规律往往与物理世界的规律相联系。所以,当语言模型学习词语之间的关联时,它实际上也在学习世界中的关联性。
此外,预测可能是生物智能和人工智能的基础。哲学家安迪·克拉克认为,人脑可以被视为一台“预测机器”,其主要功能是预测我们周围的环境,以便我们能够成功地在环境中导航。从直观上看,做出准确的预测得益于良好的表征——与不准确的地图相比,拥有准确的地图更有助于我们成功导航。世界广阔而复杂,预测有助于生物体高效地适应这种复杂性。
传统上,构建语言模型的一个主要难题在于确定如何以最有效的方式表示不同的词语——特别是许多词语的含义在很大程度上依赖于上下文。通过采用下一词预测的方法,研究人员可以将这一理论难题转化为一个实证问题。实际上,只要提供充足的数据和计算资源,语言模型就能通过优化预测下一个词的方式,自然而然地掌握人类语言的运作规律。然而,这也意味着我们得到的系统内部机制并不完全透明。
Tim Lee 曾于 2017 年至 2021 年在 Ars 担任编辑。他最近创办了一本新的电子通讯《理解 AI》,深入解析人工智能的工作机制及其对我们世界的改变。您可以通过此链接订阅他的通讯。
Sean Trott 是加州大学圣地亚哥分校的助理教授,专注于人类和大型语言模型的语言理解研究。他在《反事实》通讯中撰写关于这些主题及其他相关内容的文章。