文章详细总结了李宏毅教授 2025 年《生成式 AI 时代下的机器学习》课程中关于如何让大模型进行“深度思考”的第七讲内容。首先定义了模型“深度思考”并非意识,而是通过生成包含自我验证、探索和规划的详细文本(内心戏)来提升解决复杂问题的能力,其本质是“测试时计算”(Testing Time Compute)。文章系统介绍了打造深度思考模型的四大核心方法:无需微调的“高级指令与提示”(Supervised CoT)和“设计推理工作流”(如多次尝试多数投票、验证器、束搜索);以及需要微调的“模仿学习”(通过高质量推理数据 SFT,包括错误路径和知识蒸馏)和“强化学习”(以结果为导向,通过奖励机制探索推理模式)。最后,以 DeepSeek-R1 的复杂诞生之路为案例,阐释了强化学习与模仿学习、人工润色、工作流等多种方法迭代融合的重要性。文章也指出了当前模型“过度思考”的挑战,并展望了未来自适应推理的方向。

|导语
本期是李宏毅「生成式AI时代下的机器学习(2025)」系列课程第七讲《DeepSeek-R1 这类大型语言模型是如何进行「深度思考」(Reasoning)的?》的全程实录。课程将带您深入剖析大型语言模型进行「深度思考」(Reasoning)的内在机制,并系统性地揭示打造这类模型的四大核心路径。内容从剖析「测试时计算」(Testing Time Compute)这一核心理念入手,逐一拆解了从无需微调的思维链(CoT)与工作流设计,到需要微调的模仿学习与强化学习等多种技术,并最终以 DeepSeek-R1 的诞生过程为案例,看它如何通过多种方法的复杂融合,赋予模型解决复杂问题的强大推理能力。
|课程概览
一、核心问题:什么是模型的“深度思考”?
-
定义:这并非指模型拥有与人类同质的意识或思考,而是一种特定的行为模式:先生成一段包含自我验证、探索多种可能性、规划步骤的详细文本(内心戏),再输出最终答案。
-
基本原理:其本质是一种 “测试时计算”(Testing Time Compute),即在推理(Inference)阶段投入更多计算资源,以“长度换深度”,从而提升解决复杂问题的能力。这与AlphaGo在下棋时使用蒙特卡洛树搜索(MCTS)进行深度推演的理念一致。
二、打造深度思考模型的四种核心方法
课程将打造方法分为两大类,四种具体路径:
A. 无需微调模型的方法(适用于已有模型)
方法一:高级指令与提示 (Better CoT)
-
通过精心设计的提示词(Prompt),如“Let's think step by step”或更复杂的监督式思维链 (Supervised CoT),引导模型自主生成详细的思考和验算过程。此方法依赖模型本身强大的指令遵循能力。
方法二:设计推理工作流 (Workflow)
-
强制模型进行多路径探索,然后筛选出最佳答案。关键技术包括:
-
多次尝试 + 多数投票 (Majority Vote):让模型多次解答,选择出现频率最高的答案。
-
验证器 (Verifier) + 最佳选择 (Best-of-N):训练一个“裁判”模型来评估多个答案的质量,选出最好的一个。
-
束搜索 (Beam Search):在解题的每一步都保留N个最有可能的路径,逐步筛选,避免过早陷入错误路径。
B. 需要微调模型的方法(打造新模型)
方法三:模仿学习 (Imitation Learning)
-
核心是“教”模型如何思考。通过监督式微调,让模型学习包含“问题→高质量推理过程→答案”的范例。
-
挑战:高质量的推理数据从何而来?可通过知识蒸馏(让强模型生成)或“知错能改”的训练(故意包含错误路径和修正过程)来构建,让模型学会逆境翻盘。
方法四:强化学习 (Reinforcement Learning)
-
核心是“结果导向”。不关心推理过程是否优美,只根据最终答案的正确与否给予模型奖励或惩罚,让模型自行探索出最高效的、能导向正确答案的思考模式。这是DeepSeek-R1系列闻名的核心技术。
三、综合案例:DeepSeek-R1 的诞生之路
DeepSeek-R1并非单一方法的产物,而是上述所有方法的复杂融合:
1. 起点:先用强化学习训练出一个推理能力强但过程混乱的“野蛮”模型(R1-0)。
2. 提纯:让R1-0生成大量推理数据,再投入大量人力进行修改和润色。
3. 升华:用这些高质量数据进行模仿学习,并结合高级指令生成的数据,训练出更可控的模型。
4. 迭代:在上述基础上,再进行多轮的强化学习和模仿学习,并结合工作流的理念,最终得到成熟的DeepSeek-R1。
结论:这四种方法并非互斥,而是可以相辅相成、组合使用的。
四、总结与挑战
-
当前挑战:模型常常在简单问题上进行不必要的“过度思考”,浪费大量计算资源和时间。
-
未来方向:如何让模型学会自适应推理,即判断问题的难度,只在需要时才启动深度思考,实现计算效率和问题解决能力的平衡。
关注本公众号,后台回复【0720】获取第七讲完整PPT及视频资源
我们本周要讲的是会进行“深度思考”的大型语言模型。
这里的“深度思考”指的是现在一系列模型所展现出的一种特定行为。具有这种深度思考行为的模型包括:
-
ChatGPT的O系列
-
DeepSeek的R系列
-
Gemini的Flash Thinking
-
Claude 3.7 Sonnet的Extended Thinking Mode

所以,这已成为当前大型语言模型一个相当流行的能力。
深度思考行为的实例
以 DeepSeek-R1 为例,当你问它“1+1等于多少”时,它会回答“2”。但除了答案,还会出现一个可以展开的框,标记为“以深度思考”。
点开这个框,你会看到它的“内心小剧场”:
-
初步思考:“一个苹果加一个苹果,就是两个苹果,所以1+1等于2。”
-
自我质疑:“等一下,这会不会有什么陷阱?让我想想看,1+1会不一定等于2?比如说在二进制中,1+1等于10。”(我问这个问题时都没想到这点)
-
最终决策:“使用者只是写了1+1,没有提供额外的信息,他可能只是在测试我会不会想太多。所以,最终的答案是2。”
这些深度思考的语言模型,其特色就是会先给出一个很长的思考过程,最后再给出答案。通常,它会在思考过程前后加上<think>和</think>这样的标签,方便界面选择性地展示这部分内容。
在思考过程中,模型通常有几个行为:
-
验证(Verification): “Let me check the answer.” 检查自己刚才的答案是否正确。
-
探索(Exploration): 尝试思考其他的可能性。
-
规划(Planning): 规划解决问题的步骤。
这个思考过程很多时候也被称为推理(Reasoning)。
注意:Reasoning vs. Inference
需要区分两个词:
-
Reasoning (推理): 指模型在生成答案时,产生特别长的思考过程的这种行为。
-
Inference (推论): 在机器学习领域,通常指使用一个已经训练好的模型进行测试或应用的过程。
本课程中,我们把这种深度思考行为直接称为“推理(Reasoning)”,但这并不意味着其过程与人类的推理完全一样。

一、核心问题:什么是模型的“深度思考”?
核心概念:Testing Time Compute
这种推理行为是 Testing Time Compute 的一种,即在测试阶段投入更大的算力,以期获得更好的结果。为什么这会有用呢?我们之前提过一个概念:“深度不够,长度来凑”。
1. AlphaGo的启示
Testing Time Compute 并非全新概念。在AlphaGo中,除了训练时得到的 Policy Network 和 Value Network,在测试(实际下棋)时,它也进行了巨大的运算,即蒙特卡洛树搜索(Monte Carlo Tree Search, MCTS)。AlphaGo 会在“脑内”模拟多种下棋的可能性,预估不同位置的胜率,最后选择胜率最高的位置。

2. Test Time Scaling
这个概念进一步引申出Test Time Scaling:思考越多,结果往往越好。一篇早期的论文研究了棋类游戏,发现可以将算力投注在训练时(得到更好的Policy/Value Network),也可以投注在测试时(做更大规模的MCTS)。实验结果表明,投入少量算力在 Testing Time,就可以显著减少在 Training Time所需耗费的大量算力。

