理工科神器Wolfram|Alpha注入超强计算知识,补足ChatGPT短板
机器之心 2023-01-27 12:51 发表于北京
选自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?”: