BIG-MATH 25万高质量数学数据集

摘要 对推理模型日益增长的兴趣使得数学成为算法和方法改进的重要试验场。然而,现有的开放数学数据集要么包含少量高质量、人工编写的问题,要么包含大量质量不确定的机器生成的问题,迫使研究人员在质量和数量之间做出选择。在这项工作中,我们提出了[Big-Math],一个包含超过25万个高质量数学问题的数据集,这些问题具有可验证的答案,专门为强化学习(RL)而设计。为了创建[Big-Math],我们严格地过滤、清理和整理公开可用的数据集,提取满足我们三个要求的问题: (1)具有唯一可验证解决方案的问题, (2)开放式问题, (3)具有封闭式解的问题。 为了确保[Big-Math]的质量,我们手动验证过滤过程中的每个步骤,并通过多轮迭代改进我们的过滤器。 根据我们的过滤过程的发现,我们引入了47,000个具有验证答案的新问题,[Big-Math-Reformulated]:通过系统的重构算法,将封闭式问题(即多项选择题)重新构造为开放式问题。与最常用的现有开源数学推理数据集GSM8k和MATH相比,[Big-Math]的规模要大一个数量级(250,000个问题,而GSM8k中有8,000个问题,MATH中有12,000个问题),而我们严格的过滤确保我们保持最适合RL的问题。我们还对数据集进行了严格的分析,发现[Big-Math]在问题领域中包含高度的多样性,并包含了广泛的问题难度,从而为不同能力和训练要求的模型提供了广泛的下游用途。总之,这项工作提出了我们的新数据集[Big-Math],这是最大的适用于RL训练的开放数学问题数据集。通过弥合数据质量和数量之间的差距,[Big-Math]为推进大语言模型(LLM)中的推理奠定了坚实的基础。 分析与讨论 讨论和分析 [Big-Math] 数据集。我们将考虑数据集的难度、多样性以及我们提出的过滤器的结果。在整个分析过程中,我们将包含讨论要点,以帮助 [Big-Math] 的下游使用。 数据集难度 我们基于 Llama-3.1-8B 模型的推演 (rollouts) 计算 [Big-Math] 中问题的难度,这为理解问题复杂度提供了一个基准。对于数据集中的每个问题,我们生成 64 个推演,并计算每个问题的成功率。大多数最简单的数据(最高的解决率)来自 Orca-Math、cnk_12 和 MATH 数据集,而最困难的数据则更均匀地分布在各个数据集上。特别是,我们发现几乎所有的 Omni-MATH 和 HARP 都无法被 Llama-3.1-8B 解决。因此,为了在这些困难的子集上对 Llama-3.1-8B 应用强化学习 (RL),需要对该特定模型进行监督微调,或者使用利用过程奖励模型的 RL 训练算法。例如,具有可验证奖励的强化学习 (RLVR) 不太可能在 Omni-Math 和 HARP 上有效工作,因为模型的响应不会产生训练信号。 接下来,我们将问题按难度分为五个等级,最难的等级是成功率低于 20% 的问题,最简单的等级是成功率高于 80% 的问题。我们发现,从最简单到最难,这五个等级分别有 71,926 个 (28.64%)、30,533 个 (12.16%)、25,763 个 (10.26%)、31,249 个 (12.44%) 和 91,647 个问题(占问题总数的 36.50%)。 现在一个显而易见的问题是:从业者应该如何将这些数据集难度用于他们自己的目的? 一般来说,那些训练能力较弱或较小模型的从业者可能希望删除最困难的问题,因为模型部署不太可能得到正确的答案。这导致学习过程效率低下,因为用于大语言模型的多数强化学习方法(除了那些具有过程奖励模型的方法)如果模型永远无法得出正确答案,将获得 0 信号。另一方面,对于那些训练更大或数学专用模型的从业者来说,他们会发现许多简单的问题是多余的,并且在这些数据上进行训练将是低效的。因此,对于训练强大模型的从业者来说,只保留较难的问题是明智的。假设保留了最难的两个等级的数据,仍然有超过 120,000 个问题,比下一个最接近的适合强化学习的数据集多 10 倍以上。 接下来,我们看看我们新颖的 [Big-Math-Reformulated] 子集的难度。我们看到我们的子集遵循与数据集其余部分相似的解决率分布;它在难度分布的低端和高端周围的密度略高。然而,[Big-Math-Reformulated] 偏向于更难的问题。具体来说,我们发现 [Big-Math-Reformulated] 中有 34.44% 位于最难的等级,另外有 16.42% 位于第二难的等级,两者加起来超过了新数据的 50%。 最后,我们研究了每个问题领域的解决率分布,如图4所示。我们发现,难度最高的问题集中在微分方程、离散数学和抽象代数领域,而预代数领域则以显著优势成为最简单的领域。有趣的是,其余领域的难度分布非常广泛,表明在每个领域内部,可能存在需要不同专业水平才能解决的问题。令人惊讶的是,线性代数被认为是相对容易的领域之一,而几何学则被认为是难度最高的领域之一。然而,这可能是领域分类过程本身造成的偏差,也可能是 Llama-3.1-8B 的特定训练数据所致。 ...