如今,这个概念在语言模型上被广泛应用:通过产生非常长的思考过程,让语言模型解决更难的问题。
二、打造深度思考模型的四种核心方法
接下来,我们探讨打造这类模型的四种主要方法。前两种无需微调模型参数,后两种则需要。
方法一:更好的思维链(Chain-of-Thought, CoT) - 无需微调
Chain-of-Thought(CoT)就是让模型先列出解题过程,再给出答案,这与深度思考模型的行为非常类似。
-
Few-shot CoT: 给模型提供几个“问题-解题过程-答案”的范例,让它学会这种模式。
-
Zero-shot CoT: 无需范例,直接用一句魔法指令,如“Let's think step by step”,模型就会自动列出思考过程。
现在的推理模型所做的,可以看作是长思维链(Long CoT)。要让模型产生更长的思考过程,只需在Prompt中给出更详细、更精确的指示,这种方法也称为Supervised CoT。

Supervised CoT 实例
我对GPT-4o下了一个复杂的Prompt,要求它:
-
深入解析题目,制定清晰的解题计划。
-
按部就班执行,每一步都列出子计划。
-
每一步执行后都进行多次验算。
-
考量所有可能的解法。
-
将思考过程放在
<think>和</think>标签之间。
问题:123 × 456 = ?
GPT-4o的回答展现了类似深度思考的行为:
-
题目分析与总计划: 将456拆解为400+50+6,分别与123相乘后求和。

-
验算计划:
-
用标准直式乘法验算。
-
估算答案的范围。
-
用Python验算(最后没做,属于幻觉)。
-
计算与验算:
-
它正确地用直式乘法算出了56088。
-
它估算了上下界,虽然方法有点奇怪,但结论是答案在合理范围内。
-
它尝试用交换律做第三次验算,但算到一半发现“无明确帮助,略过”,这反而体现了它知道何时放弃无效路径的智能。

注意:这种方法对模型能力要求较高,较弱的模型(如LLaMA 3)可能无法完全遵循复杂的指令。
方法二:提供推理的工作流程 - 无需微调
对于能力稍弱的模型,我们可以直接为其设定一个推理的工作流程,强制它进行多方尝试。
1. 多次独立尝试(Parallel Exploration)
就像“无限猴子定理”,让语言模型对同一个问题回答成千上万次,由于每次回答都有随机性,它总有机会产生出正确答案。

但问题是,如何从众多答案中选出正确的那一个?
-
多数投票(Majority Vote / Self-Consistency): 选择出现次数最多的答案。这是一个非常强大且难以超越的基准方法。

-
验证器(Verifier / Best-of-N): 训练一个模型(或直接用一个强大的语言模型)来评估每个答案的正确性,然后选择分数最高的那个答案(Best of N)。训练验证器的数据可以通过比较模型生成答案和标准答案来获得。

2. 逐层深入探索(Sequential & Step-by-step)

模型可以不是一次性生成完整答案,而是分步进行,并在每一步后进行验证。
-
过程验证器(Process Verifier): 这种验证器不需要看到最终答案,只需根据解题过程的一部分就能判断其正确性。
-
束搜索(Beam Search): 在每一步,生成多种可能的下一步,然后用过程验证器评估,只保留最好的N条路径继续探索,摒弃较差的路径。

实验证明:Hugging Face的一篇博客文章中的实验显示,使用 Beam Search 这种方法,一个1B参数的模型在数学问题上的表现,甚至可以超越一个8B参数的模型。这证明了好的推理流程可以极大地弥补模型规模的不足。其他更复杂的搜索算法,如A*、MCTS等,也都可以应用在此框架下。

方法三:模仿学习(Imitation Learning) - 需要微调
这种方法是直接教模型如何进行推理,可以看作是上周讲的“后训练(Post-training)”的特例。
核心思想:我们使用包含“问题-推理过程-答案”的训练数据,通过监督式微调(Supervised Fine-tuning),让模型学会不仅要输出正确答案,还要生成中间的推理过程。

