2026年月之暗面K1.5技术报告详解

月之暗面K1.5技术报告详解个人学习记录 相对 DeepSeek R1 有异曲同工之妙 并且细节透露上更多 值得对比起来学习 语言模型基于下一个词预测的预训练已被证明在扩展计算能力方面卓有成效 但受到可用训练数据量的限制 强化学习 RL 的扩展为人工智能的持续改进开辟了新的维度 有望使大型语言模型 LLMs 能够通过学习带有奖励的探索来扩展其训练数据 然而 先前发表的工作并未产生具有竞争力的结果 鉴于此 我们报告了 Kimi

大家好,我是讯享网,很高兴认识大家。这里提供最前沿的Ai技术和互联网信息。



个人学习记录,相对DeepSeek R1有异曲同工之妙,并且细节透露上更多,值得对比起来学习


语言模型基于下一个词预测的预训练已被证明在扩展计算能力方面卓有成效,但受到可用训练数据量的限制。强化学习(RL)的扩展为人工智能的持续改进开辟了新的维度,有望使大型语言模型(LLMs)能够通过学习带有奖励的探索来扩展其训练数据。然而,先前发表的工作并未产生具有竞争力的结果。鉴于此,我们报告了Kimi k1.5的训练实践,这是我们最新的通过RL训练的多模态LLM,包括其RL训练技术、多模态数据配方和基础设施优化。长文本上下文扩展和改进的策略优化方法是我们方法的关键要素,建立了一个简单而有效的RL框架,无需依赖蒙特卡洛树搜索、价值函数和过程奖励模型等更复杂的技术。值得注意的是,我们的系统在多个基准测试和模态上实现了最先进的推理性能,例如在AIME上达到77.5,在MATH500上达到96.2,在Codeforces上达到94,在MathVista上达到74.9,与OpenAI的o1相媲美。此外,我们提出了有效的long2short方法,利用长链推理(CoT)技术来改进短链推理模型,取得了最先进的短链推理结果,例如在AIME上达到60.8,在MATH500上达到94.6,在LiveCodeBench上达到47.3,大幅超越了现有的短链推理模型,如GPT-4o和Claude Sonnet 3.5(提升幅度高达+550%)。

基于下一个词预测的语言模型预训练是在规模定律的背景下进行研究的,其中按比例扩展模型参数和数据量可以持续提升智能水平。然而,这种方法受到可用高质量训练数据量的限制。在本报告中,我们介绍了 Kimi k1.5 的训练方法,这是我们最新的通过强化学习(RL)训练的多模态大型语言模型(LLM)。其目标是探索持续扩展的可能新方向。通过使用 RL 与 LLMs,模型学会通过奖励进行探索,因此不再局限于预先存在的静态数据集。

关于 k1.5 的设计和训练,有几个关键要素:

  • 长文本上下文扩展:我们将 RL 的上下文窗口扩展到 128k,并观察到随着上下文长度的增加,性能持续提升。我们方法的一个关键思想是使用部分轨迹来提高训练效率——即通过重用先前轨迹的大部分来采样新轨迹,避免从头开始重新生成新轨迹的成本。我们的观察确定了上下文长度是 RL 与 LLMs 持续扩展的关键维度。
  • 改进的策略优化:我们推导了带有长链推理(CoT)的 RL 的一种公式,并采用了一种在线镜像下降的变体来进行稳健的策略优化。该算法通过我们有效的采样策略、长度惩罚和数据配方的优化进一步改进。
  • 简化的框架:长文本上下文扩展与改进的策略优化方法相结合,为使用 LLMs 进行学习建立了一个简化的 RL 框架。由于我们能够扩展上下文长度,所学到的 CoTs 展现了规划、反思和修正的特性。上下文长度的增加相当于增加了搜索步骤的数量。因此,我们表明可以在不依赖蒙特卡洛树搜索、价值函数和过程奖励模型等更复杂技术的情况下实现强大的性能。
  • 多模态:我们的模型在文本和视觉数据上进行联合训练,具有对这两种模态进行联合推理的能力。

此外,文章提出了long2short方法,利用长链推理(CoT)技术来改进短链推理模型:

我们的长链推理版本在多个基准测试和模态上实现了最先进的推理性能——例如,在 AIME 上达到 77.5,在 MATH500 上达到 96.2,在 Codeforces 上达到 94 百分位,在 MathVista 上达到 74.9——与 OpenAI 的 o1 相当。我们的模型还在短链推理结果上实现了最先进的性能——例如,在 AIME 上达到 60.8,在 MATH500 上达到 94.6,在 LiveCodeBench 上达到 47.3——大幅超越了现有的短链推理模型,如 GPT-4o 和 Claude Sonnet 3.5(提升幅度高达 +550%)。结果如图 1 和图 2 所示。

Kimi k1.5 的开发包括几个阶段:预训练、SFT、长链推理(CoT)监督微调,以及强化学习(RL)。本报告聚焦于 RL,首先概述 RL 提示集的策划(第 2.1 节)和长链推理监督微调(第 2.2 节),随后在第 2.3 节深入探讨 RL 训练策略。关于预训练和SFT的更多细节可在第 2.5 节找到。

通过初步实验,我们发现 RL 提示集的质量和多样性在确保强化学习的有效性方面起着关键作用。一个精心构建的提示集不仅能引导模型进行稳健的推理,还能降低奖励黑客攻击和过度拟合表面模式的风险。具体而言,高质量 RL 提示集的三个关键属性如下:

  • 多样化的覆盖范围:提示应涵盖广泛学科,如 STEM(科学、技术、工程和数学)、编程和一般推理,以增强模型的适应性并确保其在不同领域的广泛应用。
  • 平衡的难度:提示集应包含难度分布合理的题目,包括简单、中等和困难的问题,以促进渐进式学习并防止过度拟合特定复杂度水平。
  • 准确的可评估性:提示应允许验证者进行客观可靠的评估,确保模型性能是基于正确的推理而非表面模式或随机猜测。

为了在提示集中实现多样化的覆盖范围,我们采用自动过滤器选择需要丰富推理且易于评估的问题。我们的数据集包括来自各个领域的问题,如 STEM 领域、竞赛和一般推理任务,既包含纯文本问题,也包含图文问答数据。此外,我们开发了一个标记系统,按领域和学科对提示进行分类,确保不同学科领域的平衡分布。

我们采用基于模型的方法,利用模型自身的能力来适应性地评估每个提示的难度。具体而言,对于每个提示,SFT 模型使用相对较高的采样温度生成 10 次答案。通过计算通过率并将其作为提示难度的代理,通过率越低,难度越高。这种方法使难度评估与模型的内在能力相一致,对 RL 训练非常有效。借助这种方法,我们可以预先过滤掉大多数简单案例,并在 RL 训练期间轻松探索不同的采样策略。

为避免潜在的奖励黑客攻击,我们需要确保每个提示的推理过程和最终答案都能被准确验证。经验观察表明,一些复杂推理问题可能有相对简单且容易猜测的答案,导致误报验证——即模型通过错误的推理过程得出正确答案。为解决这一问题,我们排除了容易出现此类错误的问题,如选择题、判断题和证明题。此外,对于一般问答任务,我们提出了一种简单而有效的方法来识别和去除容易被激活成功教程的提示。具体而言,我们提示模型在没有任何链式推理步骤的情况下猜测潜在答案。如果模型在 N 次尝试内预测出正确答案,则认为该提示过于容易被激活成功教程而予以去除。我们发现,将 N 设置为 8 可以去除大多数容易被激活成功教程的提示。开发更先进的验证模型仍是未来研究的一个方向。

通过精心策划的 RL 提示集,我们采用提示工程方法构建了一个小型但高质量的长链推理(Long-CoT)warm-up数据集,该数据集包含针对文本和图像输入的准确验证推理路径。这种方法类似于拒绝采样(Rejection Sampling,RS),但专注于通过提示工程生成长链推理路径。生成的warm-up数据集旨在理解人类推理的关键认知过程,例如:

  • 规划(Planning):模型在执行前系统地概述步骤。
  • 评估(Evaluation):对中间步骤进行批判性评估。
  • 反思(Reflection):使模型能够重新考虑并优化其方法。
  • 探索(Exploration):鼓励考虑替代解决方案。

通过对该warm-up数据集进行轻量级监督微调(lightweight SFT),有效地使模型内化这些推理策略。这里和DeepSeek-R1提到通过冷启动数据集来解决DeepSeek-R1 Zero的一些如指令遵循、language mix等问题。结果表明,经过微调的长链推理模型在生成更详细和逻辑连贯的响应方面表现出改进的能力,从而提升了其在多样化推理任务中的性能。

2.3.1 问题设定

给定一个训练数据集 \mathcal{D} = \{(x_i, y_i^*)\}_{i=1}^n ,其中 x_i 为问题, y_i^*为对应的 ground truth 答案,我们的目标是训练一个策略模型 \pi_{\theta} ,使其能够准确解决测试问题。在复杂推理的背景下,从问题 x 到解决方案 y 的映射并非易事。为应对这一挑战,思维链(Chain of Thought,CoT)方法提出使用一系列中间步骤 \tilde{z} = (\tilde{z}_1, \tilde{z}_2, \ldots, \tilde{z}_m) 来连接xy,其中每个z_i是x一个连贯的词序列,作为解决问题的重要中间步骤。在解决x问题时,思维 z_t \sim \pi_\theta(\cdot | x, z_1, \ldots, z_{t-1}) 以自回归方式采样,随后是最终答案 y \sim \pi_\theta(\cdot | x, z_1, \ldots, z_m) 。我们用 y, z \sim \pi_{\theta}​ 表示这一采样过程。需要注意的是,思维和最终答案均被采样为语言序列。

为了进一步提升模型的推理能力,规划算法被用于探索各种思维过程,在推理时生成改进的 CoT。这些方法的核心洞见在于,通过价值估计显式构建一个思维搜索树。这使得模型能够探索思维过程的多种延续,或在遇到死胡同时回溯以探索新方向。更具体而言,设 T 为一个搜索树,其中每个节点表示一个部分解 s=(x,z1​:∣s∣)。这里,s 包括问题 x 和直到该节点的一系列思维 z1​:∣s∣=(z1​,…,zs∣​),其中 ∣s∣ 表示序列中的思维数量。规划算法使用一个评论模型 v 提供反馈 v(x,z1​:∣s∣),这有助于评估解决问题的当前进展,并识别现有部分解中的任何错误。我们指出,反馈可以由判别分数或语言序列提供。在所有 sT 的反馈指导下,规划算法选择最有前景的节点进行扩展,从而增长搜索树。上述过程迭代重复,直至导出完整解。

我们也可以从算法角度审视规划算法。在第 t 次迭代时,给定过去的搜索历史 (s1​,v(s1​),…,st−1​,v(st−1​)),规划算法 A 迭代地确定下一个搜索方向 A(st​∣s1​,v(s1​),…,st−1​,v(st−1​)),并为当前搜索进展提供反馈 A(v(st​)∣s1​,v(s1​),…,st​)。由于思维和反馈均可视为中间推理步骤,且这些组件均可表示为语言词序列,我们用 z 替换 s,用 v 简化符号。相应地,我们将规划算法视为直接作用于推理步骤序列的映射 A(⋅∣z1​,z2​,…)。在这个框架中,规划算法使用的搜索树中的所有信息被扁平化为提供给算法的完整上下文。这为生成高质量 CoT 提供了一个有趣的视角:我们无需显式构建搜索树和实现规划算法,而是可以潜在地训练一个模型来近似这一过程。在这里,思维的数量(即语言词的数量)类比于传统分配给规划算法的计算预算。最近在长上下文窗口方面的进展促进了训练和测试阶段的无缝扩展。如果可行,这种方法使模型能够直接通过自回归预测在推理空间上运行隐式搜索。因此,模型不仅学会了解决一组训练问题,还发展了有效应对单个问题的能力,从而提高了对未见测试问题的泛化能力。

因此,我们考虑使用强化学习(RL)训练模型生成 CoT。设 r 为一个奖励模型,基于 ground truth y∗ 为给定问题 x 的提议答案 y 的正确性分配值 r(x,y,y∗)∈{0,1}。对于可验证问题,奖励由预定义标准或规则直接确定。例如,在编程问题中,我们评估答案是否通过测试用例。对于具有自由形式 ground truth 的问题,我们训练一个奖励模型 r(x,y,y∗),以预测答案是否与 ground truth 匹配。给定一个问题 x,模型 πθ​ 通过采样过程 zπθ​(⋅∣x),yπθ​(⋅∣x,z) 生成 CoT 和最终答案。生成的 CoT 的质量通过其是否能导致正确最终答案来评估。总之,我们考虑以下目标来优化策略:

通过扩大 RL 训练规模,我们旨在训练一个模型,使其能够利用简单基于提示的 CoT 和规划增强 CoT 的优势。模型在推理过程中仍然以自回归方式采样语言序列,从而避免了在部署期间高级规划算法所需的复杂并行化需求。然而,与简单基于提示的方法的一个关键区别在于,模型不应仅仅遵循一系列推理步骤。相反,它还应通过利用探索的整个思维集作为上下文信息,学习关键规划技能,包括错误识别、回溯和解决方案优化。

2.3.2 策略优化(Policy Optimization)

我们采用在线策略镜像下降(mirror descent)的一种变体作为训练算法。该算法迭代执行。在第 i 次迭代中,我们使用当前模型 πθi​​ 作为参考模型,并优化以下相对熵正则化的策略优化问题:

其中 τ>0 是控制正则化程度的参数。该目标具有闭式解:

这里 Z是归一化因子。对两边取对数,我们有 对于任何 (y,z),以下约束条件得到满足,这使我们能够在优化过程中利用离策略数据(off-policy data):

这促使我们采用以下替代损失函数(surrogate loss):

我们还发现,使用采样奖励的实测均值 r=mean(r(x,y1​,y∗),…,r(x,yk​,y∗)) 能够获得有效的实际结果。这是合理的,因为当 τ→∞ 时,τlogZ 接近于在 πθi​​ 下的期望奖励。最后,我们通过计算替代损失的梯度来结束我们的学习算法。对于每个问题 x,使用参考策略 πθi​​ 采样 k 个响应,梯度由以下公式给出:

对于熟悉策略梯度方法的人来说,这个梯度类似于使用采样奖励的均值作为基线的策略梯度。主要区别在于响应是从 πθi​​ 而不是 on-policy 采样的,并且应用了 l2​-正则化。因此,我们可以将此视为通常的 on-policy 正则化策略梯度算法在离策略情况下的自然扩展。我们从 D 中采样一批问题,并将参数更新为 θi+1​,这将在下一次迭代中作为参考策略。由于每次迭代由于参考策略的变化而考虑不同的优化问题,我们还在每次迭代开始时重置优化器。

我们在训练系统中不使用价值网络,这在之前的研究中也被利用过。虽然这一设计选择显著提高了训练效率,但我们还认为,经典强化学习中用于信用分配的常规价值函数可能不适合我们的上下文。考虑一个场景,模型已经生成了一个部分 CoT (z1​,z2​,…,zt​),并且有两个潜在的下一个推理步骤:zt+1​ 和 zt+1′​。假设 zt+1​ 直接导致正确答案,而 zt+1′​ 包含一些错误。如果可以访问一个 oracle 价值函数,它会表明 zt+1​ 的价值高于 zt+1′​。根据标准的信用分配原则,选择 zt+1′​ 会受到惩罚,因为它相对于当前策略具有负优势。然而,探索 zt+1′​ 对于训练模型生成长 CoT 极其有价值。通过使用从长 CoT 导出的最终答案的合理性作为奖励信号,模型可以从采取 zt+1′​ 的试错中学习,只要它成功恢复并达到正确答案。这个例子的关键启示是,我们应该鼓励模型探索多样化的推理路径,以增强其解决复杂问题的能力。这种探索性方法产生了丰富的经验,支持了关键规划技能的发展。我们的主要目标不仅限于在训练问题上获得高准确率,而是专注于为模型配备有效的解决问题策略,最终提高其在测试问题上的性能。

2.3.3 长度惩罚(Length Penalty)

我们观察到一种过度思考现象,即模型的响应长度在强化学习(RL)训练过程中显著增加。尽管这会带来更好的性能,但过长的推理过程在训练和推理过程中成本高昂,且人类通常不倾向于过度思考。为了解决这一问题,我们引入了长度奖励来抑制 token 长度的快速增长,从而提高模型的 token 效率。给定 k 个采样的响应 (y1​,z1​),…,(yk​,zk​) 对于问题 x,其真实答案为 y∗,令 len(i) 为 (yi​,zi​) 的长度,min_len=mini​len(i) 和 max_len=maxi​len(i)。如果 max_len=min_len,我们将所有响应的长度奖励设为零,因为它们长度相同。否则,长度奖励由以下公式给出:

本质上,我们鼓励较短的响应并惩罚正确的响应中的较长响应,同时明确惩罚具有不正确答案的长响应。这种基于长度的奖励随后被添加到原始奖励中,并带有一个加权参数。

在我们的初步实验中,长度惩罚可能会在初始阶段减慢训练速度。为缓解这一问题,我们提议在训练过程中逐渐启用长度惩罚。具体而言,我们先采用标准的策略优化而不带长度惩罚,然后在剩余的训练过程中使用恒定的长度惩罚。

2.3.4 采样策略(Sampling Strategies)

尽管强化学习(RL)算法本身具有相对良好的采样特性(更困难的问题提供更大的梯度),但其训练效率仍有限。因此,一些定义良好的先验采样方法可能会带来更大的性能提升。我们利用多个信号来进一步改进采样策略。首先,我们收集的 RL 训练数据自然带有不同的难度标签。例如,数学竞赛问题比小学数学问题更难。其次,由于 RL 训练过程多次采样同一个问题,我们还可以跟踪每个问题的成功率作为难度的指标。我们提出两种采样方法,利用这些先验知识来提高训练效率。

  • 课程采样(Curriculum Sampling):我们从训练较容易的任务开始,逐渐过渡到更具挑战性的任务。由于初始的 RL 模型性能有限,在非常困难的问题上花费有限的计算资源通常会产生很少的正确样本,导致训练效率较低。同时,我们收集的数据自然包含年级和难度标签,这使得基于难度的采样成为提高训练效率的一种直观且有效的方法。
  • 优先采样(Prioritized Sampling):除了课程采样外,我们还采用优先采样策略,重点关注模型表现不佳的问题。我们跟踪每个问题 i 的成功率 si​,并根据 1−si​ 采样问题,从而使成功率较低的问题获得更高的采样概率。这引导模型的努力方向指向其最薄弱的环节,从而实现更快的学习和更好的整体性能。

2.3.5 训练配方的更多细节(More Details on Training Recipe)

  • 编程问题的测试用例生成(Test Case Generation for Coding):由于许多来自网络的编程问题没有可用的测试用例,我们设计了一种方法自动生成测试用例,作为奖励来训练我们的模型进行 RL。我们主要关注不需要特殊判断器的问题。我们还假设这些问题有真实解决方案,以便我们可以利用这些解决方案生成更高质量的测试用例。
    我们利用广泛认可的测试用例生成库 CYaRon 来增强我们的方法。我们使用基础的 Kimi k1.5 根据问题陈述生成测试用例。CYaRon 的使用说明和问题描述作为生成器的输入。对于每个问题,我们首先使用生成器生成 50 个测试用例,并为每个测试用例随机采样 10 个真实提交。我们运行测试用例并验证提交。如果至少 7 个提交的结果匹配,则认为该测试用例有效。经过这轮筛选后,我们获得了一组选定的测试用例。如果至少 9 个提交通过了整个选定测试用例集,则将问题及其关联的选定测试用例添加到我们的训练集中。
    从统计学角度来看,从 1000 个在线竞赛问题的样本中,大约 614 个问题不需要特殊判断器。我们开发了 463 个测试用例生成器,生成了至少 40 个有效测试用例,从而将 323 个问题纳入我们的训练集。




  • 数学问题的奖励建模(Reward Modeling for Math):评估数学解决方案的一个挑战是,不同的书面形式可能代表相同的底层答案。例如,a2−4 和 (a+2)(a−2) 可能是同一个问题的有效解决方案。我们采用了两种方法来提高奖励模型的评分准确性:
  1. 经典奖励模型(Classic RM):借鉴 InstructGPT 的方法,我们实现了一个基于值头的奖励模型,并收集了大约 80 万个数据点进行微调。模型最终输入“问题”、“参考答案”和“响应”,并输出一个标量,指示响应是否正确。
  2. 思维链奖励模型(Chain-of-Thought RM):最近的研究表明,带有思维链(CoT)推理的奖励模型在某些任务上显著优于经典方法,特别是在细微的正确性标准重要的任务(如数学)上。因此,我们收集了一个同样大的约 80 万个带有 CoT 标签的示例数据集来微调 Kimi 模型。在与经典 RM 相同的输入基础上,思维链方法在提供 JSON 格式的最终正确性判断之前,明确生成了一个逐步推理过程,从而提供更稳健和可解释的奖励信号。

在我们的手动抽查中,经典 RM 的准确率约为 84.4%,而思维链 RM 达到了 98.5% 的准确率。在 RL 训练过程中,我们采用了思维链 RM 以确保更正确的反馈。

  • 视觉数据(Vision Data):为了提高模型在现实世界中的图像推理能力,并实现视觉输入与大型语言模型(LLMs)之间的更有效对齐,我们的视觉强化学习(Vision RL)数据主要来自三个不同的类别:
  1. 真实世界数据(Real-world data):包括需要图形理解和推理的各级科学问题、需要视觉感知和推理的地点猜测任务、涉及理解复杂图表的数据分析等类型的数据。这些数据集提高了模型在现实世界场景中进行视觉推理的能力。
  2. 合成视觉推理数据(Synthetic visual reasoning data):人工生成的,包括旨在提高特定视觉推理技能的程序化创建的图像和场景,如理解空间关系、几何图案和对象交互。这些合成数据集为测试模型的视觉推理能力提供了受控环境,并提供了无穷无尽的训练示例.
  3. 文本渲染数据(Text-rendered data):通过将文本内容转换为视觉格式创建,使模型在处理不同模态的文本查询时保持一致性。通过将文本文档、代码片段和结构化数据转换为图像,我们确保模型无论输入是纯文本还是渲染为图像的文本(如屏幕截图或照片)都能提供一致的响应。这还有助于增强模型处理文本密集型图像的能力。

每种数据对于构建一个能够有效管理广泛现实世界应用的综合视觉语言模型至关重要,同时确保在各种输入模态上的一致性能。

尽管long-CoT 模型实现了强大的性能,但与标准short-CoT 大型语言模型(LLMs)相比,其在测试时消耗的 token 更多。然而,可以将long-CoT 模型的思维先验转移到short-CoT 模型中,从而即使在有限的测试 token 预算下也能提高性能。针对这一long2short问题,我们提出了几种方法,包括模型合并、最短拒绝采样、DPO(Rafailov 等人,2024 年)和long2short RL。以下是这些方法的详细描述:

模型合并

模型合并已被发现有助于保持泛化能力。我们还发现,在将long-CoT 模型和short-CoT 模型合并时,它在提高 token 效率方面也很有效。这种方法将一个long-CoT 模型与一个short-CoT模型相结合,从而获得一个新的模型,而无需进行训练。具体来说,我们通过简单地对两个模型的权重取平均值来合并它们。

最短拒绝采样

我们注意到,对于同一个问题,我们的模型生成的回答长度差异很大。基于此,我们设计了最短拒绝采样方法。该方法对同一个问题进行 n 次采样(在我们的实验中,n = 8),并选择最短的正确回答用于监督微调

DPO

与最短拒绝采样类似,我们利用Long-CoT 模型生成多个回复样本。最简短的正确答案被选为正样本,而更长的回答则被视为负样本,其中包括错误的长回答和正确的长回答(比选定的正样本长 1.5 倍)。这些正负对构成了用于 DPO 训练的成对偏好数据。

Long2short RL

在标准的强化学习训练阶段之后,选择一个在性能和 token 效率之间提供**平衡的模型作为基础模型,并进行单独的llong2short RL 训练阶段。在第二阶段,应用在第 2.3.3 节中引入的长度惩罚,并显著减少最大展开长度,以进一步惩罚可能超过期望长度的响应,尽管这些响应可能是正确的。

2.5.1 预训练

Kimi k1.5 基础模型是在一个多样化、高质量的多模态语料库上进行训练的。语言数据涵盖五个领域:英语、中文、代码、数学推理和知识。多模态数据,包括图像字幕、图文交错、光学字符识别(OCR)、知识问答数据集,使我们的模型能够获得视觉-语言能力。严格的质控确保了整体预训练数据集的相关性、多样性和平衡性。我们的预训练分为三个阶段:(1) 视觉-语言预训练,在这个阶段建立强大的语言基础,然后逐步进行多模态整合;(2) 冷却阶段(Cooldown),使用精选和合成数据巩固能力,特别是针对推理和知识型任务;(3) 长上下文激活,将序列处理扩展到 131,072 tokens。

2.5.2 普通监督微调

我们创建了涵盖多个领域的普通监督微调(SFT)语料库。对于非推理任务,包括问答、写作和文本处理,我们首先通过人工标注构建一个种子数据集。这个种子数据集用于训练一个种子模型。随后,我们收集多种提示,并使用种子模型为每个提示生成多个响应。标注者对这些响应进行排名,并优化排名靠前的响应以生成最终版本。对于推理任务,如数学和编程问题,基于规则和奖励建模的验证比人工判断更准确和高效,我们使用拒绝采样来扩展 SFT 数据集。

我们的普通 SFT 数据集包含大约 100 万个文本示例。具体来说,50 万个示例用于通用问答,20 万个用于编程,20 万个用于数学和科学,5,000 个用于创意写作,2 万个用于长上下文任务,如摘要、文档问答、翻译和写作。此外,我们构建了 100 万个图文示例,涵盖各种类别,包括图表解释、OCR、基于图像的对话、视觉编码、视觉推理以及带有视觉辅助的数学/科学问题。

在训练策略方面,我们首先在序列长度为 32k 个标记的情况下训练模型 1 个 epoch,然后在序列长度为 128k 个标记的情况下再训练 1 个 epoch。在第一阶段(32k),学习率从 2×10−5 衰减到 2×10−6,然后在第二阶段(128k)重新热身到 1×10−5,最终衰减到 1×10−6。为了提高训练效率,我们将多个训练示例打包到每个单独的训练序列中。

2.6.1 大语言模型的大规模强化学习训练系统

在人工智能领域,强化学习(RL)已成为训练大型语言模型(LLMs)的关键方法,这得益于其在通过 AlphaGo、AlphaStar和 OpenAI Dota Five等系统掌握围棋、星际争霸 II 和 Dota 2 等复杂游戏方面的成功。遵循这一传统,Kimi k1.5 系统采用迭代同步强化学习框架,精心设计以通过持续学习和适应来增强模型的推理能力。该系统的一个关键创新是引入了部分滚动(Partial Rollout)技术,旨在优化对复杂推理轨迹的处理。

如图 3a 所示,强化学习训练系统通过迭代同步方法运行,每次迭代包括一个滚动阶段和一个训练阶段。在滚动阶段,由中央主节点协调的滚动工作者通过与模型交互生成滚动轨迹,产生对各种输入的响应序列。这些轨迹随后存储在重放缓冲区中,通过打乱时间相关性,确保训练数据集的多样性和无偏性。在随后的训练阶段,训练workers访问这些经验来更新模型的权重。这个循环过程使模型能够不断从其行动中学习,随着时间的推移调整其策略以提高性能。

中央主节点充当中央协调器,管理滚动工作者、训练工作者、奖励模型评估和重放缓冲区之间的数据流动和通信。它确保系统和谐运行,平衡负载并促进高效的数据处理。

训练workers访问这些滚动轨迹,无论是在一次迭代中完成的还是跨多次迭代的,以计算梯度更新来优化模型的参数并提升其性能。这个过程由奖励模型监督,奖励模型评估模型输出的质量,并提供关键反馈以指导训练过程。奖励模型的评估在确定模型策略的有效性以及引导模型达到**性能方面尤为关键。

此外,系统集成了一个代码执行服务,专门用于处理与代码相关的问题,并且是奖励模型的重要组成部分。该服务在实际编码场景中评估模型的输出,确保模型的学习与现实世界的编程挑战紧密结合。通过针对实际代码执行验证模型的解决方案,这个反馈回路对于优化模型策略和提升其在代码相关任务中的性能至关重要。

2.6.2 长思维链强化学习的部分滚动

我们工作的主要思想之一是扩展长上下文强化学习训练。部分滚动是一种关键技术,通过管理长和短轨迹的滚动,有效解决了处理长思维链特征的挑战。该技术设定了一个固定的输出标记预算,限制了每个滚动轨迹的长度。如果在滚动阶段轨迹超过标记限制,未完成的部分将保存到重放缓冲区,并在下一次迭代中继续。这确保了没有单个冗长的轨迹会垄断系统资源。此外,由于滚动workers异步操作,当一些工作者处理长轨迹时,其他工作者可以独立处理新的、较短的滚动任务。异步操作通过确保所有滚动工作者积极为训练过程做出贡献,最大化了计算效率,从而优化了系统的整体性能。

如图 3b 所示,部分滚动系统通过在迭代中(从迭代 n - m 到迭代 n)将长响应分解为片段来工作。重放缓冲区充当中央存储机制,维护这些响应片段,其中只有当前迭代(迭代 n)需要在线策略计算。先前的片段(迭代 n - m 到 n - 1)可以从重放缓冲区高效地重用,无需重复滚动。这种分段方法显著降低了计算开销:不是一次性滚动整个响应,系统增量地处理和存储片段,允许生成更长的响应,同时保持快速的迭代时间。在训练过程中,可以从损失计算中排除某些片段,以进一步优化学习过程,使整个系统既高效又可扩展。

部分滚动的实现还提供了重复检测功能。系统识别生成内容中的重复序列,并提前终止它们,减少不必要的计算,同时保持输出质量。检测到的重复可以被分配额外的惩罚,有效地阻止在提示集中生成冗余内容。

2.6.3 训练和推理的混合部署

强化学习训练过程包括以下阶段:

  • 训练阶段:首先,Megatron 和 vLLM在单独的容器中执行,由一个称为 checkpoint-engine(2.6.3 节)的垫片进程封装。Megatron 启动训练过程。训练完成后,Megatron 卸载 GPU 内存,并准备将当前权重转移到 vLLM。
  • 推理阶段:在 Megatron 卸载后,vLLM 以虚拟模型权重启动,并通过 Mooncake 从 Megatron 传输最新权重进行更新。滚动完成后,checkpoint-engine 停止所有 vLLM 进程。
  • 后续训练阶段:一旦 vLLM 释放分配的内存,Megatron 加载内存并启动另一轮训练。

我们发现现有的工作难以同时支持以下所有特性:

  • 复杂的并行策略:Megatron 可能与 vLLM 有不同的并行策略。在 Megatron 中分布在多个节点的训练权重可能难以与 vLLM 共享。
  • 最小化空闲 GPU 资源:对于在线策略强化学习,最近的工作如 SGLang 和 vLLM 可能在训练过程中保留一些 GPU,这反过来可能导致训练 GPU 空闲。在训练和推理之间共享相同的设备会更有效。
  • 动态缩放能力:在某些情况下,通过增加推理节点数量,同时保持训练过程不变,可以实现显著的加速。我们的系统在需要时能够有效利用空闲的 GPU 节点。

如图 4 所示,我们在 Megatron 和 vLLM 之上实现了这个混合部署框架(2.6.3 节),实现了从训练到推理阶段不到一分钟,反之亦然约十秒。

混合部署策略:我们提出了一种用于训练和推理任务的混合部署策略,该策略利用 Kubernetes Sidecar 容器共享所有可用的 GPU,将两个工作负载共置在一个 pod 中。这种策略的主要优点是:

  • 它促进了高效的资源共享和管理,防止在训练和推理部署在不同节点时,训练节点在等待推理节点时空闲。
  • 利用不同的部署映像,训练和推理可以各自独立迭代以获得更好的性能。该架构不限于 vLLM,其他框架可以方便地集成。

Checkpoint Engine:Checkpoint Engine 负责管理 vLLM 进程的生命周期,公开 HTTP API,以便触发对 vLLM 的各种操作。为了整体的一致性和可靠性,我们利用由 etcd 服务管理的全局元数据系统来广播操作和状态。

由于 CUDA 图、NCCL 缓冲区和 NVIDIA 驱动程序等原因,vLLM 卸载可能难以完全释放 GPU 内存。为了尽量减少对 vLLM 的修改,我们在需要时终止并重新启动它,以提高 GPU 利用率和容错能力。

Megatron 中的worker将拥有的检查点转换为 Hugging Face 格式,并存储在共享内存中。这个转换也考虑了流水线并行和专家并行,使得这些检查点中只保留张量并行。共享内存中的检查点随后被分割成碎片,并在全局元数据系统中注册。我们使用 Mooncake 通过 RDMA 在对等节点之间传输检查点。需要对 vLLM 进行一些修改以加载权重文件并执行张量并行转换。

2.6.4 代码沙盒(Code Sandbox)

我们开发了沙盒作为一个安全环境,用于执行用户提交的代码,旨在优化代码执行和代码基准评估。通过动态切换容器镜像,沙盒支持多种使用场景,包括 MultiPL-E(Cassano, Gouwar, D. Nguyen, S. Nguyen 等,2023 年)、DMOJ Judge Server 2、Lean、Jupyter Notebook 以及其他镜像。

在编程任务的强化学习(RL)中,沙盒通过提供一致且可重复的评估机制,确保训练数据判断的可靠性。其反馈系统支持多阶段评估,例如代码执行反馈和仓库级别的编辑,同时保持统一的上下文,以确保跨编程语言的公平和公正的基准比较。

我们基于 Kubernetes 部署该服务,以实现可扩展性和弹性,并通过 HTTP 端点进行外部集成。Kubernetes 的自动重启和滚动更新等功能确保了服务的可用性和容错能力。

为了优化性能并支持 RL 环境,我们在代码执行服务中引入了多种技术,以提高效率、速度和可靠性。这些技术包括:

  • 使用 Crun:我们采用 crun 作为容器运行时,而不是 Docker,显著减少了容器启动时间。
  • Cgroup 重用:我们为容器使用预先创建的 cgroup,这在高并发场景下至关重要,因为为每个容器创建和销毁 cgroup 可能会成为瓶颈。
  • 磁盘使用优化:采用带有上层挂载为 tmpfs 的叠加文件系统来控制磁盘写入,提供固定大小、高速的存储空间。这种方法对于临时工作负载非常有利。

这些优化提高了代码执行的 RL 效率,为评估 RL 生成的代码提供了一致且可靠的环境,这对于迭代训练和模型改进至关重要。

由于 k1.5 是一个多模态模型,我们在不同模态的多个基准测试中对其进行了全面评估。详细的评估设置可以在附录 C 中找到。我们的基准测试主要分为以下三类:

  • 文本基准测试:MMLU(Hendrycks 等人,2020 年)、IF-Eval(J. Zhou 等人,2023 年)、CLUEWSC(L. Xu 等人,2020 年)、C-EVAL(Y. Huang 等人,2023 年)。
  • 推理基准测试:HumanEval-Mul、LiveCodeBench(Jain 等人,2024 年)、Codeforces、AIME 2024、MATH-500(Lightman 等人,2023 年)。
  • 视觉基准测试:MMMU(Yue, Ni 等人,2024 年)、MATH-Vision(K. Wang 等人,2024 年)、MathVista(Lu 等人,2023 年)。

K1.5 长思维链模型:Kimi k1.5 长思维链模型的性能如表 2 所示。通过长思维链监督微调(第 2.2 节描述)和视觉-文本联合强化学习(第 2.3 节讨论),模型的长期推理能力得到了显著提升。测试时的计算扩展进一步增强了其性能,使模型在多种模态上达到了最先进的水平。我们的评估表明,模型在推理、理解和信息综合方面的能力有了显著提高,这标志着多模态人工智能能力的进步。

K1.5 短思维链模型:Kimi k1.5 短思维链模型的性能如表 3 所示。该模型集成了多种技术,包括传统监督微调(第 2.5.2 节讨论)、强化学习(第 2.3 节探讨)和long2short蒸馏(第 2.4 节概述)。结果表明,k1.5 短思维链模型在多个任务上的性能与领先的开源和专有模型相当或更优。这些任务包括文本、视觉和推理挑战,特别是在自然语言理解、数学、编程和逻辑推理方面表现出显著优势。

我们使用一个中等规模的模型来研究强化学习(RL)与大型语言模型(LLMs)的扩展特性。图 5 展示了在数学提示集上训练的小模型变体的训练准确率和响应长度随训练迭代的变化。随着训练的进行,我们观察到响应长度和性能准确率的同时增加。值得注意的是,更具挑战性的基准测试显示出响应长度的更陡峭增长,表明模型学会了为复杂问题生成更详细的解决方案。图 6 表明模型的输出上下文长度与其解决问题的能力之间存在强相关性。我们的最终 k1.5 运行扩展到 128k 的上下文长度,并在困难的推理基准测试上观察到持续的改进。

