专栏名称: AI算法与图像处理
考研逆袭985,非科班跨行AI,目前从事计算机视觉的工业和商业相关应用的工作。分享最新最前沿的科技,共同分享宝贵的资源资料,这里有机器学习,计算机视觉,Python等技术实战分享,也有考研,转行IT经验交流心得
目录
相关文章推荐
曹将  ·  最近听到的五句话 ·  7 小时前  
秋叶PPT  ·  24万人都在抢的国内第一本DeepSeek爆 ... ·  昨天  
秋叶PPT  ·  刚刚!我让DeepSeek帮我做的PPT,惊 ... ·  2 天前  
51好读  ›  专栏  ›  AI算法与图像处理

两万字长文深度解密DeepSeek-R1、Kimi 1.5,强推理模型凭什么火出圈?

AI算法与图像处理  · 公众号  ·  · 2025-02-21 20:32

正文

转自:机器之心

刚刚过去的春节, DeepSeek-R1 推理大模型引爆了国内外 AI 社区,并火出了圈。最近,各个行业又掀起了接入 DeepSeek 的狂潮,大家唯恐落后于人。

北大 AI 对齐团队对包括 DeepSeek-R1、Kimi-K1.5在内的一些强推理模型进行了 2 万字的技术解读 ,也是此前 o1 解读( 北大对齐团队独家解读:OpenAI o1开启「后训练」时代强化学习新范式 )的 续作。


以下为完整的文字解读稿(以第一人称我们陈述):


下图是我们这次讨论的一个目录,涵盖了包括 DeepSeek-R1、Kimi K1.5 的具体的技术分析和讲解。同时也包括对其背后的社会和经济效益以及一些 insights 和 takeaways 的分析。

具体地来说,我们会进行相应的技术细节的讨论:比如说基于 STaR 的方法和基于强化学习的方法进行强推理模型复现的区分和产生的效果的不同。这里面就包括了 DeepSeek-R1、Kimi K1.5 和 o 系列的模型。我们也会分析蒸馏和强化学习驱动下不同的强推理路径复现的区别,同时也会探讨 PRM 和 MCTS,也就是蒙特卡洛树搜索在整个强推理模型构建过程中的作用。 其次我们也会探讨一些从文本模态到多模态的实践。最后我们会对未来的方向进行一个分析和探讨,包括模态穿透、探索合成数据以及强推理下的安全。我们也会补充拓展 DeepSeek-v3 的解读。


DeepSeek-R1 开创 RL 加持下强推理慢思考范式新边界

近期后训练阶段开始成为语言模型中在完整训练过程中非常关键的一环,包括提升推理能力和社会价值对齐方面起到了非常重要的作用。自从 OpenAI o1 开启后训练强化学习新范式后,社区研究 Inference Time Scaling 通过增强 CoT 的长度提升推理能力的热情也是在逐渐增高。其中一个关键的问题就是如何通过有效的测试阶段的时间的扩展来提升它的推理能力。
近期 DeepSeek R1 的开源,也是再次让我们看到了强化学习的潜力。得益于纯大规模强化学习 DeepSeek-R1 Zero 和 DeepSeek-R1 的出现其实大大提升了推理能力和长文本的思考能力,其中 R1 Zero 是完全从基础模型开始构建,完全依赖强化学习,而不使用人类专家标注的监督微调。在训练过程中随着训练步骤的增加,模型也是逐渐展现出长文本推理以及长链修复的能力。随着推理路径的逐步增长,模型来表现出自我反思的能力,能够发现并修复之前的错误。


得益于强大的推理能力和长文本思考能力,DeepSeek R1 在开源以来就备受关注,其中它在著名的数学代码任务榜单上也是获得了非常突出的表现。比如在 AIME2024 上取得了 79.8% 的成绩,也是超过了 OpenAI o1。其中也在编码的任务上表现出了专家水平。与此同时,DeepSeek R1 在知识类问答的任务上推动了科学探索的边界,在无论 MMLU 还是 GPQA 等一些基于科学问答和理工类的榜单上都是取得了比较好的表现。更令人惊艳的是 R1 在一些长文本依赖的任务上比如 FRAMEs 和一些事实性推断任务上也是表现突出,其实也展现出来了强推理模型在 AI 驱动的一些 research 的潜力。


那么我们首先回顾一下预训练阶段的扩展律。其实也就是在预训练模型上,计算量数据和参数量成一个类似于正比的关系,也就是算力等于 6 倍的参数量乘上数据量。因此在大模型时代发展的初期,囤卡提升预训练的算力和模型参数变成了主要目标。


