Lazy loaded image
ChatGPT真正发挥的作用是什么呢?
字数 6806阅读时长 18 分钟
2023-12-4
2023-12-4
type
Post
status
Published
date
Dec 4, 2023
slug
example-11
summary
人类语言——以及产生它的思维过程——似乎总是代表着一种复杂性的顶峰。事实上,人类大脑——其“仅仅”有 1000 亿个左右神经元(也许还有 100 万亿个连接)的网络——可能是造成这种情况的原因,这似乎有些引人注目。
tags
ChatGPT相关
AI教程
AI知识库
推荐
AI思维
开发
AI生活
category
ChatGPT
icon
password
Files & media

ChatGPT真正发挥的作用是什么呢?

人类语言——以及产生它的思维过程——似乎总是代表着一种复杂性的顶峰。事实上,人类大脑——其“仅仅”有 1000 亿个左右神经元(也许还有 100 万亿个连接)的网络——可能是造成这种情况的原因,这似乎有些引人注目。也许,人们可能会想象,大脑除了神经元网络之外还有更多的东西——就像一些未被发现的物理学的新层。但现在,通过 ChatGPT,我们获得了一条重要的新信息:我们知道,一个纯粹的人工神经网络,其连接数量与大脑神经元的数量差不多,能够出色地生成人类语言。
是的,这仍然是一个庞大而复杂的系统,其神经网络权重大约与当前世界上可用的文本单词一样多。但在某种程度上,似乎仍然很难相信所有丰富的语言及其可以谈论的事物都可以封装在这样一个有限的系统中。毫无疑问,正在发生的部分现象反映了普遍存在的现象(这首先在规则 30 的例子中变得明显),即计算过程实际上可以极大地放大系统的表面复杂性,即使它们的基本规则很简单。但实际上,正如我们上面所讨论的,ChatGPT 中使用的那种神经网络往往是专门构建的,以限制这种现象的影响以及与之相关的计算不可约性,以使它们的训练更容易进行。
那么,像 ChatGPT 这样的东西是如何在语言方面取得如此大的成就的呢?我认为基本的答案是,语言从根本上讲比看起来更简单。这意味着 ChatGPT——即使其神经网络结构极其简单——也能够成功地“捕捉到人类语言的本质”及其背后的思维。此外,在训练中,ChatGPT 以某种方式“隐含地发现”了语言(和思维)中使这成为可能的任何规律。
我认为,ChatGPT 的成功为我们提供了一项基本且重要的科学证据:它表明我们可以期待有重大的新“语言定律”——以及有效的“思维定律”——有待发现。 。在 ChatGPT 中——它是作为一个神经网络构建的——这些法则充其量是隐含的。但如果我们能够以某种方式使法律变得明确,就有可能以更加直接、高效和透明的方式做 ChatGPT 所做的事情。
但是,好吧,那么这些法律会是什么样子呢?最终,它们必须为我们提供某种如何将语言以及我们用语言所说的话组合在一起的处方。稍后我们将讨论“深入了解 ChatGPT”如何能够为我们提供一些有关此问题的提示,以及我们从构建计算语言中获得的知识如何表明前进的道路。但首先让我们讨论两个众所周知的例子,说明什么是“语言法则”,以及它们与 ChatGPT 的运行有何关系。
首先是语言的语法。语言不仅仅是单词的随机混乱。相反,对于如何将不同种类的单词放在一起有(相当)明确的语法规则:例如,在英语中,名词前面可以加形容词,后面加动词,但通常两个名词不能紧邻其他。这种语法结构可以(至少近似地)通过一组规则来捕获,这些规则定义了如何将“解析树”放在一起:
notion image
ChatGPT 对此类规则没有任何明确的“了解”。但不知何故,它在训练中隐含地“发现”了它们,然后似乎擅长跟踪它们。那么这是如何运作的呢?在“大局”层面尚不清楚。但为了获得一些见解,看一个更简单的例子可能会有所启发。
考虑一种由 ('s 和 )'s 序列组成的“语言”,其语法指定括号应始终保持平衡,如解析树所示:
notion image
我们可以训练神经网络来生成“语法正确”的括号序列吗?有多种方法可以处理神经网络中的序列,但让我们使用变压器网络,就像 ChatGPT 一样。给定一个简单的变压器网络,我们可以开始向其提供语法正确的括号序列作为训练示例。一个微妙之处(实际上也出现在 ChatGPT 的人类语言生成中)是,除了我们的“内容标记”(此处为“(”和“)”)之外,我们还必须包含一个“End”标记,生成该标记是为了指示输出不应再继续(即对于 ChatGPT,该输出已达到“故事的结尾”)。
如果我们建立一个变压器网络,其中只有一个具有 8 个头的注意力块和长度为 128 的特征向量(ChatGPT 也使用长度为 128 的特征向量,但有 96 个注意力块,每个注意力块有 96 个头),那么似乎不可能让它了解更多关于括号语言的知识。但是有了 2 个注意力块,学习过程似乎会收敛——至少在给出 1000 万左右的例子之后(并且,正如变压器网络常见的那样,显示更多的例子似乎只会降低其性能)。
因此,通过这个网络,我们可以模拟 ChatGPT 所做的事情,并询问下一个标记应该是什么的概率 - 在括号序列中:
notion image
在第一种情况下,网络“非常确定”序列不能在这里结束——这很好,因为如果结束,括号就会不平衡。然而,在第二种情况下,它“正确地认识到”序列可以在这里结束,尽管它也“指出”可以“重新开始”,并在后面写上一个“(”,大概后面还有一个“)” 。但是,哎呀,即使有大约 400,000 个经过艰苦训练的权重,它也表示有 15% 的概率将“)”作为下一个标记,这是不对的,因为这必然会导致括号不平衡。
如果我们要求网络为逐渐更长的 ( 序列提供最高概率的完成,我们会得到以下结果:
notion image
是的,在一定长度内,网络表现得很好。但随后它开始失败。在像这样的神经网络(或一般机器学习)的“精确”情况下,这是一种非常典型的情况。人类“一眼就能解决”的情况,神经网络也能解决。但是,需要做一些“更多算法”的事情(例如,显式地计算括号以查看它们是否闭合),神经网络往往“计算量太浅”而无法可靠地完成。(顺便说一句,即使是当前完整的 ChatGPT 也很难正确匹配长序列中的括号。)
那么这对于 ChatGPT 和英语等语言的语法意味着什么呢?括号中的语言是“严肃的”——而且更像是一个“算法故事”。但在英语中,能够根据当地的单词选择和其他提示来“猜测”语法上合适的内容要现实得多。是的,神经网络在这方面做得更好——尽管它可能会错过一些“形式上正确”的情况,而人类也可能会错过。但主要的一点是,语言有一个整体的句法结构——以及所暗示的所有规律——在某种意义上限制了神经网络必须学习的“多少”。一个关键的“类似自然科学”的观察结果是,像 ChatGPT 中的神经网络变压器架构似乎能够成功地学习似乎存在的那种嵌套树状句法结构(至少在某些情况下)。所有人类语言中的近似值)。
句法提供了对语言的一种约束。但显然还有更多。像“好奇的电子吃鱼的蓝色理论”这样的句子在语法上是正确的,但不是人们通常期望说的,如果 ChatGPT 生成它,也不会被认为是成功的——因为,嗯,按照正常的含义里面的词,基本没有什么意义。
但是有没有一个通用的方法来判断一个句子是否有意义呢?对此没有传统的整体理论。但人们可以认为 ChatGPT 在接受了来自网络等的数十亿(可能是有意义的)句子的训练后,隐含地“开发了一种理论”。
这个理论可能是什么样的?嗯,有一个小角落基本上已经为人所知两千年了,这就是逻辑。当然,在亚里士多德发现的三段论形式中,逻辑基本上是一种说法,遵循某些模式的句子是合理的,而其他模式则不是。因此,例如,可以合理地说“所有 X 都是 Y。这不是 Y,所以它不是 X”(如“所有鱼都是蓝色的。这不是蓝色,所以它不是鱼。”)。正如人们可以异想天开地想象亚里士多德通过(“机器学习风格”)大量修辞示例发现了三段论逻辑一样,人们也可以想象在 ChatGPT 的训练中它将能够“发现通过查看网络上的大量文本等来“三段论逻辑”。(而且,是的,虽然人们可以因此期望 ChatGPT 生成包含基于三段论逻辑之类的“正确推论”的文本,但当它出现时,情况就完全不同了到更复杂的形式逻辑——我认为人们可以预期它在这里会失败,原因与它在括号匹配中失败的原因相同。)
但除了狭隘的逻辑例子之外,对于如何系统地构建(或识别)甚至貌似有意义的文本,还能说些什么呢?是的,有些像Mad Libs这样的东西使用非常具体的“短语模板”。但不知怎的,ChatGPT 隐式地有一个更通用的方法来做到这一点。也许除了“当你拥有 1750 亿个神经网络权重时,它会以某种方式发生”之外,关于如何做到这一点,也许没有什么可说的。但我强烈怀疑还有一个更简单、更有力的故事。

