推理模型:思维链与慢思考范式

中等 🟡AI 学习
6 个标签
预计阅读时间:9 分钟
推理模型思维链Chain-of-Thoughto1DeepSeek-R1测试时计算

推理模型:思维链与慢思考范式

大语言模型早期给人的印象是"脱口而出"——问一句答一句,几乎不加思索。但面对数学证明、多步逻辑推理、复杂代码调试这类任务时,这种"张口就来"的方式经常出错。近年来,从思维链提示到 OpenAI o1、DeepSeek-R1 等专门的"推理模型",业界逐渐摸索出一套让模型"先想清楚再回答"的方法论。本文从思维链的基本原理讲起,梳理推理模型的发展脉络,并介绍测试时计算这一全新的能力提升维度。

🧩 什么是思维链

思维链(Chain-of-Thought,简称 CoT)最早是作为一种提示技巧被提出的:与其直接要求模型输出最终答案,不如引导它先写出一步步的中间推理过程,最后再给出结论。

一个直观的例子是应用题:

textCode
问题:一个书架有 3 层,每层放 12 本书,又搬走了 5 本,还剩多少本?

【普通提示】直接问:请给出答案。
模型输出:31 本

【思维链提示】请一步步思考后再给出最终答案。
模型输出:
1. 书架总共有 3 层,每层 12 本,所以总数是 3 × 12 = 36 本。
2. 搬走了 5 本,所以剩下 36 - 5 = 31 本。
最终答案:31 本

这个例子里两种方式凑巧得到了同一个答案,但在稍微复杂一些的多步计算、条件判断或逻辑推理题中,"直接给答案"的方式极易在某个环节漏算或想岔,而"一步步思考"的方式会把每一步摊开,模型和人一样,摊开步骤后出错率会显著下降。

为什么显式写出中间步骤会提升准确率?可以从几个角度理解:

1.计算量的重新分配:Transformer 在生成每一个 token 时能做的"计算"是有限的(大致对应固定的前向传播层数)。如果要求模型在一个 token 内直接吐出最终答案,相当于压缩了大量隐含推理到极短的计算路径里;而写出中间步骤,相当于把推理过程展开到了多个 token 上,每一步都能复用前面已经写下的文字作为"外部工作记忆",用输出序列的长度换取有效计算深度。
2.错误的可追溯与自我修正:中间步骤写在文本里之后,后续生成会以这些文字为条件,如果某一步出现了明显不一致,模型在后续 token 上有更大机会"发现"矛盾并调整,而不像一次性输出答案那样无法回头看。
3.任务分解降低单步难度:复杂问题被拆成若干个更简单的子问题,每个子问题对模型来说都更容易独立解决,这本质上是把"一步登天"变成"拾级而上"。

