解决方案

ChatGPT 需要 Wolfram|Alpha 注入超强的计算知识

当事情突然 "成功 "时会带给我们意外的惊喜。早在2009年的时候,Wolfram|Alpha 就带给了我们这样的惊喜。这个惊喜发生在我们2020年的物理项目中。现在又发生在了 OpenAI 的 ChatGPT 上。

我研究神经网络技术已经有很长一段时间了(实际上是43年)。观察过去几年的发展,我也发现 ChatGPT 的表现非常出色。最后,突然间我们发现,有一个系统可以成功地生成几乎任何东西的文本,而这与人类可能写出的东西非常相似。这是一个很惊喜且很有用的发现。而且,我认为它的成功可能在告诉我们一些关于人类思维本质的非常基本的东西,我在别的地方也会讨论一下这个话题。

但是,尽管 ChatGPT 在自动完成主要的模拟人类的思维方式方面是一个了不起的成就,但其实并非所有有用的方面都可以做到如此 "像人类",而有些方面反而更加正式和结构化。事实上,我们的文明在过去几个世纪的最伟大成就之一就是建立了数学、精确科学的范式,而现在最重要的是,创造了计算的概念,并创造了一个与纯人类思维所能实现的完全不同的能力塔。

几十年来,我自己一直深入地参与计算范式的研究,单纯地追求建立一种计算语言,可以正式的符号方式代表真实世界尽可能多的事物。在此过程中,我的目标是建立一个能够 "以计算方式协助" 我们想要达成目标的系统,并增强其功能。我作为一个人在思考问题。但我也可以立即调用 Wolfram 语言和 Wolfram| Alpha ,利用一种独特的 "计算超能力",让我做到各种超越人类能力范围内的事情。

这是一种非常强大的工作方式。关键是,这不仅对我们人类很重要。它对"类人类 - human like"的人工智能也同样重要,甚至可能更重要。因其可以立即赋予人工智能那些我们认为是计算知识的超能力,这种超能力可以利用结构化计算和结构化知识这样的非人类力量。

这些对于 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 提问:

现在再次向 ChatGPT 提问,并附上这个结果:

ChatGPT 非常有礼貌地接受更正,如果您再次提出问题,它就会给出正确答案。显然,可以有一种更简化的方式让 Wolfram|Alpha 来回处理,但很高兴看到即使是这种非常简单的纯自然语言方法也基本上已经奏效了。

但是,为什么 ChatGPT 一开始就把这件事弄错了呢?如果它在训练的某个地方(例如从网络上)看到了芝加哥和东京之间的具体距离,它当然可以做对。但在这种情况下,神经网络可以轻松完成的那种泛化——比如从城市之间距离的许多例子中——是不够的;需要一个实际的计算算法。

Wolfram|Alpha 处理事情的方式完全不同。它采用自然语言,然后,假设它可能,将其转换为精确的计算语言(即 Wolfram 语言),在这种情况下:

城市的坐标和计算它们之间距离的算法是 Wolfram 语言中内置计算知识的一部分。而且,是的,Wolfram 语言具有大量的内置计算知识——这是我们数十年工作的结果,我们仔细整理了现在大量不断更新的数据,实施(并经常发明)方法和模型以及算法——并系统地为所有事物建立一个完整连贯的计算语言。

再举几个例子

ChatGPT 和 Wolfram|Alpha 以截然不同的方式工作,并且具有截然不同的优势。但为了了解 ChatGPT 可以在哪些方面利用 Wolfram|Alpha 的优势,让我们来讨论一下 ChatGPT 本身不能正确完成的一些情况。和人类一样,ChatGPT 经常遇到困难的一个领域是数学。

这是一个有趣的、散文式的回应。但实际结果是错误的:

但是,如果 ChatGPT "咨询一下" Wolfram|Alpha,它当然能够做出正确的选择。让我们尝试稍微复杂一点的东西:

乍一看,这个结果看起来不错,我倾向于相信它。然而,事实证明这又是错误的,因为 Wolfram|Alpha 告诉我们:

所以用 ChatGPT 做数学作业,可能不是一个好主意。它可以给出一个看似很合理的答案:

但是如果没有 "真正理解数学",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 提出的一个异想天开的问题(它甚至会检查您是否想要"软冰" - Soft serve,也称为软冰,是一种冷冻甜点,类似于冰淇淋,但由于在冷冻过程中引入了空气,因此更柔软且密度更低。):

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 语言中的整个计算和知识塔的输出。