意义空间和语义运动定律

我们上面讨论过,在 ChatGPT 中,任何文本片段都由一组数字有效表示,我们可以将其视为某种“语言特征空间”中的点的坐标。因此,当 ChatGPT 继续一段文本时,这对应于在语言特征空间中描绘出一条轨迹。但现在我们可以问是什么让这个轨迹对应于我们认为有意义的文本。也许存在某种“运动语义定律”来定义(或至少限制)语言特征空间中的点如何在保留“意义”的同时移动?
那么这个语言特征空间是什么样的呢?下面是一个示例,说明如果我们将这样的特征空间投影到二维,单个单词(这里是常见名词)可能会如何布局:
notion image
我们在上面看到了另一个基于代表植物和动物的单词的例子。但这两种情况的要点是“语义相似的单词”被放置在附近。
作为另一个例子,以下是对应于不同词性的单词的布局方式:
notion image
当然,一个给定的单词通常不仅仅具有“一个含义”(或者不一定只对应于一个词性)。通过查看包含单词的句子在特征空间中的布局,人们通常可以“梳理”不同的含义,例如此处单词“crane”(鸟还是机器?)的示例:
notion image
好的,所以我们可以将此特征空间视为将“意义附近的单词”靠近放置在该空间中,这至少是合理的。但我们可以在这个空间中识别出什么样的附加结构呢?例如,是否存在某种“平行传输”的概念来反映空间的“平坦度”?解决这个问题的一种方法是看类比:
notion image
而且,是的,即使我们投影到二维,通常至少会出现“一丝平坦”,尽管它肯定不是普遍可见的。
那么轨迹呢?我们可以查看 ChatGPT 提示在特征空间中遵循的轨迹,然后我们可以看到 ChatGPT 如何继续这一轨迹:
notion image
这里当然不存在“几何上明显的”运动定律。这一点也不奇怪。我们完全预计这将是一个更加复杂的故事。而且,例如,即使找到了“语义运动定律”,它最自然地会以何种嵌入形式(或者实际上是什么“变量”)来表述,这一点也远非显而易见。
在上图中,我们显示了“轨迹”中的几个步骤 - 在每一步中,我们都选择 ChatGPT 认为最有可能的单词(“零温度”情况)。但我们也可以问在给定点上哪些单词可以“接下来”出现的概率是多少:
notion image
在这种情况下我们看到的是,有一个高概率单词的“扇形”,它们似乎在特征空间中或多或少地朝着确定的方向发展。如果我们更进一步会发生什么?以下是当我们沿着轨迹“移动”时出现的连续“粉丝”:
notion image
这是一个 3D 表示,总共有 40 个步骤:
notion image
是的,这看起来一团糟,并且没有做任何事情来特别鼓励这样一种想法,即人们可以期望通过实证研究“ChatGPT 内部正在做什么”来识别“类似数学物理”的“运动语义定律” 。但也许我们只是查看“错误的变量”(或错误的坐标系),只要我们查看正确的变量,我们就会立即看到 ChatGPT 正在做一些“数学物理简单”的事情,例如以下测地线。但截至目前,我们还没有准备好从其“内部行为”中“经验性地解码”ChatGPT 所“发现”的关于人类语言如何“组合”的内容。