随着 OpenAI o1 的发布,也证明了在强化学习加持下后训练时代一个新的扩展律:随着模型在后训练阶段的训练时计算量和测试时计算量的提升,模型的性能特别是数学代码能力也会随之提升。那么在后训练扩展律下语言模型的训练时计算量多了一个新的变量,也就是在探索时语言模型推理产生的计算量。


为什么我们需要后训练扩展律?其实早在 2022 年就有启发的认知,主要是出于两个原因:第一个是随着模型尺寸的逐渐增大,预训练阶段参数的扩展带来的边际收益开始逐步递减,如果想要深度提升模型的推理能力和长程问题的能力,基于强化学习的后训练将会成为下一个突破点;第二个也就是自回归模型在传统的像数学推理问题上很难进步,其中的关键一点就是没有办法进行回答的自主修正,那如果仅是依靠生成的方法和扩大参数的规模在数学和推理任务上带来的收益不会很大。所以我们迫切地需要额外的 Scaling Law 也是额外的扩展律。


DeepSeek-R1 Zero 及 R1 技术剖析
业界其实近期有很多复现 o1 的操作,例如基于蒸馏或者强化学习的方法或者是从 MCTS 也就是蒙特卡洛树搜索和奖励模型的设计角度出发。通过搜索的方式显式的去帮助语言模型进行推理阶段计算量的提升,也有很多不错的尝试。但是大多数都是在特定任务上,例如数学或者代码的提升。

DeepSeek R1 Zero 的发布也是让我们看到了强化学习的潜力,特别是它跳过了经典后训练阶段中的监督微调,直接运用大规模强化学习就实现了推理能力的大幅提升,在数学代码等问题上显著飞跃。并且在强化学习训练过程中自然涌现长文本推理能力,这其中的关键操作核心在于一个是基于规则的奖励 Rule-based Reward 和以推理为中心的大规模强化学习。接下来我们也进行逐步的拆解。


在 DeepSeek R1 Zero 的奖励建模中采用了基于规则的奖励,也就是基于一定的规则可以直接利用程序进行判断正误的奖励信号。

具体来说 DeepSeek R1 Zero 设计了两种奖励:一种是准确率奖励,即对于推理任务是否根据最后答案的正确率直接来判断这个任务是否成功完成;第二种是格式奖励也就是显式的去规劝模型的输出过程中必须包含思考的过程,利用一个 thinking token 将思考的过程圈起来。 需要注意的是这部分奖励建模并没有采用先前我们经常讨论的比如说过程奖励模型 PRM 甚至没有采用奖励模型。这里边的主要考量是基于神经网络的奖励模型都有可能遭受奖励攻陷的问题,一旦发生奖励攻陷模型就可能陷入局部最优解,而重新训练奖励模型需要大量的计算资源可能会复杂化整个流程。

而第二个在强化学习的训练模板选择上,DeepSeek R1 Zero 采用了最简单的思考过程,而没有去在 system prompt 中加入过多的去诱导模型产生特定的思考范式,比如说去产生反思等范式。这一期望是可以希望能够直接观察到在 RL 过程中最本质的表现。


DeepSeek R1 Zero 更为关键的是以推理为中心的大规模强化学习 。具体来说在传统的 RLHF 算法上 DeepSeek 进行了一些算法的细节优化,采用了像组相对策略优化也是 GRPO,这部分我们也会后续讲解技术细节。同时它只瞄准了推理方面的专项任务。通过大规模的强化学习模型已经呈现出了自我迭代提升的趋势,也就是随着训练步数的增加模型的思考长度会逐渐增长,这也对应着模型在测试阶段的计算量的增长,也就是推理时长的提升。

与此同时模型也在中途训练过程中涌现了 ' Aha' moment ,学会用 wait 等停顿词,自然的去增加更多的推理时间,并且反思和评价先前的步骤并主动去探索其他的方法路径。


DeepSeek 的成功也为我们带来了一些关键的启示:例如在传统的大语言模型训练中监督微调通常被认为是不可或缺的一环,其逻辑是先用大量人工标注的数据来让模型初步掌握某种能力或回答范式,再利用强化学习进一步优化模型的性能。

