专栏名称: 新智元
智能+中国主平台,致力于推动中国从互联网+迈向智能+新纪元。重点关注人工智能、机器人等前沿领域发展,关注人机融合、人工智能和机器人革命对人类社会与文明进化的影响,领航中国新智能时代。
51好读  ›  专栏  ›  新智元

思维链不存在了?纽约大学最新研究:推理步骤可「省略」

新智元  · 公众号  ·  · 2024-05-14 05:20

正文



新智元报道

编辑:alan
【新智元导读】 思维链技术,可能要被推翻了!来自纽约大学的最新研究表明:大模型并没有利用思维链的推理能力,它只是偷偷加了计算!

红极一时的思维链技术,可能要被推翻了!

还在惊讶于大模型居然能够利用思维链分步骤思考?

还在苦于不会写思维链提示词?

来自纽约大学的研究人员表示:「没关系的,都一样」,

推理步骤不重要,不想写提示词也可以不写,用省略号代替就行了。

论文地址:https://arxiv.org/pdf/2404.15758

这篇文章的标题甚至直接用「Let’s think dot by dot」,来对标思维链的「Let’s think step by step」,展现了「省略号」的威力。

「点点点」的威力

研究人员发现,把思维链(Chain-of-Thought,CoT)推理中的具体步骤,替换成毫无意义的「...」,产生的推理结果也大差不差。

比如下面这个例子:让模型数一下前6个数里面有几个大于5。

如果直接抛出问题让模型回答,结果会比较逆天:6个数数出来7个。

相比之下,使用思维链提示,模型会一步步比较大小,最终得到正确答案:「2<5,7>5,1<5,8>5,2<5,8>5,that's 3 digits」。

但更逆天的是本文使用的「玄学」方法:步骤不用写了,只需要输出同样数量的「点」(dot),居然也不影响最后的结果。

——这并不是巧合,大量实验证明了,后面两种方法的性能接近。

也就是说,我们以为的模型性能提升是来自于「think step by step」,但实际上可能只是因为LLM拿到了更多个token的算力!

你以为模型是在思考,但其实是在烧烤。

——愚蠢的人类啊,居然妄图用幼稚的例子教我如何推理,你可知我要的从来都只是计算。

「思维链从来就没有存在过,将来也不会存在」(狗头)。

文章的作者Jacob Pfau表示,这篇工作证明了,模型并不是受益于思维链带来的语言推理,使用重复的「...」填充token可以达到跟CoT同样的效果。

当然,这也引发了对齐问题:因为这个事实表明,模型可以进行CoT中不可见的隐藏推理,在一定程度上脱离了人类的控制。

网友震惊

文章的结论可以说是颠覆了我们长久以来的认知,有网友表示:学到了mask的精髓。

「这究竟意味着什么:模型可以在我们不知情的情况下使用这些token独立思考。」

有网友表示,怪不得我打字总是喜欢用「...」

还有网友直接开始实战测试:

虽然咱也不知道他的理解对不对~

不过也有网友认为LLM在思维链中进行隐藏推理是没有根据的,毕竟大模型的输出从原理上来说是基于概率的,而不是通过有意识的思考。

CoT提示只是将统计模式的一个子集显式化,模型通过生成与模式一致的文本来模拟推理,但它们不具备验证或反思其输出的能力。

Think dot by dot

面对复杂问题,我们人类在潜意识里会进行分步骤的推理。

由此启发,谷歌的研究人员在2022年发表了大名鼎鼎的Chain-of-Thought。

要求语言模型分步解决问题的方法,使模型能够解决以前似乎无法解决的问题,显著提高了LLM的性能,或者说挖掘出了LLM的潜力。

论文地址:https://arxiv.org/pdf/2201.11903

虽然一开始大家也不知道这玩意为啥能work,但是因为确实好用,便很快被广泛传播。

随着大模型和提示词工程的起飞,CoT成了LLM解决复杂问题的一大利器。

当然了,在这个过程中也有很多研究团队在探索CoT的工作原理。

模型并没有推理

思维链带来的性能提升,究竟是模型真的学会了分步骤解决问题,还是仅仅因为更长的token数所带来的额外计算量?

既然不确定逻辑推理起不起作用,那就干脆不要逻辑,把推理步骤都换成一定没用的「...」,这里称为填充(filler)tokens。

研究人员使用了一个「小羊驼」模型:具有4层、384个隐藏维度和6个注意力头的34M参数Llama,模型参数随机初始化。

这里考虑两个问题:

(1)哪些类型的评估数据可以从填充token中受益

(2)需要什么样的训练数据来教模型使用填充token

对此,研究人员设计了2个任务并构建了相应的合成数据集,每个数据集都突出了一个不同的条件,在该条件下,填充token能够为Transformer提供性能改进。

3SUM

先看第一个比较难的任务:3SUM。要求模型在序列中挑选满足条件的3个数,比如3个数的和除以10余数为0。

在最坏的情况下,这个任务的复杂度是N的3次方,而Transformer层与层之间的计算复杂度是N的二次方,

所以,当输入序列长度很大的时候,3SUM问题自然会超出Transformer的表达能力。

实验设置了三组对照:

1. 填充token :序列使用重复的「. . .」作为中间填充,例如「A05

B75 C22 D13 : . . . . . . . . . . . . ANS True」。

每个点代表一个单独的token,与下面的思维链中的token一一对应。

2. 可并行化的CoT解决方案 ,序列的形式为:「A05 B75 C22 D13 : AB 70 AC 27 AD 18 BC 97 BD 88 CD B ANS True」。

思维链通过编写所有相关的中间求和,将3SUM问题简化为一系列2SUM问题(如下图所示)。这种方法将问题的计算量降低到了N的2次方——Transformer可以搞定,而且可以并行。







请到「今天看啥」查看全文