作者:lucas大叔
原文:https://zhuanlan.zhihu.com/p/23018675736
快速概览
在讨论技术细节之前,先简单介绍一下 DeepSeek-R1 并非是从无到有从头开始训练的。相反,他们从一个相当聪明的 LLM 开始,他们已经有了DeepSeek-V3[1],但他们想让它成为一个推理超级明星。

为了做到这一点,他们使用了强化学习(简称 RL),当 LLM 做出有利于推理的事情时,就会奖励它,否则就会惩罚它。
但这不仅仅是一个简单的训练环节。它就像是一大堆步骤,称之为管道。他们首先尝试了纯RL,看看推理是否会自行出现,这就是 DeepSeek-R1-Zero,有点像一个实验。然后对于真正的 DeepSeek-R1,他们通过不同的阶段使其更有条理。他们给它一些起始数据令其运行,然后进行 RL,然后是更多数据,然后是更多 RL……就像是一步步升级!
关键在于让这些语言模型更好地思考问题并给出明智的答案,而不仅仅是说出一些单词。在研究每个步骤的细节之前,这就是超简短的概览介绍。
DeepSeek V3(MOE)如何思考?
正如之前所说,DeepSeek R1 训练不是从零开始构建的,而是使用 DeepSeek V3 作为基座模型。所以我们需要了解 V3 的工作原理以及为什么它被称为 MOE?

DeepSeek V3 的运行主要有两条路径。当输入一个问题时,它首先会经过记忆系统,通过查找相关信息来快速构建上下文。可以把它想象成快速回忆你以前遇到过的类似情况。
它的主要优势在于其决策系统。在理解输入后,它会使用智能路由在两条路径之间做出决定:快速处理器用于处理简单任务(如简单问题或常见请求),专家系统用于处理复杂问题(如分析或专业知识)。
路由让 DeepSeek V3 成为混合专家模型 (MOE)
因为它会动态地将每个请求定向到最合适的专家组件以进行有效处理。
简单的问题通过快捷方式获得快速、直接的答案,而复杂的查询则通过专家系统得到详细关注。最后,这些响应被组合成清晰、准确的输出。
DeepSeek V3 作为 RL 设置中的策略模型(Actor)
现在我们已经了解了 DeepSeek v3 的思维方式,它是 DeepSeek R1 实现的起点,我所说的起点是指它创建了 DeepSeek R1 Zero版本,这是在创建最终版本之前存在一些错误的初始版本。
初始版本 (R1 Zero) 是使用强化学习创建的,其中 DeepSeek v3 充当 RL 代理(采取行动的参与者)。让我们首先直观地了解一下它的工作原理。

RL 代理 (DeepSeek V3) 首先采取行动(Action),这意味着它会针对放入其Environment中的给定问题生成答案和一些推理。在这种情况下,Environment 就是推理任务本身。
采取行动后,环境会给出奖励(Reward)。此奖励就像反馈,它告诉 DeepSeek V3 基座模型其行动有多好。积极的奖励意味着它做对了某件事,可能得到了正确的答案或推理得很好。然后,此反馈信号返回到 DeepSeek-V3-Base,帮助它学习和调整未来如何采取行动以获得更好的奖励。
在接下来的部分中,我们将讨论这个带有奖励模型的 RL 设置以及他们使用的 RL 算法,并尝试使用我们的文本输入来解决它。
GRPO 算法如何工作?
训练 LLM 的计算成本极其昂贵,而 RL 则增加了更多的复杂性。
因此,有许多 RL 算法可用,但正如你所知,传统 RL 使用一种称为“ctritic”的东西来帮助主要决策部分(“参与者(actor)”,即 DeepSeek V3)。这个critic通常与actor本身一样大和复杂,这基本上使计算成本翻倍。
然而,GRPO 的做法有所不同,因为它会根据一组操作的结果直接找出基线,即良好操作的参考点。因此,GRPO 根本不需要单独的critic模型。这节省了大量计算并提高了效率。

它首先向称为“旧策略(Old Policy)”的模型提出问题或提示。GRPO 不会只得到一个答案,而是指示旧策略针对同一问题生成一组不同的答案。然后评估每个答案并给出奖励分数,以反映其好坏或可取性。
GRPO通过将每个答案与同一组中其他答案的平均质量进行比较来计算其“优势(Advantage)” 。高于平均水平的答案获得正优势,低于平均水平的答案获得负优势。至关重要的是,这无需单独的critic模型即可完成。
然后,这些优势分数会用于更新旧策略,使其更有可能在未来产生优于平均水平的答案。更新后的模型将成为新的“旧策略”,这个过程不断重复,不断改进模型。
GRPO的目标函数
显然,在GRPO 背后是复杂的数学。总之,我们可以称之为 GRPO 背后的目标函数。

GRPO 的目标函数有两个目标,一个是给出好的输出(高奖励),同时确保训练过程稳定且不会失控。原始函数很吓人,但我们会将其重写为更简单的形式,而不会失去其实际意义。

让我们逐一分析。首先,AverageResult[…]或 1/n[…]指的是评估在许多不同情况下平均发生的情况。我们提出包含各种问题的模型。对于每个问题,该模型都会生成一组答案。通过查看许多问题及其各自的答案组中的这些答案,我们可以计算出平均结果。

在此过程中,问题被输入到旧模型中,该模型会产生多个答案(例如,答案 1、答案 2、……、答案 G)。这些答案形成一组,通过评估不同问题中该组答案,我们得出平均结果。
SumOf[..] 或 ∑[…]是指对一组答案(例如,答案 1、答案 2、...、答案 G)中的每个答案进行计算,然后将所有这些计算的结果相加。
接下来是奖励部分。这是奖励模型给出良好答案的部分。它的内部有点复杂,让我们放大一下:

ChangeRatio告诉我们,使用新模型后,给出此答案的概率是增加了还是减少了。具体来说,它关注的是:
-
• 新模型的答案机会:新模型给出特定

最低0.47元/天 解锁文章
77

被折叠的 条评论
为什么被折叠?



