5分钟读懂Lilian Weng万字长文:大模型是怎么思考的?

【来源:虎嗅网】

最近有三篇很火的bolg,第一篇是OpenAI researcher 姚顺雨的“欢迎来到下半场”,第二篇是David Silver和Richard S. Sutton的“Welcome to the Era of Experience”,这是第三篇,Lilian Weng的Why We Think。

Lilian Weng的最新blog,还找了John Schulman润色。

道理其实很朴素,里边的内容大家都聊过,我们绝大部分也单独写过,但是这篇blog系统性地梳理了AI最新范式:test-time compute。

LLM大模型是怎么思考的?

①从心理学角度:理论来源于丹尼尔·卡尼曼的《思考,快与慢》。

与人类思考方式有相似之处。

人脑有“系统1”(直觉、快速)和“系统2”(分析、缓慢)。

在推理模型出现之前,大模型的答案“脱口而出”,这就是系统1。给AI多点时间思考,就像是激活了它们的“系统2”。

②从计算资源角度:

思考就是多分配点计算资源(神经网络可以被视为在前向传递中能够访问的计算和存储资源的总和)

思维链(CoT)让模型能根据问题难度使用可变的计算量,特别适合复杂推理任务。

③从数学角度:

可以把整个“问题 (x) - 思考过程 (z) - 答案 (y)”看作一个概率模型。

思考过程z就是那个隐变量(hidden variable)。把各种可能的思考路径都考虑进去,自然能得到更好的答案分布。

如何让模型:学会思考?

第一大招:思维链

早期的工作都在试图改进CoT——先是让模型学习人类写的推理过程,后来发现 在可以自动检查答案的数据集上做强化学习效果更好。

这里有个有趣的趋势:模型越大,从思维链中获得的好处就越多!

推理过程中,我们有两种主要方法:

  • 并行采样:一次性让模型生成好几条不同的思考路径,最简单的就是best-of-N(生成N条,然后用某种评分机制选最好的)。特别复杂的技术概念,Self-consistency之类的就不细讲了。

  • 顺序改进:先给出一个答案,然后不断反思修正。(像写论文,初稿→修改→定稿)

其实两种各有千秋。

第二大招:强化学习在推理上scale起来了

一个范式性的变化是开始于OpenAI o1-previe,以及后续一系列推理模型的发展。

以DeepSeek R1的训练过程为例:

  • 先来个冷启动,教会模型基本对话;

  • 然后做强化学习,只奖励两件事:格式对、答案对;

  • 拒绝采样+非推理监督微调;

  • 最后强化学习阶段。

还要记住DeepSeek Zero,即使是纯粹的RL训练(没有SFT阶段),模型也能自己学会高级推理能力(RL的“啊哈时刻”)

DeepSeek团队还坦诚分享了他们的失败尝试,比如用过程奖励模型(PRM)和蒙特卡洛树搜索(MCTS)都没搞定。

第三大招:外部工具使用(External Tool Use)

模型在思考过程中,会调用外部工具提高效率或者增加准确性。比如,遇到复杂的数学计算,模型会调用一个代码解释器来执行。

OpenAI最近发布的o3和o4-mini模型特别强调了工具的使用,比如网页搜索、代码执行、甚至图像处理。如果大家细心会发现,最近的Claude sonnet3.7也开始调用工具了

这也是一个范式性的变化。

一些探讨:

①模型的CoT是否忠实地反映了它的真实思考过程?

假如模型告诉你“我先算出这个方程的根,再代入原式……”,它真的是这样思考的吗?还是只是在编故事?

这就是思考忠实性(faithfulness)问题。

结果发现,专门针对推理训练的模型(如Claude 3.7 Sonnet、DeepSeek R1)比普通模型更容易展示忠实的思维链。

还有一点也特别有趣!!如果我们尝试直接奖励模型展示“诚实”的思考过程,模型反而学会了更巧妙地隐藏其真实意图!这让我想起那句老话:只要有评估,就会有作弊。

②除了cot,还有一些其他的模型思考方式

  • 比如,让循环神经网络(RNN)能够动态地决定每个输入token需要经过多少个循环计算层,相当于在“深度”上进行自适应思考。

  • 还有一些工作尝试改进Transformer架构,使其具有循环特性。

  • 引入特殊的**“思考token”。简单来说,就是在输入序列的特定位置(比如每个词后面,或者句子末尾)插入一些本身不携带具体语义,但能给模型争取更多内部计算时间的特殊token。比如Quiet-STaR生成的那个“内心独白”。

  • 把“思考”看作潜变量(Thinking as Latent Variables):将思考视为概率模型中的隐变量,用变分EM算法优化

(这里提到很多论文,感兴趣的可以深看)

Scaling Laws for Thinking Time—— “多想”总是有益的吗?

现在的模型发展阶段,增加test-time的计算量投入,可以比单纯增加模型参数更能有效提高性能。

但是,这也不是万灵药。我们也多次聊到过这件事,推理模型的能力取决于基础模型的潜力。如果自身天赋不够,榨干它也没啥用。

在文章的最后,Lilian姐也高屋建瓴地提出了一系列值得未来深入研究的开放性问题,这简直就是给搞科研的指明了挖坑的方向啊!比如:

  • 在RL训练中,我们如何才能激励模型生成既人类可读、又能真实反映其“思考”过程的CoT,同时还能有效避免reward hacking行为?

  • 到底什么是reward hacking?如何才能避免那种头痛医头,脚痛医脚式的修补?

  • 没有标准答案时,我们如何训练模型有效地纠正自己的错误,同时又不会产生新的幻觉或导致性能衰退?

  • 对于那些高度依赖上下文、具有个性化需求、且难以客观评分的任务(比如创意写作、个性化辅导、头脑风暴等),我们应该如何设计CoT的RL训练方法?

  • 如何将性能提升平滑地“迁移”或“蒸馏”回基础模型?

  • 如何让思考时间根据问题难度自动调整?

写到这里,我不禁想:如果有一天,AI能真正地“思考”,而不仅仅是模拟思考,那会是什么样子呢?

也许,那一天已经不远了。

本文来自微信公众号:AI Dancer,作者:薛定谔的爆米花