SRPO:大语言模型上大规模强化学习的跨领域实现

《SRPO: A Cross-Domain Implementation of Large-Scale Reinforcement Learning on LLM》 摘要 以OpenAI的o1和DeepSeek的R1为代表的推理模型最新进展,凸显了强化学习在提升大语言模型推理能力方面的显著潜力。然而,由于方法论的透明度不足,这些技术突破在不同领域的复现仍面临挑战。本研究提出两阶段历史重采样策略优化(Two-Staged history-Resampling Policy Optimization, SRPO),该方案在AIME24和LiveCodeBench基准测试中,使用与深度求索相同的基础模型(即Qwen2.5-32B),仅通过强化学习(无需预先监督微调/Supervised Fine-Tuning)便超越了DeepSeek-R1-Zero-32B的性能表现。基于组相对策略优化(Group Relative Policy Optimization, GRPO)框架,我们创新性地提出:(1)跨领域两阶段训练范式——平衡数学推理与编程能力的协同发展;(2)历史重采样(History Resampling, HR)技术——针对训练过程中低效样本的优化方案。大量实验证实了该方法的有效性,为扩展大语言模型在多任务场景下的推理能力提供了重要洞见。 引言 具体来说,我们实施了一个两阶段训练范式来培养 大语言模型 (LLM) 的推理和领域特定技能。我们发现,尽早增强长思维链 (CoT) 推理能力对于跨任务泛化至关重要。在第一阶段,我们主要使用数学数据进行训练,以培养反思性思维和逐步解决问题的能力。在第二阶段,我们整合编码数据,建立在第一阶段培养的推理技能基础之上。这种范式确保了推理和编码能力的稳步提升。 为了解决 GRPO 中的零优势现象(该现象阻碍了梯度更新并降低了样本效率),我们引入了历史重采样。通过过滤掉持续正确的答案,我们确保了有意义的梯度,提高了样本效率,并加速了收敛。 此外,我们详细介绍了我们的数据策展流程,包括数据清洗和难度级别分类。最终的训练数据集使模型接触到具有挑战性的高质量问题,旨在培养复杂的推理能力。 结合上述技术,SRPO 在 AIME24 上达到了 50.0 pass@1,在 LiveCodeBench 上达到了 41.6 pass@1,超过了 DeepSeek-R1-Zero-Qwen-32B 的性能(在 AIME 上为 47.0 分,在 LiveCodeBench 上为 40.2 分),且仅用了 2,000 步——仅为 R1-Zero 训练步数的 1/5。 GRPO GRPO 的核心思想是通过一组 rollout 内的相对奖励来估计基线。因此,它降低了 critic 模型的计算成本并提高了训练稳定性。具体来说,对于每个问题 q,模型生成一组响应 $o_1, o_2,... , o_G$ 并计算相应的奖励 $r_1, r_2, ... , r_G$。$A_i$ 是通过在每个组内对奖励进行归一化而获得的优势。 ...

April 22, 2025 · 小茄墩

重新思考预训练中的反思现象

《Rethinking Reflection in Pre-Training》 摘要 语言模型反思其自身推理过程的能力,是其解决复杂问题的关键优势。尽管近期多数研究聚焦于此能力在强化学习阶段如何发展,但我们展示了它实际上在更早的时期——即模型的预训练期间——便已开始显现。为研究此现象,我们故意在思维链中引入错误,并测试模型是否仍能通过识别并纠正这些错误来得出正确答案。通过追踪模型在预训练不同阶段的表现,我们观察到这种自我纠正能力出现较早,并随时间推移而稳步提升。例如,一个基于 4 万亿 Token 预训练的 OLMo-2-7B 模型,在我们设计的六项自我反思任务中展现了自我纠正能力。 引言 反思增强了模型根据先前推理调整其响应的能力,从而提高了其输出的准确性。最近的研究报告称,“诸如反思之类的行为……是模型与强化学习环境互动的结果”。若要将能力的发展归因于此来验证这类主张,则必须在整个训练阶段进行全面的评估。在这项工作中,我们提出了一个详尽的框架来衡量反思,并且我们观察到这种现象在预训练期间持续存在。 使用现有的推理数据集对反思进行基准测试一直具有挑战性。在这类任务中,反思通常是稀疏的,并且每个模型都表现出独特的错误模式,从而产生独特的反思行为表现。我们通过区分情境反思 (situational-reflection) 和自我反思 (self-reflection) 来应对这一挑战。在情境设置中,模型检查由另一个来源(例如不同的前沿模型)创建的推理链。在自我反思中,模型则考虑其自身的推理过程。我们校准模型在被提供一些导致错误答案的干扰性推理时解决任务的能力,并以此在整个预训练过程中衡量反思能力。 \['gsd', 'avdropj'\]”。 通过以编程方式引入错误的思维链 (Chains-of-Thought, CoTs),其特征包含算术扰动和逻辑不一致性等元素,我们可以控制和扩展正确完成这些任务所需的反思程度。这也保持了已建立的 CoT 格式 。此外,我们的算法方法允许通过调整已建立的推理基准,以相对快速和经济的方式创建这些数据集,这反过来又使得对模型在各种领域中的反思能力进行全面研究成为可能。我们的六个数据集,涵盖数学、编码、逻辑推理和知识获取领域,旨在评估情境反思和自我反思能力。 对来自 OLMo-2 模型家族、具有不同预训练计算量的检查点在我们这组六个不同数据集上进行评估的结果表明,反思在各个领域普遍存在。即使是一个简单的触发短语,如“Wait,”,也能使部分预训练的模型持续识别出引入的错误和它们自己产生的错误。具体来说,240 个数据集-检查点对中有 231 个展示了至少一个情境反思的实例,240 个对中有 154 个展示了至少一个自我反思的实例。随着预训练的增加,模型会纠正更多的对抗性示例,导致准确性与 $\log(\text{预训练计算量})$ 之间的平均皮尔逊相关系数在各项任务中达到 0.76。此外,随着预训练的进行,模型越来越多地从不正确的先前推理中恢复,模型生成中明确反思的比率增加,并且明确反思越来越多地有助于从干扰性 CoT 中恢复。 本文的贡献有三方面: 我们引入了一种系统化的方法,用于创建跨越代码、知识获取、逻辑推理和数学领域的六个数据集,以研究模型的反思能力。 我们证明了具有不同能力和训练计算量的预训练模型可以在广泛的领域中使用简单的插入语引发反思,以纠正不准确的先前推理。 我们观察到,持续改进的预训练可以带来更好的反思,从而能够用更少的测试时 Token 来解决相同数量的任务。 方法 定义反思 反思是一种元认知形式,涉及审视信息,评估其背后的推理过程,并基于该评估调整未来的行为。在大型语言模型的背景下,这个过程可以应用于从外部来源引入的信息或模型自身生成的信息。在这项工作中,我们创建了两种情境来引发和衡量反思: 情境反思是指模型反思由其他来源(例如不同的模型)创建的信息。 自我反思是指模型反思其自身生成的输出。 我们还通过两种形式来全面刻画反思: 显式反思 发生在模型生成的 Token 在其含义上识别并处理了对抗性情境中的错误时。显式反思可能出现在正确的模型输出中(换句话说,那些构成对我们对抗性任务的正确答案的输出),也可能出现在不正确的模型输出中。 隐式反思 发生在模型在对抗性情境中设法正确解决任务,但没有输出明确识别先前推理中错误的 Token 时。根据我们的定义,这意味着隐式反思不能导致对我们对抗性任务的错误回答。这使我们能够区分以下两种情况:其一,显式反思缺失但可以推断出发生了隐式反思;其二,根本没有发生任何反思。 使用对抗性反思数据集引发反思 我们提出了一种生成对抗性数据集的算法,该数据集能够引发语言模型的反思行为。该算法创建导致错误解的对抗性思维链 (CoT)。与自我反思(我们可以从模型自身的错误中汲取经验)不同,对于情境反思,我们必须设计人工的对抗性 CoT。从高层次来看,这些对抗性 CoT 是通过破坏正确的 CoT 来创建的,其方式模仿了人类的推理错误,例如逻辑失误和算术计算错误。在这两种情况下,当我们在上下文中提供 CoT 时,模型必须反思这些错误并修正它们,以得出正确的解。我们相信这些设置对于全面研究反思是必要的。 ...

April 14, 2025 · 小茄墩

字节Seed:Seed-Thinking-v1.5,超过R1

《Seed-Thinking-v1.5: Advancing Superb Reasoning Models with Reinforcement Learning》 摘要 我们介绍 Seed-Thinking-v1.5,它能够在响应前通过思考进行推理,从而在广泛的基准测试中提高了性能。Seed-Thinking-v1.5 在 AIME 2024 上达到 86.7 分,在 Codeforces 上达到 55.0 分,在 GPQA 上达到 77.3 分,展示了在 STEM 和编码方面出色的推理能力。除了推理任务,该方法在不同领域也表现出显著的泛化能力。例如,在非推理任务上,它在胜率方面超过 DeepSeek R1 8%,表明其更广泛的适用性。与其他最先进的推理模型相比,Seed-Thinking-v1.5 是一个专家混合模型 (MoE),规模相对较小,具有 200 亿激活参数和 2000 亿总参数。作为我们评估泛化推理能力的一部分,我们开发了两个内部基准测试:BeyondAIME 和 Codeforces,这两个基准测试都将公开发布以支持未来的研究。 1 引言 在这项工作中,我们提出了一个名为 Seed-Thinking-v1.5 的新推理模型。该模型在推理任务和非推理任务中均表现出强大的性能。 数学推理: 在数学竞赛方面,Seed-Thinking-v1.5 在 AIME 2024 上取得了 86.7 分,与 o3-mini-high 的表现持平,并显著优于 o1 和 DeepSeek R1,展现出具有竞争力的实力。由于 AIME 2024 不再能提供足够的区分度,我们构建了一个更具挑战性的评估集,名为 BeyondAIME。BeyondAIME 中的所有问题均由人类专家全新策划设计,旨在最大限度地减少通过记忆或猜测解决问题的可能性。虽然 Seed-Thinking-v1.5 在 BeyondAIME 上的表现超越了 o1 和 R1,但与 o3 和 Gemini pro 2.5 相比,仍存在性能差距。这也进一步证明了这个新评估集的区分能力。 ...

April 10, 2025 · 小茄墩

字节Seed:PPO 在长思维链(Long-CoT)中崩溃的背后是什么?价值优化掌握着秘密

近端策略优化 $$ \mathcal{L}^{CLIP}(\theta)=\hat{\mathbb{E}}_t\left[\min\left(r_t(\theta)\hat{A}_t,\text{clip}(r_t(\theta), 1-\epsilon, 1+\epsilon)\hat{A}_t\right)\right] $$$$ \hat{A}_t=\sum_{l = 0}^{T-t-1}(\gamma\lambda)^l\delta_{t + l} $$ 其中 $\gamma$ 是折扣因子,$\lambda\in[0, 1]$ 是 GAE 参数,而 $\delta_t=r_t+\gamma V(s_{t + 1})-V(s_t)$ 是时序差分 (TD) 误差。此处,$r_t$ 是时间步 $t$ 的奖励,$V(s)$ 是价值函数。由于在 RLHF 中通常将折扣因子设为 $\gamma = 1.0$,为简化表示,我们在本文后续章节中省略了 $\gamma$。 识别并解决 PPO 在长 CoT 任务中的失败模式 在本节中,我们展示 PPO 在长 CoT 任务中的一个常见失败模式,并从理论和实证角度考察其与预训练及训练中价值偏差的关系。随后,我们提出实用的解决方案来改进 PPO,使其能够避免此类失败。 PPO 在长思维链 (CoT) 任务中的失败模式 在从人类反馈中进行强化学习 (Reinforcement Learning from Human Feedback, RLHF) 的领域应用 PPO 时,有两种常见的做法如下: 采用默认的广义优势估计 (Generalized Advantage Estimation, GAE),通常设置 $\lambda = 0.95$。 使用一个训练充分的奖励模型 (reward model) 来初始化价值模型 (value model)。 第一种做法起源于传统的强化学习文献,在这些文献中,PPO 已经在 Mujoco 和 Atari 等环境中得到了广泛的测试。在这些环境中,奖励 (rewards) 会沿着轨迹 (trajectory) 累积,导致回报 (return) 具有高方差。因此,方差缩减 (variance reduction) 变得十分必要。第二种做法则自然地源于奖励模型和价值模型之间的明显相似性,因为这两种模型都被训练用于预测关于响应 (response) 的标量信息 (scalar information)。然而,我们的实验揭示,将 PPO 轻率地应用于需要长思维链 (CoT) 的任务不可避免地会导致失败,具体如图1所示。 ...

April 9, 2025 · 小茄墩

字节Seed新作:VAPO:使用基于价值的强化学习框架进行长思维链推理

摘要 我们提出VAPO(面向推理模型的基于价值的增强型近端策略优化框架),这是一个专为推理模型设计的新型框架,立足于价值导向范式。在AIME 2024数据集的基准测试中,基于Qwen 32B预训练模型构建的VAPO获得了60.4的最高分。在完全相同的实验条件下进行直接对比时,VAPO的表现超过先前报告的DeepSeek-R1-Zero-Qwen-32B和DAPO模型10分以上。 VAPO的训练过程以稳定性和效率见长。它仅需5,000步即可达到最先进的性能水平。此外,在多次独立运行测试中,未出现任何训练崩溃现象,充分证明了其可靠性。 本研究深入探讨了使用基于价值的强化学习框架进行长思维链(long-CoT)推理。我们识别出影响基于价值方法的三个关键挑战:价值模型偏差、异构序列长度以及奖励信号稀疏性。通过系统化设计,VAPO提供了一个综合解决方案,有效缓解了这些挑战,从而提升了长思维链推理任务的性能表现。 引言 在大语言模型(LLM)的强化学习(RL)训练中,像 GRPO 和 DAPO 这样的无价值方法已展现出显著的有效性。这些方法消除了学习价值模型的计算开销,而是仅根据整个轨迹的最终奖励来计算优势。然后,轨迹级别的优势被直接分配为序列中每个位置的 Token 级别优势。当训练一个可靠的价值模型特别具有挑战性时,无价值方法通过对一个组内多个轨迹的奖励进行平均,为优势计算提供了一个准确且稳定的基线。这种基于组的奖励聚合减轻了对显式价值估计的需求,而显式价值估计在复杂任务中常常存在不稳定性。因此,无价值方法在解决诸如长思维链(CoT)推理等难题方面获得了显著的关注,大量的研究工作都集中在优化其框架上。 尽管不基于价值的方法已取得了显著成功,但我们认为,如果能够克服训练价值模型中的挑战,基于价值的方法则拥有更高的性能上限。首先,价值模型通过精确追踪每个动作对后续回报的影响,能够实现更精确的信用分配,从而促进更细粒度的优化。这对于复杂的推理任务尤为关键,因为在这类任务中,单个步骤的细微错误往往会导致灾难性的失败,而对于在不基于价值的框架下进行优化的模型而言,这仍然是一个挑战。其次,相较于不基于价值的方法中利用蒙特卡洛方法得出的优势估计,价值模型能为每个 Token 提供方差更低的值估计,进而增强训练的稳定性。此外,一个训练良好的价值模型展现出内在的泛化能力,使其能够更有效地利用在线探索过程中遇到的样本。这显著提升了强化学习算法的优化上限。因此,尽管为复杂问题训练价值模型面临着艰巨挑战,但克服这些困难所能带来的潜在收益是巨大的。然而,在长思维链(Long CoT)任务中训练一个完美的价值模型存在显著的挑战。第一,鉴于轨迹漫长以及以自举方式学习价值存在不稳定性,学习一个低偏差的价值模型并非易事。第二,同时处理长响应和短响应也颇具挑战性,因为它们在优化过程中可能对偏差-方差权衡表现出截然不同的偏好。最后但同样重要的是,来自验证者的奖励信号的稀疏性,因长思维链模式而进一步加剧,这内在地要求采用更好的机制来平衡探索与利用。为应对上述挑战并充分释放基于价值的方法在推理任务中的潜力,我们提出了Value Augmented proximal Policy Optimization(VAPO),一个基于价值的强化学习训练框架。VAPO 从 VC-PPO 和 DAPO 等先前的研究工作中汲取灵感,并对其概念进行了进一步扩展。我们将我们的主要贡献总结如下: 我们引入了 VAPO,这是首个在长 COT 任务上显著优于无价值方法的基于价值的强化学习 (RL) 训练框架。VAPO 不仅表现出显著的性能优势,而且还展示了更高的训练效率,简化了学习过程,并突显了其作为该领域新基准的潜力。 我们提出了长度自适应 GAE (Length-adaptive GAE),它根据响应长度自适应地调整 GAE (Generalized Advantage Estimation) 计算中的 $\lambda$ 参数。通过这样做,它有效地满足了与长度差异极大的响应相关的独特偏差-方差权衡需求。因此,它优化了优势估计过程的准确性和稳定性,特别是在数据序列长度变化广泛的场景中。 我们系统地整合了先前工作的技术,例如来自 DAPO 的 Clip-Higher 和 Token 级损失 (Token-level Loss),来自 VC-PPO 的价值预训练 (Value-Pretraining) 和解耦 GAE (Decoupled-GAE),来自 SIL 的自模仿学习 (self-imitation learning),以及来自 GRPO 的组采样 (Group-Sampling)。此外,我们通过消融研究进一步验证了这些技术的必要性。 VAPO 是一个有效的强化学习系统,它整合了这些改进。这些改进平稳地协同作用,产生的整体效果优于各独立部分的总和。我们使用 Qwen2.5-32B 预训练模型进行实验,确保在所有实验中均未引入 SFT 数据,以保持与相关工作(DAPO 和 DeepSeek-R1-Zero-Qwen-32B)的可比性。VAPO 的性能得分相较于原始 PPO 从 5 分提升至 60 分,超越了先前最先进的(SOTA)不依赖价值函数的方法 DAPO 10 分。更重要的是,VAPO 非常稳定 —— 我们在训练期间没有观察到任何崩溃,并且多次运行的结果高度一致。 ...

April 8, 2025 · 小茄墩

Zero RL Training 成功的几个因素分析

SimpleRL-Zoo: Investigating and Taming Zero Reinforcement Learning for Open Base Models in the Wild 摘要 DeepSeek-R1 已经表明,通过一个简单的强化学习(RL)框架,结合基于规则的奖励,长链式思考(CoT)推理可以自然地涌现。在这种框架下,训练可以直接从基础模型开始——这种范式被称 zero RL training。 近期,许多尝试复现零 RL 训练的工作主要集中在 Qwen2.5 模型系列上,但这可能不具有代表性,因为我们发现这些基础模型已经展现出强大的指令遵循和自我反思能力。 在这项工作中,我们研究了 10 个不同的基础模型上的零 RL 训练,这些模型涵盖了不同的系列和规模,包括 LLama3-8B、Mistral-7B/24B、DeepSeek-Math-7B、Qwen2.5-math-7B 以及所有 Qwen2.5 模型(从 0.5B 到 32B)。 通过利用几个关键的设计策略——例如调整格式奖励和控制查询难度——我们在大多数设置中都实现了推理准确性和响应长度的显著提高。 然而,通过仔细监控训练动态,我们观察到不同的基础模型在训练过程中表现出不同的模式。 例如,响应长度的增加并不总是与某些认知行为的出现相关,例如验证(即“顿悟时刻”)。 值得注意的是,我们首次在非 Qwen 系列的小模型中观察到“顿悟时刻”。 我们分享了实现成功零 RL 训练的关键设计,以及我们的发现和实践。 为了促进进一步的研究,我们开源了代码、模型和分析工具。 介绍 回应长度的增加并不总是意味着“顿悟时刻”——有趣的是,对于构成当前大多数开源项目基础的 Qwen2.5 模型,尽管回应长度有所增加,我们并未观察到诸如自我反思等认知行为的频率有所上升。 我们首次观察到,在 Qwen 系列之外的小型模型中,尤其是在 Llama3-8B 和 DeepSeek-Math-7B 模型中,特定认知推理行为(例如验证)的频率显著增加。 强制执行严格的格式奖励(例如,将答案置于特定格式的框内)会显著抑制模型的探索能力,特别是对于那些最初难以遵循指令的基础模型。这种限制会降低它们的性能上限,并常常导致过度思考的行为。 训练数据的难度级别必须与基础模型的内在探索能力紧密对齐,否则零样本强化学习 (zero RL) 将会失败。 与 @shao2024deepseekmath 中的观察结果相反,零样本强化学习 (zero RL) 训练将 pass@k 准确率提高了 10-30 个绝对百分点,这是一个强有力的证据,证实零样本强化学习 (zero RL) 训练不仅仅是重新排序响应。 ...

March 27, 2025 · 小茄墩

批判性视角看待R1训练中的坑

摘要 我们通过分析其两个核心组成部分:基础模型和强化学习,来批判性地检验类似 R1-Zero 的训练方法。 我们研究了包括 DeepSeek-V3-Base 在内的各种基础模型,以了解预训练特征如何影响强化学习的性能。 我们的分析表明,DeepSeek-V3-Base 已经表现出“顿悟时刻”,而 Qwen2.5 基础模型即使没有提示词模板也表现出强大的推理能力,这表明可能存在预训练偏差。 此外,我们发现 GRPO 中存在优化偏差,这会在训练期间人为地增加响应长度(特别是对于不正确的输出)。 为了解决这个问题,我们引入了 Dr. GRPO,这是一种无偏的优化方法,可以在保持推理性能的同时提高 Token 效率。 利用这些见解,我们提出了一个极简的 R1-Zero 配方,该配方使用 7B 基础模型在 AIME 2024 上实现了 43.3% 的准确率,从而建立了新的最先进水平。 1 介绍 在本文中,我们旨在通过研究两个关键组成部分来理解类 R1-Zero 训练:基础模型和强化学习 (RL)。 在第一部分,我们研究基础模型的各项属性,重点关注 Qwen2.5 模型系列,该模型系列已被用于近期复现 R1-Zero 的尝试,真实的 R1-Zero 模型正是基于该模型通过强化学习 (RL) 进行微调得到的。 在第二部分,我们指出了 GRPO 优化中存在的偏差,该偏差可能导致模型生成越来越长的错误回复。 为此,我们提出了一种简单的修改方案来消除这种偏差,即获得正确的 GRPO (Dr. GRPO),从而提高 Token 效率(如图 1 所示)。 我们对基础模型和强化学习 (RL) 的分析表明,R1-Zero 训练存在一种极简方案:我们使用 (无偏) Dr. GRPO 算法,在 MATH (Hendrycks et al., 2021) 数据集难度等级 3-5 的问题上,利用 Qwen-Math 模板对 Qwen2.5-Math-7B 进行强化学习微调。仅使用 8 × A100 GPU 上 27 小时的计算,我们就实现了最先进的性能(图 2)。 ...

March 25, 2025 · 小茄墩

长文本场景下,LLM训练中梯度累加存在的BUG

Unsloth的梯度累积修复确保训练过程和损失计算能够准确和正确地执行。梯度累积的目标是在减少显存(VRAM)使用量的同时模拟完整批次训练。由于梯度累积也用于DDP和多GPU设置中,因此这个问题同样影响着大规模训练。 from unsloth import unsloth_train # trainer_stats = trainer.train() << 存在bug的梯度累积 trainer_stats = unsloth_train(trainer) 复现问题 理论上,梯度累积在数学上应该等效于完整批次训练。我们使用有效批次大小16进行训练,因此批次大小(bsz) * 梯度累积步数(ga)应保持恒定。我们测试了bsz=1,2,4,8和16,发现使用较大梯度累积步数的训练损失始终更高。 什么是梯度累积? 在训练或微调过程中,每一步都会从训练数据集中选择一定数量的随机样本来更新模型权重。但应该选多少样本呢?对于非常大的预训练任务,批次大小可能达到数百万,就像在Llama 3.1中那样,这有助于减少过拟合并提高模型的泛化能力。而对于像Unsloth的Llama 3.2笔记本中的微调任务,批次大小可能只有较小的32。 问题在于大批次的内存使用量非常大。如果1个批次使用1单位内存,那么100万大小的批次将需要100万单位内存。我们如何模拟大批次训练但又不消耗大量内存呢? 这就是梯度累积的用武之地!我们通过在每次新的小批次到来时即时创建梯度,然后将所有小梯度加起来,进行适当缩放,从而获得最终的大批次梯度。 可能的解释 一种流行的理论认为梯度累积在累积步骤中存在数值误差。但研究人员发现,即使在float32中进行累积也会产生相同的问题。我们的研究表明,确实存在一些微小的累积误差。 第二种理论是损失计算中存在bug,我们确认了这一点。 数学上是否等价? 梯度累积和完整批次训练在数学上是否等价?遗憾的是,如果简单地将梯度加起来,答案是否定的!我们首先注意到交叉熵损失是通过以下方式计算的: $$ \frac{1}{\sum \mathbb{I}\{y_i \neq -100\}} \sum L_i $$ 注意分母计算的是非填充或非忽略的token数量 - 即它通过每个文本片段中有效训练token的数量来归一化损失。指示函数实际上是未填充token的总和,也就是所有序列长度的总和,即: $$ \mathbb{I}\{y_i \neq -100\} = \sum m_i $$ 因此我们得到最终方程为: $$ \frac{\sum L_i}{\sum m_i} $$ 然后我们在分子和分母中同时添加 $\frac{1}{n}$ - 这是允许的,因为两者可以相互抵消: $$ \frac{\frac{1}{n}\sum L_i}{\frac{1}{n}\sum m_i} $$ 这意味着最终损失是平均损失值除以所有未填充序列长度的平均值: $$ \frac{\bar{L}}{\bar{m}} $$ 在进行梯度累积时,我们需要分别计算每个小批次的损失,然后将它们加起来得到最终损失。我们首先利用每个分区的平均损失和平均序列长度。 但我们发现,最终总和不等于原始的完整批次损失 - 实际上它比原来大$G$倍(其中$G$是梯度累积步骤的数量)。 ...

March 24, 2025 · 小茄墩

DAPO:大规模开源 LLM 强化学习系统

《DAPO: an Open-Source LLM Reinforcement Learning System at Scale》 摘要 推理规模化使大语言模型具备了前所未有的推理能力,其中强化学习是引发复杂推理的核心技术。然而,最先进的推理大语言模型的关键技术细节往往被隐藏(如 OpenAI 的博客和 DeepSeek R1 技术报告),因此社区仍然难以复现他们的强化学习训练结果。我们提出了解耦裁剪和动态采样策略优化(Decoupled Clip and Dynamic sAmpling Policy Optimization,DAPO)算法,并完全开源了一个最先进的大规模强化学习系统,该系统使用 Qwen2.5-32B 基础模型在 AIME 2024 上达到了 50 分。与之前隐藏训练细节的工作不同,我们介绍了算法的四个关键技术,使大规模 LLM 强化学习取得成功。此外,我们开源了基于 verl 框架构建的训练代码,以及精心策划和处理的数据集。我们开源系统的这些组件增强了可复现性,并支持未来大规模 LLM 强化学习的研究。 1 引言 测试时扩展(如 OpenAI 的 O1 和 DeepSeek 的 R1 )为大语言模型(LLM)[3-7] 带来了深刻的范式转变。测试时扩展支持更长的思维链推理,并诱导复杂的推理行为,使模型在 AIME 和 Codeforces 等竞争性数学和编程任务中表现卓越。 推动这一革命的核心技术是大规模强化学习(RL),它引发了诸如自我验证和迭代强化等复杂推理行为。然而,可扩展 RL 训练的实际算法和方法仍然是个谜,在现有推理模型的技术报告中被隐藏。在本文中,我们揭示了大规模 RL 训练中的重大障碍,并开源了一个可扩展的 RL 系统,包括完全开源的算法、训练代码和数据集,提供了具有行业级 RL 结果的民主化解决方案。 我们以 Qwen2.5-32B [12] 作为 RL 的预训练模型进行实验。在我们初始的 GRPO 运行中,在 AIME 上仅实现了 30 分——远低于 DeepSeek 的 RL(47 分)。深入分析表明,朴素的 GRPO 基线存在几个关键问题,如熵崩塌、奖励噪声和训练不稳定性。更广泛的社区在复现 DeepSeek 的结果时遇到了类似的挑战 ,这表明 R1 论文中可能省略了开发行业级、大规模且可复现的 RL 系统所需的关键训练细节。 ...

March 18, 2025 · 小茄墩

没有层归一化的Transformers

Normalization layers 在现代神经网络中无处不在,并且长期以来被认为是必不可少的。这项工作表明,不使用归一化的 Transformer 可以通过一种非常简单的技术实现相同或更好的性能。我们引入了Dynamic Tanh (DyT),一种逐元素操作 $DyT(x) = tanh(αx)$,作为 Transformer 中归一化层的直接替代品。DyT 的灵感来自于 Transformer 中的层归一化通常会产生类似 tanh 的 $S$ 形输入-输出映射的观察结果。通过结合 DyT,不使用归一化的 Transformer 可以匹配或超过其归一化对应物的性能,而且大多数情况下无需超参数调整。我们验证了带有 DyT 的 Transformer 在各种设置中的有效性,范围从识别到生成,从监督学习到自监督学习,以及从计算机视觉到语言模型。这些发现挑战了归一化层在现代神经网络中不可或缺的传统理解,并为它们在深度网络中的作用提供了新的见解。 1 介绍 我们的探索始于观察到LN层将其输入映射到具有类tanh、S形曲线的输出,从而缩放input activations,同时压缩极端值。受此启发,我们提出了一种称为 Dynamic Tanh(DyT)的逐元素操作,定义为:$DyT(x) = tanh(\alpha x)$,其中$\alpha$是一个可学习的参数。该操作旨在通过学习一个合适的缩放因子$\alpha$,并通过有界的tanh函数压缩极端值,从而模拟LN的行为。值得注意的是,与归一化层不同,它无需计算激活统计量即可实现这两种效果。如图1所示,采用DyT非常简单:我们直接在视觉和语言Transformer等架构中用DyT替换现有的归一化层。我们通过实验证明,具有DyT的模型可以稳定地进行训练,并在各种设置中实现较高的最终性能。它通常不需要需要在原始架构上调整训练超参数。我们的工作挑战了归一化层对于训练现代神经网络是不可或缺的这一概念,并提供了对归一化层属性的经验性见解。此外,初步测量表明,DyT 提高了训练和推理速度,使其成为面向效率的网络设计的候选方案。 2 背景:归一化层 $$ \text{normalization}(x) = \gamma \frac{x - \mu}{\sqrt{\sigma^2 + \epsilon}} + \beta $$ 其中 \( $\epsilon$ \) 是一个很小的常数,\( $\gamma$ \) 和 \( $\beta$ \) 是形状为 \( $C$, \) 的可学习向量参数。 它们是“缩放”和“平移”仿射参数,允许输出在任何范围内。 术语 \( $\mu$ \) 和 \( $\sigma^2$ \) 表示输入的均值和方差。 不同的方法主要区别在于如何计算这两个统计量。 这导致 \( $\mu$ \) 和 \( $\sigma^2$ \) 具有不同的维度,每个维度在计算期间应用广播。 ...

March 14, 2025 · 小茄墩