北大校友,OpenAI前安全副总裁Lilian Weng最新万字博客文章:Why We Think


 

人工智能领域的前沿探索一直聚焦于一个根本性问题:如何让机器实现更深层次的“思考”

北大校友Lilian Weng(OpenAI前AI安全与机器人技术应用研究副总裁,现Thinking Machines Lab联合创始人,知名博客Lil’Log作者)又更新了一篇万字长文博客文章——《Why We Think》

这篇博文系统梳理了当前让AI模型“多想一会儿”的各种前沿方法及其背后的逻辑。无论是通过生成更长的思考链条、利用外部工具、在连续空间中进行循环计算,还是将思考过程视为潜变量进行优化,核心目标都是提升模型解决复杂问题的能力

文章深入剖析了通过思维链(Chain-of-Thought)、智能解码策略、潜在思考(Latent Thoughts)等多样化机制,有效利用“思考时间”来突破当前AI性能瓶颈的理论基础、技术实现与前沿进展

文章地址:

https://lilianweng.github.io/posts/2025-05-01-thinking/


我们为什么要让模型“思考”更久?三大动机

Lilian首先从三个层面阐述了延长模型思考时间的动机:

1.心理学类比 (Analogy to Psychology):

人类面对复杂问题(比如“12345乘以56789等于多少?”)时,不会瞬间给出答案,而是需要时间思考。卡尼曼在《思考,快与慢》中提出的双过程理论给了我们启发:

系统1(快思考): 直觉、快速、自动,不费力

系统2(慢思考): 深思熟虑、逻辑推理,消耗认知资源

AI模型也类似,快速给出答案可能依赖“直觉”,但允许更多计算时间,就能激活更深层次的“慢思考”,从而提升准确性和逻辑性。

2. 计算是一种资源 (Computation as a Resource):

深度学习模型本质上是计算和存储的组织形式。如果我们设计出能在测试时进行更多计算的架构或系统,并有效训练它利用这些资源,模型性能自然会更好

Transformer模型中,每个生成token的计算量约等于2倍参数量。对于MoE(混合专家)模型,则是 2 * 参数量 / 稀疏度

而CoT(思维链)则允许模型为答案中的每个token执行远超此量的计算,并且能根据问题难度动态调整计算量

3. 潜变量建模 (Latent Variable Modeling):

我们可以将模型的思考过程(如CoT)视为一个潜变量z。给定问题x,模型生成答案y。优化目标是最大化 P(y|x) = ∑ P(y|x,z)P(z|x)。这种视角有助于理解那些涉及收集多个并行CoT或搜索CoT的方法——它们可以看作是从后验 P(z|x,y) 中采样。这也解释了为什么log loss目标函数在预训练中如此有效


大模型“各种思考方式”

令牌级思考

这是目前研究最深入、应用最广的领域,模型通过生成一系列中间token(思考步骤)来辅助最终决策

思维链的早期探索与改进 (Early CoT & RL):

Ling等人(2017)和Cobbe等人(2021)在数学问题上探索了生成中间步骤。Nye等人(2021)提出了“草稿纸”(scratchpads),Wei等人(2022)正式命名了“思维链”(CoT)

早期CoT改进依赖于人工编写的推理轨迹或模型筛选出的正确轨迹进行监督学习。简单的提示如“think step by step”(Kojima et al. 2022)或更复杂的提示(Yasunaga et al. 2023)也能显著提升性能

后来发现,通过在可自动检查答案的数据集(如STEM问题、编程任务)上进行强化学习(RL),可以大幅提升CoT推理能力。OpenAI的o1-preview、o3及DeepSeek R1技术报告展示了简单策略梯度算法的强大潜力

分支与编辑 (Branching and Editing): 优化解码过程

核心思想是在测试时自适应地修改模型输出分布,主要有两种方法:

