DeepSeek-R1、OpenAI o3-mini与谷歌Gemini 2.0 Flash Thinking这三大模型,通过"推理架构"将大语言模型的能力推向了新高度。它们标志着人工智能领域正经历一场根本性变革——从依赖训练资源扩展转向测试阶段计算能力的突破。
本文将通过40余幅定制可视化图表,带您深入理解推理型大语言模型的核心原理、测试时计算机制,并重点剖析DeepSeek-R1的技术突破。我们将循序渐进地解析这些概念,助您建立对这一技术革命的直观认知。
相较于传统模型,推理型大语言模型在回答问题前会将问题拆解为更小的推理步骤(即思维链过程)。这种结构化思考方式让模型不再机械输出答案,而是学会"如何思考"。
那么,"思考过程"、"推理步骤"或"思维链"实际上是什么意思呢?虽然学术界仍在探讨大语言模型是否具备人类式思维¹,但这些推理步骤通过结构化拆解显著提升了模型的问题解决能力。
本质上,这类模型的学习目标发生了根本转变:从单纯学习"回答内容"进阶到掌握"思考方法"。为了理解推理型大语言模型是如何创建的,我们首先探讨从专注于扩展训练(训练时计算)到推理(测试时计算)的范式转变。
截至2024年上半年,提升模型性能主要依赖三大要素:
这些统称为"训练时计算",其核心逻辑是"数据即AI的化石燃料"。但正如石油开采会遭遇瓶颈,这种范式也面临边际效益递减的困境。
训练时计算可能包括训练期间以及微调期间所需的计算能力。
这些一直是提高大语言模型性能的主要关注点。
扩展定律的启示
模型规模(通过计算能力、数据集大小和模型大小)如何与模型性能相关联,是通过各种扩展法则进行研究的。
这些是所谓的"幂律",其中一个变量(如计算能力)的增加会导致另一个变量(如性能)的成比例变化。
这些通常在对数-对数尺度上显示(导致直线),以展示计算能力的大幅增加。最著名的是"Kaplan"²和"Chinchilla"³扩展法则。这些法则或多或少地表明,模型的性能将随着更多的计算能力、token和参数而提高。
"神经语言模型的扩展法则"论文的注释图。它展示了性能如何随着不同的计算度量(更长的训练、数据集大小和参数大小)而增加。
它们表明,这三个因素必须协同扩展才能获得最佳性能。Kaplan的扩展法则指出,扩展模型大小通常比扩展数据更有效(在固定计算能力的情况下)。相比之下,Chinchilla扩展法则建议模型大小和数据同等重要。然而,在2024年期间,计算能力、数据集大小和模型参数都稳步增长,但收益显示出递减回报。
就像
这些幂律一样,随着规模扩大,收益递减。这引发了一个问题:"我们是否已经触及了瓶颈?"
当训练资源竞赛陷入瓶颈,行业目光转向"测试时计算"——让模型在推理阶段进行深度思考。这种范式突破的核心在于:允许模型通过生成更多中间推理步骤来提升答案质量。
对于非推理型模型,它通常只会输出答案并跳过任何"推理"步骤:
而推理型模型则会使用更多的token通过系统化的"思考"过程推导出答案:
这个想法是,大语言模型必须花费资源(如VRAM计算能力)来创建答案。然而,如果所有计算能力都用于生成答案,那么这有点低效!相反,通过提前创建包含额外信息、关系和新思想的更多token,模型花费更多计算能力来生成最终答案。
与训练时计算相比,测试时计算的扩展法则相对较新。值得注意的是两个有趣的来源,它们将测试时计算扩展与训练时计算相关联。
首先,OpenAI的一篇文章展示了测试时计算可能实际上遵循与扩展训练时计算相同的趋势。
来自"使用大语言模型学习推理"的注释图。添加了红色虚线以演示OpenAI如何建议新范式可能是测试时计算。
因此,他们声称可能会出现向扩展测试时计算的范式转变,因为它仍然是一个新领域。其次,一篇名为"使用棋盘游戏扩展扩展法则"⁴的有趣论文,探讨了AlphaZero并将其训练到各种程度的计算能力以玩Hex游戏。
来自"使用棋盘游戏扩展扩展法则"的注释图。它展示了他们如何构建不同程度的训练时计算和测试时计算。
他们的结果表明,训练时计算和测试时计算密切相关。每条虚线展示了达到特定ELO分数所需的最小计算能力。
来自"使用棋盘游戏扩展扩展法则"的注释图。它展示了训练时计算和测试时计算之间的关系。
随着测试时计算像训练时计算一样扩展,正在出现一种向使用更多测试时计算的"推理"模型的范式转变。通过这种范式转变,不再仅关注训练时计算(预训练和微调),这些"推理"模型转而平衡训练和推理。
测试时计算甚至可以在长度上扩展:
长度扩展是我们在深入研究DeepSeek-R1时也将探索的内容!
推理型模型如DeepSeek R-1和OpenAI o1的惊人成功表明,除了简单地思考"更长时间"外,还有更多技术。
正如我们将探索的,测试时计算可以是许多不同的东西,包括思维链、修改答案、回溯、采样等。
这些大致可以分为两类⁵:
-
搜索对验证器(采样生成并选择最佳答案)
-
修改提议分布(训练"思考"过程)
因此,搜索对验证器是以输出为中心的,而修改提议分布是以输入为中心的。
我们将探索两种类型的验证器:
顾名思义,ORM只判断结果,不关心底层过程:
相比之下,PRM也判断导致结果的过程("推理"):
为了使这些推理步骤更加明确:
注意步骤2是一个糟糕的推理步骤,被PRM评分较低!
现在您对ORM与PRM有了很好的理解,让我们探索它们如何应用于各种验证技术!
测试时计算的第一个主要类别是搜索对验证器。这通常涉及两个步骤。
首先,创建多个推理过程和答案样本。
其次,验证器(奖励模型)对生成的输出进行评分。
验证器通常是一个大语言模型,经过微调用于判断结果(ORM)或过程(PRM)。
使用验证器的一个主要优势是,不需要重新训练或微调用于回答问题的大语言模型。
多数投票
最直接的方法实际上不是使用奖励模型或验证器,而是执行多数投票。
我们让模型生成多个答案,生成最频繁的答案将作为最终答案。
这种方法也称为自一致性⁶,作为强调需要生成多个答案和推理步骤的方式。
最佳N个样本
涉及验证器的第一种方法称为最佳N个样本。该技术生成N个样本,然后使用验证器(结果奖励模型)来判断每个答案:
首先,大语言模型(通常称为提议者)使用高温度或变化的温度生成多个答案。
其次,每个答案通过输出奖励模型(ORM)并根据答案质量得分。选择得分最高的答案:
除了判断答案外,推理过程也可能由过程奖励模型(PRM)判断,评估每个推理步骤的质量。它将选择总权重最高的候选项:
对于这两种验证器类型,我们也可以通过RM对每个答案候选项加权,并选择总权重最高的一个。这称为加权最佳N个样本:
带过程奖励模型的束搜索
生成答案和中间步骤的过程可以通过束搜索进一步扩展。通过束搜索,多个推理步骤被采样,每个都由PRM判断(类似于思维树⁷)。在整个过程中跟踪前3个"束"(得分最高的路径)。
这种方法允许快速停止不会结果丰硕的"推理"路径(被PRM评分较低)。
然后使用我们之前探索的最佳N个方法对结果答案进行加权。
蒙特卡罗树搜索
使树搜索更高效的一种很好的技术称为蒙特卡罗树搜索。它包括四个步骤:
-
选择(基于预定公式选择给定叶子)
-
扩展(创建额外节点)
-
展开(随机创建新节点直到达到终点)
-
反向传播(基于输出更新父节点得分)
这些步骤的主要目标是继续扩展最佳推理步骤,同时探索其他路径。
因此,它是探索和利用之间的平衡。节点如何评分和选择的例子如下:
因此,当我们选择一个新的推理步骤来探索时,它不必是迄今为止表现最好的路径。使用这种类型的公式,我们首先选择一个节点(推理步骤)并通过生成新的推理步骤来扩展它。与之前一样,这可以通过合理高且变化的温度值来完成: