R1-Zero类训练中可能没有顿悟时刻 —— 一项初步研究

DeepSeek-R1-Zero最鼓舞人心的结果之一是通过纯强化学习(RL)出现的“顿悟时刻”。在顿悟时刻,模型学习到自我反思等新兴技能,这有助于它进行上下文搜索以解决复杂的推理问题。 在R1-Zero发布后的几天内,几个项目独立地在较小的规模(例如,1B到7B)上“再现”了R1-Zero类训练,并且都观察到了顿悟时刻,这通常伴随着响应长度的增加。我们遵循他们的设置来仔细审查R1-Zero类训练过程,并在本博客中分享以下发现: 💡 a) R1-Zero类训练中可能没有顿悟时刻。 相反,我们发现顿悟时刻(例如自我反思模式)出现在第0个周期,即基础模型。 b) 我们发现基础模型的响应中存在表面自我反思(SSR),在这种情况下,自我反思不一定导致正确的最终答案。 c) 我们通过RL对R1-Zero类训练进行了更深入的观察,发现响应长度增加的现象并不是由于自我反思的出现,而是RL优化良好设计的基于规则的奖励函数的结果。 1. 顿悟时刻出现在第0个周期 1.1 实验设置 基础模型。我们调查了由不同组织开发的广泛的基础模型系列,包括Qwen-2.5, Qwen-2.5-Math, DeepSeek-Math, Rho-Math, 和 Llama-3.x。 提示模板。我们直接使用在R1-Zero和SimpleRL-Zero中应用的模板来提示基础模型: 模板1(与R1-Zero相同) A conversation between User and Assistant. The user asks a question, and the Assistant solves it. The assistant first thinks about the reasoning process in the mind and then provides the user with the answer. The reasoning process and answer are enclosed within <think> </think> and <answer> </answer> tags, respectively, i.e., <think> reasoning process here </think> <answer> answer here </answer>. User: {Question} Assistant: ...

February 7, 2025 · 小茄墩

Reward Hacking in Reinforcement Learning

摘要 当 强化学习 (RL) AI 智能体 利用 奖励函数中的缺陷或歧义来获得高奖励,而没有真正学习或完成预期的任务时,就会发生reward hacking。reward hacking的存在是因为 RL 环境通常是不完善的,并且准确地指定奖励函数从根本上具有挑战性。随着 大语言模型 推广到广泛的任务,并且 RLHF 成为对齐训练的常用方法,大语言模型的 RL 训练中的reward hacking已成为重要挑战。模型学习修改单元测试以通过编码任务,或者响应包含模仿用户偏好的偏差的实例,可能是 AI 模型在现实世界中更广泛自主应用的主要障碍之一。 过去关于这个主题的大部分工作都相当理论化,主要集中在定义或论证奖励篡改的存在。然而,针对实际缓解措施的研究,尤其是在以人类反馈强化学习(RLHF)和大语言模型(LLM)为背景的情况下,仍然非常有限。 背景 强化学习中的奖励函数 奖励函数定义了任务,奖励塑造对强化学习中的学习效率和准确性有显著影响。为强化学习任务设计奖励函数常常让人感觉像一门“黑暗艺术”。 许多因素导致了这种复杂性: 如何将一个大目标分解成小目标? 奖励是稀疏的还是密集的? 你如何衡量成功? 各种选择可能会导致良好或有问题的学习动态,包括不可学习的任务或可被篡改的奖励函数。关于如何在强化学习中进行奖励塑造的研究由来已久。 例如,在 Ng et al. 1999 年的论文 中,作者研究了如何在 马尔可夫决策过程 (MDP) 中修改奖励函数,以使最优策略保持不变。他们发现线性变换是有效的。 $$ F(s, a, s') = \gamma \Phi(s') - \Phi(s) $$ 这将保证折扣后的 $F$ 的总和,$F(s_1, a_1, s_2) + \gamma F(s_2, a_2, s_3) + \dots$,最终结果为 0。如果 $F$ 是这样一个基于势的塑造函数,那么它是确保 $M$ 和 $M’$ 共享相同最优策略的充分且必要条件。 $$ \begin{aligned} Q_{M^{\prime}}^*(s, a) & =Q_M^*(s, a)-\Phi(s) \\ V_{M^{\prime}}^*(s, a) & =V_M^*(s, a)-\Phi(s) \end{aligned} $$这种形式的奖励塑造允许我们将启发式方法融入到奖励函数中,以加速学习,而不会影响最优策略。 ...

February 6, 2025 · 小茄墩

cuda层面实现kernel的库Liger Kernel

看到一个cuda层面实现kernel的库Liger Kernel,速度极快。 ==直接一行调用GRPO loss:== grpo_loss = LigerFusedLinearGRPOLoss() 以下为Liger Kernel库简介: Liger Kernel 是一个专门为大语言模型(LLM)训练设计的 Triton 内核集合。它可以有效提高多 GPU 训练的吞吐量 20%,并减少 60% 的内存使用。我们已经实现了与 Hugging Face 兼容的 RMSNorm、RoPE、SwiGLU、CrossEntropy、FusedLinearCrossEntropy 等功能,未来还会增加更多。该内核开箱即用,支持 Flash Attention、PyTorch FSDP 和 Microsoft DeepSpeed。 我们还添加了优化的训练后内核,为对齐和蒸馏任务节省高达 80% 的内存。我们支持 DPO、CPO、ORPO、SimPO、JSD 等多种损失函数。 只需一行代码,Liger Kernel 就可以提高 20% 以上的吞吐量,并减少 60% 的内存使用,从而实现更长的上下文长度、更大的批量大小和更大的词汇表。 注意: 基准测试条件:LLaMA 3-8B,批量大小 = 8,数据类型 = bf16,优化器 = AdamW,梯度检查点 = True,分布式策略 = FSDP1,使用 8 个 A100 GPU。 Hugging Face 模型在 4K 上下文长度时开始出现内存不足(Out of Memory, OOM),而 Hugging Face + Liger Kernel 可以扩展到 16K。 ...

February 5, 2025 · 小茄墩

s1: simple test-time scaling

摘要 test-time scaling 利用额外的测试时计算来提高性能。最近,OpenAI 的 o1 模型展示了这种能力,但没有公开分享其方法,这导致了许多复制尝试。 我们寻求实现测试时缩放和强大推理性能的最简单方法。首先,我们策划了一个==小型数据集 s1K==,其中包含 1000 个问题,并配有推理过程的轨迹,这些轨迹基于我们通过消融实验验证的三个标准:难度、多样性和质量。其次,我们开发了==预算强制方法来控制测试时计算,具体做法是强制终止模型的思考过程,或者在模型尝试结束时通过多次附加“等待”来延长其思考过程。这可以引导模型仔细检查其答案,通常会修正不正确的推理步骤==。在对 s1K 上的 Qwen2.5-32B-Instruct 大语言模型进行监督微调,并为其配备预算强制后,我们的模型 s1-32B 在竞赛数学问题上的表现比 o1-preview 高出 27%(MATH 和 AIME24)。此外,使用预算强制缩放 s1-32B 允许在没有测试时干预的情况下将其性能外推:在 AIME24 上从 50% 提高到 57%。 引言 DeepSeek R1 成功地复制了 o1 级别的性能,也采用了通过数百万样本和多个训练阶段的强化学习。然而,尽管有大量的 o1 复制尝试,但没有一个公开复制了清晰的测试时缩放行为。 因此,我们提出问题:==实现test-time scaling和强大的推理性能的最简单方法是什么?== 我们证明,仅使用1000个样本进行下一个 Token 预测训练,并通过一种简单的测试时技术(我们称之为预算强制)来控制思考时长,可以得到一个强大的推理模型,其性能随着测试时计算量的增加而扩展。具体来说,我们构建了 s1K,它包含1000个精心策划的问题,这些问题与从 Gemini Thinking Experimental 中提取的推理轨迹和答案配对。我们对一个现成的预训练模型在我们的少量数据集上进行了监督微调(SFT),仅需在 16 个 H100 GPU 上训练 26 分钟。训练后,我们使用预算强制来控制模型在测试时花费的计算量: (I) 如果模型生成的思考 Token 超过了期望的限制,我们将通过附加一个思考结束 Token 分隔符来强制结束思考过程。以这种方式结束思考会使模型过渡到生成答案。 (II) 如果我们希望模型在问题上花费更多的测试时计算量,我们会抑制思考结束 Token 分隔符的生成,而是将“等待”附加到模型当前的推理轨迹中,以鼓励更多的探索。 有了这个简单的配方——在 1000 个样本上进行 SFT 和测试时预算强制——我们的模型 s1-32B 表现出测试时扩展。此外,s1-32B 是最节省样本的推理模型,并且优于像 OpenAI 的 o1-preview 这样的闭源模型 。我们进行了广泛的消融实验,目标是 (a) 我们选择的 1000 个 (1K) 推理样本和 (b) 我们的测试时扩展。对于 (a),我们发现将难度、多样性和质量度量共同纳入我们的选择算法非常重要。随机选择、选择具有最长推理轨迹的样本或仅选择最大多样性的样本都会导致性能显著下降(在 AIME24 上平均下降约 ->30%)。在我们包含 59K 个示例的完整数据池(s1K 的超集)上进行训练,并不能比我们的 1K 选择提供实质性的提升。这突出了仔细数据选择的重要性,并呼应了先前关于指令微调的发现。对于 (b),我们为测试时扩展方法定义了期望,以比较不同的方法。预算强制导致最佳的扩展,因为它具有完美的控制性,并且具有清晰的正斜率,从而带来强大的性能。 ...

February 3, 2025 · 小茄墩

DeepSeek-R1技术报告详解

几个要点 数据层面 a. 大规模人工标注还是太麻烦了,==探索无需人工标注的方法== -> 跳过SFT直接上RL b. a步骤基础上加上一点人工标注作为==冷启动==,会好很多 -> 小小SFT一下,还是不错 训练层面 a. RL模型:==Group Relative Policy Optimization== b. 奖励:==准确性奖励+格式化奖励==。试过当红的过程奖励和MTCS,最终都放弃 c. 振奋人心的自我进化时刻和==顿悟==时刻! c. SFT冷启动一下效果会更好。也就是==pretrain+SFT+RLHF的pipeline依旧是上限最高的== d. 对小模型来说,==从大模型蒸馏依旧是天花板最高的方案== 模型开源 a. DeepSeek-R1-Zero: DeepSeek-V3-Base作为基础模型+RL b. DeepSeek-R1: DeepSeek-V3-Base+SFT冷启动+RL c. 一堆蒸馏的小模型 方法 概述 先前的研究严重依赖大量的监督数据来提升模型性能。在本研究中,我们证明了即使不使用监督微调(SFT)作为冷启动,通过大规模强化学习(RL)也可以显著提高推理能力。此外,通过加入少量冷启动数据,性能可以得到进一步提升。在接下来的章节中,我们将介绍: (1)DeepSeek-R1-Zero,它直接将强化学习应用于基础模型,无需任何SFT数据; (2)DeepSeek-R1,它从使用数千个长链式思考(CoT)示例进行微调的检查点开始应用强化学习。 (3)将DeepSeek-R1的推理能力提炼到小型密集模型中。 DeepSeek-R1-Zero: 基于基础模型的强化学习 收集监督数据非常费劲,希望探索没有任何监督数据情况下的能力,重点关注通过纯粹的强化学习过程进行的自我进化。 强化学习算法 Group Relative Policy Optimization 为了节省强化学习的训练成本,我们采用了组相对策略优化(GRPO),它放弃了通常与策略模型大小相同的评论家模型,而是从组得分中估计基线。 $$ \begin{equation} \begin{split} \mathcal{J}_{GRPO}(\theta) &= \mathbb{E}{[q \sim P(Q), \{o_i\}_{i=1}^G \sim \pi_{\theta_{old}}(O|q)]} \\ & \frac{1}{G}\sum_{i=1}^G \left( \min \left( \frac{\pi_\theta(o_i |q)}{\pi_{\theta_{old}}(o_i |q)} A_i, \text{clip} \left( \frac{\pi_\theta(o_i |q)}{\pi_{\theta_{old}}(o_i |q)}, 1 - \epsilon, 1 + \epsilon \right) A_i \right) - \beta \mathbb{D}_{KL}\left(\pi_{\theta} || \pi_{ref}\right)\right) , \end{split} \label{eq:GRPO-obj} \end{equation} $$$$ \begin{equation} \mathbb{D}_{KL}\left(\pi_{\theta} || \pi_{ref}\right) = \frac{\pi_{ref}(o_i|q)}{\pi_{\theta}(o_i|q)}- \log\frac{\pi_{ref}(o_i|q)}{\pi_{\theta}(o_i|q)} - 1, \end{equation} $$$$ \begin{equation} A_i = \frac{r_i - {\mathrm mean(\{r_1, r_2, \cdots, r_G\})}}{{\mathrm std(\{r_1, r_2, \cdots, r_G\})}}. \end{equation} $$ ...

February 2, 2025 · 小茄墩

Group Relative Policy Optimization

从 PPO 到 GRPO 近端策略优化(PPO)是一种 actor-critic 强化学习算法,广泛应用于大语言模型(LLM)的强化学习微调阶段。具体而言,它通过最大化以下替代目标来优化大语言模型: 其中,$\pi_{\theta}$ 和 $\pi_{\theta_{old}}$ 分别是当前策略模型和旧策略模型,$q$ 和 $o$ 分别是从问题数据集和旧策略 $\pi_{\theta_{old}}$ 中采样的问题和输出。$\varepsilon$ 是 PPO 中引入的用于稳定训练的裁剪相关超参数。$A_t$ 是优势值,它通过应用广义优势估计(GAE)计算得出,基于奖励 $\{r_{\ge t}\}$ 和一个学习到的价值函数 $V_{\psi}$。因此,在 PPO 中,需要与策略模型一同训练一个价值函数。为了减轻对奖励模型的过度优化,标准做法是在每个 token 的奖励中添加来自参考模型的每个 token 的 KL 散度惩罚,即: 其中 $r_\varphi$ 是奖励模型,$ \pi_{ref} $ 是参考模型,通常是初始的 SFT 模型,而 $ \beta $ 是 KL 惩罚的系数。 由于 PPO 中使用的价值函数通常是与策略模型大小相当的另一个模型,因此会带来大量的内存和计算负担。此外,在强化学习(RL)训练期间,价值函数被视为计算优势以减少方差的基线。 然而,在大语言模型(LLM)的背景下,通常只有最后一个 Token 会被奖励模型赋予奖励分数,这可能会使在每个 Token 上都准确的价值函数的训练变得复杂。为了解决这个问题,我们提出了组相对策略优化(GRPO),它无需像 PPO 那样进行额外的价值函数近似,而是使用针对同一问题生成的多个采样输出的平均奖励作为基线。更具体地说,对于每个问题 $q$,GRPO 从旧策略 $ \pi_{\theta_{old}} $ 中采样一组输出 $ \{o_1, o_2, \cdots, o_G\} $,然后通过最大化以下目标来优化策略模型: ...

February 2, 2025 · 小茄墩

SFT 记忆,RL 泛化