挑战:如何获取带推理过程的训练数据?
通常我们只有问题和答案。一个可行的办法是:
1. 用一个强大的模型(如GPT-4)通过CoT提示生成推理过程。
2. 只保留那些最终答案正确的“问题-推理过程-答案”对,作为训练数据。
进阶思考:我们应该只教模型“完全正确”的推理路径吗?
不一定。如果模型只见过一帆风顺的正确推理,当它在实际应用中走错一步时,它将不知道如何纠正,只会硬着头皮错下去。
因此,我们需要教模型知错能改。
-
包含错误路径的训练数据: 一些研究如 String of Search 和 Journey Learning 提出,在构建训练数据时,应故意包含一些错误的探索路径和回溯修正的过程。例如,训练数据可以长这样:“尝试方法A -> 发现错误 -> 回溯 -> 尝试方法B -> 得到正确答案”。这样训练出的模型,才能学会“逆转胜”。

-
知识蒸馏(Knowledge Distillation): 一个更便捷的方法是,直接用一个已经具备深度思考能力的模型(如DeepSeek-R1)作为老师,生成大量的推理数据,然后让我们的目标模型去模仿学习。DeepSeek的论文也证明了这种方法的有效性,能将R1的推理能力蒸馏到更小的模型上。

方法四:以结果为导向学习(Reinforcement Learning) - 需要微调
这是以 DeepSeek-R1 系列闻名的做法,核心是使用强化学习(RL),以结果为导向来教模型推理。

核心思想:模型生成推理过程和最终答案。我们不关心推理过程本身写了什么,只看最终答案是否正确。
-
如果答案正确,模型获得正向奖励(Positive Reward)。
-
如果答案错误,模型获得负向奖励(Negative Reward)。
通过RL,模型会自己探索出那些更容易导向正确答案的推理模式。
三、综合案例:DeepSeek-R1 的诞生之路
DeepSeek-R1的打造过程极其复杂,融合了我们前面讨论的所有方法,并非单纯的RL。
1. R1-0的诞生 (纯RL): 他们先用RL在 DeepSeek V3 Base 模型上训练,奖励只基于答案正确性和格式(是否使用<think>标签)。这得到了一个能自主推理(甚至出现“Aha moment”)但推理过程混乱、难以阅读的 R1-0 模型。

2. R1的复杂打造流程:
-
步骤一 (模仿学习): 用R1-0生成推理数据,然后投入大量人力去修改和润色这些数据,使其变得清晰可读。同时,也用Supervised CoT等方法生成高质量数据。用这些数据通过模仿学习训练出模型A。
-
步骤二 (RL): 对模型A进行RL,得到模型B。这次的奖励除了正确率,还加入了一个“语言一致性”的奖励,避免推理过程中语言混杂。
-
步骤三 (模仿学习): 用模型B在更广泛的任务上生成了60万条推理数据,并用规则过滤掉质量差的。这些数据再混合20万条Self-Instruct数据,通过模仿学习训练出模型C。
-
步骤四 (最终RL): 对模型C进行最后一次RL,主要强化其安全性和帮助性,最终得到我们使用的 DeepSeek-R1。

关键洞察:
RL的成功很大程度上依赖于一个强大的基础模型。研究发现,DeepSeek V3 Base 在RL训练前,就已经具备了初步的、潜在的推理和自我怀疑能力(如“Wait, I'm overthinking”)。RL的作用是强化并激发了这些已有的能力。如果基础模型太弱,单纯用RL很难凭空创造出推理能力。
四、总结与挑战
深度思考模型最大的挑战之一是计算资源的浪费。有时模型会进行大量不必要的、冗余的思考。
实例:DeepSeek-R1 解答 123 × 456

它花了近一分钟的时间来解答这个问题。在算出正确答案56088之后,它仍不放心,进行了多轮、多种方式的反复验算:
-
用直式运算法验算。
-
用估算法(120×450)验算。
-
交换被乘数和乘数,拆解另一方再算一次。
-
心算一遍(既然心算能对,前面在做什么?)。
-
将两边数字同时拆解成多项式展开,再相加。
最后,它依依不舍地结束了计算。这其中大量的推理过程都是冗余的。如何让模型“把好钢用在刀刃上”,在需要时才进行深度思考,是我们下一堂课将要探讨的内容。
