理工科神器Wolfram|Alpha注入超强计算知识,补足ChatGPT短板
来源:  机器之心Pro
时间:  2023-01-29 20:58:43

选自Stephen Wolfram writings

作者:Stephen Wolfram


(相关资料图)

机器之心编译

编辑:悉闲

ChatGPT + Wolfram|Alpha= ?

自 ChatGPT 发布以来,人们每天都在解锁它的新能力。前段时间,有人用 ChatGPT 写了个神经网络,还有人将它做成了智能音箱,效果完爆当前市面上的大多数产品。

不过,在试用过程中,人们逐渐发现,ChatGPT 也有短板,其中之一便是不会解数学题。比如下面这道「鸡兔同笼」题,虽然乍一看,ChatGPT 的解题步骤似乎没有问题,但计算结果却是错的。

题目来自知乎用户 @李闯。

很多网友都表示自己遇到了这种情况,计算机科学家、Wolfram 语言之父 Stephen Wolfram 也是其中之一。不过,和普通人不同的是,Wolfram 为这一问题提出了解决之法。他认为,要从根本上解决 ChatGPT 的这个短板可能要耗费大量精力,不如将其与自己的 Wolfram | Alpha 知识引擎结合起来用,因为后者本就具有强大的结构化计算能力,而且也能理解自然语言。

在 Wolfram 看来,世界是可表示的,世界是可计算的,世界就是我们的知识。因此,他试图做的是:只要你能描述得出来想要什么,计算机就替你做。人来定义目标,然后计算机尽量去理解意思,并尽最大努力去执行。

为了完成这一目标,Stephen Wolfram 创造了以他自己名字命名的 Wolfram 语言和计算知识搜索引擎 Wolfram Alpha。Wolfram Alpha 于 2009 年 5 月 18 日正式发布,其底层运算和数据处理工作是通过在后台运行的 Mathematica 实现的。

因为 Mathematica 支持几何、数值以及符号式计算,并且具有强大的数学以及科技图形图像的可视化功能,所以 Wolfram Alpha 能够回答多种多样的数学问题,并将答案以清晰美观的图形化方式显示给用户。这种计算知识引擎为苹果的数字助理 Siri 奠定了坚实的基础。

Stephen Wolfram 认为,这款工具可以和 ChatGPT 实现完美互补。

在一篇博客中,Stephen Wolfram 完整地阐述了他的观点:

ChatGPT 和 Wolfram|Alpha

事情突然 “成了”,总是很神奇。2009 年的 Wolfram|Alpha、2020 年的 Physics Project 就给人这种感觉。而如今 OpenAI 的 ChatGPT 又以同样的方式惊艳众人。

我关注神经网络技术时间不短(实际上大概有 43 年)。但遍观近年来这一领域的各种成就,我依然觉得 ChatGPT 表现相当出色。它是突然出现的一个系统,可生成几乎媲美人类创作能力的文本。可以说很好很强大。而且我认为其成功将可能揭示一些关于人类思维本质的东西。

不过,尽管 ChatGPT 在自动处理类人范畴事件方面很优秀,但并非一切有用的事情都那么 “像出自人类之手”,而是会有一些更为规范和结构化的东西。事实上,近几个世纪间创立的数学、精确科学以及如今走热的计算等领域的范式,都是我们的伟大文明成就,由此创造了一座有别于纯人类思维所能造就的能力之塔。

几十年来,我一直深入参与计算范式研究,着意于构建一种计算语言,用规范的符号系统表示更多事物。我的目标是通过所建系统 “以计算的方式辅助” 并增强人们想做之事;也可立即调用 Wolfram Language 和 Wolfram|Alpha,利用其特有的 “计算能力”,完成各种非人力所及的事情。

这种工作方式极为强大。但这不仅对人类来说重要,对类人 AI 同样重要。它可以即时赋予 AI 计算知识超能力,使其得以充分利用结构化计算和知识的非类人能力。

我们才刚开始探索这对 ChatGPT 的重要价值,未来想必前景可期。Wolfram|Alpha 与 ChatGPT 风格迥异,所做之事也大不相同。但二者又有连接点:自然语言。ChatGPT 可以像人类使用 Wolfram|Alpha 一样,与 Wolfram|Alpha “对话”,Wolfram|Alpha 会用其计算知识能力将从 ChatGPT 获得的自然语言转变为精确的符号化计算语言。