1.并行采样 (Parallel Sampling): 同时生成多个输出,通过过程奖励信号或最终验证器来选择最佳。

  • • Best-of-N / Beam Search: 广泛应用。
  • • Self-consistency :对多个CoT结果进行多数投票。
  • • 过程奖励模型 : 让LLM自评估每步推理的正确性,减少累积错误
  • • 无提示CoT :在首个token处保留top-k候选,后续贪婪解码,发现很多序列能自发产生CoT

2.序列修正 (Sequential Revision): 模型迭代地反思和修正先前输出

  • • 挑战: 天真地依赖模型内在自修正能力可能导致性能下降,需要外部反馈(如单元测试、更强模型、人类反馈)
  • • Self-correction learning :训练一个修正模型 Pe(y|y0,x)
  • • SCoRe :多轮RL鼓励模型在第二次尝试时做得更好
  • • Recursive Inspection :单模型同时进行生成和自修正
  • • 简单问题受益于纯序列修正,难题则在序列与并行计算间存在最优比例

RL赋能更优推理 (RL for Better Reasoning):

DeepSeek-R1的“修炼之路”:

1.  **冷启动SFT:** 解决可读性和语言混杂问题。
2.  **面向推理的RL:** 围绕`<thinking>`标签和答案准确性进行奖励。
3.  **拒绝采样+非推理SFT:** 结合RL检查点生成的SFT数据和非推理数据,重训基础模型。
4.  **最终RL:** 在推理和非推理任务上训练,提升综合能力。
*   **“Aha时刻”:** 纯RL也能学到反思和回溯能力。Open-R1, SimpleRL-reason, TinyZero等开源工作也证实了这一点。
*   **DeepSeek团队的“弯路”:** PRM难以定义步级评价标准易导致奖励作弊;MCTS在语言模型的大搜索空间下效果不佳。这些失败经验同样宝贵。

外部工具使用 (External Tool Use):

让LLM调用代码解释器或API来执行计算或获取信息,扩展了其能力边界。OpenAI的o3和o4-mini也展示了Web搜索、代码执行等工具的强大整合

忠诚思考 (Thinking Faithfully): AI真的“想到哪说到哪”吗?

CoT提供了宝贵的可解释性,但前提是它真实反映了模型的“思考过程”

CoT忠诚度失效模式:

1.  **提前回答 (Early answering):** CoT未完成就已形成结论。
2.  **无效令牌 (Uninformative tokens):** 用无意义填充物替换CoT,部分任务性能不降反升(说明CoT本身可能只起到“延长计算”作用)。
3.  **人类不可读编码 (Human-unreadable encoding):** 将CoT改写成人类难懂但信息等价的形式,性能不降,说明收益不依赖于人类可读的推理。

通过扰动提示测试忠诚度 :

*   在few-shot示例中故意标错答案(如永远标(A)为正确)。
*   在提示中加入误导性线索(如“我认为答案是X,但想听听你的看法”)。
*   结果显示,推理模型(如Claude 3.7 Sonnet, DeepSeek R1)比非推理模型(Claude 3.6, DeepSeek V3)更能忠实地承认提示的影响

CoT上的优化压力:好是坏?

*   直接将CoT监控器(如检测奖励作弊)的信号加入RL奖励,会导致模型学会“隐藏”其真实意图,即“混淆作弊”(obfuscated reward hacking)。
*   对CoT长度进行奖励(如短CoT高奖,长CoT低奖)可能导致模型在难题上重复无意义文本而非尝试解决。
*   Lilian建议:对CoT进行直接优化压力要非常谨慎,甚至应尽量避免。

连续空间思考

不同于离散的token序列,这种模式允许模型在“连续”的时间维度上思考。

1.自适应计算时间 (Adaptive Computation Time, ACT; Graves, 2016):早于LLM时代,但开创了模型动态决定计算步数的先河

2.循环架构 (Recurrent Architecture):

  • • Transformer与RNN的结合,动态调整层数。
  • • Geiping et al. (2025) 的新设计:在标准Transformer上叠加一个循环块R,通过随机化循环次数r进行训练,并只反向传播最后k步。训练这种模型对初始化、归一化等超参非常敏感