摘要 监督微调 (SFT) 和强化学习 (RL) 是基础模型广泛采用的后训练技术。然而,它们各自在增强模型泛化能力方面的作用仍不明确。本文研究了 SFT 和 RL 对泛化和记忆的相对影响,重点关注文本和视觉环境。我们引入了 GeneralPoints,一种算术推理卡牌游戏,并考虑了 V-IRL,一个真实世界的导航环境,以评估使用 SFT 和 RL 训练的模型如何在文本和视觉领域泛化到未见过的变体。我们发现,RL,特别是当使用基于结果的奖励进行训练时,在基于规则的文本和视觉环境中均能展现出泛化能力。相比之下,SFT 倾向于记忆训练数据,并且在两种情况下都难以泛化到分布外的数据。进一步的分析表明,RL 提升了模型潜在的视觉识别能力,从而有助于其在视觉领域增强泛化能力。尽管 RL 具有更强的泛化能力,但我们发现 SFT 对于有效的 RL 训练仍然至关重要:SFT 稳定了模型的输出格式,使得后续的 RL 能够实现性能的提升。这些研究结果证明了 RL 在复杂的、多模态任务中获取可泛化知识的优势。 引言 虽然 SFT 和 RL 都被广泛用于基础模型训练,但它们对泛化的独特影响仍然不清楚,这使得构建可靠和鲁棒的 AI 智能体系统具有挑战性。分析基础模型的泛化能力的一个关键挑战是将数据记忆[^1]与可迁移原则的获取分离开来。因此,我们研究了 SFT 或 RL 主要是记忆训练数据,还是学习可以适应新任务变体的可泛化原则这一关键问题。为了解决这个问题,我们关注泛化的两个方面:基于文本的规则泛化和视觉泛化。对于文本规则,我们研究模型将学习到的规则(给定文本提示词)应用于这些规则的变体的能力。对于视觉语言模型 (VLM),视觉泛化衡量在给定任务中,视觉输入(如颜色和空间布局)变化时性能的一致性。为了研究基于文本和视觉的泛化,我们研究了两个不同的任务,这两个任务体现了基于规则和视觉的变体。我们的第一个任务是 GeneralPoints,这是一个原创的纸牌游戏任务,类似于 RL4VLM 中的 Points24 任务,旨在评估模型的算术推理能力。在 GeneralPoints 中,模型接收四张牌(以文本描述或图像形式呈现),并且需要使用每张牌的数值恰好一次来计算目标数字(默认为 24)。其次,我们采用了 V-IRL,这是一个真实的导航任务,侧重于模型的空间推理能力。 ![关于在视觉导航环境 V-IRL 上,强化学习 (RL) 和监督微调 (SFT) 在分布外 (OOD) 泛化方面的比较研究。 OOD 曲线表示在同一任务上,使用不同的文本动作空间时的性能表现。有关任务的详细描述,请参阅第5.1 我们采用类似于 @zhai2024finetuning 的多步强化学习框架,通过在主干模型上进行监督微调 (SFT) 后实例化强化学习 (RL),并使用顺序修订公式。在 GeneralPoints 和 V-IRL 中,我们观察到强化学习 (RL) 学习了可泛化的规则(以文本形式表达),其中分布内的性能提升也转移到了未见过的规则。相比之下,监督微调 (SFT) 似乎记住了训练规则,并且无法泛化(例如,参见1)。除了基于文本规则的泛化之外,我们还进一步研究了视觉领域的泛化,并观察到强化学习 (RL) 也泛化到了视觉分布外 (OOD) 任务,而监督微调 (SFT) 仍然表现不佳。作为视觉分布外 (OOD) 泛化能力的副产品,我们的多轮强化学习 (RL) 方法在 V-IRL 小型基准测试中实现了最先进的性能,提高了 [+33.8%] (44.0%$\rightarrow$77.8%),突显了强化学习 (RL) 的泛化能力。为了理解强化学习 (RL) 如何影响模型的视觉能力,我们对 GeneralPoints 进行了额外的分析,揭示了使用基于结果的奖励函数训练强化学习 (RL) 可以提高视觉识别能力。虽然强化学习 (RL) 表现出比监督微调 (SFT) 更优越的泛化能力,但我们表明监督微调 (SFT) 仍然有助于稳定模型的输出格式,使强化学习 (RL) 能够实现其性能提升。最后但并非最不重要的一点是,我们观察到通过增加最大步数来扩大推理时间计算可以带来更好的泛化。 ...

February 2, 2025 · 小茄墩