思维链最初只是一种提示词技巧(在提示里加一句"请一步步思考",英文常见的说法是 Let's think step by step),后来的研究发现,只要模型规模足够大,这种简单的提示改动就能在数学、常识推理等基准测试上带来大幅提升,几乎是"零成本"的能力释放。这也是它被称为"涌现能力"的原因之一——在小模型上效果不明显,但在足够大的模型上会突然变得显著。

🐢 快思考与慢思考:系统 1 与系统 2

心理学家丹尼尔·卡尼曼在《思考,快与慢》中提出,人类大脑存在两套思维系统:

系统 1(快思考):直觉式、自动化、几乎不耗费精力,比如看到"2+2="脱口而出"4"。
系统 2(慢思考):需要主动投入注意力,进行有意识的分析、推演和校验,比如心算"37 × 24"或者证明一道几何题。

这个类比很适合用来理解普通对话模型和推理模型的差别:

普通对话模型更接近系统 1。它们经过预训练和指令微调后,倾向于用一次前向传播直接生成看起来"通顺、自信"的答案,回复速度快、成本低,适合闲聊、简单问答、文本改写等大多数日常场景。但一旦遇到需要多步演绎的难题,"脱口而出"就容易出现似是而非的错误——答案读起来很有道理,实际上逻辑链条是断的。
推理模型则更接近系统 2。它们在给出最终回复之前,会先生成一段(有时相当长的)内部推理文本,反复审视问题的条件、尝试不同解法、检查中间结果是否自洽,出现矛盾时会主动回退重新推导,最后才"收敛"到一个答案。这个过程更像人在草稿纸上演算,而不是张口就来。

需要说明的是,"慢"不只是一个比喻——推理模型确实会消耗更多的响应时间和计算资源来生成这些中间推理内容,某些较难的问题甚至可能思考几十秒到几分钟。这是一种主动的取舍:用响应延迟和算力成本,换取答案正确率和任务完成质量的提升。对时间不敏感、正确性要求高的场景(数学竞赛题、复杂代码重构、多步骤规划)非常划算;而对需要即时反馈的场景(客服聊天、简单查询)则未必是最优选择,这也是为什么现在很多产品会让用户在"快速模式"和"深度思考模式"之间自行切换。

🚀 从 o1 到 DeepSeek-R1:推理能力如何被训练出来

思维链提示虽然有效,但它依赖用户在提示词里"手动引导",模型本身并没有被专门训练成一个擅长长链条推理的系统,推理质量也参差不齐——有时想岔了就一路错到底,不会自我纠正。真正的转折点是 OpenAI 在 o1 系列模型上展示的路径:把"会不会做长链条推理"从提示词技巧变成模型自身通过训练获得的能力。

其核心思路可以概括为:

1.强化学习驱动,而非单纯监督微调:传统的指令微调是让模型模仿人类写好的标准答案,但人类很少会把自己所有的试错、回头检查的过程都写下来当作训练样本。o1 类模型采用强化学习的思路,对模型自己生成的推理过程按最终答案是否正确(或按过程是否合理)给予奖励信号,让模型在大量尝试中逐渐学会"什么样的思考方式更容易导向正确答案",包括何时该多验证一步、何时该换一种解法重试。
2.推理链是模型的原生行为,而不是提示词套出来的:经过这种训练后,模型不需要用户在提示里写"请一步步思考",也会默认先在内部生成一段较长的思考过程,再输出面向用户的最终回答。思考过程本身的长度和复杂度是模型根据问题难度自适应决定的——简单问题几乎不多想,难题则会展开成很长的推演。
3.DeepSeek-R1 的开源验证与技术路线公开:2025 年初,DeepSeek-R1 的发布把这条路径的关键细节以论文和开源权重的形式公开出来,其中一个引人关注的做法是:先用纯强化学习(不依赖大量人工标注的思维链数据)在基础模型上直接训练出具备推理能力的雏形模型,观察到模型会自发学会拉长推理过程、进行自我检查甚至"顿悟"式的纠错行为;随后再结合少量高质量的冷启动数据和多阶段训练进一步稳定和优化输出的可读性与语言一致性。这一路线证明了推理能力可以在相对可控的成本下、通过强化学习被系统性地"训练"出来,而不再是只有少数闭源大厂才能复现的黑箱能力,也带动了后续一大批开源推理模型的跟进。

从 o1 到 DeepSeek-R1,一个共同的技术共识逐渐清晰:长而有效的思维链不是提示词工程的产物,而是可以通过强化学习作为模型的内在能力训练出来的,模型学会的不只是"多写字",而是"在多写的过程中真正做对更多验证、回退和修正"。

📈 测试时计算:新的 Scaling 维度

在推理模型出现之前,提升大模型智力水平的主要手段是"训练时 Scaling":加大模型参数量、加大预训练数据量、加大训练算力投入,这条路径在过去几年支撑了模型能力的持续跃升,但边际成本越来越高,单纯堆参数带来的收益也在放缓。

推理模型的兴起揭示了另一条此前被低估的路径——测试时计算(test-time compute):在模型训练完成、参数固定之后,通过在推理(也就是回答问题)阶段投入更多计算量,同样可以换来更好的输出质量。常见的具体做法包括:

生成更长的思维链:允许模型在给出最终答案前展开更充分的中间推理,思考步骤越完整,越不容易漏掉关键条件或计算错误。
多次采样再投票(Self-Consistency / Best-of-N):对同一个问题让模型独立生成多条不同的推理路径和答案,再通过多数投票或额外的打分模型挑出最可靠的一个,用"多算几遍取共识"来抵消单次采样的随机性和偶然错误。
搜索与回溯:把推理过程建模成一棵可以分叉、评估、剪枝的搜索树,在多个候选思路之间比较优劣,或者在发现某条路径走不通时主动回退,尝试另一种解法。

这条路径带来的启示是:模型的"实际智力表现"并不完全由训练阶段固化的参数量决定,还取决于推理阶段愿意花多少计算去"想"。同样一个模型,只允许它快速给出一次性答案,和允许它反复推演、多路径验证后再作答,二者在困难任务上的正确率可能有天壤之别。这也解释了为什么现在很多产品会提供"慢思考"或"深度推理"开关——本质上是把测试时计算量作为一个可以按需调节的旋钮,让用户在响应速度和答案质量之间自行取舍。

对使用者而言,理解测试时计算的意义在于:面对确实需要严谨推理的任务(复杂数学、多步骤代码逻辑、需要权衡多个约束条件的规划问题),主动选择支持深度推理的模型或模式,并给予足够的等待时间,往往比在普通快思考模型上反复用提示词技巧"哄"出更好答案更有效;而对于简单直接的任务,继续使用响应更快的常规模型则是更合理的成本选择。

✍️ 小结

思维链把"直接给答案"变成"先展开推理再给答案",本质上是让模型的计算过程从一个 token 的瞬间判断,延展成一段可追溯、可自我检查的推理轨迹;快思考与慢思考的类比说明了普通对话模型与推理模型在设计目标上的根本差异;从 o1 到 DeepSeek-R1 的技术演进证明了这种"慢思考"能力可以通过强化学习被系统性地训练进模型本身,而不再依赖提示词的临时引导;测试时计算则揭示了一条与"堆参数"并行的新扩展路径——用推理阶段的算力投入换取更高的智力表现。这三者共同构成了当前推理模型技术栈的核心图景,也是理解为何近两年模型在复杂推理任务上突飞猛进的关键线索。