Code前端首页关于Code前端联系我们

ChatGPT 的工作原理:ChatGPT 真正发挥作用的因素是什么?

terry 2年前 (2023-09-23) 阅读数 71 #AI人工智能

人类语言——以及产生它的思维过程——似乎总是代表着复杂性的顶峰。事实上,人类大脑——“仅”有约 1000 亿个神经元(或许还有 100 万亿个连接)的网络——可能对此负有责任,这一事实似乎有些引人注目。也许你可以想象大脑中不仅仅是神经元网络,还有一些新的物理层。

但现在通过 ChatGPT,我们获得了重要的新信息:我们知道,一个具有与大脑中神经元一样多的连接的纯人工神经网络可以产生令人惊讶的人类语言。

是的,这仍然是一个庞大而复杂的系统,其神经网络权重与目前世界上的单词数量一样多。但不知何故,似乎仍然很难相信所有丰富的语言及其所能表达的内容都可以封装在如此有限的系统中。

这无疑在一定程度上反映了普遍存在的现象(首先在规则 30 的例子中显而易见),即计算过程实际上可以极大地放大系统的表面复杂性,即使基本规则很简单。然而,在实践中,正如我们上面所讨论的,ChatGPT 中使用的神经网络通常是专门设计的,以限制这种现象的影响以及相关计算的不可重复性,从而使它们的训练更加容易。

那么像 ChatGPT 这样的东西是如何在语言方面取得如此进展的呢? 我认为基本的答案是,从根本上讲,语言比看起来简单得多。 这意味着ChatGPT——尽管它的神经网络结构最终很简单——能够成功“捕捉”人类语言的本质及其背后的思维。此外,在训练中,ChatGPT 以某种方式“间接发现”任何能够实现这一目标的语言(和思想)规律性。

我认为 ChatGPT 的成功为我们提供了基本且重要的科学证据:它表明我们可以期待在那里找到重要的新“语言定律”以及有效的“思维定律”。 。 在 ChatGPT 作为神经网络中,这些规律充其量是隐含的。但如果我们能够以某种方式澄清这些法律,就有可能以更直接、高效和透明的方式做 ChatGPT 所做的事情。

但是,好吧,这些法律会是什么样子?最终,它们必须向我们提供有关语言以及我们用语言所说的话如何组合在一起的指示。稍后,我们将讨论“观看 ChatGPT”如何为我们提供线索,以及我们对计算语言构建方式的了解如何为我们指明前进的方向。但首先,让我们讨论两个众所周知的例子来说明“语言法”的含义,以及它们与 ChatGPT 工作方式的关系。

首先是语言的语法。 语言不仅仅是单词的随机组合。相反,组合不同单词有(相当)明确的语法规则:例如,在英语中,名词前面可以是形容词,后面是动词,但通常两个名词不能紧邻一个单词。彼此。这样的语法结构可以(至少近似地)被定义如何组装“解析树”的规则捕获:

ChatGPT工作原理:是什么真正让 ChatGPT 工作?

ChatGPT 对此类规则没有明确的“知识”。在训练中,它隐式地“发现”这些规则,然后表现出非常善于遵循它们。那么,它是如何工作的?在“大局”中,这还不清楚。但是为了理解这个想法,看一个更简单的例子可能会有所启发。

想象一种由 ()- 和 ()- 序列组成的“语言”,其语法规定括号必须始终是平衡的,如解析树所示:

ChatGPT工作原理:是什么真正让 ChatGPT 工作?

我们可以训练一个神经网络来产生一个“语法正确”的括号序列?在神经网络中处理序列的方法有很多,但是使用了像 ChatGPT 这样的转换器网络。给定一个简单的转换器网络,我们可以首先为其提供语法正确的括号作为训练示例。标签,它的生成表明打印不应该继续(即,对于 ChatGPT,我们已经到达“故事的结尾”)。