February 25, 2025 · 小茄墩

DeepSeek 开源周day1: FlashMLA

https://github.com/deepseek-ai/FlashMLA FlashMLA FlashMLA 是针对Hopper架构GPU优化的高效MLA解码内核,专为变长序列服务场景设计。 当前已发布特性: BF16支持 分页式kvcache(块大小为64) 快速入门 安装 python setup.py install 性能测试 python tests/test_flash_mla.py 在H800 SXM5(CUDA 12.6环境)上实现内存受限配置下3000GB/s的带宽吞吐,计算受限配置下580 TFLOPS的算力表现。 使用方法 from flash_mla import get_mla_metadata, flash_mla_with_kvcache tile_scheduler_metadata, num_splits = get_mla_metadata(cache_seqlens, s_q * h_q // h_kv, h_kv) for i in range(num_layers): ... o_i, lse_i = flash_mla_with_kvcache( q_i, kvcache_i, block_table, cache_seqlens, dv, tile_scheduler_metadata, num_splits, causal=True, ) ... 环境要求 Hopper架构GPU CUDA 12.3及以上版本 PyTorch 2.0及以上版本 致谢 FlashMLA的设计灵感来源于FlashAttention 2&3以及cutlass项目。

February 24, 2025 · 小茄墩

小模型的推理困境

摘要 大语言模型 (LLM) 在复杂的推理任务中表现出色,将它们的推理能力提炼到较小的模型中也展现了潜力。然而,我们发现了一个有趣的现象,称之为“小模型可学习性差距”:参数量较小的模型($\leq$3B 参数)并不能始终从长链式思考 (CoT) 推理或从更大模型的蒸馏中获益。相反,当在更短、更简单的推理链上进行微调时,这些小模型表现更好,因为这些推理链更符合它们固有的学习能力。为了解决这个问题,我们提出了混合蒸馏 (Mix Distillation),这是一种简单而有效的策略,通过结合长短 CoT 示例,或者结合来自较大和较小模型的推理,来平衡推理的复杂性。实验表明,与单独使用任何一种数据进行训练相比,混合蒸馏显著提高了小模型的推理性能。这些发现突显了直接从强大模型进行蒸馏的局限性,并强调了调整推理复杂性对于有效传递推理能力的重要性。 介绍 大语言模型(LLM)的高计算成本阻碍了它们在资源受限设备上的部署,因此,开发以更低成本提供类似能力的小型模型变得迫切。一种广泛采用的策略是知识蒸馏,即利用强大的教师模型生成的思维链(CoT)序列来微调较弱的学生模型。人们自然会认为,从更强大的模型中蒸馏思维链序列能够持续提升小型模型复杂的推理能力。然而,我们发现了一个有趣的现象,我们称之为“小型模型可学习性差距”(如图1所示):小型模型并不能始终从强大的教师模型提供的复杂推理序列中获益,例如,较长的思维链推理或从大型模型进行的知识蒸馏。在我们的实验中,我们观察到,当小型模型接触到冗长且复杂的推理过程时,由于自身能力的限制,它们难以理解并内化多步骤的逻辑。相反,当小型模型在更短、更简单的推理链上进行微调时,它们表现更好,因为这些推理链与它们固有的学习能力更加匹配。这表明,小型模型难以处理过于复杂的推理过程,或者适应由更强大的教师模型引入的分布偏移,最终限制了它们有效泛化的能力。 为了解决上述挑战,我们提出了混合蒸馏(Mix Distillation),这是一种简单而有效的方法,它通过混合不同类型的推理轨迹来平衡推理的复杂性。具体来说,我们的方法包括两种配置: (1)混合-长(Mix-Long)——长思维链(CoT)示例和短思维链示例的组合,确保小型模型能够接触到详细和简洁的推理步骤。 (2)混合-大(Mix-Large)——来自较大模型和较小模型的响应的混合,允许小型模型从更适合其能力的推理链中学习。我们的实验表明,与标准蒸馏相比,混合蒸馏能够持续提高小型模型的推理性能。例如,与直接在长思维链数据上训练相比,Qwen2.5-3B-Instruct使用Mix-Long在MATH和AMC上提高了8个点以上。与在大型教师思维链数据上训练相比,Qwen2.5-3B-Instruct使用Mix-Large在MATH、AIME和AMC上获得了超过7个点的提升。 这些发现突出了直接进行强模型蒸馏的一个根本局限性,并强调了调整推理复杂性对于有效知识转移的重要性。通过仔细设计蒸馏策略,我们为克服小型模型学习的约束提供了新的见解,使其在推理密集型任务中更加有效。 符号 设 $x = (x_1, x_2, \dots, x_n)$ 表示一个输入序列(例如,一个提示词),$y = (y_1, y_2, \dots, y_m)$ 是相应的输出序列。我们考虑一个由 $\theta$ 参数化的大语言模型 (LLM),它预测下一个 Token,遵循条件分布 $\pi_\theta \bigl(y_t|x, y_{1:t-1}\bigr)$。我们用 $\text{CoT}(y) \subseteq y$ 表示生成输出中编码思维链的 Token 子集,通常用作推理轨迹或解释性序列。 在本文中,我们使用术语短 CoT 来描述得出解决方案的简洁的思维链,并使用长 CoT 来描述不仅更长而且展现出更复杂反思性思考的更长的思维链。此外,我们使用术语大型教师 CoT 来指代由更大的教师模型生成的推理轨迹,并使用术语小型教师 CoT 来指代由较小的教师模型产生的推理步骤。 监督式微调 (SFT) 监督式微调 (SFT) 被广泛采用,以增强大语言模型在数据集 $\mathcal{D} = \{(x^i, y^i)\}_{i=1}^N$ 上的推理能力,其中 $y^i$ 可以是短 CoT、长 CoT、强模型 CoT 或弱模型 CoT 序列。SFT 过程通过最小化指令数据集 $\mathcal{D}$ 上的负对数似然损失来更新语言模型的参数 $\theta$。 ...

February 20, 2025 · 小茄墩

蒸馏scaling law

摘要 我们提出了一种==蒸馏缩放定律,该定律基于计算预算及其在学生模型和教师模型之间的分配,来估计蒸馏模型的性能==。 我们的发现降低了大规模使用蒸馏的风险;现在可以进行教师模型和学生模型的计算分配,以最大限度地提高学生模型的性能。 我们提供了计算最优的蒸馏方案,适用于以下两种情况:1) 教师模型已存在;2) 教师模型需要训练。 如果需要蒸馏多个学生模型,或者已经存在教师模型,那么在计算量达到一定水平之前,蒸馏的表现优于监督预训练,而该计算水平会随着学生模型大小的增长而可预测地增长。 如果只需要蒸馏一个学生模型,并且教师模型也需要训练,那么应该改为进行监督学习。 此外,我们还提供了对大规模蒸馏研究的见解,这些见解加深了我们对蒸馏的理解,并为实验设计提供了信息。 介绍 对缩放定律的研究表明,如果先前训练的[lms]遵循计算最优的训练范式,它们可以表现得更加出色。这种范式旨在确定在给定的计算预算下,能够产生最佳性能模型的模型大小和训练 Token 数量。 许多后续研究都遵循了计算最优训练方法。 计算最优模型的大小随着计算量的增长而增长,这导致推理成本增加,从而使得它们更难被有效利用。 实际上,这意味着计算最优模型速度慢、服务成本高昂、消耗更多电池电量、提高了学术研究的门槛,并且会产生显著的碳排放。 随着推理量高达每天数十亿 Token,lm的推理成本通常远高于其预训练成本,并且在测试时计算量扩展的时代,这一成本还将进一步增加。 不可持续的推理成本催生了一种替代的训练范式,即过拟合训练,在这种范式中,所使用的训练数据量远超计算最优状态下的数据量,从而能够训练出小型且性能强大的模型。当以模型的整个生命周期而非仅仅预训练成本来衡量计算量时,过拟合训练的模型能更好地满足计算最优性。由于监督学习的扩展法则遵循模型大小和训练数据的幂律关系,因此性能的边际效益递减出现得比计算最优情况下要早得多。为了达到合理的性能水平,这些模型需要在数万亿的 Token 上进行训练,这既昂贵又耗时。我们力求找到一种模型,它能在更低的训练成本下达到小型过拟合训练模型的性能水平。一个常用的备选方案是知识蒸馏,即由一个性能强大的教师 [lm]为一个较小的学生 [lm]模型生成训练目标。当知识蒸馏被用于 [lm]预训练时,我们称之为知识蒸馏预训练。关于为什么知识蒸馏有效,存在多种解释,从暗知识迁移(即信息蕴含在不正确类别的概率比率中),到作为一种正则化手段,或是降低学习过程中的噪声等等。尽管对于知识蒸馏有效的原因尚未达成共识,但在 Gemma 和 Gemini、Minitron 和 AFM 系列的 [lms]模型中,知识蒸馏预训练在预训练损失和下游评估方面,都产生了比监督预训练更强大的模型。然而,与此同时,@DBLP:conf/icml/Liu0ILTFXCSKLC24 报告称,知识蒸馏产生的模型比监督预训练产生的模型能力更弱。 鉴于大量计算资源正被用于 [lms]的蒸馏预训练,至关重要的是要了解如何合理分配这些资源,以尽可能地训练出性能最佳的模型。同时,我们也需要了解,在相同资源条件下,蒸馏预训练相比于监督预训练是否具有优势。为了填补这一知识空白,我们对蒸馏方法进行了广泛的对照研究,学生模型和教师模型的参数规模从 1.43 亿到 126 亿不等,训练数据量从数十亿 Token 扩展到最多 5120 亿 Token。通过这些实验,我们得出了蒸馏缩放定律,该定律将学生模型的性能估计为关于资源的函数(包括教师模型、学生模型的大小以及用于蒸馏的数据量)。该定律解决了在特定资源约束下,蒸馏方法在生成具有期望能力的模型时,是否有效的问题。我们的研究发现: 大小为 $N_S$ 的学生模型,在从大小为 $N_T$ 的教师模型蒸馏得到的 $D_S$ 个 Token 上进行蒸馏时,其交叉熵可以使用我们的蒸馏缩放定律进行预测。 教师模型的大小 $N_T$ 和教师模型训练所用的 Token 数量 $D_T$,仅通过它们所决定的教师模型交叉熵 $L_T=L_T(N_T,D_T)$ 来影响学生模型的交叉熵。 教师交叉熵对学生损失的影响遵循幂律,该幂律根据学生和教师的相对学习能力在两种行为之间转换,反映了知识蒸馏中的一种称为能力差距的现象,即更强的教师模型反而会产生更差的学生模型。我们的参数化解决了关于能力差距的悬而未决的问题,表明它是教师模型和学生模型之间学习能力(包括假设空间和优化能力)的差距,而不仅仅是它们相对大小的差距,后者只是一种特殊情况。我们的结果表明,当两个学习过程都获得足够的数据或计算资源时,知识蒸馏无法产生比监督学习更低的模型的交叉熵。然而,如果以下两个条件都成立,则知识蒸馏比监督学习更有效: 用于学生的总计算量或 Token 数量不大于我们的缩放定律给出的取决于学生模型规模的阈值。 教师模型已经存在,或者要训练的教师模型除了单一知识蒸馏之外还有其他用途。 我们希望我们提供的定律和分析将指导社区生产出更强大的模型,并降低推理成本和生命周期计算成本。 背景 在模型扩展时,预测模型性能至关重要,因为它使我们能够理解:i) 增加可用计算资源 ($C$) 的价值;以及 ii) 如何分配这些计算资源,通常是在模型参数 ($N$) 和数据 ($D$) 之间,以实现具有所需属性的模型。这些属性可能包括充分预测数据分布(以交叉熵 ($L$) 衡量),或者在感兴趣的下游任务上达到一定水平的性能。幸运的是,交叉熵 是可预测的,大量的经验和理论证据表明,$L$ 遵循参数 $N$ 和数据 $D$(以 Token 衡量)的幂律: ...

February 14, 2025 · 小茄墩

On the Emergence of Thinking in LLMs I: Searching for the Right Intuition

摘要 人工智能的最新进展,例如 OpenAI 的新型 o 模型、谷歌的 Gemini Thinking 模型和 Deepseek R1,正在将大语言模型 (LLM) 转化为大型推理模型 (LRM)。与大语言模型不同,大型推理模型在推理过程中执行思考或推理,需要额外的时间和计算来产生更高质量的输出。这项工作旨在发现训练大型推理模型背后的算法框架。基于自洽性、过程奖励建模、AlphaZero 的方法表明,==推理是一种引导搜索的形式==。基于这一原则,我们提出以下问题:==在大型语言模型的背景下,实现搜索的最简单和最具可扩展性的方法是什么?== 为了回答这些问题,我们提出了一个名为“通过自我博弈进行强化学习”(RLSP)的后训练框架。RLSP 涉及三个步骤:(1)使用人类或合成的推理过程演示进行监督微调;(2)使用探索奖励信号来鼓励多样化和高效的推理行为;(3)使用结果验证器进行强化学习训练,以确保正确性,同时防止奖励黑客行为。我们的主要创新是在 PPO 训练期间解耦探索和正确性信号,仔细平衡它们以提高性能和效率。 我们对数学领域的 RLSP 框架进行了实证研究,结果表明,使用 RLSP 框架训练的模型表现出改进的推理能力。在 Llama-3.1-8B-Instruct 模型上,RLSP 框架可以将 MATH-500 测试集中的性能提高 23%;在 AIME 2024 数学问题上,Qwen2.5-32B-Instruct 由于 RLSP 技术提高了 10%。然而,这项工作更重要的发现是,使用 RLSP 技术训练的模型,即使使用最简单的探索奖励(鼓励模型采取更多中间步骤),也表现出几种涌现行为,例如回溯、探索想法和验证。这些发现表明,当适当扩展时,RLSP 框架可能足以使大语言模型 (LLM) 涌现出复杂的推理能力。 最后,我们提出了一个理论,解释为什么 RLSP 搜索策略比文献中先前考虑的方法更适合大语言模型,这受到最近一项引人注目的结果的启发,该结果表明 CoT 可证明地 提高了大语言模型的计算能力,从而提高了推理能力,并且这些能力随着 CoT 中的步骤数量而增长。 参考文献: 介绍 随着 OpenAI 的 o 系列模型、Google 的 Gemini Thinking 模型以及 Deepseek R1 的发布,大语言模型 (LLM) 正在迅速演变为思考机器,现在被称为大型推理模型 (LRM)。==LLM 和 LRM 之间的关键技术区别在于 LRM 在推理过程中进行思考的能力==,我们将其定义为在(推理)过程中花费更多时间和计算资源,以期为给定的输入产生更高质量的输出,这对于所有能够进行推理的人工和生物系统来说,都是一个合理的思考过程定义。 ...

February 13, 2025 · 小茄墩

LLM中的深度诅咒现象

我们都认识到 DeepSeek模型的优势,但您是否知道,其近一半的图层的贡献低于预期? 我们可以移除近一半的后置图层,而对性能的影响微乎其微,对于大型模型而言影响甚至更大。这意味着浪费了大量用于训练 LLM 的资源。 在本文中,我们将介绍深度诅咒(Curse of Depth)这一概念,它强调、解释并解决了最近在现代 LLM 中观察到的近一半层的有效性低于预期的问题。 摘要 我们提出了一种新颖的深度神经网络训练方法,该方法结合了监督学习和无监督学习的优势。我们的方法,我们称之为“半监督对比学习”(SSCL),利用带标签的数据学习判别性特征,同时利用未标签的数据来提高模型的鲁棒性和泛化能力。SSCL 基于对比学习的原则,即训练模型将相似样本的表示聚集在一起,同时将不相似样本的表示推开。然而,与传统的对比学习方法不同,SSCL 通过使用带标签数据的标签来指导对比学习过程,从而整合了监督信息。具体来说,我们引入了一种新的损失函数,该函数将监督对比损失与无监督对比损失相结合。监督对比损失鼓励模型学习相对于带标签类别具有判别性的特征,而无监督对比损失鼓励模型学习对未标签数据中的变化具有鲁棒性的特征。我们在各种图像分类任务上评估了 SSCL,结果表明,尤其是在带标签数据的数量有限时,它优于监督学习和无监督学习方法。此外,我们证明了 SSCL 可用于学习对对抗攻击不太敏感的鲁棒特征。 在本文中,我们介绍了深度诅咒,这一概念旨在强调、解释并解决现代大语言模型 (LLM) 中最近观察到的现象:近一半的层其效果不如预期。我们首先确认了这种现象在最流行的 LLM 家族中广泛存在,例如 Llama、Mistral、DeepSeek 和 Qwen。我们的分析,从理论和经验两方面出发,都表明 LLM 中深层效果不佳的根本原因是 Pre-Layer Normalization (Pre-LN,预层归一化) 的广泛使用。虽然 Pre-LN 能够稳定 Transformer 大语言模型的训练过程,但其输出方差会随着模型深度的增加呈指数级增长,这导致深层 Transformer 模块的导数趋近于单位矩阵,因此几乎无法对训练做出有效贡献。为了解决这个训练难题,我们提出了 LayerNorm Scaling(层归一化缩放),它通过层归一化深度的平方根倒数来缩放输出方差。这种简单的修改能够有效缓解更深层 Transformer 层的输出方差爆炸问题,从而提高它们的贡献。我们的实验结果涵盖了从 1.3 亿到 10 亿参数规模的模型,结果表明,与 Pre-LN 相比,LayerNorm Scaling 能够显著提升 LLM 预训练的性能。此外,这种性能提升也能无缝延续到监督微调阶段。所有这些增益都可以归因于 LayerNorm Scaling 使得更深层能够在训练过程中更有效地发挥作用。我们的代码已在 LayerNorm-Scaling 开源。 介绍 最近的研究表明,大语言模型(LLM)中较深的层(Transformer blocks)往往不如较早的层有效。一方面,这个有趣的观察结果为大语言模型压缩提供了一个有效的指标。例如,我们可以更大幅度地压缩较深的层,以实现更高的压缩率。更激进的做法是,为了获得更经济实惠的大语言模型,可以完全剪枝整个深层,而不会影响性能。另一方面,拥有许多无效层是不可取的,因为大语言模型在训练时极其耗费资源,通常需要数千个GPU训练数月,更不用说用于数据整理和管理的劳动力。理想情况下,我们希望模型中的所有层都经过良好训练,层与层之间的特征具有足够的差异性,以最大限度地提高资源的利用率。无效层的存在表明,当前的大语言模型范式必然存在问题。解决这些局限性是社区的迫切需求,以避免浪费宝贵的资源,因为新版本的大语言模型通常沿用之前的计算范式进行训练,这会导致无效层的产生。 为了立即引起社区的关注,我们引入了深度诅咒(CoD)的概念,以系统地呈现各种大语言模型(LLM)家族中无效深层现象,从而识别其背后的根本原因,并通过提出层归一化缩放(LayerNorm Scaling)来纠正它。我们首先陈述下面的深度诅咒。 深度诅咒。 ==深度诅咒指的是观察到的现象,即与早期层相比,LLM中更深层对学习和表示的贡献明显更少。这些更深层通常表现出对模型剪枝和扰动攻击的显着鲁棒性,这意味着它们无法执行有意义的转换。这种行为阻止了这些层有效地促进训练和表示学习,从而导致资源利用率低。== CoD 的经验证据。@yin2023outlier 发现,与较浅的层相比,大语言模型的较深层可以容忍显著更高程度的剪枝,从而实现高稀疏性。类似地,@gromov2024unreasonable 和 @men2024shortgpt 证明,移除早期层会导致模型性能急剧下降,而移除深层则不会。@lad2024remarkable 表明,GPT-2 和 Pythia 的中间层和深层对诸如层交换和层丢弃之类的扰动表现出显著的鲁棒性。最近,@li2024owlore 强调,早期层包含更多的异常值,因此对于微调更为关键。虽然这些研究有效地突出了大语言模型中深层的局限性,但它们未能确定此问题的根本原因或提出可行的解决方案来解决它。为了证明深度诅咒在流行的 LLM 系列中普遍存在,我们对各种模型(包括 LLaMA2-7/13B、Mistral-7B、DeepSeek-7B 和 Qwen-7B)进行了层剪枝实验。我们通过一次剪除每个模型的整个层,并直接在 MMLU 上评估生成的剪枝模型,来衡量大规模多任务语言理解 (MMLU) 基准上的性能下降,如图1所示,无需进行任何微调。 ...

February 12, 2025 · 小茄墩

OpenAI:Competitive Programming with Large Reasoning Models

摘要 我们展示了应用于大语言模型(LLM)的强化学习能够显著提升在复杂编码和推理任务上的性能。此外,我们将两个通用推理模型——OpenAI o1 和 o3 的早期检查点——与一个特定领域的系统 o1-ioi 进行比较,后者使用为参加 2024 年国际信息学奥林匹克竞赛(IOI)而手工设计的推理策略。我们使用 o1-ioi 参加了 2024 年 IOI 的现场比赛,并使用手工制作的测试时策略,placed in the 49th percentile。在放宽比赛限制的条件下,o1-ioi 获得了金牌。然而,在评估像 o3 这样的后期模型时,我们发现 o3 在没有手工制作的特定领域策略或放宽限制的条件下获得了金牌。我们的研究结果表明,尽管像 o1-ioi 这样的专门流程产生了可靠的改进,但扩展的通用 o3 模型超越了这些结果,而无需依赖手工制作的推理启发式方法。值得注意的是,o3 在 2024 年 IOI 上获得了金牌,并在 [CodeForces]上获得了与精英人类竞争者相当的评分。总的来说,这些结果表明,扩展通用强化学习,而不是依赖于特定领域的技术,为在推理领域(如Competitive Programming)中实现最先进的 AI 提供了一条稳健的道路。 介绍 Competitive Programming被广泛认为是评估推理和编码能力的一个极具挑战性的基准。解决复杂的算法问题需要高级的计算思维和问题解决技能。此外,这些问题也是可以客观评分的,使其成为评估 AI 系统推理能力的理想试验平台。最近关于使用大语言模型进行程序合成的研究表明,即使是参数规模从 2.44 亿到 1370 亿的相对通用的模型,也可以从自然语言指令生成简短的 Python 脚本。重要的是,性能随着模型规模的增加呈对数线性增长,并且微调可以显著提高准确性。与此同时,Codex,一个早期以代码为中心的大语言模型,擅长 Python 程序生成,并为 GitHub Copilot 提供支持。进一步的进展来自 AlphaCode,它使用大规模代码生成和推理时的启发式方法来解决Competitive Programming任务,以及随后的 AlphaCode2,其改进使 AlphaCode 解决的问题数量几乎翻倍,并使其在 [CodeForces]平台上达到第 85 个百分位。在选择前 10 个提交的解决方案之前,两个 AlphaCode 系统都使用了大规模采样,每个问题最多生成一百万个候选解决方案,并采用手工设计的测试时策略。 自那以后,在利用强化学习来提高大语言模型(LLM)的推理能力方面取得了显著进展。这促使了大型推理模型(LRM)的出现:这些语言模型通过强化学习进行训练,以“推理”和“思考”延长的思维链。特别是,OpenAI 的 o1 及其即将发布的继任者 o3 使用思维链推理来处理复杂的任务,如数学和编码。 ...

February 12, 2025 · 小茄墩

Open R1 项目 第二周总结与展望

摘要 我们现在已经进入了 Open R1 项目 的第二周,该项目旨在重建 DeepSeek R1 缺失的部分——特别是训练管道和合成数据。 分享 OpenR1-Math-220k 的构建:这是我们首个用于数学推理的大规模数据集! 介绍社区在策划用于微调的小型、高质量数据集方面取得的一些令人兴奋的进展,以及关于如何在训练和推理阶段控制推理模型的思维链长度的见解。 OpenR1-Math-220k 数据集 DeepSeek R1 的主要优势之一是它能够通过知识蒸馏将高级推理能力迁移到较小的模型。 DeepSeek 团队通过生成 60 万个推理轨迹并微调一系列 Qwen 和 Llama 模型证明了这一点,表明直接从 R1 进行知识蒸馏可以在无需强化学习的情况下实现具有竞争力的推理性能。 值得注意的是,DeepSeek-R1-Distill-Qwen-7B 在 AIME 2024 上取得了 55.5% 的成绩,超过了像 QwQ-32B-Preview 这样更大的模型。 然而,用于蒸馏的推理轨迹尚未公开,这促使社区独立地重新创建类似的数据集。到目前为止,社区已经发布了多个开放数据集,包括 OpenThoughts-114k、Bespoke-Stratos-17k、Dolphin-R1 和 LIMO。 🐳 隆重推出 OpenR1-Math-220k,这是一个大规模的数学推理数据集,它利用 512 个 H100 在本地生成,且每个问题都对应多个答案。为了创建 OpenR1-Math-220k,我们与 Numina 展开合作,他们开发了广受欢迎的 NuminaMath-CoT 数据集的全新版本。 与现有数据集相比,OpenR1 数据集的新特性:80 万条 R1 推理轨迹:我们使用 DeepSeek R1 为 40 万道问题生成了两个答案。经过筛选的数据集包含 22 万道问题,并带有正确的推理轨迹。 本地运行 512 个 H100: 我们没有依赖 API,而是利用 vLLM 和 SGLang 在我们的科学集群上本地运行生成,每天生成 18 万条推理过程。 基于 NuminaMath 1.5: 我们专注于数学推理过程,并为 NuminaMath 1.5 中的问题生成答案,NuminaMath 1.5 是 NuminaMath-CoT 数据集的改进版本。 自动过滤: 我们应用 Math Verify 来仅保留至少有一个正确答案的问题。我们还利用 Llama3.3-70B-Instruct 作为一个判断器,以检索更多正确的例子(例如,对于答案格式错误,无法使用基于规则的解析器验证的情况)。 我们通过在我们的数据集上微调 Qwen-7B-Math-Instruct 来匹配 DeepSeek-Distill-Qwen-7B 的性能。 通过展示可扩展的、高质量的推理数据生成,我们希望这个流程可以扩展到数学以外的领域,例如代码生成。 ...

February 11, 2025 · 小茄墩

PPO训练技巧总览

Jian Hu’s Blogpost 以下所有实例均可在Jian Hu开发的OpenRLHF 0 - 引言 基于人类反馈的强化学习(Reinforcement Learning from Human Feedback, RLHF)结合近端策略优化(Proximal Policy Optimization, PPO)[1]是一种用于微调大语言模型(Large Language Models, LLMs)的强大方法。该方法使用可靠且高效的PPO算法,结合人类评估者的反馈来提高模型生成响应的质量。然而,使用PPO训练LLMs存在几个挑战。这些包括维持稳定的训练过程,以及实现比直接偏好优化(Direct Preference Optimization, DPO)[2]更好的性能。因此,我们总结了RLHF与PPO的实用训练技巧,以帮助研究人员更轻松地微调LLMs,确保训练稳定性和高性能。 1 - 使用PPO训练LLM的高级技巧 我们介绍三类PPO训练技巧:1) LLM特定技巧,2) PPO特定技巧,以及3)来自最新研究的创新策略。LLM特定和PPO特定的技巧已在各种RL框架[3, 4]中实现并证明有效。然而,最近论文中提出的创新策略在特定任务上的适用性仍有待验证。 1.1 - LLM特定技巧 Token级KL惩罚:计算强化学习(RL)模型和监督微调(SFT)模型的响应分布之间的每个token的KL散度[11]。这种散度在训练过程中作为惩罚项被纳入奖励函数。具体来说,每个token的奖励表示如下: $$ r(s_t, a_t) = \textbf{I}(s_t =[\text{EOS}])r(x,y)-\beta \text{KL}(t) $$$$ \text{KL}(t) = \log({\pi_{\theta_{\text{old}}}(a_t|s_t)^{\text{RL}}}/{\pi^{\text{SFT}}(a_t|s_t)} $$​ $$t$$ 是否为最后一个token的标识函数。 ​ 代码链接:utils.py 广义优势估计(Generalized Advantage Estimation, GAE):GAE[10]是一种TD(λ)回报估计方法,用于估计PPO中的token级奖励。在实践中,我们通常设置$λ=1$,将GAE方法转换为蒙特卡洛估计方法。 代码链接:experience_maker.py 将GAE的λ和折扣因子$γ$都设为1,这可以减少值网络引入的偏差。 代码链接:OpenRLHF/openrlhf/cli/train_ppo_ray.py 添加SFT损失:在PPO中加入额外的监督下一个token预测损失,与KL散度一起,可以保持SFT模型的预存能力。 代码链接:ppo_trainer.py 1.2 - PPO特定技巧 模型初始化:在使用PPO训练LLMs时,必须初始化两个模型:演员模型(actor model)和评论家模型(critic model)[6, 7]。具体来说,使用监督微调(SFT)模型初始化演员模型,使用奖励模型初始化评论家模型可以确保PPO训练的效率。 代码链接:examples/train_ppo.py Adam学习率:演员模型的Adam学习率大约是SFT模型使用的十分之一。例如,在OpenRLHF中,SFT模型的Adam学习率为5e-6,而演员模型为5e-7。此外,评论家模型的Adam学习率约为SFT模型的两倍,示例率为9e-6。 代码链接:train_ppo_llama.sh ...

February 9, 2025 · 小茄墩

使用 Unsloth 训练您自己的 R1 推理模型

今天,我们很高兴地介绍 Unsloth 中的推理功能!DeepSeek 的 R1 研究揭示了一个“顿悟时刻”,在这个时刻,R1-Zero 通过使用群体相对策略优化(GRPO)自主学习分配更多的思考时间,而无需人类反馈。 我们增强了整个 GRPO 过程,使其使用的 VRAM 比 Hugging Face + FA2 少 80%。这使您能够仅使用 7GB 的 VRAM 和 Qwen2.5(1.5B)重现 R1-Zero 的“顿悟时刻”。 尝试我们的免费 GRPO notebook:Colab 上的 Llama 3.1(8B) 有关其他模型(如 Phi-4)的 GRPO 笔记本,请访问我们的文档 💡 主要细节 使用 15GB VRAM,Unsloth 允许您将任何模型(最多 15B 参数)转换为推理模型,例如 Llama 3.1(8B)、Phi-4(14B)、Mistral(7B)或 Qwen2.5(7B) 最低要求:仅需 7GB VRAM 即可在本地训练您自己的推理模型。 Tiny-Zero 的出色团队展示了您可以使用 Qwen2.5(1.5B)实现自己的“顿悟时刻——但这需要 2xA100 GPU(160GB VRAM)。现在,使用 Unsloth,您只需一台 7GB VRAM 的 GPU 就可以实现同样的“顿悟时刻”。 之前,GRPO 仅支持完全微调,但我们已使其与 QLoRA 和 LoRA 一起工作。 请注意,这并不是微调 DeepSeek 的 R1 蒸馏模型或使用 R1 的蒸馏数据进行微调,Unsloth 已经支持。这是将标准模型转换为完整的推理模型,使用 GRPO。 ...

February 8, 2025 · 小茄墩