为什么大模型需要“思考模式”?

本人并不是 AI 行业工作者,仅作为业余爱好者分析,欢迎纠错~

思考模式在生产环境是否有效?

自 deepseek-r1 问世之后的所有模型,思考模式是所有模型的标配

chatgpt 有四档思考模式:low medium high xhigh。high xhigh 的思考模式的思维链更长,写出的代码也很明显优于 low medium。deepseek v4 也推出了两档思考模式。

其实在以前没有"思考模式"之前,我们也会在 prompt 添加上:Let's Verify Step by Step。让模型一步步想清楚逻辑,答案往往也会更准确。(不过这种方式会将思考过程和答案混在一起,给人类阅读答案时带来额外的阅读负担,用户并不关心模型的思考过程)

目前已经有大量实践证明,开启思考模式理论上答案会更准确

思考模式是如何被训练出来的?

预训练

学习资料有:网页、书籍代码、论文、数学题、对话等等。预训练训练目标很简单:给定前文,预测下一个词。

例如:

css 复制代码
如果 A>B,B>C,那么 A ?

模型会逐渐学会:

css 复制代码
A>C

在训练过程中,模型不仅仅记住答案,还会隐式学习文本里的"结构" 。比如逻辑链、数学证明、程序执行顺序、因果关系、人类推理格式等等。于是模型内部会形成一种 "生成中间状态"的能力这是 reasoning 的最原始来源

Chain-of-Thought

研究者后来发现,如果让模型直接输出答案:

ini 复制代码
Q: 17×24=?
A: 408

效果一般。但如果训练数据变成:

ini 复制代码
17×24
=17×20 + 17×4
=340 + 68
=408

模型推理能力会明显提升。这就叫做 CoT------把中间推导过程显式写出来。

"思考模型"的能力,其实是学会了"生成推理轨迹",而不仅是"预测答案"。

其中,数学和代码是最典型的具备逻辑的数据。通过多掺入点数学和代码数据,可以泛化到其他领域(可泛化的"世界结构表示")。

RLHF

RLHF(Reinforcement Learning from Human Feedback)并不仅仅是为了"让模型更礼貌",同时也让模型拥有更清晰的推导、更可靠的步骤、更少逻辑跳跃、更符合人类偏好的解释

在训练思考模式的时候,也会检查模型是否输出了特殊 token ,用来"结构约束"------让模型和人类区分思考过程和真正的回答结果

最终模型输出的效果类似这样:

xml 复制代码
<think>
推理
</think>

<answer>
最终答案
</answer>

deepseek-r1 是怎么通过 RL 提高数学能力的?

针对数学和代码这类"可验证任务"(verifiable tasks),核心奖励基本是 结果导向(outcome reward) ,不是人工逐步检查 CoT 推理过程。也就是说,不关心过程是否正确,只关心答案是否正确。比如数学题:

  • 模型的最终答案和标准答案一致,+1 分
  • 不一致,0 分
  • 具体推理过程是不是正确的?并不关心

用伪代码表示奖励函数:

csharp 复制代码
def reward(problem, model_output, gt_answer):
    reward = 0

    # 1. 是否有<think>格式
    if has_think_tags(model_output):
        reward += format_reward

    # 2. 提取最终答案
    pred_answer = extract_answer(model_output)

    # 3. 判定答案是否正确
    if is_correct(pred_answer, gt_answer):
        reward += accuracy_reward

    return reward

虽然主要奖励来自最终答案,但训练过程中会出现一种"隐式过程优化": "好的过程"因为更容易得到正确结果,思考过程被间接强化了

不过在正式版 R1 中,又额外进行了冷启动 SFT,再 RL,再 alignment。避免输出混乱,中文混杂,重复输出等问题。

为什么数学题"不检查过程"?

如果人工去标注"正确推理过程",模型可能会模仿固定模板、过拟合人类写、缺乏探索。

通过以结果为导向,让模型自己发现更高效的推理、非人类风格策略(人类的思考方式不一定最适合模型)、自我验证机制

思考模式为什么有效?

大模型的 "思考"本质上是基于海量数据训练的统计概率预测 ,它并不是像人类那样真正理解逻辑,而是通过数学计算不断推测"下一个 token 是什么"。

这里从 Test-time Compute、scratchpad、attention、概率论角度分析。

Test-time Compute

"Test-time Compute"是目前大模型领域从"快思考"转向"慢思考"的关键技术突破。直译是推理时计算 ,是指:大模型在接收用户输入后、生成最终输出之前,主动消耗额外的计算资源来"思考"的过程

对于一个模型所需要投入的资源,粗略分为两个方向:

  • 训练期投入:更大模型 + 更多训练数据 + 更久训练
  • 推理期投入:模型已经训练好了,但回答时给它更多计算资源

也就是模型在"回答问题的时候"额外花多少算力,让模型在回答时"多想一会" 。现实中的复杂问题,往往需要"试错、回溯、验证"才能解决,而 Test-time Compute 让你在推理阶段(输出最终答案前)低成本地完成这些试错。

