Gemma 3 技术报告

架构选择 QK-Norm 同时使用Pre和Post Norm 比Qwen2.5更宽的MLP,深度相同 SWA 使用5:1比例和1024窗口大小(论文中非常小且有趣的消融实验!) 没有使用MLA来节省KV缓存,SWA已能完成这项工作! 视觉编码器采用 Pan & Scan 算法。视觉编码器以固定分辨率 896 × 896 运行。在推理阶段使用窗口处理技术以支持不同图像尺寸。 长上下文 仅在全局层增加RoPE至1M 小模型处理长上下文更困难,1B版本没有128k上下文能力 预训练使用32k上下文,然后扩展到 128K 上下文长度。使用了 RoPE 缩放因子 8。 没有使用yarn或llama3类似的RoPE扩展方法 蒸馏 仅保留教师模型的前256个logits 其他 使用QAT(量化感知训练) 强化学习使用 BOND、WARM和 WARP的改进版本 现在强制使用序列开始标记(BOS token),使用 <start_of_turn>user 和 <start_of_turn>model 标记对话轮次。词汇量扩展至 262K。 2. 模型架构 使用分组查询注意力 (GQA),采用后归一化和预归一化,并使用 RMSNorm。用 QK-norm 替换了 Gemma 2 的soft-capping。 5:1 局部/全局层交错 我们交替使用局部滑动窗口自注意力机制和全局自注意力机制,模式为每 1 个全局层对应 5 个局部层,并且模型的第一个层从局部层开始。 Gemma 3 模型支持 128K Token 的上下文长度,但 1B 模型例外,其上下文长度为 32K。 我们将全局自注意力层的 RoPE 基频从 10k 提升至 1M,并保持局部层的频率为 10k。 我们遵循类似于 Chen et al. (2023) 的位置插值方法来扩展全局自注意力层的范围。 ...

March 12, 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 · 小茄墩

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 · 小茄墩

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 · 小茄墩