ChatGPT 和 Wolfram|Alpha
当事情突然“正常工作”时,总是令人惊奇。 早在 2009 年,我们的 Wolfram|Alpha 就发生了这种情况。2020 年,我们的物理项目发生了这种情况。现在,OpenAI 的 ChatGPT 也发生了这种情况。
我跟踪神经网络技术已经有很长一段时间了(实际上大约有43年)。即使在过去的几年里,我也发现ChatGPT的表现非常出色。突然间,终于有一个系统可以成功地生成几乎任何东西的文本,而且与人类可能写的东西非常相似。这让人印象深刻,而且很有用。正如我将在其他地方讨论的那样,我认为它的成功可能在告诉我们一些关于人类思维本质的非常基本的东西。
但是,尽管ChatGPT在自动完成主要的类似人类的事情方面取得了非凡的成就,但并非所有有用的事情都是如此 "类似人类"。有些事情反而更加正式和有条理。事实上,我们的文明在过去几个世纪的伟大成就之一就是建立了数学、精确科学的范式,以及最重要的,现在的计算,并创造了一个与纯人类思维所能实现的完全不同的能力塔。
几十年来,我自己一直深入地参与计算范式的研究,单一地追求建立一种计算语言,以正式的符号方式代表世界上尽可能多的事物。在此过程中,我的目标是建立一个能够 "以计算方式协助 "我和其他人想要做的事情的系统,并增强其功能。我作为一个人在思考问题。但我也可以立即调用Wolfram语言和Wolfram|Alpha,以利用一种独特的 "计算超能力",让我做各种超越人类的事情。
这是一种非常强大的工作方式。关键是,这不仅对我们人类很重要。它对类似人类的人工智能也同样重要,甚至更重要,它立即赋予它们我们可以认为是计算知识的超能力,它利用了结构化计算和结构化知识的非人类力量。
我们刚刚开始探索这对ChatGPT意味着什么。但很明显,美妙的事情是可能的。Wolfram|Alpha所做的事情与ChatGPT非常不同,其方式也非常不同。但它们有一个共同的界面:自然语言。这意味着ChatGPT可以像人类一样与Wolfram|Alpha "对话"--Wolfram|Alpha将从ChatGPT获得的自然语言转化为精确的、符号化的计算语言,并在此基础上运用其计算知识能力。
几十年来,在思考人工智能时,一直存在着 "统计方法 "和 "符号方法 "的两极分化,前者是ChatGPT使用的方法,后者则是Wolfram|Alpha的出发点。但现在,由于ChatGPT的成功,以及我们在使Wolfram|Alpha理解自然语言方面所做的所有工作,我们终于有机会将这两种方法结合起来,使其比任何一种方法都要强大。
一个基本的例子
ChatGPT的核心是一个生成语言输出的系统,它 "遵循 "网络上和书籍中的内容,以及其他用于训练的材料的模式。值得注意的是,这种输出是多么像人,不仅是在小范围内,而且是在整篇文章中。它有连贯性的东西可说,它所学到的概念往往以有趣和意想不到的方式出现。它产生的东西总是 "在统计学上是合理的",至少在语言学层面上是如此。但是,尽管这最终令人印象深刻,但它肯定不意味着它自信地提出的所有事实和计算都一定是正确的。
这是我刚刚注意到的一个例子(而且,是的,ChatGPT有内在的随机性,所以如果你尝试这个,你可能不会得到同样的结果):
这听起来很有说服力。但事实证明,这是不对的,Wolfram|Alpha可以告诉我们:
当然,公平地说,这正是Wolfram|Alpha所擅长的事情:可以在其结构化的、经过策划的知识基础上,将其转化为一种精确的计算。
但有趣的是,人们可以考虑让Wolfram|Alpha在这方面自动帮助ChatGPT。人们可以通过程序向Wolfram|Alpha提出问题(你也可以使用网络API等):
现在再次向 ChatGPT 提出问题,并附加以下结果:
ChatGPT 非常有礼貌地接受更正,如果您再次提出问题,它就会给出正确答案。 显然,可以有一种更简化的方式来处理 Wolfram|Alpha 的来回处理,但很高兴看到即使是这种非常简单的纯自然语言方法基本上也已经奏效了。
但是,为什么 ChatGPT 一开始就把这件事弄错了呢? 如果它在训练中的某个地方(例如从网络上)看到了芝加哥和东京之间的具体距离,它当然可以做对。 但在这种情况下,神经网络可以轻松完成的那种泛化——比如从城市之间距离的许多例子中——是不够的; 需要一个实际的计算算法。
Wolfram|Alpha 处理事情的方式完全不同。 它采用自然语言,然后——假设可能——将其转换为精确的计算语言(即 Wolfram 语言),在这种情况下:
城市的坐标和计算它们之间距离的算法是Wolfram语言中内置计算知识的一部分。而且,是的,Wolfram语言有大量的内置计算知识--这是我们数十年工作的结果,我们精心策划了现在大量的持续更新的数据,实现(而且经常发明)方法、模型和算法,并系统地建立了一个完整的连贯的计算语言来处理一切。
再举几个例子
ChatGPT和Wolfram|Alpha的工作方式非常不同,也有非常不同的优势。但为了了解ChatGPT在哪些方面可以利用Wolfram|Alpha的优势,让我们来讨论一些ChatGPT自己做得不太对的情况。有一个领域,ChatGPT--像人类一样--往往倾向于挣扎,那就是数学。
这是一个有趣的,散文式的回应。 但实际结果是错误的:
但是,如果 ChatGPT“咨询”了 Wolfram|Alpha,它当然能够做出正确的选择。
让我们尝试稍微复杂一点的东西:
乍一看,这个结果看起来不错,我倾向于相信它。 然而,事实证明这是错误的,因为 Wolfram|Alpha 可以告诉我们:
而且,是的,用 ChatGPT 做数学作业(它不能咨询 Wolfram|Alpha)可能不是一个好主意。 它可以给你一个非常合理的答案:
但是如果没有“真正理解数学”,ChatGPT 基本上不可能可靠地得到正确的答案。 在这种情况下,答案又是错误的:
尽管如此,ChatGPT 甚至可以对“它是如何得到答案的”做出一个看起来非常合理的解释(并不是说它以任何方式真正“做到了”)。 而且,相当迷人(也很有趣),它给出的解释与不懂数学的人也可能犯的错误非常相似:
在各种情况下,“没有真正理解事物的含义”会造成麻烦:
这听起来很有说服力。但这是不正确的:
ChatGPT似乎已经在某处正确地学习了这些底层数据,但它“理解它的含义”不足以正确排列数字:
而且,是的,可以想象找到一种方法来“修复这个特定的错误”。 但关键是,像 ChatGPT 这样基于生成语言的人工智能系统的基本思想并不适合需要进行结构化计算的情况。 换句话说,它需要“修复”几乎无限数量的“错误”才能修补 Wolfram|Alpha 以其结构化方式实现的几乎无限小的角落。
“计算链”变得越复杂,您就越有可能必须调用 Wolfram|Alpha 才能正确处理。 这里 ChatGPT 产生了一个相当混乱的答案:
而且,正如 Wolfram|Alpha 告诉我们的那样,它的结论是不正确的(因为它在某种意义上已经“知道”):
每当涉及特定(例如定量)数据时——即使是相当原始的形式——事情往往更像是一个“Wolfram|Alpha 故事”。 下面是一个示例,灵感来自长期以来最受欢迎的 Wolfram|Alpha 测试查询“土耳其有多少只火鸡?”:
同样,这似乎(起初)完全合理,甚至引用了相关来源。 然而,事实证明,这些数据基本上只是“编造的”:
不过,非常好的是,ChatGPT 可以很容易地“要求事实进行检查”:
现在通过 Wolfram|Alpha API 提供这些:
现在我们可以要求 ChatGPT 修复其原始响应,注入此数据(甚至以粗体显示它在哪里):
当涉及实时(或位置等相关)数据或计算时,“注入事实”的能力特别好。 ChatGPT 不会立即回答这个问题:
但这里有一些相关的 Wolfram|Alpha API 输出:
如果我们将其提供给 ChatGPT,它会生成一个不错的“论文风格”结果:
有时计算和人类之间存在有趣的相互作用。 这是 Wolfram|Alpha 提出的一个相当古怪的问题(它甚至会检查您是否想要“软服务”):
ChatGPT 起初对音量的概念有点困惑:
但随后它似乎“意识到”这么多冰淇淋是相当愚蠢的:
未来的道路
机器学习是一种强大的方法,尤其是在过去十年中,它取得了一些非凡的成功——ChatGPT 是最新的成功案例。 图像识别。 语音转文字。 语言翻译。 在这些案例中的每一个以及更多案例中,都跨越了一个门槛——通常是突然之间。 有些任务从“基本不可能”变成了“基本可行”。
但结果基本上从来没有 "完美"。也许有些东西在95%的时间里效果不错。但无论如何尝试,另外的5%仍然难以捉摸。对于某些目的,人们可能认为这是一个失败。但关键的一点是,往往有各种重要的用例,对于这些用例来说,95%是 "足够好 "的。也许这是因为输出的东西无论如何都没有一个真正的 "正确答案"。也许这是因为我们只是试图浮现出一些可能性,然后由人类或系统化的算法来挑选或改进。
一个每次生成文本的几千亿个参数的神经网络能够做到ChatGPT所能做到的各种事情,这完全是了不起的。鉴于这种戏剧性的、出乎意料的成功,人们可能会认为,如果人们能够继续下去,"训练一个足够大的网络",就能用它做任何事情。但这是不可能的。关于计算的基本事实--尤其是计算的不可重复性的概念--清楚地表明它最终不能。但更重要的是我们在机器学习的实际历史中所看到的。会有一个大的突破(如ChatGPT)。而改进是不会停止的。 但更重要的是,会有一些用例被发现,这些用例在可以做的事情上是成功的,而不是被不能做的事情所阻挡。
是的,在很多情况下,"原始ChatGPT "可以帮助人们写作,提出建议,或生成对各种文件或互动有用的文本。但是,当涉及到设置必须是完美的东西时,机器学习并不是做这件事的方法--就像人类也不是。
而这正是我们在上面的例子中看到的。ChatGPT在 "类似人类的部分 "做得很好,那里没有一个精确的 "正确答案"。但是当它被 "放在现场 "做一些精确的事情时,它往往会失败。但这里的重点是,有一个很好的方法来解决这个问题--将ChatGPT与Wolfram|Alpha及其所有的计算知识 "超能力 "联系起来。
在Wolfram|Alpha内部,一切都被转化为计算语言,转化为精确的Wolfram语言代码,在某种程度上必须是 "完美 "的,才能可靠地发挥作用。但关键的一点是,ChatGPT不需要生成这些。它可以产生其通常的自然语言,然后Wolfram|Alpha可以利用其自然语言理解能力将自然语言翻译成精确的Wolfram语言。
在许多方面,人们可以说ChatGPT从未 "真正理解 "过事物;它只是 "知道如何制作有用的东西"。但对于Wolfram|Alpha来说,情况就不同了。因为一旦Wolfram|Alpha将某些东西转换为Wolfram语言,它所得到的就是一个完整的、精确的、正式的表述,人们可以从中可靠地计算东西。不用说,有很多 "人类利益 "的东西,我们没有正式的计算表征--尽管我们仍然可以用自然语言谈论它们,尽管它可能不精确。而对于这些,ChatGPT以其非常令人印象深刻的能力而独当一面。
但就像我们人类一样,有些时候ChatGPT需要一个更正式和精确的 "权力协助"。但问题是,它不需要 "正式和精确 "地说出它想要什么。因为Wolfram|Alpha可以用相当于ChatGPT的母语--自然语言与它交流。而Wolfram|Alpha在转换为其母语--Wolfram语言时,将负责 "增加正式性和准确性"。这是一个非常好的情况,我认为有很大的实际潜力。
而这种潜力不仅仅是在典型的聊天工具或文本生成应用的层面。它还延伸到做数据科学或其他形式的计算工作(或编程)等事情。从某种意义上说,这是一种立即获得两个世界的最佳方式:ChatGPT的类似人类的世界和Wolfram语言的计算精确世界。
ChatGPT 直接学习 Wolfram 语言怎么样? 嗯,是的,它可以做到这一点,事实上它已经开始了。 最后,我完全希望像 ChatGPT 这样的东西能够直接在 Wolfram 语言中运行,并且在这方面非常强大。 这是一个有趣而独特的情况,由于 Wolfram 语言作为一种全面的计算语言的特性而成为可能,它可以用计算术语广泛地讨论世界和其他地方的事物。
Wolfram 语言的整个概念是获取我们人类思考的事物,并能够通过计算来表示和处理它们。 普通的编程语言旨在提供告诉计算机具体做什么的方法。 Wolfram 语言——作为一种全面的计算语言——所涉及的东西远不止于此。 实际上,它旨在成为一种人类和计算机都可以“计算思考”的语言。
许多世纪以前,当数学符号被发明时,它首次提供了一种流线型的媒介,可以在其中对事物进行“数学思考”。 它的发明很快发展到了代数和微积分,并最终导致了所有各种数学科学。 Wolfram 语言的目标是为计算思维做类似的事情,尽管现在不仅仅是人类——并启用计算范式可以打开的所有“计算 X”领域。
我自己也从Wolfram语言作为一种 "思考的语言 "中受益匪浅,在过去的几十年里,看到人们通过Wolfram语言的媒介 "以计算的方式思考 "而取得了如此之多的进步,这真是太好了。那么ChatGPT呢?嗯,它也可以进入这个领域。我还不确定这一切将如何运作。但这并不是说ChatGPT要学习如何做Wolfram语言已经知道如何做的计算。它是关于ChatGPT学习如何像人们一样使用Wolfram语言。这是关于ChatGPT想出 "创意文章 "的类似物,但现在不是用自然语言而是用计算语言来写。
我长期以来一直在讨论人类撰写的计算论文的概念——它们以自然语言和计算语言的混合体进行交流。 现在的问题是 ChatGPT 能够编写这些内容——并且能够使用 Wolfram 语言作为提供“有意义的交流”的一种方式,不仅对人类,而且对计算机。 而且,是的,有一个潜在有趣的反馈循环涉及 Wolfram 语言代码的实际执行。 但关键点在于,与普通编程语言不同,Wolfram 语言代码所代表的“思想”的丰富性和流动性更接近于 ChatGPT 在自然语言中“神奇地”处理的那种东西。
或者,换句话说,Wolfram 语言——就像自然语言一样——是一种具有足够表现力的东西,以至于人们可以想象在其中为 ChatGPT 编写一个有意义的“提示”。 是的,Wolfram 语言可以直接在计算机上执行。 但作为 ChatGPT 提示,它可以用来“表达一个想法”,其“故事”可以继续。 它可能会描述一些计算结构,让 ChatGPT 去“重复”人们可能会在计算上对这种结构说些什么——根据它通过阅读人类编写的这么多东西所学到的东西——“对人类很有趣”。
ChatGPT 的意外成功突然打开了各种令人兴奋的可能性。 但就目前而言,有机会通过 Wolfram|Alpha 赋予 ChatGPT 计算知识超能力。 因此,它不仅可以产生“似是而非的类人输出”,还可以产生利用封装在 Wolfram|Alpha 和 Wolfram 语言中的整个计算和知识塔的输出。