引言:为什么要了解大语言模型?
自从ChatGPT在去年秋天发布以来,它不仅在科技界引起了巨大反响,还在全球范围内产生了广泛影响。尽管机器学习专家已经研究大型语言模型多年,但直到最近,普通大众才开始意识到它们的强大功能。目前,几乎每个人都听说过这些模型,并有成千上万的人使用过它们,然而真正了解其工作原理的人却寥寥无几。
你可能已知,大型语言模型是通过“预测下一个词”来训练的,并且需要大量的文本数据。但通常的解释往往止步于此,至于模型如何具体执行这一任务,则常常被视作一个复杂的谜题。
与传统的软件开发不同,ChatGPT建立在一个由数十亿词汇训练出的神经网络之上。至今为止,还没有人完全理解大型语言模型内部的工作机制。这是一个需要多年甚至数十年研究才能逐步揭开的过程。
本文旨在将专家们已知的知识以易于理解的方式介绍给广大读者。我们将在不涉及专业术语或高级数学的前提下,尝试解释大型语言模型的内部工作原理。我们将从“词向量”开始讨论,然后深入探讨“Transformer”架构,最后讲解这些模型的训练过程以及为何需要大量数据才能达到优良性能。
第一部分:语言的基础——词向量
1.1 从字母到数字向量
人类表示: 人们使用字母序列来表达英文单词,例如用 C-A-T 表示“猫”。
模型表示: 语言模型采用一种称为**词向量**的方法,即一长串数字列表。比如,“猫”这个词可以被表示为
[0.7, 0.5, -0.2, 0.1, 0.3, ...]
这样的一个向量。完整的向量长度实际上可达300个数字(在更先进的模型中甚至更多)。
1.2 为什么使用向量?——地理坐标的类比
采用复杂向量表示的原因可以通过以下类比来理解:
华盛顿特区位于北纬38.9度,西经77度,我们可以用向量
(38.9, 77)
表示。
纽约的坐标是
(40.7, 74)
,伦敦是
(51.5, 0.1)
,巴黎则是
(48.9, -2.4)
。
这种表示方法对于推断空间关系非常有帮助。例如,你可以看出纽约离华盛顿很近(因为38.9接近40.7,77接近74),巴黎离伦敦很近,但巴黎与华盛顿的距离较远。
大型语言模型采取了类似的策略。每个词向量代表“词汇空间”中的一个点。**含义相近的词语在向量空间中位置更近**。比如,“猫”最接近的词语可能包括“狗”、“小猫”和“宠物”。
1.3 向量运算与词关系
使用实数向量表示词汇的一个主要优点是可以执行字母无法进行的数学运算。
高维空间: 单词过于复杂,仅用二维来表示是不够的。因此,大型语言模型使用具有数百甚至数千个维度的空间。人类难以想象如此高维的空间,但计算机可以处理。
向量运算: Google的Word2Vec项目在2013年展示了词向量的强大能力。研究人员发现可以通过向量运算来推理词汇关系。例如:
"biggest"的向量 - "big"的向量 + "small"的向量
≈
"smallest"
的向量。
这表明“big”与“biggest”的关系类似于“small”与“smallest”的关系。
其他关系: 词向量还能捕捉到许多其他类型的关系,例如:“瑞士人”与“瑞士” 相当于 “柬埔寨人”与“柬埔寨”。 “巴黎”与“法国” 类似于 “柏林”与“德国”。 “不道德的”与“道德的” 类似于 “可能的”与“不可能的”。
1.4 处理一词多义:上下文的重要性
简单的词向量方案有一个限制:它们未能反映自然语言的一个重要特征——**一个词语通常有多种含义**。
同音异义词: 例如“bank”可以指代“金融机构”或“河岸”,这两个意义是不同的。
多义词: 比如“magazine”既可以指一本杂志,也可以指出版这类杂志的机构,这两者的意义有密切联系。
像ChatGPT这样的大型语言模型能够根据词语出现的**上下文环境**,用不同的向量表示同一个词汇。对于多义词,其不同意义之间的向量更为相似;而对于同音异义词,这些向量则可能差异较大。
词向量为大型语言模型提供了一种灵活的方法,可以在特定段落的上下文中准确地表达每个词语的意义。
第二部分:模型的核心架构——Transformer
现在让我们探讨一下大型语言模型如何利用上下文来澄清词汇意义,其核心是一种名为**Transformer** 的神经网络结构。
2.1 Transformer 的基本功能
ChatGPT早期版本背后的GPT-3模型由数十个神经网络层组成。输入文本中的每个词都有一个对应的向量,这些向量被送入第一个Transformer层。
逐层处理: 每一层Transformer接收一系列向量作为输入,并**添加信息以帮助澄清每个词语的含义**,从而更好地预测下一个可能的词。
隐藏状态: Transformer通过调整词向量来存储这些额外的上下文信息。生成的新向量被称为**隐藏状态**,并被传递给下一层Transformer层。
研究显示,神经网络的初始层主要关注句子语法和消除歧义,而后续层则侧重于整体文本段落的高级理解。例如,在阅读短篇小说时,后续层会追踪角色的性别、年龄、关系、位置、个性等信息。
2.2 庞大的“暂存空间”
现代大型语言模型使用极高维度的词向量,为表达丰富的语义信息提供了“暂存空间”。GPT-3最强大的版本采用了12,288维的词向量。这意味着每个词汇由一个包含12,288个数字的列表表示。
信息传递:早期层所做的“信息笔记”可以被后续层读取和修改,使模型能够逐步加深对整篇文章的理解。最终,网络的最后一层会输出一个包含所有必要信息的隐藏状态,用于预测下一个词汇。
2.3 Transformer 的内部机制
每个Transformer在更新输入段落中每个词的隐藏状态时,会进行两个主要处理过程:
注意力步骤
词之间相互“观察”,查找具有相关背景的其他词汇,并共享信息。
前馈步骤
每个词“独立思考”在注意力步骤中收集的信息,并尝试预测下一个词汇。
2.3.1 注意力机制:单词的“撮合服务”
注意力机制可以视为词汇之间的一个撮合服务。查询与关键向量:每个词汇会生成:
- 查询向量:描述它正在寻找的词的特点。
- 关键向量:描述自身的特征。
匹配过程:神经网络通过计算每个查询向量和每个关键向量的点积来找到最佳匹配的词汇。一旦找到匹配,就会将相关信息从产生关键向量的词汇传递给产生查询向量的词汇。
示例:在句子“John wants his bank to cash the”中,“his”的查询向量可能在寻找一个表示男性的名词,而“John”的关键向量正好描述自己是一个表示男性的名词。网络检测到匹配后,会将关于“John”的信息传递给“his”的向量。
多头注意力:每个注意力层有多个注意力头,它们并行工作,每个头专注于不同的任务(例如,匹配代词与名词、处理一词多义、连接复合名词等)。GPT-3的最大版本有96层,每层有96个注意力头,因此预测一个新词汇时,总共会执行9,216次注意力操作。
真实案例研究(GPT-2):研究人员研究了GPT-2对句子“When Mary and John went to the store, John gave a drink to”的下一个词预测(正确答案是“Mary”)。他们发现:
- 重复标记头:标记出第二个“John”是第一个“John”的重复。
- 主语抑制头:基于重复标记头的信息,阻止模型复制“John”这个名字。
- 名称移动头:最终将“Mary”的信息复制到句子末尾,用于预测下一个词汇。
这个例子表明,即使是理解一个简单句子的预测,也需要深入研究多个注意力头的协同工作,彰显了完全理解大型语言模型的复杂性。
2.3.2 前馈网络:独立思考与模式匹配
在注意力头于词向量之间传输信息后,前馈网络会独立分析每个词向量,并尝试预测下一个词汇。独立工作:前馈层中的神经元之间不直接交换信息,但它们可以访问之前由注意力头复制到该词向量中的任何上下文信息。
模式匹配:前馈层通过模式匹配进行工作。隐藏层中的每个神经元都能够匹配输入文本中的特定模式。早期层:匹配特定词汇或简单模式(如以“substitutes”结尾的词)。后期层:匹配更抽象、复杂的模式(如与电视节目相关或表示时间范围的短语)。
向量运算:前馈层有时会直接使用向量运算来预测下一个词汇。案例研究:当GPT-2被问及“波兰的首都是什么?”时,在第20层,一个前馈层通过添加一个将国家向量映射到其首都向量的特定向量,成功地将“波兰”转化为了“华沙”。同样的向量也适用于将“中国”映射到“北京”。该层还执行诸如大小写转换、时态转换等任务。
分工总结:注意力机制:从提示的上下文中检索信息。前馈层:让语言模型能够记住未在提示中出现的信息(从训练数据中学到的知识)。你可以将前馈层视为模型内部存储事实和关系的“数据库”。
第三部分:能力的源泉——模型的训练
我们已经详细讲解了大型语言模型的推理过程,接下来探讨其训练方式。
3.1 无需人工标注的自我学习
许多早期机器学习算法需要人工标记的训练数据(例如,标记为“猫”或“狗”的图片),这既困难又昂贵。关键创新:大型语言模型的一个重要创新是它们不需要显式标记的数据。
训练目标:它们通过尝试预测文本段落中的下一个词汇来进行学习。几乎任何书面材料都可以用作训练数据。示例:模型拿到输入“I like my coffee with cream and”,并试图预测“sugar”作为下一个词。
3.2 训练过程:调整“阀门”的比喻
一个新初始化的语言模型表现较差,因为它的权重参数最初是随机设置的。类比:调节水温:
你希望通过调节水龙头把手得到合适的水温。如果水太热或太冷,你就向相反方向转动把手,并随着接近理想温度而减小调整幅度。
复杂化的类比
想象有50,257个水龙头(对应词汇表中的每个词),目标是只让与“下一个词”对应的水龙头出水。水龙头后面有复杂的管道网络和无数阀门(对应模型中的权重参数)。如果水从错误的水龙头流出,你需要派遣一支“松鼠部队”(**反向传播算法**)去追踪每条管道,并根据需要拧紧或放松阀门(**调整权重**)。
数字化实现
前向传播
让输入数据通过网络,检查预测结果(水从哪个水龙头流出)。
反向传播
算法逆向通过网络,使用微积分计算每个权重参数需要改变的程度(松鼠调整阀门)。
规模巨大
像GPT-3这样拥有1750亿参数的大模型,需要重复这个过程数十亿次。OpenAI估计训练GPT-3需要超过3,000亿万亿次浮点运算,耗费数十个高端GPU数月时间。
3.3 为何有效?规模与语言的可预测性
如此简单的学习机制为何能产生如此强大的模型?主要有两个原因:
3.3.1 规模效应
数据量:GPT-3是在约5000亿单词的语料库上训练的。相比之下,一个10岁儿童大约只接触过1亿个单词。
幂律关系:OpenAI的研究表明,语言模型的性能与模型规模、数据集大小和计算量呈**幂律关系**。模型越大,在语言任务上表现越好(前提是同步增加数据和算力)。
模型演进
更大的模型不仅学到了更多事实,而且在需要抽象推理的任务上表现更好。
- GPT-1 (2018):1.17亿参数。
- GPT-2 (2019):15亿参数。
- GPT-3 (2020):1750亿参数。
- GPT-4 (2023):普遍认为比GPT-3大得多。
3.3.2 语言的可预测性与世界知识的关联
语言规律性:语言的规律性通常与物质世界的规律性相关联。因此,当语言模型学习单词之间的关系时,通常也在隐含地学习关于世界的关系。
预测是智能的基础:一些哲学家认为,人脑本身就是一个预测机器,其主要任务是对环境进行预测,从而成功导航。良好的预测离不开对世界的良好“表示”。
下一个词的预测方法将“如何最好地表示单词”这个理论难题,转化为了一个可以通过经验和计算解决的实证问题。最终,系统内部的工作方式对人类来说仍然不完全透明,但其经验表现却非常出色。
第四部分:涌现的能力与未来的谜题
随着规模的扩大,大语言模型展现出一些令人惊讶的、看似自发产生的高级能力。
4.1 心智理论(Theory of Mind)的萌芽
心智理论是指推理他人思维状态的能力,对人类社交至关重要。
测试
研究人员让模型阅读一个故事:“一个装满爆米花的袋子,袋子上贴着‘巧克力’的标签。小孩山姆发现了袋子,他读到了标签...”然后提问“山姆相信袋子里装的是什么?”
模型表现
- GPT-1/2:失败。
- 初版GPT-3:正确率约40%(相当于3岁儿童)。
- 最新版GPT-3:正确率约90%(相当于7岁儿童)。
- GPT-4:正确率约95%。
争议
一些研究者认为,模型的成功可能依赖于任务中的混淆因素(“聪明汉斯效应”),而非真正的理解。但不可否认,其表现相比几年前有巨大飞跃。
4.2 通用人工智能的初步迹象?
微软研究人员在测试GPT-4时发现它可能展示了通用人工智能的初步迹象。
案例
研究人员要求GPT-4使用晦涩的TiKZ图形编程语言画一只独角兽。GPT-4生成了能画出粗糙独角兽的代码。
更进一步的测试
研究人员修改了代码,移除了独角兽的角,然后要求GPT-4把角加回去。GPT-4成功地将角放在了正确的位置,尽管它的训练完全是基于文本的。
结论
通过大量文本训练,GPT-4似乎学会了推理关于独角兽身体形状的知识,尽管我们对其如何实现这一壮举没有真正的了解。
4.3 理解之争:“随机鹦鹉”还是真正理解?
关于大语言模型是否真正“理解”它们所处理的内容,存在深刻的哲学辩论。
随机鹦鹉
一些人认为,语言模型只是“随机鹦鹉”,机械地重复训练数据中复杂的单词序列,而没有真正的理解。
经验表现
无论辩论结果如何,重要的是关注模型的经验表现。如果一个模型能在排除混淆因素的情况下,始终在特定任务上给出正确答案,那么无论其理解方式是否与人类相同,这都是一个有趣且重要的结果。
核心要点回顾
- 词向量:将单词表示为数字向量,捕捉语义关系。
- Transformer:通过注意力和前馈网络,利用上下文逐步理解文本。
- 注意力机制:在词之间传递信息,理清指代和含义。
- 前馈网络:存储学到的知识(事实和关系),并进行模式匹配。
- 预测训练:通过预测下一个词,利用海量数据和算力,模型自发学到了语言和世界的复杂模式。
- 涌现能力:规模的扩大带来了包括初步推理能力在内的新特性。
尽管大语言模型的内部工作机制对人类来说仍是一个“黑箱”,但通过本文的解析,我们希望您能揭开这层神秘面纱的一角,理解这些强大AI系统背后的基本逻辑。