普通模型更像这样:

复制代码
问题 → 直接生成答案

带 Test-Time Compute 的系统更像这样:

复制代码
问题
→ 先拆题
→ 算一遍
→ 检查有没有错
→ 必要时换一种方法再算
→ 最后输出答案

以炒菜为例

  • 没有 Test-time Compute(快炒模式):你凭"经验"直接放一勺盐,炒两下就出锅。结果要么淡了,要么咸了。因为你没有在"放盐到出锅"之间投入任何验证步骤。

  • 有 Test-time Compute(边炒边尝):你放半勺盐 → 尝一口(验证)→ 觉得淡 → 再加四分之一勺 → 再尝(再次验证)→ 合适了 → 出锅。

    • 这里的 "尝"和"微调" 就是 Test-time Compute。它消耗了额外的时间(延迟)和一点精力(计算资源),但换来了确定的结果。

Test-time Compute 具体如何在思考模式中体现?

通常通过以下一种或几种技术实现:

  • 思维链(Chain-of-Thought, CoT):把大问题拆成一步一步的小推理。

    • 拼装一套复杂乐高。你不会直接拿一堆零件乱拼。而是看说明书,一步步来:"第一步:找到红色 2×4 砖块 → 第二步:将其固定在底板左下角 → 第三步:在它右边放蓝色 1×2 砖块 ......"
  • 自洽性(Self-Consistency):同一问题,用多种不同思路各算一遍,看哪个答案出现次数最多。

    • 三个同学各自独立做一遍:同学 A 用代数法 → 得出答案 42;同学 B 画图求解 → 也得出 42;同学 C 用特殊值代入 → 得出 42。三个人方法不同但答案一致,你就能非常确信答案是 42。
  • 搜索与回溯(Search & Backtrack):探索一条路走几步,感觉不对就退回上一个岔路口,换条路再试。

    • 走一个陌生的植物迷宫。你走到一个三岔口,先选左边那条路。走了 20 米发现是死胡同,于是退回那个三岔口(回溯),改选中间的路。又走 30 米发现一个分叉,先试右边......最终找到出口。
  • 自我纠正(Self-Correction / Self-Refinement):先做一个初步答案,然后换自己当"考官"挑错,再根据错误修改。

    • 写一封重要的投诉邮件。你先快速写出初稿。然后你换一个身份(像一位严格的编辑)逐句检查:"这里语气太冲 → 改柔和一点"、"这个事实写错了 → 纠正日期"。修改完再检查一遍,最后才点发送。
  • 使用外部验证器或工具:在思考的过程中调用代码解释器、计算器、搜索引擎等外部工具。

    • 解数学方程时,模型可以写 Python 代码并运行来计算结果。
    • 对于时事新闻,思考过程会调用网络搜索去调研最新信息。

现在你在跟大模型聊天的时候,打开思考模式看看思考过程,看看是不是有以上说的这些行为?

不过需要注意的是,思考模式推理的 token 肯定不是越多越好,需要避免模型为了思考而思考。思考需要点到为止。

scratchpad

我们做计算题 57*67=?,绝大部分人是没法一眼就看出答案。而是在草稿写个列式计算,一步步算完后才得到 3819。从结果来看,我们在试卷的填空题填入了 3819,但如果没有中间打草稿的过程,如果我们能直接一眼得到答案,要么之前背过答案(比如模型 SFT 时出现过),要么就是靠猜(模型 zero-shot 预测下一个 token)。

思考模式的过程,其实就是模型自己的"草稿本":把中间想法写成文字,模型可以通过注意力机制回头读取,可被注意力反复读写。

为什么模型也需要打草稿?

  • 减少 工作记忆 负担:模型在生成最终答案时,如果没有中间步骤,就像让你心算"57*67",需要把大量中间结果记在脑子里,很容易出错。而草稿本(即模型生成的中间 token)允许它把中间结果写下来,然后像看题一样"看"到这些中间结果,再基于它们继续计算。这相当于扩展了模型非常有限的有效工作记忆。

  • 把一步大跳变成多步小走:复杂的逻辑推理往往需要多个推理步骤。直接猜答案相当于要模型从输入直接跳到输出,概率很低。但有了"草稿本",模型先写"第一步:......",再写"第二步:......",每一步都是在前一步基础上的微小概率预测,成功率高得多。

  • 错误可追溯、可修正:草稿本上写错了,你可以划掉重来。在"思维树"这类技术中,模型会生成多个不同的"草稿分支",自我评估哪个分支更合理,然后沿着合理分支继续写。比如我们可以看到模型思考的过程中,看到类似这样:"等等,这里好像不对","让我再确认一下这个事实"。模型会在推理的过程中自我反思。

attention

模型凭什么知道"首都是"后面应该接"北京"而不是"烤鸭"?这归功于注意力机制(Attention Mechanism)。