语义语法和计算语言的力量

怎样才能产生“有意义的人类语言”?过去,我们可能认为它无异于人脑。但现在我们知道 ChatGPT 的神经网络可以相当出色地完成这一任务。不过,也许这就是我们所能做到的,而且没有什么比这更简单或更容易被人类理解的方法了。但我强烈怀疑,ChatGPT 的成功隐含地揭示了一个重要的“科学”事实:有意义的人类语言实际上比我们所知道的有更多的结构和简单性,并且最终甚至可能存在相当简单的规则描述如何将这种语言组合在一起。
正如我们上面提到的,句法语法给出了如何在人类语言中将与不同词性等事物相对应的单词组合在一起的规则。但要处理意义,我们需要走得更远。如何做到这一点的一个版本是不仅要考虑语言的句法语法,还要考虑语义语法。
出于语法目的,我们识别名词和动词等事物。但出于语义的目的,我们需要“更精细的层次”。因此,例如,我们可能会识别“移动”的概念,以及“保持其独立于位置的身份”的“物体”的概念。这些“语义概念”都有无数的具体例子。但出于语义语法的目的,我们只会有一些通用的规则,基本上说“对象”可以“移动”。关于这一切如何运作有很多话要说(其中一些我之前已经说过)。但我只想在这里发表一些评论,指出一些潜在的前进道路。
值得一提的是,即使一个句子按照语义语法完全正确,也不意味着它在实践中已经实现(甚至可以实现)。“大象登上月球”无疑会“通过”我们的语义语法,但它在我们的现实世界中肯定还没有实现(至少还没有)——尽管对于虚构的世界来说这绝对是公平的游戏。
当我们开始谈论“语义语法”时,我们很快就会问“它下面是什么?” 它假设了什么“世界模型”?句法语法实际上就是从单词构建语言。但语义语法必然涉及某种“世界模型”——某种充当“骨架”的东西,在其上可以分层由实际单词构成的语言。
直到最近,我们可能还认为(人类)语言将是描述我们的“世界模型”的唯一通用方式。早在几个世纪前,就开始对特定类型的事物进行形式化,特别是基于数学。但现在有一种更通用的形式化方法:计算语言。
是的,这是我四十多年来的大项目(现在体现在Wolfram 语言中):开发一种精确的符号表示,可以尽可能广泛地谈论世界上的事物以及抽象事物我们关心的事情。例如,我们有城市、分子、图像和神经网络的符号表示,并且我们有关于如何计算这些事物的内置知识。
经过几十年的工作,我们已经以这种方式涵盖了很多领域。但过去我们并没有专门处理过“日常话语”。在“我买了两磅苹果”中,我们可以很容易地表示“两磅苹果”(并对其进行营养和其他计算)。但我们(还)没有“我买了”的象征性表示。
这一切都与语义语法的概念有关——以及为概念提供通用符号“构建工具包”的目标,这将为我们提供规则,确定什么可以与什么组合在一起,从而为我们可能转向的“流程”提供规则转化为人类语言。
但假设我们有这种“符号话语语言”。我们会用它做什么?我们可以开始做一些事情,比如生成“本地有意义的文本”。但最终我们可能想要更多“具有全球意义”的结果——这意味着更多地“计算”世界上(或者可能在某些一致的虚构世界中)实际存在或发生的事情。
现在,在 Wolfram 语言中,我们拥有大量关于多种事物的内置计算知识。但对于完整的符号话语语言,我们必须构建关于世界上一般事物的额外“演算”:如果一个物体从 A 移动到 B,再从 B 移动到 C,那么它就会从 A 移动到 C,等等。
给定一种象征性的话语语言,我们可以用它来做出“独立的陈述”。但我们也可以用它来询问有关世界的问题,“Wolfram|Alpha 风格”。或者我们可以用它来表达我们“想要实现的”事情,大概需要一些外部驱动机制。或者我们可以用它来做出断言——也许是关于现实世界,或者也许是关于我们正在考虑的某个特定世界,无论是虚构的还是其他的。
人类语言从根本上来说是不精确的,尤其是因为它没有“束缚”到特定的计算实现,而且它的含义基本上只是由用户之间的“社会契约”来定义。但计算语言就其本质而言,具有一定的基本精度——因为最终它所指定的内容总是可以“在计算机上明确执行”。人类语言通常可以避免一定的模糊性。(当我们说“行星”时,它是否包括系外行星,等等?)但是在计算语言中,我们必须精确且清楚地了解我们所做的所有区别。
利用普通人类语言用计算语言来命名通常很方便。但它们在计算语言中的含义必然是精确的,并且可能涵盖也可能不涵盖典型人类语言用法中的某些特定含义。
如何找出适合一般符号话语语言的基本“本体”?嗯,这并不容易。这也许就是为什么自两千年前亚里士多德的原始开端以来几乎没有采取任何行动的原因。但这确实有帮助,因为今天我们知道了如何通过计算来思考世界(并且从我们的物理项目中获得“基本形而上学”和ruliad 的想法也没有什么坏处)。
但这一切在 ChatGPT 的背景下意味着什么呢?通过训练,ChatGPT 有效地“拼凑”了一定数量(相当令人印象深刻)的语义语法。但它的成功让我们有理由相信,以计算语言形式构建更完整的东西是可行的。而且,与我们迄今为止对 ChatGPT 内部结构的了解不同,我们可以期望设计出易于人类理解的计算语言。
当我们谈论语义语法时,我们可以类比三段论逻辑。起初,三段论逻辑本质上是关于用人类语言表达的陈述的规则的集合。但是(是的,两千年后)当形式逻辑发展起来时,三段论逻辑的原始基本结构现在可以用来建造巨大的“形式塔”,其中包括现代数字电路的操作。因此,我们可以预期,它将具有更一般的语义语法。起初,它可能只能处理简单的模式,例如以文本形式表达的模式。但是,一旦它的整个计算语言框架建立起来,我们就可以期望它能够用来建造“广义语义逻辑”的高塔,使我们能够以精确和形式化的方式处理所有已经存在的事物。我们以前从未接触过这些信息,除了通过人类语言在“底层”进行接触,尽管其含糊不清。
我们可以将计算语言和语义语法的构造视为表示事物的一种终极压缩。因为它使我们能够谈论可能发生的事情的本质,而无需处理普通人类语言中存在的所有“短语转换”。我们可以将 ChatGPT 的强大优势视为有点相似:因为它在某种意义上也“钻透”到了可以“以语义上有意义的方式将语言组合在一起”的程度,而无需考虑不同可能的转变短语。
那么如果我们将 ChatGPT 应用于底层计算语言会发生什么呢?计算语言可以描述什么是可能的。但仍然可以添加的是“什么是流行”的感觉——例如基于阅读网络上的所有内容。但在本质上,使用计算语言进行操作意味着像 ChatGPT 这样的东西可以立即从根本上访问使用潜在的不可简化计算的终极工具。这使得它成为一个系统,不仅可以“生成合理的文本”,而且可以期望计算出该文本是否确实对世界做出了“正确”的陈述——或者它应该谈论的任何内容。
上一篇
ChatGPT的训练办法
下一篇
ChatGPT作用的概述