文章主题:关键词:人类语言,生成,思维过程,ChatGPT,人工神经网络,语言规则,语法,句法结构,逻辑,文本生成。
人类的语言及其生成过程所涉及的思维过程,一直以来都被认为是复杂性的极致。我们的大脑仅仅拥有大约1000亿个神经元,也就是大约100万亿个神经元之间的连接,然而,它却能完成如此之多的任务,这无疑让人感到震惊。有些人可能会有这样的猜测,即大脑中除了神经元网络,还存在着我们尚未发现的具有特殊物理性质的新的层次。然而,随着ChatGPT的出现,我们获得了一个重要的新的信息,那就是,一个纯粹的人工神经网络,其连接数量与大脑中的神经元数量相当,就有能力产生出人类般的语言生成。
这仍然是一个庞大而复杂的系统,其中的神经网络权重几乎与当前世界上可用文本中的词一样多。但在某种程度上,似乎仍然很难相信语言的所有丰富性和它能谈论的事物都可以被封装在这样一个有限的系统中。这里面的部分原理无疑反映了一个普遍现象(这个现象最早在规则30[1]的例子中变得显而易见):即使基础规则很简单,计算过程也可以极大地放大系统的表面复杂性。但是,正如上面讨论的那样,ChatGPT使用的这种神经网络实际上往往是特别构建的,以限制这种现象(以及与之相关的计算不可约性)的影响,从而使它们更易于训练。
ChatGPT之所以在语言领域取得巨大成功,其基本原因在于语言的本质相对于表面现象而言要简单得多。换言之,即使是一个拥有简单神经网络结构的ChatGPT,也能够成功地把握人类语言的“精髓”以及背后的思维模式。这得益于在训练过程中,ChatGPT通过某种方式“隐含地发现了”实现这一切的语言(和思维)规律。
ChatGPT 的成功为我们提供了一个重要的科学证据,即我们仍有可能发现基础而重要的“语言法则”,这些实际上就是“思维法则”。在 ChatGPT 中,由于其神经网络特性,这些法则目前仅是隐性的。然而,如果能找到方法将这些法则明确化,将有望以更直接、更高效和更透明的 manner实现 ChatGPT 所完成的事情。这不仅是一个科学事实,也是一个我们可以期待的基础。
作为一篇文章 writing高手,我会以专业的高标准来重新组织这段文字。原内容提出了一个问题:“这些法则可能是什么样子的呢?”并强调这些法则必须为我们提供关于如何组织和表达语言的指导。接下来,作者提到了将来的讨论话题,即如何在ChatGPT内部寻找线索,并基于构建计算语言的经验来探索前进的道路。最后,作者提出先讨论两个已知的“语言法则”的例子,以及它们与ChatGPT的运作之间的关系。为了更好地表达这个思路,我可以这样组织文字:首先,我们将探讨什么是语言法则,以及它们如何指导我们如何有效地组织和表达语言。接着,我们会讨论两个广为人知且与ChatGPT运作紧密相关的语言法则。然后,我们会谈论未来在ChatGPT内部可能会如何发现这些法则的线索,以及如何利用我们在构建计算语言方面的经验来继续前进。
在我们探讨语言的构成时,首先需要理解的是其语法规则。与简单的词汇拼接不同,语言中的词语遵循着严格的语法规则。举例来说,英语中的名词前方允许形容词修饰,后方则可接动词,然而两个名词的排列则需遵循一定的规范。这些规律可以被视为捕捉“解析树”构建的基本准则,从而定义了词语如何组合成句子。
ChatGPT 在理解这些规则方面并非清晰明了,然而在训练过程中,它却潜在地捕捉到了这些规则,并显示出遵循它们的倾向。这一现象背后的原理尚不明确。尽管如此,为了更深入地了解这个问题,我们可以通过一个更易于理解的实例来进行探讨。
考虑一种由“(”和“)”的序列组成的“语言”,其语法规定括号应始终保持平衡,就像下面的解析树一样。
我们能训练神经网络来生成“语法正确”的括号序列吗?在神经网络中,有各种处理序列的方法,但是这里像ChatGPT一样使用Transformer网络。给定一个简单的Transformer网络,我们可以首先向它馈送语法正确的括号序列作为训练样例。一个微妙之处(实际上也出现在ChatGPT的人类语言生成中)是,除了我们的“内容标记”[这里是“(”和“)”]之外,还必须包括一个“End”标记,表示输出不应继续下去了(即对于ChatGPT来说,已经到达了“故事的结尾”)。
如果只使用一个有8个头的注意力块和长度为128的特征向量来设置Transformer网络(ChatGPT也使用长度为128的特征向量,但有96个注意力块,每个块有96个头),似乎不可能让它学会括号语言。但是使用2个注意力块,学习过程似乎会收敛——至少在给出1000万个样例之后(并且,与Transformer网络一样,展示更多的样例似乎只会降低其性能)。
通过这个网络,我们可以做类似于ChatGPT所做的事情,询问括号序列中下一个符号是什么的概率。
在第一种情况下,网络“非常确定”序列不能在此结束——这很好,因为如果在此结束,括号将不平衡。在第二种情况下,网络“正确地识别出”序列可以在此结束,尽管它也“指出”可以“重新开始”:下一个标记是“(”,后面可能紧接着一个“)”。但糟糕的是,即使有大约400000个经过繁重训练的权重,它仍然说下一个标记是“)”的概率是15%——这是不正确的,因为这必然会导致括号不平衡。
如果要求网络以最高概率补全逐渐变长的“(”序列,结果将如下所示。
在一定长度内,网络是可以正常工作的。但是一旦超出这个长度,它就开始出错。这是在神经网络(或广义的机器学习)等“精确”情况下经常出现的典型问题。对于人类“一眼就能解决”的问题,神经网络也可以解决。但对于需要执行“更算法式”操作的问题(例如明确计算括号是否闭合),神经网络往往会“计算过浅”,难以可靠地解决。顺便说一句,即使是当前完整的ChatGPT在长序列中也很难正确地匹配括号。
对于像ChatGPT这样的程序和英语等语言的语法来说,这意味着什么呢?括号语言是“严谨”的,而且是“算法式”的。而在英语中,根据局部选词和其他提示“猜测”语法上合适的内容更为现实。是的,神经网络在这方面做得要好得多——尽管它可能会错过某些“形式上正确”的情况,但这也是人类可能会错过的。重点是,语言存在整体的句法结构,而且它蕴含着规律性。从某种意义上说,这限制了神经网络需要学习的内容“多少”。一个关键的“类自然科学”观察结果是,神经网络的Transformer架构,就像ChatGPT中的这个,好像成功地学会了似乎在所有人类语言中都存在(至少在某种程度上是近似的)的嵌套树状的句法结构。
语法为语言提供了一种约束,但显然还有更多限制。像“Inquisitive electrons eat blue theories for fish”(好奇的电子为了鱼吃蓝色的理论)这样的句子虽然在语法上是正确的,但不是人们通常会说的话。ChatGPT即使生成了它,也不会被认为是成功的——因为用其中的词的正常含义解读的话,它基本上是毫无意义的。
有没有一种通用的方法来判断一个句子是否有意义呢?这方面没有传统的总体理论。但是可以认为,在用来自互联网等处的数十亿个(应该有意义的)句子对ChatGPT进行训练后,它已经隐含地“发展出”了一个这样的“理论”。
这个理论会是什么样的呢?它的冰山一角基本上已经为人所知了2000多年,那就是逻辑。在亚里士多德发现的三段论(syllogistic)形式中,逻辑基本上用来说明遵循一定模式的句子是合理的,而其他句子则不合理。例如,说“所有X都是Y。这不是Y,所以它不是X”(比如“所有的鱼都是蓝色的。这不是蓝色的,所以它不是鱼”)是合理的。就像可以异想天开地想象亚里士多德是通过(“机器学习式”地)研究大量修辞学例子来发现三段论逻辑一样,也可以想象ChatGPT在训练中通过查看来自互联网等的大量文本能够“发现三段论逻辑”。(虽然可以预期ChatGPT会基于三段论逻辑等产生包含“正确推理”的文本,但是当涉及更复杂的形式逻辑时,情况就完全不同了。我认为可以预期它在这里失败,原因与它在括号匹配上失败的原因相同。)
除了逻辑的例子之外,关于如何系统地构建(或识别)有合理意义的文本,还有什么其他可说的吗?有,比如像Mad Libs®这样使用非常具体的“短语模板”的东西。但是,ChatGPT似乎有一种更一般的方法来做到这一点。也许除了“当你拥有1750亿个神经网络权重时就会这样”,就没有什么别的可以说了。但是我强烈怀疑有一个更简单、更有力的故事。
注释
1.规则30是一个由本书作者在1983年提出的单维二进制元胞自动机规则。这个简单、已知的规则能够产生复杂且看上去随机的模式。——编者注
本文摘自《这就是ChatGPT》,澎湃新闻经出版方授权刊载。
《这就是ChatGPT》,【美】斯蒂芬·沃尔弗拉姆/著 WOLFRAM传媒汉化小组/译,人民邮电出版社,2023年7月版
AI时代,拥有个人微信机器人AI助手!AI时代不落人后!
免费ChatGPT问答,办公、写作、生活好得力助手!
搜索微信号aigc666aigc999或上边扫码,即可拥有个人AI助手!