如果我们建立一个变换网络,只有一个8头的注意力块和长度为128的特征向量(ChatGPT也使用长度为128的特征向量,但有96个注意力块,每个注意力块有96个大小),这似乎是不可能的学习大量括号内的语言。然而,当有两个注意力头时,学习过程似乎会收敛——至少在给出大约 1000 万个示例之后(并且与 Transformer 网络一样,显示更多示例似乎会降低其性能)。

对于此网络,我们可以执行类似于 ChatGPT 的操作,并询问下一个标记应该是什么的概率 - 在括号中:

ChatGPT工作原理:是什么真正让 ChatGPT 工作?

在第一种情况下,网络“非常确定”。序列不能在这里结束——这很好,因为如果结束了,括号就会留下不平衡。然而,在第二种情况下,它“正确地识别”序列可以在此处结束,尽管它“还表明”可以通过放置“(”,后面可能跟着“)”来“重新开始”。但即使有大约 400,000 个硬装权重,它也表示“)”有 15% 的机会成为下一个字符 - 这是错误的,因为它不可避免地会导致括号不平衡。

如果我们要求网络提供逐渐变长的 () 周期的最高概率,我们会得到以下结果:

ChatGPT工作原理:是什么真正让 ChatGPT 工作?

是的,在一定长度内网络做得很好。但后来它开始失败。在神经网络(或一般机器学习)的这种“精确”情况下,这是非常典型的。神经网络还可以解决人类“一眼就能解决”的情况。但如果需要做一些更“算法”的事情(比如明确计算括号是否闭合),神经网络通常“计算太浅”而无法可靠地完成。 (顺便说一句,即使是目前完美的 ChatGPT 也很难正确地将括号与长字符串匹配)。

那么这对于像 ChatGPT 这样的语法和像英语这样的语言意味着什么呢?块语言是“天真的”——而且更像是一个“算法故事”。但在英语中,能够根据当地的单词选择和其他线索“猜测”语法是什么要现实得多。

是的,神经网络在这方面做得更好——尽管它可能会错过一些人类也可能错过的“形式上正确”的情况。但要点是,语言具有一般句法结构(及其包含的所有规则)这一事实在某种意义上限制了神经网络必须学习的“多少”。一个关键的“类似自然科学”的发现是,诸如 ChatGPT 神经网络之类的 Transformer 架构似乎能够成功学习所有人类语言中似乎都存在(至少在某种程度上)的那种树状句法结构。

语法限制了语言。但显然还有更多内容。像“吃鱼的好奇电子的蓝色理论”这样的句子在语法上是正确的,但通常不会被说出来,如果 ChatGPT 生成它,也不会被认为是成功的 - 因为,嗯,在这个词的正常意义上,基本上没有任何意义。

但是有没有一个通用的方法来判断一个句子是否有意义?没有传统的综合理论。然而,我们可以认为,ChatGPT 在接受了来自网络的数十亿(可能有意义的)句子的训练后,已经隐含地“发展了一种理论”。

这个理论会是什么样子?嗯,有一个小角落已经为人所知两千多年了,这就是逻辑。当然,在亚里士多德发明的三段论形式中,逻辑基本上是一种表达遵循特定模式的句子有意义而其他句子没有意义的方式。

因此,举例来说,说“所有 X 都是 Y,这不是 Y,所以它不是”是有道理的。就像人们可能想象亚里士多德找到对偶逻辑的修辞示例一样(“机器学习风格”) ,人们也可能会想象 ChatGPT 经过训练,通过查看大量文本等来“找到双重逻辑”来做到这一点。

(是的,虽然我们可以期望 ChatGPT 生成包含“正确推论”的文本,例如基于对偶逻辑,当涉及到更复杂的形式逻辑时,情况完全不同 - 我认为我们可以预期它会在这里失败,原因与它在括号中失败的原因相同),例如《疯狂的自由》,它使用非常具体的“句子模式。”但不知何故,ChatGPT 意味着一种更通用的方法。关于如何做到这一点,没有太多可说的,除了“当你有 1750 亿个神经网络权重时会发生的事情”。但我强烈怀疑还有一个更简单、更有力的故事。

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门