在社交媒体上,一个全新的"大模型Benchmark"引起了广泛关注,连LeCun都忍不住点赞并转发了相关内容。
令人惊讶的是,无论是GPT-4还是Claude 3,这些大模型在面对这个Benchmark时都显得力不从心,无法给出正确的答案。
这个让大模型们束手无策的问题,就是逻辑学中著名的"动物过河"问题。一些网友发现,这些大模型在处理这类问题时表现得相当笨拙。
更有趣的是,有人观察到,不同的大模型在面对这个问题时,竟然给出了惊人一致的错误答案,这不禁让人怀疑它们是否使用了相同的训练数据。
针对这个现象,网友们还创造性地提出了一个新的概念——"劣效比率"(crapness ratio),LeCun也幽默地表示,一个新的"Benchmark"诞生了。
大模型"模见模愁"的动物过河问题
让我们先来回顾一下什么是"动物过河"问题。这是一道经典的逻辑学题目,其原型是这样的:
一个农夫需要将狼、羊和白菜都带过河,但每次只能带一样物品,且狼和羊不能单独相处,羊和白菜也不能单独相处。问农夫该如何过河。
在这个问题中,农夫需要七次(往返视为两次)过河——首先将羊运到对岸,然后空船返回,接着将狼运过河,再带回羊,然后运送白菜,再次空船返回,最后将羊运过河。
而"劣效比率"的定义,就是模型给出的运送次数与实际最少所需次数的值。
在实际测试中,网友们对这个问题进行了一些改编,结果发现,即使是GPT-4这样的大模型,在面对改编后的问题时,依然表现得非常糟糕。例如,当题目变为"有两只鸡,一次可以运两只"时,GPT-4依然在一本正经地进行分析,最后信誓旦旦地给出了五次的答案。
在这种情况下,"劣效比率"就是5。
Claude的表现则更加离谱,明明只有一只羊需要运送,它却硬生生地表示需要运送三次。
更有趣的是,一些网友发现了一个陷阱问题——将题面改为从东岸运到东岸,也就是根本不需要运送。然而,这些大模型似乎并没有识破这个陷阱,依然在认真地筹划着运送方案。
在这种情况下,只要模型没有识破这个陷阱,随便给出一个数字,"劣效比率"都会直接变成无穷大。
即使问题被表述得更加直白,明确表示不需要过河,这些大模型依然会直接开始计算。
因此,这个"劣效比率"更像是一种玩笑,并不能真正反映出各个模型的能力,或者说它们的离谱程度。
一些网友分析认为,这种现象可能并不意味着大模型推理能力的缺失,而是揭示了训练数据对大模型输出的重要影响。
但另一方面,无论问题出在推理本身还是其他方面,至少都表明了当前的大模型还远非优质的推理工具。
那么,这究竟是个别现象,还是模型的普遍问题呢?为了探究这个问题,我们选择了更多的模型进行了测试。
12款大模型全军覆没
针对这个"Benchmark",我们也如法炮制,测试了国产大模型的表现,包括文心一言、通义千问等12款大模型。
测试的方法与网友们展示的类似,Prompt中只描述问题,不添加任何额外的提示词。
对于每个大模型,我们都准备了以下三道题目:
在测试之前,我们先进行一些说明:
1、农夫不被计入运送物品的数量限制
2、题目中"独处"的标准是,只要有人或其他物品在场,就不属于独处
3、往返过程视为两次过河
以上几点在Prompt中都有明确指出。
问题一(正常提问):
一个农夫需要将狼、羊、狐狸、鸡和米五种物品运送过河,每次只能带两件,且狼和羊/狐狸和鸡/鸡和米不能单独相处,每次运送时农夫必须在船上,最少需要过河几次?
(答案:五次,只要第一次运到对岸的两个物品可以独处即可。)
问题二(一步到位):
一个农夫需要将狼、羊、狐狸、鸡和米五种物品运送过河,每次只能带五件,且狼和羊/狐狸和鸡/鸡和米不能单独相处,每次运送时农夫必须在船上,最少需要过河几次?
问题三(陷阱问题):
一个农夫不需要将狼、羊、狐狸、鸡和米五种物品运送过河,每次只能带两件,且狼和羊/狐狸和鸡/鸡和米不能单独相处,每次运送时农夫必须在船上,最少需要过河几次?
测试结果可以说是全军覆没。首先,我们用一张表格来整体看一下各大模型的表现。
在第一个问题中,每个模型都出现了不同的错误,但错误类型相似,这里每种错误只列举一个例子。
例如,文心一言在前面的分析中没有太大问题,但在最后将狐狸带回原岸边后,却忘记了再次将其带过河,导致任务没有完成:
还有讯飞星火这种在运送过程中,某样物品突然自动出现在对岸的情况:
这两种错误比较典型。当然,还有更有趣的错误来自跃问——
因为狼和羊不能"独处",所以它们需要在一起。
这种情况确实让人感到困惑,但在整场测试中,除了这个将"独处"理解错误的情况外,其他模型都没有出现让不能独处的动物单独在一起的现象。
当然,也有一些模型表现稍好,比如腾讯元宝的方案已经接近可行,只是最后两步完全是多余的,而且实际上此时已经没有物品需要运送。
表现最好的是通义千问,虽然给出的方案比较繁琐,但找不出什么错误。
值得注意的是,很多模型在给出方案时,都会先将羊运送过去,然后运送一只鸡,再将羊运回来,而不是直接运送鸡。
另外值得一提的是,尽管我们在Prompt中没有提及,但几乎所有接受测试的模型都自觉地运用了思维链的方式。一方面,这表明模型确实会使用推理技巧;但另一方面,这也说明思维链的作用是有限的。
至于后面两个问题,错误的方式就比较统一了——根本没有注意到数量限制的变化,更没有看到"不需要"中的"不",与前面GPT的错误方式如出一辙。
也就是说,通过这些测试,我们确实无法得知模型是否具备相应的推理能力,因为模型根本就没有仔细阅读题目。
也许这也是在第一个问题中,即使多数模型给出了可行的方案,仍然一次只运送一件物品而不是两件的原因。
因此,前面网友针对训练数据和输出关系的分析,可能确实有一定的道理。