然而 DeepSeek 却打破了这一传统, 他们选择直接将 RL 应用于基础模型,而没有经过任何形式的 SFT 训练 。这种纯强化学习的方法之所以如此引人注目,是很大程度上因为它抛弃了对于大规模人工标注数据的依赖。众所周知 SFT 是非常需要消耗大量的人力物力来构建和维护高质量的训练数据集,而 DeepSeek 的团队这种做法可以直接让模型在强化学习的环境中进行自我探索,通过与环境的互动,自主的去发现和学习解决复杂问题的能力,就好比一个初学者在没有老师的指导下通过不断的尝试和错误,来掌握一门新的技能。这种自主学习的方式,不仅节省了大量的标注成本,更重要的是它能让模型更加自由地探索解决问题的路径,而不是被预先设定的模式所束缚,这也使得模型最终具备了更加强大的泛化能力和适应能力。


而之所以能够跳过监督微调阶段直接运用纯强化学习拓展推理能力的边界,其实也得益于以下几个关键之处。

首先是要有足够强的基座模型,DeepSeek R1 Zero 系列的模型是在 DeepSeek v3 的 671B 的基座模型上进行了训练,它的基座模型是超过了某个质量和能力的阈值的,它在 14.8T 的高质量 Tokens 上进行训练,其实基座模型在预训练阶段积累的海量知识,是可以帮助模型在强化学习加持后突破推理上界。这是因为在预训练阶段积累的知识和思维方式是相对更高阶的,就像人类大师和新手都可以通过自博弈来提升自己的能力,但是由于人类大师的先验见过的东西更多,所以潜力更大。近期也有一些利用小模型复现 'Aha'moment 的工作,这得益于高质量的推理数据和大规模的强化学习,但若是要进一步去提升推理能力的边界,足够强的基座模型是必不可少的。

其次是大规模强化学习的加持,即通过 GRPO 对于训练过程进行优化。

最后是奖励规则化奖励,通过绕过奖励攻陷模型,规则化奖励能够直接基于固定的规则进行奖励判定,但规则化奖励能够成功的前提也很大程度上得益于关注的推理任务是可以进行自动化标注和验证的,这是和一般的聊天与写作任务相不同的。


在这里我们举一个自动化标记和验证的例子,例如对于一个推理问题,我们希望模型可以编写一个 Python 代码,那么自动化验证的方法,就可以分为这么几步:第一步是利用软件去检查代码补全,比如说判断它是否是完整的代码;第二步是执行 Python 代码,来检查运行情况,查看它是否是可运行的;第三是我们可以调用外部模块,来构建额外的检测单元;第四甚至我们可以更进一步的,为了去约束模型进行有效的推理,我们可以测量程序的执行时间,从而使训练过程首选性能更高的解决方案。而以上的奖励信号都是可以作为小批量训练和连续训练过程中的奖励信号的。


这里有个示意图也就是根据不同的规则,进行形式化的验证和判定,最后解的分数就会转化成强化学习训练过程中的奖励信号进行反传。


但是 DeepSeek-R1 Zero也有对应的问题,比如说长推理过程可读性差,语言混合帮助性低。那么我们能否在 zero 的基础上,在兼顾推理性能的同时,提升模型的帮助性和安全性的。例如能不能产生一些比较清晰且直接的推理过程,并且能够泛化到通用能力任务上的模型。例如 R1;以及我们能否利用一些高质量的反思数据去做冷启动,从而加速强化学习的收敛或者帮助提升推理表现。那么围绕这两个研究问题,应运而生了 DeepSeek R1 这个模型。


总的来说 DeepSeek R1 的技术 pipeline 可以被总结为这么一套范式。首先第一基于 DeepSeek v3-base 产生了 DeepSeek R1 Zero 这个模型,第一阶段是我们希望先增强 R1 zero 的推理链的可读性,在这一阶段我们会利用一些冷启动的数据,这些数据里边可能是包含了人类专家和模型所撰写的高质量的语言,符合语言格式的这样一些反思数据。然后我们再以推理为中心的强化学习去进一步的去进行微调,从而获得一个相对推理链可读性更强的一个中间模型;那么更进一步我们采用传统 RLHF 中的一些技术,比如说通过拒绝采样和全领域的监督微调以及在全领域的任务上进行强化学习的训练,比如对于推理任务我们可以使用规则奖励,而对于一些通用比如说聊天任务我们进行偏好建模,从而来在第二阶段去提升模型的通用能力和安全性,最终获得了 DeepSeek R1 这样一个模型。


接下来我们进行具体的讲解, 首先是第一阶段,我们如何去提升模型的推理链的可读性 ,在这个环节我们分为两个阶段:第一个是冷启动,第二是以推理为中心的强化学习。在冷启动阶段其实我们准备的数据是一些高质量的更长思维链的带反思和验证的数据集,这部分数据集它其实是由人类的注释者和 R1 Zero 产生了一个高质量链式思考,它的成效其实是说引入一些人类的先验,同时去提升它推理链的语义连贯性和可读性,然后并且让模型获得一个最基本的能力。


第二阶段就是和 DeepSeek R1 Zero 构建的过程相一致的,用以推理为中心的强化学习通过增强大规模的训练过程来进一步提升冷启动后的模型的推理问题的的推理能力 。与此同时,除了传统的格式奖励之外,在这里还引入了语言一致性的奖励。因为在 DeepSeek-R1 Zero 中我们观察到了比如说思维链中可能会混合带有不同语言的现象,通过引入通过计算思维链过程中目标语言的占比作为一个语言一致性奖励,从而可以衡量长推理链的可读性。第二个奖励信号也就是推理正确率的奖励,通过 GRPO 模型也是能够在 AIME 这些数学基准上 Pass@1 的正确率就有一个非常大的飞跃的提升。

与此同时,模型也能够自发地去延长推理链条,展现出更强的逻辑连贯性,获得了一个推理可推理链可读性更强并且有基本推理能力的模型之后,我们在后续再采用传统的 RLHF 中的像监督微调、拒绝采样以及全领域的强化学习来帮助模型去获得一个通用能力和安全性。在监督微调中和之前冷启动的数据是不同,这部分的监督微调主要还是负责全领域的任务,它除了包括一些推理任务的数据之外,还有一些比如说像角色扮演通用任务。这个成效是在使模型在推理能力不减的前提下,语言表现更为自然,适应性更为广泛。在经过全领域的 RL,其实可以进一步提升除了推理能力之外的帮助性和安全性。对于帮性安全性,其实我们就用传统的奖励模型来建模人类的偏好和意图就可以了。最终版本的 R1,其实不仅是在推理和对话任务上达到了高水平,还更具备更安全的交互性能。


在这一部分我们先总结一下 DeepSeek-R1 的一些技术亮点和 takeaways。首先社区对于强推理模型的复现都涉及一些蒸馏和搜索,而 DeepSeek R1 Zero 它是跳过了监督微调阶段。这得益于以下几个点:第一是需要足够强的基座模型来帮助它去突破一个质量和能力阈值的上限,第二是需要大规模强化学习的加持,第三是规则化奖励,但规则化奖励是得益于一些推理问题,它可以进行自动化的标记和验证。通过强化学习在实验过程中其实观察到了训练步数的增长模型的思考过程的长度是逐步增长的,这一增长其实也代表着在 test time 也就是测试任务阶段的一个算力的提升。DeepSeek R1 Zero 也是自主涌现了一个学会评测原来的方法反思和主动探索,其他路径的这样一个能力。

与此同时,多阶段训练下的冷启动,其实也让强化学习的训练更加稳定,从而避免了强化学习初期不稳定,加速收敛并且提升思维链可读性的这样一个能力。那么未来其实后训练的中心,它会逐步倾向于用强化学习,但是少量的数据去用于监督微调还是必须的。与此同时强化学习的一个非常大的魅力就是说它不只局限于基于规则的数学和算法代码等容易提供奖励的领域,它还可以创造性的把这个推理能力泛化到其他领域,甚至是从文本模态泛化到多模态。DeepSeek R1 Zero 和 DeepSeek R1 它其实背后有一些非常深的技术。我们在这里进行逐步地剖析。


首先第一个是它背后的教师模型 DeepSeek-v3 它其实能够在 14.8T 的高质量 tokens 上进行训练,其实类似于提供了一个 System I 一个足够好的直觉也就是 prior distribution,其实方便后续的 RL 过程的进一步的探索和挖掘 。与此同时 DeepSeek-v3 的低成本,其实也是带来的惊艳效果也是让社区非常震惊的,比如说基于 MoE 的架构,其实用 2048 张 H100 就可以 54 天就可以进行一场训练。在 PPT 讲解的最后,我们也是会对 DeepSeek-v3 的具体的架构创新点,还有它采用的一些技术上的优化,进行一个简单的讲解。


第二个值得关注的也就是在 DeepSeek R1 中所揭示的 RL 加持下的一个长度泛化和推理方式的涌现,在大规模强化学习的加持下 DeepSeek R1 Zero 其实表现出在推理任务上思维链长度的自然增长和涌现

具体来说,随着反思深度的逐层加深出现了它可以标记不明确的步骤,保持中间结论验证和混合语言推理等现象。与此同时,虽然我们传统说模型仅通过准确率奖励和格式奖励就是不足够的,或者说它的奖励信号可能是不够不充足的。但是在 R1 的实验中发现,即使是通过这么稀疏的奖励信号模型也是能够自然探索到一个验证、回溯总结和反思的行为方式的。这里面背后就有一个问题,也就是如何控制来保证最后的回答的长度能够稳定上升。那这其实是一个非常关键的问题,因为模型可能会出现反复重复验证或者验证时间过晚的情况。 最近社区也有一些复现的结果,包括我们自己团队也在复现,其实我们发现除了 GRPO 以外,像 REINFORCE 系列的算法以及 PPO 等,都是可以出现类似的结果的。REINFORCE 系列的算法,它是更快更好的,PPO 它训练相对更加稳定,但是会更慢一点。

第二点就是我们涌现的推理范式,它其实会展现出多语言混合的思维链。其实它背后的一个原因可能是在预训练数据过程中它是多语言的,不同语言的数据它其实是被一视同仁的被 Tokenization ,那么其实背后一个问题就是不同领域的不同语言编码是否可能会有不同的优势。比如说其实我们人类在进行讲解和思考过程中,很有可能也是进行比如中英文混杂的思考的,那些模型内部是不是也有类似不同于人类思考范式的这样一种语言推理的能力,其实对于后续揭示一些推理链的可解释性是非常重要的。


在这里我们具体讲解 GRPO 是如何赋能强化学习的扩展的 。GRPO 的核心思想是通过构建多个模型输出的群组,也就是对于同一个问题去产生可能是 N 个回答,计算群组内的相对奖励来估计基线相对奖励。它主要去解决一个问题,就是在传统的策略优化算法比如 PPO 中通常是需要一个与策略模型大小相同的一个 Critic Model 来估算它的 value,那我们把 value model 去掉其实能够提升它整个训练的稳定性和降低算力的消耗。与此同时,其实我们 GRPO 还可以引入一些额外的优化策略,从而去提升训练稳定性。

我们进一步讲解一下如何从 PPO 推导到 GRPO,其中 PPO 它作为 Actor-Critic 的算法,也是被广泛应用于后训练,它核心目标也就是优化下面这个奖励函数。为了避免模型的过度优化,我们通常会在每个词源的后边加上一个与 Reference Model 也就是参考模型的一个 KL 惩罚项。


PPO 的奖励函数通常是与策略模型规模相当的独立模型,就是 Critic model,这会带来非常大的一个内存和计算的增加。与此同时第二个问题就是奖励模型,通常它要对输出序列的最后一个词源,去分配奖励,导致它逐 Token 的价值函数的训练是会不断复杂化的。

GRPO 其实如右下图所示, GRPO 中是省略了 value model 的过程,比如说我们不用去估算我们可以直接利用一个组利用多个 output 去计算 reward,然后利用这个 reward 在组内进行一个相对值的估计来获得一组优势值,我们相应的优化的策略就变成了对于整个优势值,包括原来 PPO 的目标函数改变过来直接进行优化。包括 KL 散度的惩罚项,它不会直接加到奖励里边,而是直接加到策略函数优化的目标函数里边,这也是简化了整个 At 的过程的计算。它和奖励模型的对比性质其实是天然契合的,因为奖励模型本身也是基于同一个问题的输出进行一个 preference 的比较训练;GRPO 是在计算组内优势值的时候进行一个相对值的计算,其实它能够提升组内好回答的比例,降低组内坏回答的比例,其实天然是具有相对优势的。


GRPO 它其实分为两种:第一个是基于结果的,第二是基于过程 的。对于基于结果的形式 ,对于每个问题可以采用一系列的输出奖励模型去为这一系列的输出去生成奖励,那么随后去通过进行一个 normalization,也就是进行归一化,然后把归一化后的奖励去分配给每个输出的末尾的 token,然后去设为对应的 reward 就可以了。其实它的表达式就是这样的,相当于传统的优势值计算是非常简化的。 进一步其实也可以把 GRPO 扩展到基于过程的监督下 ,因为是结果监督,它是仅提供输出末尾的奖励,对于复杂数学任务的策略指导是不足的。进一步我们可以对于一个问题去采样多个输出,我们利用过程奖励模型去为每个步骤去生成奖励,比如生成一系列的奖励的信号规一化之后,优势值为最后奖励信号一个逐步的累加和,其实它作为一个过程监督的算法也是非常方便的。


这是对 DeepSeek-R1 的 Takeaways 的第二部分总结,R1-Zero 它其实节省了大量的标注成本,那么使模型获得了更加自由探索解决问题的路径,它不会被预先设定的模式所束缚。为了充分的去释放强化学习的潜力,同时去解决像 R1-Zero 中出现的语言混杂以及训练不稳定等等特性,DeepSeek R1 的训练中采用了四阶段交替训练的过程,那是从监督微调到强化学习再到再次的监督微调以及强化学习,从而通过冷启动来解决了一些收敛效率的问题。

DeepSeek R1 也是自主涌现了像自验证,反思和长链推理能力,比如自验证它会一个模型在生成最终答案之前会主动的验证自己的中间推理步骤是不是正确的,就像是一个学生在做题的过程中会反复检查自己的解题过程来确保答案的准确性;反思是指模型会回溯检查自己之前的推理过程并根据检查的结果进行修正,相当于一个学生在复习的时候会反思自己之前的错误,以便下次不再犯同样的错误;而长链推理能力则是让模型能够处理复杂,更需要多步骤思考的问题,这种能力对于解决一些需要跨越多个逻辑步骤,才能找到答案的问题至关重要,也有复杂的数学题或者逻辑谜题。冷启动也能够让强化学习的训练更加稳定,比如加强它的收敛性,以及提高模型输出的可读性。


我们展现出了几个比较关键的技术,比如说推理为中心的强化学习训练,其中就是语言一致性奖励以及多目标优化。还有 GRPO 也就是基于群组的相对策略优化,这样一个非常关键的技术。在奖励机制的设计上其实也是比较重要的,因为既要兼顾一个推理能力,也就是通过准确率奖励和格式奖励来去进行限制,那也要引入一个语言一致性奖励,从而惩罚在推理过程中使用多种语言输出的这么一个现象,从而去鼓励模型尽可能去使用一种目标语言进行推理来保证模型输出的语言风格的一致性。


DeepSeek R1 其实也带来了很强的社会和经济效益,背后其实是一个低成本和高质量语言模型边界的探索,我们其实整个大语言模型发展过程,它的扩展律最初是模型的规模、然后是数据集的规模,现在是推理时的计算资源和合成数据。这就意味着 DeepSeek R1 其实能够更方便地整合到,像 AI2Science 也就是计算科学以及一些大规模的 API 应用中。通过垂直领域和横向的拓展,比如说引入 RAG 的技术等等,这其实都是非常方便的。当然也带来一些经济效益,比如说资本市场的剧烈波动,包括像研发的投入和数据的数据中心的建设成本激增,其实背后也是算力军备竞赛的一个循环,其实随着模型使用方案的平民化,资源也是能够得到有效的优化,从而能够在有限的算力资源支持下,突破算法的创新然后突破算力的限制。


技术对比探讨

与 DeepSeek-R1 同系列出现的,其实还有 Kimi k1.5。我们也是先对 Kimi k1.5 的技术进行一个简单的讲解,然后去对比和分析这两个模型它采用的技术背后是不是有什么可取之处,以及和我们推测和社区的一些其他复现结果的一个对比。

Kimi K1.5 其实和 Kimi 系列的模型其实是一样,它是都是想要用长文本来解决一些问题,比如说 Kimi K1.5 其实专注于利用长文本的 CoT 输出来解决推理时的扩展问题,它的核心也就是通过强化学习来让模型去试错来学习解决问题的能力,它通过将强化学习的优化方式进行一个修改来应用于长文本推理链生成的过程,从而启发模型进行更深入更复杂的推理。

其实和 GRPO 的采用有很大的不同,他们采用的技术其实是一个 REINFORCE 系列的一个算法的变形,其实 Kimi 一直关注的也就是长文本能力的拓展,核心的 insights 也就是长文本能力是强化学习训练语言模型的关键,而不是需要一些更复杂的训练技巧 。其中他们还有一个更 interesting 的地方是长文本到短文本的一个拓展,通过长文本的思维链模型来指导短文本模型的训练,从而能够在有限的计算资源下去获得更好的性能。我们可以看到它在一些数学推理代码推理的任务,包括视觉推理的任务上其实都超过一些开源的模型和 OpenAI 的系列模型。


具体来说, Kimi k1.5 的过程是分为 4 阶段:第一是预训练阶段,然后进行了监督微调,进一步为了扩展它的长文本思维链推理能力进行了 long cot 的监督微调,进而进行了强化学习的训练。这里边也采用了一些相应的一些 recipes 一些技巧,其实也是在这里可以一块分享给大家。

首先是对于 RL 问题的准备,我觉得这其实也是社区复现的一些共用的技巧,比如说希望 RL 的 Prompt 能够涵盖足够多的范围,比如说包括代码 Coding/通用任务以及一些理工科问题的数据。同时 RL 训练也要去 balance 不同的难度,从而达到一个从易到难课程学习的效果。与此同时这些 RL prompt 的像数据代码问题,它最好是能够被一些 Verifiers 准确的评价,这可以防止防止泛化出一些奖励攻陷以及一些 Superficial Patterns,就是一些浮于表面的一些表征的这样一个行为。进一步在 Long CoT 监督微调过程中,他们是构造了这么一个 warm up 的数据,其中包括一些比较准确的推理路径去 for 图文的输入,那也是涵盖了一些 planning,评价反思以及探索的方式,然后从而让模型或在 RL 训练过程前就获得这样一个比较好的启动的方式。


其实更有趣的是说, Kimi k1.5 是从一个 In-Context RL 的角度出发,也就是我们传统在 MCTS 过程中和包括一些搜索过程都是一个可以被视为一个 planning,也就是规划的过程 。我们与其通过规划来使得模型显式的去扩展计算量,为什么不能用模型去模拟 planning 过程,比如说其实在整个搜索的过程中,我们可以将每个 state 比如每个状态和对应状态的价值,都视为一个 language token。从这样的角度出发我们其实就可以把它建模成一个 contextual bandit 的问题,然后从而利用 reinforce 的变种进行优化。与此同时我们与此同时,其实 Kimi-K1.5 还需要引入一个长度惩罚的机制,从而防止模型它去生成过长的推理过程来提高它的计算效率。其实模型也会出现这样一种 overthinking 也就是过度思考的行为。Overthinking 的过度思考的行为其实可能会导致一个更好的表现,但是会带来训练和推理过程中更大的算力的损耗。

与此同时 K1.5 也用了一些采样策略的优化,其中包括课程学习和优先采样的算法,比如课程学习也就是根据问题的难度让模型去先学容易的例子,然后再逐步引入更难的例子,从而循序渐进的去掌握知识。优先采样也就是根据难度和对于问题的掌握程度来调整采样概率,使模型更倾向于去采样那些困难的或者不擅长的问题,来提高它的训练的效率。长度惩罚其实也就是采用像下面这个公式所示的我们采用一组这样一个回答,然后通过计算组内的最最大长度和最短长度来计算这个平均长度作为一个 reference 值。第二个就是策略优化的损失函数也就是我们直接其实可以采用一个 reinforce 的变种去优化 surrogate 的 loss。

其中 Kimi K1.5 还采用了一些视觉数据的构建,包括像真实世界的数据其中就包括一些位置的猜测 。然后传统的 VQA,其实它是为了提升模型,在真实场景中的视觉推理能力;第二个是合成视觉推理数据,也就是它是一个人工合成的,比如去提高主要是提高一个空间关系、几何模式和物体交互的这么一个能力。这些合成数据提供了一个可控的环境用于测试模型的视觉推理能力,并且可以去无限生成一个虚拟样本;第三个也就是常用的文本渲染数据,通过将文本内容转化为视觉格式来从而保证模型能够在不同模态下保持一致的文本处理的能力,其实就是将比如说一些 OCR 的技巧将这个文本的文档和代码的片段转化为图像,来确保模型无论接受的是纯文本输入,还是截图或者照片中的文本,都能够提供一致的 Response。

K1.5 还展现出来一个比较优秀的方法,也就是 long2short 长到短的蒸馏。它其实背后想要解决的其实是模型的一个过度思考,以及我们能不能采用进行算力的控制。也就是通过采用更短的思维链达到和长思维链相同的效果。其实 Kimi 探究了这么几个方法:首先是模型的融合,比如说将长文本的思维链模型和短文本思维链模型的权重进行平均,从而得到一个新的模型;第二个是最短拒绝采样,也就是在多个采样中选择一个最短并且答案最正确的答案 然后去做监督微调,其次是采用像 DPO 等技术来使用长文本 cot 模型生成的答案来作为偏好数据来训练短文本 cot 的模型,在标准的 RL 训练过程中,其实可以类似于前一步我们采用的长度惩罚项来进行微调,从而进一步的去提高短文本 CoT 模型的效率。


在这里其实我们对比一下 Kimi K1.5 和 DeepSeek R1 的一些技术,我们其实能够发现一些共通之处和一些 Takeaways。首先二者都关注了 RL 的,也就是强化学习的方法带来的提升,MCTS 和 PRM 其实是都没有被使用的,包括我们之前的一个推测以及社区的很多复现过程中其实都关注了 MCTS 和过程监督模型,但是它们没有被显式的使用。其实背后是有着奖励攻陷的考虑的,之所以直接用纯 RL,其实背后的考量是对于模型思考能力的 structure,也就是其实这个 structure 相当于是人类的一个先验,其实我们可以认为 MCTS 它是一种 structure,A * 它也是一种 structure,人为的加入 inductive bias 去强求语言模型按照结构化的先验去进行思考,它其实是可能会限制模型的能力的。那么后续我们也会进一步讲解这个问题。

第二点是过程的结果奖励模型,它其实很容易被奖励攻陷,并且绝对值的 value 是很难准确的去估计奖励的,与此同时我们其实会有两种方法:第一个比如说虽然我们绝对值的 value 很难准确的估计,但我们可以用它去构建一个偏序的数据集;第二就是我们直接不用过程奖励模型,Kimi K1.5 其实更多是从 In-context RL 出发是希望模型去模拟 planning 的过程,而不是去显式的进行 planning,其中就是将 state 和价值等信息都视为一个 language tokens;而 DeepSeek R1 是从纯强化学习的角度出发,通过大规模的强化学习和 rule-based reward 来激活模型的能力,其中 核心的观念都是不管模型中间做错了什么,它只要不是重复的 pattern,只要模型最后做对了,我们就认为这是一个好的探索,它是值得鼓励的;反之如果模型一顿探索最后做错了,那么再努力也是错,这是需要去进行惩罚的

关键的也就是强化学习算法的对比,其实 DeepSeek R1 采用的是 GRPO,GRPO 是通过群组相对方式去计算优势值,然后它和奖励模型基于同一问题的输出它是天然契合的,而 GRPO 它额外的进行了策略函数的优化,比如说其实我们可以回到前面这一页,我们可以看到其实传统的我们是会把 KL 散度的惩罚加到 reward 里边,然后计算优势值,但是在 GRPO 里边,我们可以直接把惩罚项融入到这个目标函数计算里边,简化计算的难度和算力的损耗,使得这 GRPO 它其实在大规模的强化学习训练任务中,能够更有效的去优化策略模型,然后进而去提高它的计算效率。

Kim K1.5 其实它采用了一种变种 Mirror Descent,它可以保证学习的稳定性,其实本质上也是属于 REINFORCE 系列算法的一种,可以促进模型去探索到验证回溯总结的反思的行为方式。第二个关键点是后训练的 Pipeline 其实对于提升模型的推理能力重要性都是不可忽视的,一方面是随着测试阶段算力和训练阶段算力的增加,根据后训练扩展律模型的表现是会被持续改善的,另一方面是理想的数据构建应该涵盖足够广泛的类别并且难度分级明确,这样有利于实现类似于课程学习的效果,从而逐步提升模型的能力。最后一个 takeaways 是说在奖励建模的过程中,其实我们需要确保如果你的奖励机制是基于奖励模型的话,那么就要防止它的奖励攻陷,比如说还需要去进行一个平衡的推理长度和推理正确率之间的一个关系,比如对于同一个序列它的下一个动作可能存在一个错误答案,也存在一个直接引入到正确答案的情况,那么传统的强化学习的方法的 Credit Assignment 的问题会倾向于去提升选择正确答案的概率,同时降低去选择错误答案的概率,然而从推理长度的角度来说,有时就选择看似错误的答案,可能会引导模型进行一个自我修正的过程。这种自我修正的机制,以及更长的推理路径,同样对于提升模型的整体推理能力,是至关重要的。

第二个我们希望对比的技术讨论是通过纯强化学习和 STaR-base 的一些方法的对比 。在这里我们先回顾一下 STaR 的方法,STaR 方法核心是说我们有一些问题和答案的问题,我们希望能够让模型自己生成问题是如何导向答案的推理过程,并且将这些推理过程加入到模型的监督微调的数据集中,从而每次获得一个新的数据集,都从一个原始的模型来开始进行微调不断的去激发模型自己产生 Rationales 就是思考过程的能力。







请到「今天看啥」查看全文