DeepSeek R1 “顿悟时刻”(Aha Moment) 的重现与探索:基于 GRPO 的倒计时游戏训练

本文翻译整合转载于:

Deepseek R1 的发布震惊了整个行业。为什么?DeepSeek-R1 是一个开放模型,在复杂推理任务中可与 OpenAI 的 o1 相媲美,它使用组相对策略优化 (GRPO) 和以 RL 为中心的多阶段训练方法引入。他们不仅发布了该模型,还发布了一份关于他们如何做到这一点的研究论文

在论文中,他们描述了使用纯 RL 训练模型时的 “顿悟时刻”。在此阶段,DeepSeek-R1-Zero(DeepSeek-R1 的第一个测试)通过重新评估其初始方法来学习为问题分配更多的思考时间,而无需任何人工反馈或描述如何执行的数据。他们将这描述为“顿悟时刻”:

这种行为不仅证明了模型不断增长的推理能力,也是强化学习如何导致意想不到的复杂结果的迷人例子。

在这篇博文中,我们想使用组相对策略优化 (GRPO) 和倒计时游戏重现 DeepSeek-R1 的小“顿悟时刻”。我们将使用强化学习训练一个开放模型,尝试自行教它自我验证和搜索能力,以解决倒计时游戏。Countdown 游戏是一个数字拼图游戏,玩家使用一组随机抽取的数字和基本的算术运算 (+、-、×、÷) 来达到或尽可能接近目标数字。

Target Number: 952
Available Numbers: 25, 50, 75, 100, 3, 6

(100 × (3 × 3)) + (50 + 6 / 3) = 952

文章包括一个交互式代码,您可以在 Jupyter Notebook 中运行该代码,了解如何使用 GRPO 和 Q-Lora 训练模型。这是学习如何使用 TRL 和 GRPO 的好方法,但它非常慢并且需要大量的计算。此外,我还添加了一个脚本和说明,用于在具有多个 GPU 或 SLURM 集群的 Node 上运行训练。

但在开始之前,让我们先看一下组相对策略优化 (GRPO) 并了解它是如何工作的。

组相对策略优化 (GRPO)

DeepSeek AI 发布了 DeepSeek-R1,这是一个开放模型,在复杂推理任务中可与 OpenAI 的 o1 相媲美,使用组相对策略优化 (GRPO) 和以 RL 为中心的多阶段训练方法引入。

了解组相对策略优化 (GRPO)

组相对策略优化 (GRPO) 是一种强化学习算法,用于提高 LLMs的推理能力。它是在 DeepSeekMath ​论文的数学推理背景下引入的。GRPO 通过消除对价值函数模型的需求来修改传统的近端策略优化 (PPO)。相反,它根据组分数估计基线,从而减少内存使用和计算开销。GRPO 现在也被 Qwen 团队使用,可以与基于规则/二进制文件的奖励以及通用奖励模型一起使用,以改进有用性模型。

  1. 采样:使用当前策略为每个提示生成多个输出
  2. 奖励评分:每一代都使用奖励函数进行评分,可以是(基于规则或基于结果)
  3. Advantage Calculation:生成的产出的平均奖励用作基线。然后,相对于此基线计算组内每个解的优势。奖励在组内标准化。
  4. 策略优化:该策略试图最大化 GRPO 目标,其中包括计算的优势和 KL 背离项。这与 PPO 在奖励中实施 KL 期限的方式不同。

grpo.png

与近端策略优化 (PPO) 的主要区别是

  • 无值函数:与 PPO 不同,GRPO 不依赖于单独的值函数模型,这简化了训练并减少了内存消耗。
  • 基于组的优势: GRPO 使用一组产出的平均奖励作为基线。这种方法更符合奖励模型训练的性质,奖励模型训练通常针对一个输入检查多个输出。
  • KL Divergence (吉隆坡发散):GRPO 直接将 KL 背离项合并到损失函数中,而 PPO 经常将其用作奖励信号的一部分。

纯强化学习 (R1-zero)

在构建 DeepSeek R1 的过程中,该团队通过对其基础模型进行强化学习实验,获得了深刻的见解。从 DeepSeek V3 开始,他们将 GRPO 应用于无监督推理文本补全、基于规则的奖励模型,这些模型侧重于格式、数学和编码等方面:

  • 准确性奖励:评估响应是否正确、结果正确或编译的 LeetCode 问题。
  • 格式奖励:评估强制模型将其思维过程置于 '' 和 '' 标签之间的格式。

prompt.png

这导致 AIME 2024 的 pass@1 分数从 15.6% 提高到 71.0%,达到与 OpenAI-o1-0912 相当的性能水平,同时每个问题的输出令牌长度增加,表明该模型自然而然地学会了解决具有更多思考时间/令牌生成的任务。

r1-zero.png

这缺点是导致可读性和语言混合不佳,但在 R1 中,使用交替 SFT → RL 步骤的多阶段方法解决了这个问题。

DeepSeek R1 的多阶段训练

为了防止基础模型出现强化训练 (RL) 训练的早期不稳定冷启动阶段,该团队从监督微调开始。

阶段 1/4 基础到监督微调 (SFT)

使用微调模型、R1-zero 和人工注释器收集了多达 10k 个代币长的思维链 (CoT)。这些数据用于微调 Deepseek V3 基础,以提高可读性和连贯性。

阶段 2/4 推理 RL

使用与 R1-Zero 相同的 RL 管道,使用相同的基于规则的奖励模型专注于推理密集型任务,例如编码和数学。这一次,对 “language consistency” 的额外奖励用于帮助模型坚持使用同一种语言。

Stage 3/4 抑制采样和 SFT

使用拒绝采样 (RS) 生成大型合成数据集,专注于写作、角色扮演和其他通用任务。第 2 阶段的模型与 Deepseek V3 一起用作裁判,以生成 600k 与推理相关的样本和 200k 用于写作、角色扮演和其他通用任务,使用 DeepSeek-V3 的 SFT 数据集的一部分或重新生成它们包括 CoT。

阶段 4/4 RL for Helpness

在最后阶段,GRPO 再次与基于规则的模型和结果奖励模型结合使用,以提高模型的有用性和无害性。引出 Deepseek R1 模型。

evals.png

  • DeepSeek 没有使用 Monte Carlo Tree Search (MCTS) 或流程奖励模型 (PRM)。
  • 在应用 GRPO 之前进行微调实际上可以使训练过程更快、更稳定。
  • 专注于准确性和格式的基于规则的奖励比复杂的奖励模型更有效。

1. 设置开发环境

我们的第一步是安装 Hugging Face Libraries 和 Pytorch、vllm 和 trl、transformer 和数据集

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

歌刎

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值