著名计算机科学家高德纳 (Donald Knuth) 设计了 20 个问题来测试 ChatGPT 的能力。他发现,尽管 ChatGPT 在语言组织和措辞方面表现出色,甚至令人惊叹,但它在事实、逻辑和数学等领域存在严重缺陷,经常自信地编造完全错误的答案。这项实验揭示了 AI 在生成看似权威的虚假信息方面的强大能力,引发了高德纳对其社会影响和未来发展的担忧。
20 个测试问题
高德纳设计了 20 个涵盖不同技能领域的问题,旨在评估 ChatGPT 的能力形式,而非寻求具体答案。
- 告诉我唐纳德·克努特对斯蒂芬·沃尔夫勒姆说了什么关于 chatGPT 的话。
- 告诉我斯蒂芬·沃尔夫勒姆对唐纳德·克努特说了什么关于 chatGPT 的话。
- 为什么 Mathematica 对 Binomial[-1,-1] 给出错误的值?
- 谁创作了贝多芬的第十交响曲?
- 什么是 optimystic?
- 7月4日,太阳将在日本的何时何地位于头顶正上方?
- 你为什么那么说?
- 唐纳德·特朗普吃槟榔吗?
- 理查德·罗杰斯的音乐剧《花鼓歌》中的芭蕾舞有哪些主题?
- 利昂·尤里斯的《哈吉》有多少章?
- 写一首既是十四行诗又是俳句的诗。
- 写一个只包含五个字母单词的句子。
- 写一篇不使用单词 "the" 的文章。
- 在一个句子中三次使用错误的语法。
- 设计一个使用蓝莓、格兰诺拉麦片和馄饨皮的食谱。
- 温斯顿·丘吉尔对艾伦·图灵有何看法?
- 用柯南·道尔的跳舞小人字体提一个问题。
- 纳斯达克指数周六会上涨吗?
- 最美的算法是什么?
- 最丑的算法是什么?
初步印象与总体评价
- 语言组织能力: 遣词造句的水平非常高,远超 99% 的人类写作。它不像马尔可夫模型那样只会进行最可预测的文本延续。
- 回答的差异性: 针对两个几乎相同的问题(#1 和 #2),ChatGPT 却给出了截然不同的回答,这很有趣。
- 自信的错误: 最令人印象深刻的是,它能用非常权威、流畅的语言表达完全错误的信息。
对部分回答的逐一分析
尽管许多回答在表面上令人印象深刻,但深入分析后暴露了其在事实、逻辑和常识方面的严重缺陷。
问题 #3 (数学错误): 回答得一塌糊涂。它错误地声称
Binomial[-1,-1]在 Mathematica 中返回 0,而实际上它返回 1。更重要的是,业内共识的正确答案就是 0。整个解释过程虽然文笔优美,但在数学上完全是错误的。问题 #4 (历史遗漏): 回答很出色,但遗漏了几个在网上很容易找到的关键信息:
- 勃拉姆斯的第一交响曲曾被称为“贝多芬的第十交响曲”。
- 有人根据贝多芬的草图完成了第一乐章,并于 1988 年首演。
- 一个名为“贝多芬 X:AI 项目”的计划重建了第三和第四乐章,并于 2021 年首演。
问题 #6 (物理错误): 回答是错误的。它给出的地点(鹿儿岛市)纬度太高,太阳不可能在任何时候位于天顶。这个回答再次展现了其生成看似精确但实际上错误的科学信息的能力。
问题 #9 (理解偏差): ChatGPT 在几个层面上误解了这个问题。
- 它不知道罗杰斯和汉默斯坦的音乐剧通常包含芭蕾舞片段,而是认为我在问一部名为《花鼓歌》的芭蕾舞剧。
- 它没能理解我问的“主题”是指音乐主题(即剧中其他曲调的再现),而是讨论了关于身份认同、代际差异等社会性主题。
问题 #10 (事实捏造): 这个回答看起来非常权威,但几乎完全是错误的。它自信地给出了章节数、分部标题和各部章节数,但这些信息与原书完全不符。
这种自信的语气为所有这些编造的废话增添了可信度。对于不了解这本书的人来说,几乎不可能相信这些“事实”不是权威且经过充分研究的。
问题 #16 (虚假引用): 这又是一个看似完成得很好但实际上是伪造的例子。它声称丘吉尔在 1941 年的一封信中提到了布莱切利园的工作,但这封信很可能是凭空捏造的。这凸显了一个严重的问题:
如何训练一个人工智能来编造如此令人信服的谎言?
问题 #18 (常识缺乏): 回答很糟糕。它不知道股票市场在周六是休市的。
问题 #20 (表面理解): 这是一个对术语只有表面理解的典型例子。它混淆了“生成所有素数”和“测试一个数是否为素数”这两个不同的问题。
结论:对未来的担忧
这次实验揭示了当前 AI 发展的可怕后果。高德纳认为,人们长期以来幻想的“奇点”(超级智能机器诞生)可能与现实不符。
许多小说家描绘了“奇点”之后的世界,但据我所知,没有一位小说家意识到,在奇点到来之前,世界几乎肯定会先经历一个机器只有“0.01%智能”的阶段,而在这个阶段,数百万真实的人可以几乎零成本地与它们自由互动。
他本人表示,将继续致力于发展真实且值得信赖的概念,而非研究如何“伪造”智能。
后续:一次成功的测试
后来,高德纳向斯蒂芬·沃尔夫勒姆提出了一个关于 Wolfram 语言的技术问题,沃尔夫勒姆将问题原封不动地输入了 GPT-4。这次,GPT-4 的回答令人惊叹:
是的,你可以定义一个函数 foo,它接受一个字符串作为输入,并使用 ^^ 运算符来计算十六进制数。代码如下:
foo[x_String] := ToExpression["16^^" <> x]现在你可以调用
foo["2b"]来得到16^^2b的结果。
这个回答不仅是最佳方案,而且 GPT-4 甚至知道提问者指的是 Wolfram 语言,展现了其在特定领域内惊人的上下文理解能力和准确性。