大模型慢思考和快思考:System 1 和 System 2 的类比有道理吗?

你问大模型“1+1等于几”,它几乎零点几秒就给出答案。你再问它“一艘船上有26只绵羊和10只山羊,船长年龄多大?”它非但没察觉这是个陷阱,反而一本正经地编一个数字。但如果在这个问题后面补一句“让我们一步一步思考”,它可能突然变得谨慎起来,先列条件、再找矛盾,最后告诉你“这题无法回答”。

这种快与慢的切换,会不会让你联想到丹尼尔·卡尼曼在《思考,快与慢》里提出的System 1和System 2?一个是自动化的直觉判断,一个是需要动用注意力的逻辑分析。最近一年,很多介绍大模型推理的文章都会借用这对术语,说大模型也有“快思考”和“慢思考”,甚至OpenAI的o1都被描述成“激活了System 2”。

AI technology illustration

我最早也这么信了。直到我去翻大模型的推理机制,才发现这个类比在细节上几乎站不住脚。

先从卡尼曼的双系统说起

卡尼曼在《思考,快与慢》中给出的定义很经典:

System 1 operates automatically and quickly, with little or no effort and no sense of voluntary control. System 2 allocates attention to the effortful mental activities that demand it, including complex computations.

翻译成大白话:System 1是自动挡,不费脑子,不受你控制;System 2是手动挡,要你主动踩离合、挂挡,处理复杂计算。

对人类来说,这是两套不同的认知资源:你看到2+2=4,是System 1直接蹦出来的;你口算37×24,是System 2在费劲运行。两个系统由不同的大脑回路支撑,进化时间也差了千万年。

大模型的快慢不是两种系统,而是同一种系统跑了N遍

大模型天生是个快思考者。它是自回归的:根据前面的内容,预测下一个token的概率分布,然后采样。生成每个token都是同样的一次前向传播,没有“费劲”的概念。你可以把大模型想象成一个只会接龙的人:给它前面几个字,它按照概率把下一个字接出来。它每接一个字,消耗的计算量几乎一样,不存在“累不累”的区别。所以从模型内部看,答“1+1等于几”和答“请证明黎曼猜想”,CPU占用没有本质差异,差异只在于这个接龙高手有没有在训练数据里见过类似内容。你问简单题,它可能一个token就输出答案;你问难题,它照样一个token一个token往外蹦,只是更容易蹦错。

想让它“慢”,你得在提示词里主动诱导它多生成几步,最常见的做法是思维链

问:一块正方形土地,边长10米,把每边扩大2倍,面积变为原来的几倍?
答:让我们一步一步思考。
首先,原面积为10×10=100平方米。
扩大后每边长为10×2=20米。
新面积为20×20=400平方米。
400÷100=4倍。
所以答案是4倍。

这个例子里的“慢”,不是模型启动了什么System 2,而是它被要求先输出一串中间推理token。每个token照旧是自回归采样。本质上,它只是把一个复杂问题拆成了小步快跑的直觉问题——每小步都很“快”,只不过步子变多了。

真正的分水岭出现在OpenAI的o1系列。o1对外宣称的“思考”就是让模型在回答前先生成hidden chain-of-thought,也就是隐藏的思维链。但OpenAI的技术博客里说得直白:o1仍然是自回归模型,只是在强化学习阶段学会了在推理时增加思考步骤。没有哪个新系统被唤醒,只是同一个模型被训练成更爱“自言自语”。

这里要插一个我自己的认知转变。去年我第一次看到o1在数学题上能“想”很久,第一反应是它内部一定有一个“推理引擎”,能随时切换到逻辑模式。后来看了思维链论文和o1技术文档,才意识到:所谓“思考”不过是在相同的自回归循环里多转了几圈。o1学到的不是“逻辑能力”,而是“在难题上愿意生成更多中间token”的习惯。

类比有价值,但别把它当成机制

现在我们把两边的特征摆在一起,看看System 1/2类比到底哪些成立,哪些不成立。