当模型处理一个词时,它会评估输入序列中所有其他词与当前词的相关性,并给这些词分配不同的"权重"(注意力分数) 。相关性高的词,贡献更大。

举个例子

处理"首都是"这个词时,模型会高度关注前面的"中国",而忽略其他无关信息。在处理长句子时,它能"记住"很远地方的"关键信息",比如"我的曾祖父的堂兄的小学同学说......他其实是",模型能通过注意力把"他"和"我的曾祖父的堂兄的"关联起来。

概率论角度

假设直接一步从 A 到 X 的成功概率是 P(A→X)。这要求模型同时做对多个子任务,每个子任务有小概率出错,导致 P 往往较低。

而在思维链中,模型分解为多个简单步骤:A→B, B→C, C→D, D→E, E→X。每个简单步骤的成功概率很高,比如 0.95。那么整个链成功的概率大约是 0.95^5 ≈ 0.77。

虽然单看 0.77 低于 0.95,但关键在于:直接一步 A→X 的实际成功概率往往远低于 0.77,因为模型很难在一个"跳步"中完美地隐式执行所有子任务

也可以看作是贝叶斯定理。在推理中,我们不断获得新证据,每次都将当前的后验作为下一步的先验,再与新证据结合,得到更新的后验

为什么思考模式使用的是"人类语言"?

  • 训练数据决定:模型从海量数学题、代码、人类推理文本中,学会了用语言作为推理介质。

  • 语言是天然计算格式:离散、可组合、可序列化、完美适配 Transformer 的注意力机制。

  • 给模型自己用:模型并没有"记住"自己想过什么,每次生成只依赖当前输入序列。显式写出 = 让模型看到过去的自己,提供稳定可复用的上下文。

  • 给人看:可解释性、调试。

思考模式是在模拟人类思考吗?

副产品,而非本质。

之所以像人类一样思考,是因为训练数据来自人类,且语言刚好是 Transformer 原生的计算格式。

大模型是否可以使用"非人类语言"进行思考?

答案是肯定的,大模型的本质是预测下一个 token,跟具体什么语言无关。

具体可以看 IBM 的这篇《Unnatural Languages Are Not Bugs but Features for LLMs》

这项研究探讨的问题是:对人类而言像"天书"一样的语言,是否对 大模型 来说反而是个"宝藏"?

研究团队发现,大语言模型不仅能处理,还能从"非自然语言"中学习。"非自然语言"指的是那些对人类来说毫无意义、像乱码一样的文本序列。

不过非人类语言的数据还要自己构造(目前模型无法自发自己创造出,更适合它自己思考的语言),而人类语言数据到处都是。使用非人类语言没有收益,甚至对性能是负提升,对思考模式的调试也带来不便(人类不可读)

什么时候思考模式反而没用?

对于极简单的问题(如"1+1=?"),直接预测已经接近 100% 准确(因为 SFT 已经背过答案了),加入思考步骤只是浪费计算资源。

对于纯记忆类问题(如"法国的首都是?"),思考步骤不会提供额外好处,因为不需要推理。

对于模型根本不具备相关知识的问题(如"我昨天穿的袜子颜色"),思考步骤也无法变出正确答案。

总结

  • 大模型 并不像人类那样真正地"思考" 。它没有意识、情感或目标,它的"思考"本质上是基于数学和统计学的模式匹配与概率计算
  • 预训练阶段从海量文本(含数学、代码)隐式学习推理结构,涌现能力使大模型自发产生思维链;RLHF 进一步强化有效推理路径。
  • 思考模式通过让模型在生成答案前"多想一会儿" (如 CoT、自洽性、回溯等),能显著提升复杂问题的准确率,尤其在数学、代码等逻辑性强的任务上。
  • 思考的过程使用的是人类语言。因为 训练数据 以自然语言为主,且语言便于注意力读写、可解释、易调试;虽然理论上可用"非人类语言"思考,但实际无收益且难以调试。
相关推荐
摄影图7 小时前
AI设计实用图片素材 适配多元创作推广需求
人工智能·科技·智能手机·aigc·贴图
92year7 小时前
用 Crawl4AI 从网页里抠数据:CSS、XPath、LLM 三条路线实测
aigc
qddpro7 小时前
四、Agent 评估与可观测性:LangSmith 与客服 A/B 测试
aigc
Len037 小时前
AI 团队不是科幻:STATE.yaml 自主项目管理深度报告
aigc
AINative软件工程7 小时前
OpenClaw 上下文瘦身:3 个实验
ai编程
冰凌时空7 小时前
30 Apps 第 2 天:待办清单 App —— MVVM + Combine 响应式 UI
ios·openai·ai编程
冰凌时空7 小时前
手写 Swift 运行时:objc_msgSend 的汇编级解析
ios·openai·ai编程
子兮曰7 小时前
AI Coding 为什么全选了 TUI?从 Claude Code 到 Codex CLI,终端架构的底层逻辑
前端·后端·ai编程
JiaHao汤7 小时前
深入理解 Claude Code 规则体系.md
ai编程