几十年来,学术界在 ChatGPT 使用的这类 “统计方法” 和 Wolfram|Alpha 的实际出发点 “符号方法” 的见解上一直存在分歧。但如今 ChatGPT 的成功和我们让 Wolfram|Alpha 理解自然语言的一切努力,给了我们将这些成果融合做强的机会。

举个例子:芝加哥到东京有多远?

ChatGPT 本质上是一个语言输出生成系统,它 “遵循” 网络、书籍和其他各种训练材料内容的 “模式”。无论是从某个小点还是整个篇章来看,它的输出都很像人类,这一点难能可贵。它能表达连贯的东西,用上所学概念,说出来往往还挺有意思,让人惊喜。它总能生成 “统计上可信的” 结果,至少在语言层面上是这样。但这并不能说明它信心十足地给出的所有答案和计算就都是正确的。

这是我刚注意到的一个例子(ChatGPT 的输出本质上是随机的,所以如果你也问这个问题,答案可能不尽相同):

这个答案似乎令人信服,但并不对,因为 Wolfram|Alpha 告诉我们:

这其实正是 Wolfram|Alpha 擅长的事情:充分利用其结构化、高精准的知识将某事转化为精确计算。

所以好消息就是,可以考虑让 Wolfram|Alpha 自动帮助 ChatGPT 解决这个问题。我们可以用编程方式向 Wolfram|Alpha 提问(也可使用 web API 等):

再次向 ChatGPT 提问,附上前文结果:

ChatGPT 很礼貌地接受更正,如果再次问这个问题,它会给出正确的答案。显然,用 Wolfram|Alpha 很可能有更精简的方式来处理这样的前后转换,但令人欣慰的是,即便是这种非常简单的纯自然语言方法也已经奏效。

但为什么 ChatGPT 一开始会弄错?如果它在训练中就注意到芝加哥和东京之间的明确距离(比如从网上),当然也能答对。但只掌握这种简单的解决方法还不够,它需要一种实际的算法。

Wolfram|Alpha 的处理方式截然不同。它假设能将采集到的自然语言转换为精确的计算语言(即 Wolfram 语言),在这个示例中:

城市坐标和计算城市间距离的算法是 Wolfram Language 中内置计算知识的一部分。而且,Wolfram Language 确实拥有大量内置计算知识,这也是我们几十年努力工作的成果。我们通过精心管理海量持续更新的数据,利用(并且经常发明)各种方法、模型和算法,建立了一个完整连贯的计算语言系统。

再举几个例子

ChatGPT 和 Wolfram|Alpha 的工作方式迥异,且各有优势。但要了解 ChatGPT 能在哪些方面利用 Wolfram|Alpha 的优势,我们来讨论一些 ChatGPT 自己做得不够正确的情况。有一个领域让 ChatGPT 和人类都感到痛苦 —— 数学。

这个论述式回应挺有意思。但实际结果是错的:

但是,如果 ChatGPT “咨询” 一下 Wolfram|Alpha,也能做对。

我们来试一些稍微复杂的内容:

乍一看,这个结果好像是那么回事,我可能都要相信了。但事实证明,这也是错的,Wolfram|Alpha 告诉我们:

而且,确实,用 ChatGPT 做数学作业(如果不咨询 Wolfram|Alpha)可能不太美妙。它会给你一个看似非常合理的答案:

但如果没能 “真正理解数学”,ChatGPT 基本上不可能稳妥地得出正确答案。这样一来,答案又是错的:

尽管如此,ChatGPT 还能对 “它是如何到答案的” 做出看似非常合理的解释(并不是说 “事实确实如何”)。而且有趣的是,它给出的解释有着类似不懂数学的人会犯的错误:

在各种情况下,“不能真正理解事物含义” 可能会引发麻烦。

下面这个例子好像很有说服力,但并不正确:

ChatGPT 似乎在某些方面正确了解了这些基础数据,但它所 “理解的含义” 不足以对数字准确排序:

人们会设想找到相应方法来 “修复这一特定错误”。但问题是,像 ChatGPT 这样基于生成语言的人工智能系统,其基本思想并不适合结构化计算任务。换言之,ChatGPT 需要 “修复” 几乎无穷多的 “bug”,才能修补 Wolfram|Alpha 以其结构化方式能修复的一丁点问题。

“计算链” 越复杂,就越有可能需要调用 Wolfram|Alpha 来解决问题。ChatGPT 对以下问题给出的答案相当迷惑:

而且,正如 Wolfram|Alpha 告诉我们的,以上结论并不正确(因为在某种意义上它已经 “知道” 了):

当涉及到具体(如定量)数据,即便是相当原始的数据,做得更出色的似乎也依然是 Wolfram|Alpha。下述示例灵感来自长期以来最受欢迎的 Wolfram|Alpha 问题 “How many turkeys are there in Turkey?”:

这次乍看之下依然完全合理,甚至引用了相关来源。然而,事实证明,这些数据基本上是 “虚构的”:

不过,很好的一点是,你可以很容易地要求 ChatGPT “核查事实”:

现在用 Wolfram|Alpha API 提供以下信息:

现在,我们注入此数据,让 ChatGPT 更正其原始答案(甚至会以粗体显示其在何处做了更正):

当涉及实时(或位置等相关)数据或计算时,“注入事实” 的能力就很可贵。ChatGPT 不会立即回答下面这个问题:

但这里有一些相关的 Wolfram|Alpha API 输出:

如果我们将上述信息输入 ChatGPT,将生成不错的 “论述风格” 结果:

有时候计算方法和类人模型之间存在着有趣的互动。问 Wolfram|Alpha 一个异想天开的问题(它甚至会核实你是否想要 “软冰淇淋”):

ChatGPT 起初对体积的概念有点困惑:

但随后似乎 “反应过来” 这么多冰淇淋其实有些搞笑:

路向何方

机器学习强大高效,特别是近几十年,这一领域成绩卓著,ChatGPT 可谓其最新成果。图像识别、语音到文本、语言翻译。每种应用都是 “猛然” 越过相应门槛。随之某些任务由 “基本毫无可能” 变成了 “基本可行”。

但结果也并不是 “完美” 的。或许有些东西在 95% 的情况下显效良好,但只消一试,剩下的 5% 仍不明朗。从某些角度来看,这可能就是失败。但关键是,对于各种重要用例,通常有 95% 的效用就已 “足够好”。也许是输出本就不存在真正意义上的 “正确答案”。也许只是人们在尝试找出人类或系统算法发展完善的可能性。

一次一个 token 生成文本的千亿参数神经网络可以完成 ChatGPT 所能做的事,相当了不起。想到这令人意外又瞩目的成功,人们可能会认为,只要 “训练出足够大的网络”,就可以畅所欲为了。但并非如此。计算的基本事实,特别是计算不可化约性的概念,让这种美好梦想难以实现。更重要的则如我们在机器学习的真实历程中所见 —— 会有巨大突破(就像 ChatGPT),进无止境。而且我们会发现,一些用例因机器学习之 “能” 而成,而不会囿于其 “不能”。

在很多情况下,“最初的 ChatGPT” 可以帮助人们写作、提建议或生成各种有用的文本。而一旦涉及创作完美事物,机器学习就不是理想路径了。其实要说完美,人类也一样束手无策。

这正是我们在上述示例中能看到的。ChatGPT 在 “类人范畴” 做得很好,因为没有严格意义上的 “正确答案”。如果 “非要” 让它进行精准操作,它通常会败下阵来。但重点来了,将 ChatGPT 连接到 Wolfram|Alpha 及其计算知识 “超能力”,会是很好的解决办法。

在 Wolfram|Alpha 内部,一切都会转化为计算语言,精确的 Wolfram Language 代码。在某种程度上,这些代码必须 “完美” 才能可靠使用。不过 ChatGPT 不必生成这样的代码,只需生成常规自然语言,然后 Wolfram|Alpha 可用其自然语言理解能力翻译成精确的 Wolfram Language。