维度 人类的双系统 大模型的快慢属性
底层机制 两套独立神经回路,进化不同 同一个神经网络,只是前向传播次数不同
触发方式 System 1自动触发,System 2需主观努力 完全由prompt控制,模型自己没有主动性
学习来源 进化+个体经验 训练数据的统计规律+强化学习
出错方式 System 1有固定偏差,System 2可监控纠错 快慢都可能自信地错,内部没有监控者

从这张表能看出,大模型更像一个“只有System 1的个体”,而“慢思考”只是让这个个体反复跑它的System 1。它没有第二套算法,没有内置的监控器,也没有“费力”这种感觉。

有趣的是,研究者确实在尝试给大模型外挂一个System 2。比如System 2 Attention这篇论文,就是想模拟System 2那样动态分配注意力,过滤无关信息。但仔细看,它本质上仍然是用同一个模型生成“哪些信息重要”,再用另一个注意力掩码去重算。说白了,还是让System 1来决定自己该注意什么。

这个类比之所以流行,是因为它给了我们一个方便的叙事:快思考擅长直觉但容易出错,慢思考擅长逻辑但耗时耗力。于是LLM的“直接回答=System 1,思维链=System 2”听起来特别顺理成章。但真正的分界线不在快慢,而在有没有一个独立于第一反应之外的、基于规则的验证机制。大模型没有。

那这个类比就没有价值吗?也不是。至少它非常直观地给出一个洞见:把推理步骤变多,可以显著提升复杂问题的准确率。这正是思维链和o1的核心。但你不能因为“步骤多了”就说是System 2被激活,就像你不能因为一个循环跑了很多遍,就说它变成了另一种程序。

什么才是真正的“大模型System 2”?

如果让我定义一个大模型系统的“真正System 2”,它应该具备三个特征:

  • 能主动规划:在回答问题前生成一个计划,而不是顺着token的惯性走。
  • 能验证和回溯:发现推理路径错了,可以返回重新选择。现在的大模型很难做到,它只会一路错到底。
  • 能在多个假设中搜索:调用外部的搜索算法或工具,而不是只能在内部概率分布里采样。

这种架构已经出现在AlphaGo等强化学习系统中:快速策略网络负责生成候选动作,蒙特卡洛树搜索负责慢速评估和回溯。大模型目前缺少的正是那个“蒙特卡洛树搜索”的部分。关于AlphaGo的具体设计,可以看Nature上的原始论文

我见过一个叫Self-Refine的方法:让模型先输出答案,再自行批评,再根据批评修正。看起来很像System 2在监督System 1,但批评和修正也是同一个模型生成的。它只是用自己的概率分布覆盖了更多的可能路径,并没有跳出“预测下一个token”这个本质。

所以我的结论是:System 1/System 2是一个有启发性的标签,但它最多是隐喻,不是机制描述。人类的双系统有明确的分工、有监督关系、有不同的进化来源;大模型则只有一套参数、一个计算图,快慢只是计算次数的差别。你让模型“深思熟虑”,它不过是在概率分布里多掷了几次骰子。如果你只是想跟非技术人员解释为什么o1会“想一下”再回答,用System 1/2做比喻没问题。但如果你在做技术决策,比如设计推理系统,那你得清楚:多生成token并不等于更严谨,甚至可能在错误路径上走得更远。

真正的“大模型慢思考”会出现在混合系统里:一个快速自回归模型负责生成候选,一个外部程序负责搜索、验证、回溯,再加上一个记忆库。那时,才算有了严格意义上的System 2。而把“多生成几个token”称为慢思考,多少有点浪漫化了。

以上是我看完卡尼曼、翻完思维链论文和o1技术文档后的真实想法。如果你对这个问题有不同的看法,欢迎在评论区聊聊。

原创文章,作者:guanweilu,如若转载,请注明出处:https://guanweilu.cn/article/391.html

(0)
上一篇 4天前
下一篇 4天前

相关推荐