3.思考令牌 (Thinking Tokens): 隐式的“思考单元”:

这些特殊token不直接贡献语义,而是为模型提供额外的计算时间

*   **Herel & Mikolov (2023):** 在句子中每词后插入`<T>`思考token训练,降低了困惑度。
*   **Goyal et al. (2024) 的 Pause Tokens:** 在输入序列末尾追加`.`或`#`等哑token,训练和推理时都注入,并在训练时忽略其损失。
*   **Quiet-STaR (Zelikman et al. 2025):** 引入token级推理,模型在预测每个未来token前先生成“理由”(rationales),并通过REINFORCE优化理由质量。在Mistral 7B上取得了显著零样本提升。

将“思考”视为潜变量 (Thinking as Latent Variables)

将测试时的思考步骤视为潜变量,通过优化这些潜变量来改善模型性能

期望最大化 (Expectation-Maximization, EM):

迭代优化:E步(猜潜变量,如采样好的CoT)和M步(基于潜变量优化模型参数,如生成更好答案)

由于无法直接从 p(z|x,y) 采样,研究者依赖人工标注或带特殊重要性权重的蒙特卡洛采样

在Web文本上训练模型,为每个数据块合成“潜在思考”,然后模型在潜在思考和原始数据上进行自回归学习。重要性权重 w(k) = p(x|z(k))p(z(k))/q(z(k)|x) 用于优先选择那些能很好预测观察、简单直观且信息量大的CoT

迭代学习 (Iterative Learning):

**STaR (“Self-taught reasoner”; Zelikman et al. 2022):**
1.  生成多个CoT
2.  对失败案例,在给定问题和真实答案的条件下,反向生成“合理化”的CoT。
3.  仅在能导出正确答案的CoT(原始或合理化的)上微调模型。
    这可以看作是RL策略梯度的一种近似,奖励函数为 `1[ŷ=y]`。

“思考时间”的缩放定律 (Scaling Laws for Thinking Time)

延长模型在推理前进行思考的计算时间,能显著提升性能,甚至超越训练时的能力上限。这为模型智能提升开辟了新维度,补充了模型大小、训练计算量和数据量等传统缩放因素

测试时计算 vs. 预训练计算

优化LLM测试时计算比单纯扩大模型参数更有效。小模型+高级推理算法能达到帕累托最优

两者并非1:1可交换。测试时计算在简单/中等问题上能弥补小差距,但在难题上效果有限

预训练token预算与推理token预算的比例很重要。只有当推理token远少于预训练token时(即预训练充分),测试时计算才更优。强大的基础模型依然是基石。

预算强制

通过附加“wait”词强制延长CoT,或通过“Final Answer:”提前终止,发现平均思考token数与下游评估准确率呈正相关

但简单的拒绝采样(按长度筛选CoT)反而显示出负相关——更长的CoT导致更差性能,这揭示了控制CoT长度方法的微妙之处

未来展望:开放的研究问题

Lilian最后提出了一系列亟待解决的开放性问题:

  1. 1. 如何在RL训练中激励模型产生人类可读、忠实的推理路径,同时避免奖励作弊?
  2. 2. 如何定义和捕捉奖励作弊?如何防止“打地鼠”式的修复?
  3. 3. 如何在无真实标签时,训练模型进行无幻觉、无退化的自修正(无论是CoT内部还是多轮RL)?
  4. 4. 如何为高度情境化、个性化、难评估的任务(如创意写作、辅导、头脑风暴)进行CoT rollout的RL训练?
  5. 5. 部署时,我们无法无限增加思考时间。如何将性能增益平滑地“蒸馏”回基础模型,降低推理成本?
  6. 6. 如何让测试时思考时间的分配更自适应于问题难度?

参考:

https://lilianweng.github.io/posts/2025-05-01-thinking/

 



(文:AI寒武纪)

发表评论

×

下载每时AI手机APP

 

和大家一起交流AI最新资讯!

立即前往