在许多方面,有人可能会说,ChatGPT 从未 “真正理解” 过事物;它只是 “知道如何产出有用的东西” 罢了。Wolfram|Alpha 的故事就不同了。因为一旦 Wolfram|Alpha 将某些东西转换为 Wolfram Language,就能得到完整、精确、规范的表示,人们以此计算事物就有保证。不用说,很多 “有人情味” 的东西,并没有正式的算法表示,但我们仍然可以用自然语言来谈论,尽管可能不准确。在这方面,ChatGPT 自成一体,功能令人称奇。

就像我们人类一样,ChatGPT 有时需要更规范精准的 “助力”。但它不必 “规范而精准” 地表明所求。因为 Wolfram|Alpha 可与之进行相当于是 ChatGPT 母语的自然语言交流。而 Wolfram|Alpha 将负责在转换为自己母语 Wolfram Language 时 “进行规范和精准处理”。这个情况很好,我认为潜力巨大。

这种潜力不仅体现在典型的聊天机器人或文本生成应用层面。而且可以扩展到数据科学和其他形式的计算工作(或编程)。从某种意义上说,这种方式直接兼顾两个世界:ChatGPT 的类人世界和 Wolfram Language 的精确计算世界。

如果 ChatGPT 直接学习 Wolfram Language 会怎么样?嗯,确实可以,而且其实已经在做了。我特别希望像 ChatGPT 这样的模型最终能直接在 Wolfram Language 中高效运行。这种情形很特别也很有趣,因 Wolfram Language 的全面计算语言的特性而成就,可以用计算术语广泛谈论世界上有的没有的各种事情。

Wolfram Language 的整个概念在于接受人类思考的产物,然后通过计算来表示和处理。普通的编程语言只是提供某些方法告诉计算机具体该做什么。而 Wolfram Language 作为一种全面的计算语言,其作用远大于此。实际上,它意在成为人类和计算机都可用的 “以计算方式思考” 的语言。

几百年前,数学符号的发明,首次提供了一种 “以数学方式思考” 事物的精简媒介。其发明很快催生了代数和微积分,最终形成了各种数学科学。Wolfram Language 旨在为计算思维做些类似的事情,尽管不仅是为人类而做,同时以计算范式打开所有 “计算 X” 领域的大门。

我自己也因 Wolfram Language 作为 “思考语言” 受益匪浅,近几十年中,看到人们通过 Wolfram Language “以计算方式思考” 而取得如此进步,我倍感欣慰。那么 ChatGPT 呢?其实也可以进入这个领域。但具体怎么做,我也说不准。因为这并不是关乎 ChatGPT 要学习如何进行 Wolfram Language 已经实现的计算,而是关于 ChatGPT 学习如何像人类一样使用 Wolfram Language,是关于 ChatGPT 生成近乎 “创造性的文章”,不是用自然语言而是用计算语言。

我很早就讨论过人类用自然语言和计算语言混合交流写就计算论文的概念。现在的问题在于 ChatGPT 能否编写这些内容,能否将 Wolfram Language 用作一种不单向人类,而且向计算机传递 “有意义交流” 的方式。而且涉及 Wolfram Language 代码的实际执行很可能有一个有趣的反馈循环。关键是, Wolfram Language 代码所传达 “思想” 的丰富和动感有别于普通编程语言,更接近于 ChatGPT 在自然语言中 “神奇” 地处理的那类东西。

换言之,Wolfram Language 类似于自然语言 —— 是一种表达力很强的语言,可以想象在其中为 ChatGPT 编写一个有意义 “prompt” 的情形。是的,Wolfram Language 可以直接在计算机上执行;但作为 ChatGPT prompt,它可以用来 “表达一个想法”,其所在 “故事” 能够继续。可能也会描述一些计算结构,让 ChatGPT “即兴” 思考人们在计算上对这种结构的看法,取决于其通过阅读这么多人类所写东西学到的知识,“对人类来说很有趣” 的知识。

ChatGPT 的意外成功突然带来无限可能,令人兴奋。现在就有机会让 Wolfram|Alpha 赋予 ChatGPT 计算知识超能力。所以它不仅能产生高度 “似人输出”,还能利用封装在 Wolfram|Alpha 和 Wolfram Language 中的整个计算知识塔。

标签: 自然语言 机器学习 这个问题

猜你喜欢