
深入解析:如何通过“思考”令大型语言模型(llms)更智能!
在2024年9月,开放AI发布了其o1模型
开放AI发布了其o1模型,该模型经过大规模强化学习训练,使其具备“高级推理”能力。不幸的是,关于他们是如何实现这一点的细节从未公开分享。然而,今天,深度探索(一个AI研究实验室)复制了这种推理行为,并发布了他们方法的完整技术细节。在本文中,我将讨论这一创新背后的关键思想,并描述它们在背后是如何工作的。
一台思考的笔记本电脑。
开放AI的o1模型标志着训练大语言模型 (LLMs) 的新范式。它引入了所谓的**“思考”令牌**,使模型能够使用一种草稿纸来思考问题和用户查询。
o1的主要见解是,随着测试时间计算的增加,性能得到了提升。这只是一个花哨的说法,意味着模型生成的令牌越多,响应越好。下面的图表很好地捕捉了这一点,摘自开放AI的博客。
AIME的准确性分别与训练时间计算和测试时间计算的缩放。图表重新说明自[1]。
在上面的图表中,y轴是模型在AIME(数学问题)上的表现,而x轴是各种计算时间。左侧图表描绘了著名的神经缩放法则,这启动了2023年的LLM热潮。换句话说,模型被_训练_的时间越长(即训练时间计算),其性能越好。
然而,在右侧,我们看到了一个新的缩放法则。在这里,模型生成的_令牌_越多(即测试时间计算),其性能越好。
“思考”令牌
o1的一个关键特性是其所谓的**“思考”令牌**。这些是在后训练期间引入的特殊令牌,用于界定模型的思维链 (CoT) 推理(即思考问题)。这些特殊令牌的重要性体现在两个方面。
第一,它们清楚地划分了模型“思考”的开始和结束,以便在启动用户界面时能够轻松解析。第二,它生成了一个人类可解释的输出,展示模型如何“思考”问题。
尽管开放AI披露他们使用了强化学习来产生这种能力,但具体的_如何_做的细节并没有被分享。然而,今天,得益于深度探索最近的一篇出版物,我们对这一点有了相当清晰的了解。
深度探索的论文
在2025年1月,深度探索发布了“深度探索-R1: 通过强化学习激励大语言模型中的推理能力”[2]。尽管这篇论文引发了一些混乱,但其核心贡献是揭示了o1的秘密。
它介绍了两个模型:深度探索-R1-零和深度探索-R1。前者仅在强化学习(RL)上进行训练,而后者则是监督微调(SFT)和RL的混合体。
尽管头条新闻(和论文标题)都关于深度探索-R1,但前者模型很重要,因为一,它为R1生成了训练数据,二,它展示了未被教授给模型的显著涌现推理能力。
换句话说,R1-零仅通过RL 发现 思维链和测试时间计算的缩放! 让我们讨论它是如何工作的。
深度探索-R1-零 (仅限 RL)
强化学习 (RL) 是一种机器学习方法,其中,模型不是在明确的示例上进行训练,而是通过试错学习 [3]。它通过向与模型参数没有明确功能关系的模型传递奖励信号来工作。
这类似于我们在现实世界中常常学习的方式。例如,如果我申请了一份工作但没有得到回应,我必须弄清楚我做错了什么以及如何改进。这与监督学习形成对比,在这个类比中,监督学习就像招聘人员给我具体的反馈,告诉我我做错了什么以及如何改进。
虽然使用 RL 来训练 R1-Zero 包含许多技术细节,但我想强调 3 个关键点:提示模板、奖励信号和 GRPO(组相对策略优化)。
1) 提示模板
用于训练的模板如下,其中{_prompt}_被替换为来自(可能是)复杂数学、编码和逻辑问题的数据集中的一个问题。注意简单提示中包含的和标签。
用户与助手之间的对话。用户提出一个问题,助手解决它。助手首先在内心思考推理过程,然后提供给用户答案。推理过程和答案分别用<think>
和 <answer>
标签括起来,即<think>
推理过程在这里 </think>
<answer>
答案在这里 </answer>
。用户: {prompt}。助手:
这里突出的一个特点是最小化和放松的提示策略。这是深度探索故意选择的,以避免模型响应的偏见并观察其在强化学习中的自然演变。
2) 奖励信号
RL 奖励有两个组成部分:准确性和格式奖励。由于训练数据集由具有明确正确答案的问题组成,因此使用简单的基于规则的策略来评估响应的准确性。同样,使用基于规则的格式奖励来确保在思考标签之间生成推理令牌。
作者指出没有使用神经奖励模型(即奖励不是通过神经网络计算的),因为这些可能容易受到奖励黑客攻击。换句话说,LLM 学会了如何_欺骗_奖励模型以最大化奖励同时降低下游性能。
这就像人类寻找方法来利用任何激励结构以最大化个人收益,同时放弃激励的原始意图。这突显了产生良好奖励的困难(无论是对人类还是计算机)。
3) GRPO (组相对策略优化)
最后一个细节是如何将奖励转化为模型参数更新。这个部分相当技术性,所以开明的读者可以随意跳过。
GRPO 是一种 结合一系列响应来更新模型参数的强化学习方法。为了鼓励稳定的训练,作者还在损失函数中加入了裁剪和KL散度正则化项。裁剪确保优化步骤不会过大,而正则化确保模型预测不会过于突变。
这里是完整的损失函数以及一些(希望是)有用的注释。
带注释的GRPO损失函数。图像由作者提供。
结果(涌现能力)
R1-Zero 最显著的结果是,尽管其指导极少,但它发展出我们可能会认同的有效推理策略。
例如,它通过 强化学习隐式地学习以通过测试时间计算改善响应(回想一下 o1 的早期见解)。这在 R1 论文中的图表下方得以体现 [2]。
平均响应长度随着额外训练(和性能的提高)而增加。来自深度探索 R1 论文的截图 [2]。
另一个显著的能力是以一种诡异的人类内心独白反思过去的响应。以下是来自 R1-Zero 的一个示例。注意在生成最终答案之前的 长思维链和额外的验证步骤(我省略了一些部分,因为响应非常长)。
用户提示:如果我花 1.5 小时写一个代码库,而我的实习生花 8 小时。我们两个一起写 3 个代码库需要多长时间?
<think> 要解决你和你的实习生一起写三个代码库需要多长时间,我们首先需要找出你们每个人每小时可以单独写多少个代码库。
(长思维链)...
因此,你和你的实习生一起写三个代码库大约需要 3.7895 小时。
为了确保一切都合理,让我们将答案四舍五入到合理的小数位数(例如,四舍五入到两位小数):
t ≈ 3.79 小时
然而,如果你需要一个更“人性化”的答案,你可以将小数部分转换为分钟。因为 0.7895 小时是:
0.7895 × 60 分钟 ≈ 47.37 分钟
所以,3.7895 小时大约是 3 小时 47.37 分钟(或者如果四舍五入到最接近的分钟,大约是 3 小时 47 分钟)。
## 验证(可选的验证步骤)
为了验证,我们来检查在 t = 72/19 小时内你可以单独写多少个代码库:
你在 72/19 小时内的工作
= (2/3 个代码库每小时) × (72/19 小时)
= (2 × 72) / (3 × 19)
= 144 / 57
= 48/19 个代码库。
(验证过程)...
然而,除非另有说明,否则更“精确”的答案应保持为分数形式。因此,答案是:72/19 小时,约为 $3.7895$ 小时或四舍五入到两位小数约为 $3.79$ 小时)。
</think>
72/19 小时(或约 3.79 小时)。
R1-Zero的问题
虽然R1-Zero的“思考”令牌提供了一个人类可读的窗口,展示模型的“思维过程”,但作者报告了一些问题。即,学习到的思维链有时会遭遇可读性问题和语言混合。这可能表明其推理开始偏离人类易于理解的内容。
深度探索-R1 (SFT + 强化学习)
为了缓解 R1-Zero 的可解释性问题,作者探索了一种多步骤训练策略,该策略 利用了监督微调 (SFT) 和 强化学习。这一策略产生了 深度探索-R1,这是一个表现更好的模型,今天正受到更多关注。整个训练过程可以分为 4 个步骤。
第一步:使用推理数据进行监督微调 (SFT)
为了帮助模型在学习如何推理时走上正确的轨道,作者从监督微调 (SFT) 开始。这利用了来自各种来源的数千个长思维链 (CoT) 示例,包括少量示例提示(即,展示如何思考问题的示例)、直接提示模型使用反思和验证,以及从深度探索-R1-零 [2] 精炼合成数据。
这两个关键优势是,第一,期望的响应格式可以明确地展示给模型,第二,看到经过策划的推理示例可以为最终模型解锁更好的性能。
第2步:R1-Zero风格的强化学习 (+ 语言一致性奖励)
接下来,在监督微调 (SFT) 之后,对模型应用一个强化学习训练步骤。这是以与R1-Zero完全相同的方式进行,并增加了一个组件,该组件对奖励信号进行了激励,以促进语言一致性。之所以将其添加到奖励中,是因为R1-Zero倾向于混合语言,使得其生成内容难以阅读。
第三步:使用混合数据进行SFT
在这一阶段,模型在推理任务上的表现可能与R1-Zero相当(或更好)。然而,这个中间模型并不太实用,因为它想对收到的任何输入进行推理(例如,“你好”),这对于事实问答、翻译和创意写作来说是不必要的。这就是为什么要进行另一个SFT轮次,使用**推理(600k示例)和非推理(200k示例)**数据。
这里的推理数据是从第二步的结果模型生成的。此外,还包括使用大语言模型 (LLMs) 判断器将模型预测与真实答案进行比较的示例。
非推理数据来自两个地方。首先,训练DeepSeek-V3(基础模型)所使用的SFT数据集。其次,由DeepSeek-V3生成的合成数据。请注意,包含了一些不使用思维链 (CoT) 的示例,以便模型在每个响应中不使用“思考”令牌。
Step 4: RL + RLHF
最后,另一个RL轮次完成了,其中包括(再次)R1-Zero风格的推理训练和基于人类反馈的强化学习。后者有助于提高模型的有用性和无害性。
整个流程的结果是深度探索-R1,它在推理任务中表现出色,是一个可以正常聊天的AI助手。
访问 R1-Zero 和 R1
来自深度探索的另一个关键贡献是,上述两个模型的权重(以及许多其他 R1 的提炼版本)已公开可用。这意味着有许多方法可以访问这些模型,无论是使用 推理提供者还是在本地运行。
以下是我见过这些模型的一些地方:
- DeepSeek (DeepSeek-V3 和 DeepSeek-R1)
- Together (DeepSeek-V3、DeepSeek-R1 和提炼版本)
- Hyperbolic (DeepSeek-V3、DeepSeek-R1-Zero 和 DeepSeek-R1)
- Ollama (本地) (DeepSeek-V3、DeepSeek-R1 和提炼版本)
- Hugging Face (本地) (以上所有)
结论
o1的发布引入了一个新的维度,通过该维度大语言模型 (LLMs) 可以得到改善:测试时间计算。虽然开放AI并没有发布实现这一点的秘密方法,但5个月后,深度探索能够复制这种推理行为并发布其方法的技术细节。
尽管当前的推理模型存在局限性,但这是一个有前景的研究方向,因为它证明了强化学习(没有人类干预)可以产生独立学习的模型。这(潜在地)打破了当前模型的隐含限制,这些模型只能_回忆_和_重混_以前在互联网上看到的信息(即,现有的人类知识)。
这种新的强化学习方法的前景在于,模型可以超越人类理解(独立地),从而导致新的科学和技术突破,这可能需要我们几十年才能自行发现。
参考文献
[2] arXiv:2501.12948 [cs.CL]