我们将提出的长long2short强化学习(RL)算法与第 2.4 节中介绍的 DPO、最短拒绝采样和模型合并方法进行了比较,重点关注长long2short问题的 token 效率,特别是如何使长思维链模型有利于短模型。在图 7 中,k1.5-long 代表我们为长long2short训练选择的长思维链模型。k1.5-short w/ rl 指的是使用long2short RL 训练获得的短模型。k1.5-short w/ dpo 表示通过 DPO 训练提高 token 效率的短模型。k1.5-short w/ merge 代表模型合并后的模型,而 k1.5-short w/ merge + rs 表示对合并模型应用最短拒绝采样获得的短模型。k1.5-shortest 代表我们在long2short训练过程中获得的最短模型。如图 7 所示,提出的long2short RL 算法在 token 效率方面优于其他方法,如 DPO 和模型合并。值得注意的是,k1.5 系列中的所有模型(用橙色标记)在 token 效率方面优于其他模型(用蓝色标记)。例如,k1.5-short w/ rl 在 AIME2024 上的 Pass@1 得分为 60.8(8 次运行的平均值),而平均仅使用 3,272 个 token。同样,k1.5-shortest 在 MATH500 上的 Pass@1 得分为 88.2,而消耗的 token 数量与其他短模型大致相同。

模型大小和上下文长度的扩展:我们的主要贡献是应用强化学习来增强模型生成扩展思维链的能力,从而提高其推理能力。一个自然的问题是:这与简单地增加模型大小相比如何?为了证明我们方法的有效性,我们使用相同的数据集训练了两个不同大小的模型,并记录了 RL 训练过程中所有检查点的评估结果和平均推理长度。这些结果如图 8 所示。值得注意的是,尽管较大的模型最初优于较小的模型,但较小的模型可以通过利用通过 RL 优化的更长思维链来实现相当的性能。然而,较大的模型通常在 token 效率方面优于较小的模型。这同样表明,若目标是实现**性能,扩大较大模型的上下文长度具有更高的上限,并且更具 token 效率。然而,如果测试时的计算资源有限,训练具有较大上下文长度的较小模型可能是一种可行的解决方案。

使用负梯度的效果:我们研究了在我们的设置中使用 ReST(Gulcehre 等人,2023 年)作为策略优化算法的有效性。ReST 与其他基于 RL 的方法(包括我们的方法)的主要区别在于,ReST 通过拟合当前模型采样的**响应来迭代改进模型,而不应用负梯度来惩罚不正确的响应。如图 10 所示,我们的方法在样本复杂度方面优于 ReST,表明负梯度的引入显著提高了模型生成长思维链的效率。我们的方法不仅提高了推理质量,还优化了训练过程,用更少的训练样本实现了稳健的性能。这一发现表明,在我们的设置中选择策略优化算法至关重要,因为 ReST 与其他基于 RL 的方法在其他领域的性能差距并不明显(Gulcehre 等人,2023 年)。因此,我们的结果强调了选择适当的优化策略以最大化生成长思维链的效果的重要性。

采样策略:我们进一步证明了我们在第 2.3.4 节中介绍的课程采样策略的有效性。我们的训练数据集 D 包含了各种难度级别的多样化问题。通过我们的课程采样方法,我们最初使用 D 进行热身阶段,然后专注于训练模型解决难题。这种方法与一种基线方法进行了比较,该基线方法采用均匀采样策略,没有任何课程调整。如图 9 所示,我们的结果清楚地表明,提出的课程采样方法显著提高了性能。这种改进归因于该方法能够逐步挑战模型,使其发展出更 robust 的理解和处理复杂问题的能力。通过在初步介绍后将训练重点放在更困难的问题上,模型可以更好地加强其推理和解决问题的能力。

我们介绍了 k1.5 的训练配方和系统设计,这是我们最新的通过强化学习训练的多模态大型语言模型(LLM)。从我们的实践中提取的一个关键见解是,上下文长度的扩展对 LLM 的持续改进至关重要。我们采用了优化的学习算法和基础设施优化,如部分滚动,以实现高效的长上下文强化学习训练。如何进一步提高长上下文强化学习训练的效率和可扩展性仍然是一个重要的问题。我们还提出了另一种贡献,即结合多种技术以实现改进的策略优化。具体来说,我们为 LLM 制定了长思维链强化学习,并推导出在线镜像下降的一个变体,用于稳健的优化。我们还尝试了采样策略、长度惩罚和优化数据配方,以实现强大的强化学习性能。我们表明,通过长上下文扩展和改进的策略优化,即使不使用更复杂的技术(如蒙特卡洛树搜索、价值函数和过程奖励模型),也可以实现强大的性能。

未来,研究改进信用分配和减少过度思考而不损害模型的探索能力也将是有趣的。我们还观察到了长2短方法的潜力。这些方法大大提高了短思维链模型的性能。此外,可以通过迭代方式将长2短方法与长思维链强化学习相结合,以进一步提高 token 效率,并在给定的上下文长度预算内提取**性能。

小讯
上一篇 2026-04-03 09:44
下一篇 2026-04-03 09:42

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/225283.html