DeepSeek-R1:通过强化学习激发大语言模型的推理能力
注:此文章内容均节选自充电了么创始人,CEO兼CTO陈敬雷老师的新书《自然语言处理原理与实战》(人工智能科学与技术丛书)【陈敬雷编著】【清华大学出版社】
文章目录
- DeepSeek大模型技术系列三
- DeepSeek大模型技术系列三》DeepSeek-R1:通过强化学习激发大语言模型的推理能力
- 更多技术内容
- 总结
DeepSeek大模型技术系列三
DeepSeek大模型技术系列三》DeepSeek-R1:通过强化学习激发大语言模型的推理能力
摘要
DeepSeek-R1推理模型包括 DeepSeek-R1-Zero 和 DeepSeek-R1。DeepSeek-R1-Zero 是通过大规模强化学习(RL)训练的模型,无需将监督微调(SFT)作为初始步骤,展现出卓越的推理能力。通过强化学习,DeepSeek-R1-Zero 自然涌现出众多强大且有趣的推理行为。然而,它也面临一些挑战,如可读性差和语言混杂等问题。为解决这些问题并进一步提升推理性能,我们推出了 DeepSeek-R1,它在强化学习之前融入了多阶段训练和冷启动数据。DeepSeek-R1 在推理任务上的性能与 OpenAI-o1-1217 相当。为支持研究社区,我们开源了 DeepSeek-R1-Zero、DeepSeek-R1,以及基于 Qwen 和 Llama 从 DeepSeek-R1 中提炼出的六个密集模型(15 亿、70 亿、80 亿、140 亿、320 亿、700 亿参数)。
图 1 DeepSeek-R1 的基准测试性能
目录
1.引言 3
2.方法 5
2.1 概述 5
2.2 DeepSeek-R1-Zero:基于基础模型的强化学习 5
2.2.1 强化学习算法 5
2.2.2 奖励建模 6
2.2.3 训练模板 6
2.2.4 DeepSeek-R1-Zero 的性能、自我进化过程和顿悟时刻 6
2.3 DeepSeek-R1:冷启动强化学习 9
2.3.1 冷启动 9
2.3.2 面向推理的强化学习 10
2.3.3 拒绝采样和监督微调 10
2.3.4 全场景强化学习 11
2.4 蒸馏:赋予小模型推理能力 11
3.实验 11
3.1 DeepSeek-R1 评估 13
3.2 蒸馏模型评估 14
4.讨论 14
4.1 蒸馏与强化学习 14
4.2 失败尝试 15
5.结论、局限性和未来工作 16
附录 A 贡献和致谢 20
1. 引言
近年来,大语言模型(LLMs)经历了快速的迭代和演进(Anthropic, 2024; Google, 2024; OpenAI, 2024a),与通用人工智能(AGI)的差距逐渐缩小。
最近,后训练已成为完整训练流程的重要组成部分。研究表明,后训练能提高推理任务的准确性,使模型符合社会价值观,并适应用户偏好,同时与预训练相比,所需的计算资源相对较少。在推理能力方面,OpenAI 的 o1(OpenAI, 2024b)系列模型率先通过增加思维链推理过程的长度来进行推理时缩放。这种方法在数学、编码和科学推理等各种推理任务中取得了显著改进。然而,如何在测试时进行有效缩放,仍然是研究界面临的一个开放性问题。此前有多项研究探索了各种方法,包括基于过程的奖励模型(Lightman 等人,2023; Uesato 等人,2022; Wang 等人,2023)、强化学习(Kumar 等人,2024)以及蒙特卡洛树搜索和束搜索等搜索算法(Feng 等人,2024; Trinh 等人,2024; Xin 等人,2024)。然而,这些方法中没有一种能在通用推理性能上与 OpenAI 的 o1 系列模型相媲美。
在本文中,我们迈出了使用纯强化学习(RL)提升语言模型推理能力的第一步。我们的目标是探索大语言模型在不依赖任何监督数据的情况下发展推理能力的潜力,重点关注它们如何通过纯强化学习过程实现自我进化。具体来说,我们使用 DeepSeek-V3-Base 作为基础模型,并采用 GRPO(Shao 等人,2024)作为强化学习框架,以提高模型在推理任务中的性能。在训练过程中,DeepSeek-R1-Zero 自然涌现出众多强大且有趣的推理行为。经过数千步的强化学习训练,DeepSeek-R1-Zero 在推理基准测试中表现出色。例如,在 2024 年美国数学邀请赛(AIME)上,其单次通过率(pass@1)从 15.6% 提升到了 71.0%,通过多数投票,这一分数进一步提高到 86.7%,与 OpenAI-o1-0912 的性能相当。
然而,DeepSeek-R1-Zero 也面临着诸如可读性差和语言混杂等挑战。为解决这些问题并进一步提升推理性能,我们推出了 DeepSeek-R1,它结合了少量冷启动数据和多阶段训练流程。具体而言,我们首先收集数千条冷启动数据来微调 DeepSeek-V3-Base 模型。之后,我们像训练 DeepSeek-R1-Zero 一样进行面向推理的强化学习。在强化学习过程接近收敛时,我们通过对强化学习检查点进行拒绝采样,结合来自 DeepSeek-V3 在写作、事实性问答和自我认知等领域的监督数据,创建新的监督微调(SFT)数据,然后重新训练 DeepSeek-V3-Base 模型。用新数据微调后,检查点再进行一轮强化学习,同时考虑所有场景的提示。经过这些步骤,我们得到了一个名为 DeepSeek-R1 的检查点,其性能与 OpenAI-o1-1217 相当。
我们进一步探索了从 DeepSeek-R1 到较小密集模型的知识蒸馏。以 Qwen2.532B(Qwen, 2024b)为基础模型,直接从 DeepSeek-R1 进行蒸馏的效果优于在其基础上应用强化学习。这表明较大基础模型发现的推理模式对于提升推理能力至关重要。我们开源了经过蒸馏的 Qwen 和 Llama(Dubey 等人,2024)系列模型。值得注意的是,我们蒸馏得到的 140 亿参数模型在性能上大幅超越了之前最先进的开源模型 QwQ-32B-Preview(Qwen, 2024a),而蒸馏得到的 320 亿和 700 亿参数模型在密集模型的推理基准测试中创下了新纪录。
1.1 贡献
后训练:基于基础模型的大规模强化学习
我们直接在基础模型上应用强化学习,而不依赖监督微调(SFT)作为初始步骤。这种方法使模型能够探索思维链(CoT)来解决复杂问题,从而开发出 DeepSeek-R1-Zero。DeepSeek-R1-Zero 展现出自我验证、反思和生成长思维链等能力,为研究界树立了重要的里程碑。值得注意的是,这是首次通过公开研究验证大语言模型的推理能力可以纯粹通过强化学习激发,而无需监督微调。这一突破为该领域未来的发展铺平了道路。
我们介绍了开发 DeepSeek-R1 的流程。该流程包含两个强化学习阶段,旨在发现更好的推理模式并符合人类偏好,还包含两个监督微调阶段,为模型的推理和非推理能力奠定基础。我们相信这一流程将有助于创建更优秀的模型,使整个行业受益。
蒸馏:小模型也能强大
我们证明了可以将大模型的推理模式蒸馏到小模型中,与小模型通过强化学习发现的推理模式相比,能带来更好的性能提升。开源的 DeepSeek-R1 及其 API 将有助于研究社区在未来蒸馏出更出色的小模型。
我们使用 DeepSeek-R1 生成的推理数据对研究社区中广泛使用的几个密集模型进行微调。评估结果表明,蒸馏得到的较小密集模型在基准测试中表现优异。DeepSeek-R1-Distill-Qwen-7B 在 2024 年 AIME 上的得分为 55.5%,超过了 QwQ-32B-Preview。此外,DeepSeek-R1-Distill-Qwen-32B 在 2024 年 AIME 上的得分达到 72.6%,在 MATH-500 上达到 94.3%,在 LiveCodeBench 上达到 57.2%。这些结果显著优于之前的开源模型,与 o1-mini 相当。我们向社区开源了基于 Qwen2.5 和 Llama3 系列的 15 亿、70 亿、80 亿、140 亿、320 亿和 700 亿参数的蒸馏检查点。
1.2 评估结果总结
推理任务:(1)DeepSeek-R1 在 2024 年 AIME 上的单次通过率(Pass@1)达到 79.8%,略高于 OpenAI-o1-1217。在 MATH-500 上,它取得了令人瞩目的 97.3% 的分数,与 OpenAI-o1-1217 表现相当,显著超越其他模型。(2)在与编码相关的任务中,DeepSeek-R1 在代码竞赛任务中展现出专家级水平,在 Codeforces 上获得 2029 的 Elo 评级,超过了竞赛中 96.3% 的人类参与者。对于工程相关任务,DeepSeek-R1 的表现略优于 DeepSeek-V3,这对实际工作中的开发者有帮助。
**知识:**在 MMLU、MMLU-Pro 和 GPQA Diamond 等基准测试中,DeepSeek-R1 取得了出色的成绩,在 MMLU 上得分为 90.8%,在 MMLU-Pro 上为 84.0%,在 GPQA Diamond 上为 71.5%,显著超越 DeepSeek-V3。虽然在这些基准测试中其性能略低于 OpenAI-o1-1217,但 DeepSeek-R1 超过了其他闭源模型,在教育任务中展现出竞争优势。在事实性基准测试 SimpleQA 上,DeepSeek-R1 的表现优于 DeepSeek-V3,证明了它处理基于事实查询的能力。在这个基准测试中,OpenAI-o1 也超过了 GPT-4o,呈现出类似的趋势。
其他:DeepSeek-R1 在广泛的任务中也表现出色,包括创意写作、通用问答、编辑、总结等。它在 AlpacaEval 2.0 上的长度控制胜率达到 87.6%,在 ArenaHard 上的胜率为 92.3%,展示了其智能处理非考试类查询的强大能力。此外,DeepSeek-R1 在需要长上下文理解的任务中表现突出,在长上下文基准测试中大幅超越 DeepSeek-V3。
2. 方法
2.1 概述
以往的工作严重依赖大量监督数据来提升模型性能。在本研究中,我们证明了即使不使用监督微调(SFT)作为冷启动,通过大规模强化学习(RL)也能显著提升推理能力。此外,加入少量冷启动数据可以进一步提高性能。在接下来的部分,我们将介绍:(1)DeepSeek-R1-Zero,它直接在基础模型上应用强化学习,不使用任何监督微调数据;(2)DeepSeek-R1,它从用数千条长思维链(CoT)示例微调后的检查点开始应用强化学习;(3)将 DeepSeek-R1 的推理能力蒸馏到小密集模型中。
2.2 DeepSeek-R1-Zero:基于基础模型的强化学习
强化学习在推理任务中已显示出显著的有效性,我们之前的工作(Shao 等人,2024; Wang 等人,2023)已证明了这一点。然而,这些工作严重依赖监督数据,而收集监督数据非常耗时。在本节中,我们探索大语言模型在不依赖任何监督数据的情况下发展推理能力的潜力,重点关注它们如何通过纯强化学习过程实现自我进化。我们首先简要介绍我们的强化学习算法,然后展示一些令人兴奋的结果,希望能为研究社区提供有价值的见解。
2.2.1 强化学习算法:组相对策略优化
为节省强化学习的训练成本,我们采用组相对策略优化(GRPO)(Shao 等人,2024)。该方法摒弃了通常与策略模型大小相同的价值评估模型,而是从组得分中估计基线。具体来说,对于每个问题 q,GRPO 从旧策略中采样一组输出,然后通过最大化以下目标来优化策略模型:
其中和是超参数,是优势值,通过计算每组输出对应的一组奖励得到:
———————————————————————————————
用户与助手进行对话。用户提出问题,助手进行解答。助手先在脑海中思考推理过程,然后为用户提供答案。推理过程和答案分别包含在 和 标签内,即 此处为推理过程 此处为答案 。用户:提示。助手:
———————————————————————————————
**表 1 DeepSeek-R1-Zero 的模板。**训练期间,提示将被具体的推理问题替换。
2.2.2 奖励建模
奖励是训练信号的来源,决定了强化学习的优化方向。为训练 DeepSeek-R1-Zero,我们采用基于规则的奖励系统,主要包含两种类型的奖励:
准确率奖励:准确率奖励模型用于评估回答是否正确。例如,对于有确定答案的数学问题,模型需要按照指定格式(如在框内)给出最终答案,以便基于规则可靠地验证正确性。同样,对于 LeetCode 问题,可以使用编译器根据预定义的测试用例生成反馈。
格式奖励:除了准确率奖励模型,我们还采用格式奖励模型,要求模型将其思考过程放在‘’和‘’标签之间。
在开发 DeepSeek-R1-Zero 时,我们没有应用结果或过程神经奖励模型,因为我们发现神经奖励模型在大规模强化学习过程中可能会出现奖励作弊问题,而且重新训练奖励模型需要额外的训练资源,会使整个训练流程变得复杂。
2.2.3 训练模板
为训练 DeepSeek-R1-Zero,我们首先设计了一个简单的模板,引导基础模型遵循我们指定的指令。如表 1 所示,该模板要求 DeepSeek-R1-Zero 首先生成推理过程,然后给出最终答案。我们有意将约束限制在这种结构格式上,避免任何特定内容的偏差,例如强制要求反思性推理或推广特定的问题解决策略,以确保我们能准确观察模型在强化学习过程中的自然发展。
2.2.4 DeepSeek-R1-Zero 的性能、自我进化过程和顿悟时刻
DeepSeek-R1-Zero 的性能:图 2 展示了 DeepSeek-R1-Zero 在 2024 年 AIME 基准测试中,整个强化学习训练过程的性能变化轨迹。可以看出,随着强化学习训练的推进,DeepSeek-R1-Zero 的性能稳步提升。值得注意的是,2024 年 AIME 上的平均单次通过率(pass@1)显著提高,从最初的 15.6% 跃升至令人瞩目的 71.0%,达到了与 OpenAI-o1-0912 相当的性能水平。这一显著改进凸显了我们的强化学习算法在优化模型性能方面的有效性。
**表 2 对 DeepSeek-R1-Zero 和 OpenAI 的 o1-0912 模型在各种推理相关基准测试中的表现进行了对比分析。**结果显示,强化学习使 DeepSeek-R1-Zero 在无需任何监督微调数据的情况下,获得了强大的推理能力。这是一项值得关注的成就,它强调了该模型仅通过强化学习就能有效学习和泛化的能力。此外,通过多数投票,DeepSeek-R1-Zero 的性能还能进一步提升。例如,在 AIME 基准测试中采用多数投票时,其性能从 71.0% 提升到 86.7%,超过了 OpenAI-o1-0912 的性能。无论是否采用多数投票,DeepSeek-R1-Zero 都能取得具有竞争力的性能,这突出了其强大的基础能力以及在推理任务中进一步提升的潜力。
图 2 DeepSeek-R1-Zero 在训练期间 AIME 准确率。对于每个问题,我们采样 16 个回答并计算总体平均准确率,以确保评估稳定。
DeepSeek-R1-Zero 的自我进化过程:DeepSeek-R1-Zero 的自我进化过程充分展示了强化学习如何驱动模型自主提升推理能力。通过直接从基础模型启动强化学习,我们可以在不受监督微调阶段影响的情况下,密切监测模型的发展。这种方法清晰地呈现了模型随时间的演变,尤其是在处理复杂推理任务的能力方面。如图 3 所示,DeepSeek-R1-Zero 的思考时间在整个训练过程中持续改善。这种改善并非外部调整的结果,而是模型内部自然发展的体现。DeepSeek-R1-Zero 通过利用更长的测试时计算,自然而然地获得了解决日益复杂推理任务的能力。其计算过程能够生成数百到数千个推理标记,使模型能够更深入地探索和完善其思维过程。这种自我进化中最显著的特点之一,是随着测试时计算量的增加,复杂行为的出现。例如,模型会进行反思 —— 回顾并重新评估之前的步骤,还会自发地探索解决问题的替代方法。这些行为并非预先编程设定,而是模型与强化学习环境交互的结果。这种自发发展显著提升了 DeepSeek-R1-Zero 的推理能力,使其能够更高效、准确地处理更具挑战性的任务。
图 3 DeepSeek-R1-Zero 在强化学习过程中训练集上每个回复的平均长度。DeepSeek-R1-Zero 自然学会用更多思考时间来解决推理任务。
DeepSeek-R1-Zero 的顿悟时刻:在训练 DeepSeek-R1-Zero 期间,一个特别有趣的现象是 “顿悟时刻” 的出现。如表 3 所示,这个时刻出现在模型的一个中间版本中。在这个阶段,DeepSeek-R1-Zero 学会了通过重新评估初始方法,为一个问题分配更多思考时间。这种行为不仅证明了模型推理能力的不断提升,也是强化学习能够带来意外且复杂结果的生动例证。这个时刻对于模型和观察其行为的研究人员来说都是一个 “顿悟时刻”。它凸显了强化学习的力量与魅力:我们无需明确教导模型如何解决问题,只需给予正确的激励,模型就能自主开发出先进的问题解决策略。“顿悟时刻” 有力地提醒我们,强化学习具有在人工系统中解锁新智能水平的潜力,为未来开发更自主、更具适应性的模型铺平了道路。
表 3 | DeepSeek-R1-Zero 中间版本一个有趣的 “顿悟时刻”。该模型学会了以拟人化的语气进行反思。这对我们来说也是一个顿悟时刻,让我们见证了强化学习的力量与美妙之处。
DeepSeek-R1-Zero 的缺点:尽管 DeepSeek-R1-Zero 展现出强大的推理能力,并且自主发展出了意想不到的强大推理行为,但它也面临一些问题。例如,DeepSeek-R1-Zero 存在可读性差和语言混杂等挑战。为了使推理过程更易读并与开放社区分享,我们探索了 DeepSeek-R1,这是一种利用包含人类友好型冷启动数据的强化学习方法。
2.3 DeepSeek-R1:冷启动强化学习
受 DeepSeek-R1-Zero 有前景的结果启发,两个自然的问题出现了:1)通过纳入少量高质量数据作为冷启动,能否进一步提高推理性能或加速收敛?2)我们如何训练一个对用户友好的模型,使其不仅能生成清晰连贯的思维链(CoT),还能展示出强大的通用能力?为了解决这些问题,我们设计了一个训练 DeepSeek-R1 的流程。该流程包含四个阶段,具体如下。
2.3.1 冷启动
与 DeepSeek-R1-Zero 不同,为了避免强化学习训练从基础模型开始时早期不稳定的冷启动阶段,对于 DeepSeek-R1,我们构建并收集了少量长思维链数据,用于微调模型,作为初始强化学习的起始点。为了收集此类数据,我们探索了几种方法:使用带有长思维链示例的少样本提示、直接提示模型生成带有反思和验证的详细答案、收集格式易读的 DeepSeek-R1-Zero 输出,以及通过人工标注进行后处理来优化结果。在这项工作中,我们收集了数千条冷启动数据,对 DeepSeek-V3-Base 进行微调,作为强化学习的起点。与 DeepSeek-R1-Zero 相比,冷启动数据的优势包括:
可读性:DeepSeek-R1-Zero 的一个关键限制是其内容通常不适合阅读。回复可能会混合多种语言,或者缺少用于突出答案的 Markdown 格式,不方便用户查看。相比之下,在为 DeepSeek-R1 创建冷启动数据时,我们设计了一种易读模式,在每个回复的结尾包含一个总结,并过滤掉不便于阅读的回复。这里,我们将输出格式定义为 | 特殊标记 |<推理过程>| 特殊标记 |< 总结 >,其中推理过程是针对查询的思维链,总结用于概括推理结果。
潜力:通过结合人类先验知识精心设计冷启动数据的模式,我们观察到其性能优于 DeepSeek-R1-Zero。我们认为迭代训练对于推理模型来说是一种更好的方式。
2.3.2 面向推理的强化学习
在冷启动数据上对 DeepSeek-V3-Base 进行微调后,我们采用与 DeepSeek-R1-Zero 相同的大规模强化学习训练过程。这个阶段专注于提升模型的推理能力,特别是在编码、数学、科学和逻辑推理等推理密集型任务中,这些任务具有定义明确的问题和清晰的解决方案。在训练过程中,我们观察到思维链经常出现语言混杂的情况,尤其是当强化学习提示涉及多种语言时。为了缓解语言混杂问题,我们在强化学习训练中引入了语言一致性奖励,它计算为思维链中目标语言单词的比例。尽管消融实验表明,这种调整会导致模型性能略有下降,但该奖励符合人类偏好,使思维链更易读。最后,我们将推理任务的准确率和语言一致性奖励直接相加,形成最终奖励。然后,我们对微调后的模型进行强化学习训练,直到它在推理任务上达到收敛。
2.3.3 拒绝采样和监督微调
当面向推理的强化学习收敛时,我们利用得到的检查点为下一轮收集监督微调(SFT)数据。与最初主要关注推理的冷启动数据不同,这个阶段纳入了来自其他领域的数据,以增强模型在写作、角色扮演和其他通用任务中的能力。具体来说,我们按如下方式生成数据并微调模型:
推理数据:我们整理推理提示,并通过对上述强化学习训练的检查点进行拒绝采样来生成推理轨迹。在之前的阶段,我们只纳入了可以使用基于规则的奖励进行评估的数据。然而,在这个阶段,我们通过纳入更多数据来扩展数据集,其中一些数据使用生成式奖励模型,将真实答案和模型预测输入 DeepSeek-V3 进行判断。此外,由于模型输出有时混乱且难以阅读,我们过滤掉了语言混杂的思维链、冗长的段落和代码块。对于每个提示,我们采样多个回复,只保留正确的回复。总共,我们收集了约 60 万个与推理相关的训练样本。
非推理数据:对于非推理数据,如写作、事实性问答、自我认知和翻译,我们采用 DeepSeek-V3 的流程,并复用 DeepSeek-V3 的部分监督微调数据集。对于某些非推理任务,在回答问题前,我们通过提示调用 DeepSeek-V3 生成潜在的思维链。然而,对于像 “你好” 这样简单的查询,我们不提供思维链作为回复。最后,我们总共收集了约 20 万个与推理无关的训练样本。
我们使用上述整理的约 80 万个样本的数据集,对 DeepSeek-V3-Base 进行两个轮次的微调。
2.3.4 全场景强化学习
为了进一步使模型符合人类偏好,我们实施了第二个强化学习阶段,旨在提升模型的有用性和无害性,同时优化其推理能力。具体来说,我们使用奖励信号和多样化的提示分布来训练模型。对于推理数据,我们遵循 DeepSeek-R1-Zero 中概述的方法,利用基于规则的奖励来指导数学、代码和逻辑推理领域的学习过程。对于通用数据,我们采用奖励模型来捕捉复杂和微妙场景中的人类偏好。我们基于 DeepSeek-V3 的流程,采用类似的偏好对和训练提示分布。对于有用性,我们仅关注最终总结,确保评估强调回复对用户的实用性和相关性,同时尽量减少对底层推理过程的干扰。对于无害性,我们评估模型的整个回复,包括推理过程和总结,以识别并减轻生成过程中可能出现的任何潜在风险、偏差或有害内容。最终,奖励信号和多样化数据分布的整合使我们能够训练出一个在推理方面表现出色,同时优先考虑有用性和无害性的模型。
2.4 蒸馏:赋予小模型推理能力
为了让更高效的小模型具备类似 DeepSeek-R1 的推理能力,我们使用在 2.3.3 节中整理的 80 万个样本,直接对 Qwen(Qwen, 2024b)和 Llama(AI@Meta, 2024)等开源模型进行微调。我们的研究结果表明,这种简单的蒸馏方法显著提升了小模型的推理能力。这里我们使用的基础模型有 Qwen2.5-Math-15 亿、Qwen2.5-Math-70 亿、Qwen2.5-140 亿、Qwen2.5-320 亿、Llama-3.1-80 亿和 Llama-3.3-700 亿 - Instruct。我们选择 Llama-3.3 是因为其推理能力略优于 Llama-3.1。
对于蒸馏后的模型,我们仅应用监督微调,不包括强化学习阶段,尽管加入强化学习可以大幅提升模型性能。我们这里的主要目标是展示蒸馏技术的有效性,将强化学习阶段的探索留给更广泛的研究社区。
3. 实验
3.1 DeepSeek-R1 评估
表 4 | DeepSeek-R1 与其他代表性模型的对比
我们在多个基准测试中对模型进行评估,包括 MMLU(Hendrycks 等人,2020)、MMLU-Redux(Gema 等人,2024)、MMLU-Pro(Wang 等人,2024)、C-Eval(Huang 等人,2023)、CMMLU(Li 等人,2023)、IFEval(Zhou 等人,2023)、FRAMES(Krishna 等人,2024)、GPQA Diamond(Rein 等人,2023)、SimpleQA(OpenAI, 2024c)、C-SimpleQA(He 等人,2024)、SWE-Bench Verified(OpenAI, 2024d)、Aider 1、LiveCodeBench(Jain 等人,2024)(2024 年 8 月 - 2025 年 1 月)、Codeforces 2、中国高中数学奥林匹克竞赛(CNMO 2024)3 和美国数学邀请赛 2024(AIME 2024)(MAA, 2024)。除了标准基准测试,我们还使用大语言模型作为评判者,在开放式生成任务中评估我们的模型。具体来说,我们遵循 AlpacaEval 2.0(Dubois 等人,2024)和 Arena-Hard(Li 等人,2024)的原始配置,它们使用 GPT-4-Turbo-1106 作为评判者进行两两比较。这里,我们仅将最终总结输入评估,以避免长度偏差。对于蒸馏模型,我们报告在 AIME 2024、MATH-500、GPQA Diamond、Codeforces 和 LiveCodeBench 上的代表性结果。
3.2 蒸馏模型评估
表 5 | DeepSeek-R1 蒸馏模型与其他可对比模型在推理相关基准测试中的比较
评估提示:遵循 DeepSeek-V3 的设置,MMLU、DROP、GPQA Diamond 和 SimpleQA 等标准基准测试使用 simpleevals 框架中的提示进行评估。对于 MMLU-Redux,我们在零样本设置下采用 Zero-Eval 提示格式(Lin, 2024)。对于 MMLU-Pro、C-Eval 和 CLUE-WSC,由于原始提示是少样本的,我们将提示略微修改为零样本设置。少样本中的思维链可能会损害 DeepSeek-R1 的性能。其他数据集遵循其原始评估协议,使用创建者提供的默认提示。对于代码和数学基准测试,HumanEval-Mul 数据集涵盖八种主流编程语言(Python、Java、C++、C#、JavaScript、TypeScript、PHP 和 Bash)。在 LiveCodeBench 上,模型性能使用思维链格式进行评估,数据收集于 2024 年 8 月至 2025 年 1 月之间。Codeforces 数据集使用 10 场 Div.2 竞赛的问题以及专家精心设计的测试用例进行评估,之后计算预期评级和参赛者百分比。SWE-Bench verified 的结果通过无代理框架(Xia 等人,2024)获得。AIDER 相关基准测试使用 “diff” 格式进行测量。每个基准测试中,DeepSeek-R1 的输出最多限制为 32768 个标记。
基线:我们与几个强大的基线模型进行全面评估对比,包括 DeepSeek-V3、Claude-Sonnet-3.5-1022、GPT-4o-0513、OpenAI-o1-mini 和 OpenAI-o1-1217。由于在中国内地访问 OpenAI-o1-1217 的 API 具有挑战性,我们根据官方报告来呈现其性能。对于蒸馏模型,我们还与开源模型 QwQ-32B-Preview(Qwen, 2024a)进行比较。
评估设置:我们将模型的最大生成长度设置为 32768 个标记。我们发现,使用贪心解码评估长输出推理模型会导致较高的重复率,并且不同检查点之间差异显著。因此,我们默认采用 pass@k 评估(Chen 等人,2021),并使用非零温度报告 pass@1。具体来说,我们使用 0.6 的采样温度和 0.95 的 top-P 值为每个问题生成 k 个回复(通常在 4 到 64 之间,具体取决于测试集大小)。然后,pass@1 的计算方式为,其中表示第 i 个回复的正确性。这种方法能提供更可靠的性能估计。对于 2024 年 AIME,我们还报告使用 64 个样本的共识(多数投票)结果(Wang 等人,2022),表示为 cons@64。
4. 讨论
4.1 蒸馏与强化学习
表 6 | 蒸馏模型和强化学习模型在推理相关基准测试中的比较
在 3.2 节中,我们可以看到通过蒸馏 DeepSeek-R1,小模型能取得令人瞩目的结果。然而,仍有一个问题:模型能否通过本文中讨论的大规模强化学习训练,在不进行蒸馏的情况下达到可比的性能?为了回答这个问题,我们使用数学、代码和 STEM 数据对 Qwen-32B-Base 进行大规模强化学习训练,训练步数超过 10000 步,得到 DeepSeek-R1-Zero-Qwen-32B。实验结果如表 6 所示,经过大规模强化学习训练的 320 亿参数基础模型,性能与 QwQ-32B-Preview 相当。然而,从 DeepSeek-R1 蒸馏得到的 DeepSeek-R1-Distill-Qwen-32B 在所有基准测试中的表现都明显优于 DeepSeek-R1-Zero-Qwen-32B。
因此,我们可以得出两个结论:第一,将更强的模型蒸馏到小模型中能产生出色的效果,而依赖本文中提到的大规模强化学习的小模型,需要巨大的计算资源,甚至可能无法达到蒸馏的性能。第二,虽然蒸馏策略既经济又有效,但要突破智能的边界,可能仍然需要更强大的基础模型和大规模强化学习。
4.2 失败尝试
在开发 DeepSeek-R1 的早期阶段,我们也经历了失败和挫折。我们在此分享这些失败经验,以提供见解,但这并不意味着这些方法无法开发出有效的推理模型。
过程奖励模型(PRM):过程奖励模型是引导模型采用更好的方法解决推理任务的合理手段(Lightman 等人,2023; Uesato 等人,2022; Wang 等人,2023)。然而在实践中,PRM 存在三个主要限制,可能会阻碍其最终成功。第一,在一般推理中,明确界定细粒度的步骤具有挑战性。第二,判断当前中间步骤是否正确是一项艰巨的任务。使用模型进行自动标注可能无法获得令人满意的结果,而手动标注不利于大规模应用。第三,一旦引入基于模型的 PRM,不可避免地会导致奖励作弊(Gao 等人,2022),重新训练奖励模型需要额外的训练资源,并且会使整个训练流程变得复杂。总之,虽然 PRM 在对模型生成的前 N 个回复进行重新排序或辅助引导搜索方面(Snell 等人,2024)表现出良好的能力,但在我们的实验中,与大规模强化学习过程中引入的额外计算开销相比,其优势有限。
蒙特卡洛树搜索(MCTS):受 AlphaGo(Silver 等人,2017b)和 AlphaZero(Silver 等人,2017a)的启发,我们探索使用蒙特卡洛树搜索(MCTS)来提高测试时计算的可扩展性。这种方法将答案分解为较小的部分,使模型能够系统地探索解空间。为了实现这一点,我们提示模型生成多个与搜索所需的特定推理
步骤相对应的标签。在训练时,我们首先使用收集到的提示,通过由预训练价值模型引导的蒙特卡洛树搜索来寻找答案。随后,我们使用得到的问答对来训练策略模型和价值模型,不断迭代优化这个过程。
然而,在扩大训练规模时,这种方法遇到了一些挑战。首先,与国际象棋不同,在国际象棋中搜索空间相对明确,而 token 生成的搜索空间呈指数级增大。为了解决这个问题,我们为每个节点设置了最大扩展限制,但这可能会导致模型陷入局部最优解。其次,价值模型直接影响生成的质量,因为它指导搜索过程的每一步。训练一个精细的价值模型本身就很困难,这使得模型难以通过迭代进行改进。虽然 AlphaGo 的核心成功在于训练价值模型以逐步提升性能,但由于 token 生成的复杂性,这一原则在我们的设置中难以复制。
总之,虽然蒙特卡洛树搜索在与预训练价值模型结合时可以在推理过程中提高性能,但通过自我搜索迭代提升模型性能仍然是一个巨大的挑战。
5. 结论、局限性和未来工作
在这项工作中,我们分享了通过强化学习提升模型推理能力的研究历程。DeepSeek - R1 - Zero 代表了一种纯粹的强化学习方法,不依赖冷启动数据,在各种任务中都取得了很强的性能。DeepSeek - R1 则更强大,它利用冷启动数据以及迭代的强化学习微调。最终,DeepSeek - R1 在一系列任务上的性能与 OpenAI - o1 - 1217 相当。
我们进一步探索了将推理能力蒸馏到小密集模型中。我们使用 DeepSeek - R1 作为教师模型生成 80 万个训练样本,并对几个小密集模型进行微调。结果很有前景:DeepSeek - R1 - Distill - Qwen - 15 亿在数学基准测试中表现优于 GPT - 4o 和 Claude - 3.5 - Sonnet,在 AIME 上得分为 28.9%,在 MATH 上得分为 83.9% 。其他密集模型也取得了令人瞩目的成绩,显著超越了基于相同基础检查点的其他指令微调模型。
未来,我们计划在以下几个方向对 DeepSeek - R1 展开研究:
通用能力:目前,DeepSeek - R1 在函数调用、多轮交互、复杂角色扮演和 JSON 输出等任务上的能力不如 DeepSeek - V3。未来,我们计划探索如何利用长思维链来提升这些领域的任务表现。
语言混杂:DeepSeek - R1 目前针对中文和英文进行了优化,在处理其他语言的查询时可能会出现语言混杂的问题。例如,即使查询使用的不是中文或英文,DeepSeek - R1 也可能会用英文进行推理和回复。我们旨在在未来的更新中解决这一限制。
提示工程:在评估 DeepSeek - R1 时,我们发现它对提示很敏感。少样本提示始终会降低其性能。因此,我们建议用户直接描述问题,并使用零样本设置指定输出格式,以获得最佳结果。
软件工程任务:由于评估时间长,影响了强化学习过程的效率,大规模强化学习在软件工程任务中尚未得到广泛应用。因此,DeepSeek - R1 在软件工程基准测试中相对于 DeepSeek - V3 并没有显示出巨大的改进。未来版本将通过对软件工程数据实施拒绝采样,或在强化学习过程中纳入异步评估来提高效率,从而解决这一问题。
更多技术内容
更多技术内容可参见
《自然语言处理原理与实战》(人工智能科学与技术丛书)【陈敬雷编著】【清华大学出版社】书籍。
更多的技术交流和探讨也欢迎加我个人微信chenjinglei66。
总结
此文章有对应的配套新书教材和视频:
【配套新书教材】
《自然语言处理原理与实战》(人工智能科学与技术丛书)【陈敬雷编著】【清华大学出版社】
新书特色:本书从自然语言处理基础开始,逐步深入各种NLP热点前沿技术,使用了Java和Python两门语言精心编排了大量代码实例,契合公司实际工作场景技能,侧重实战。
全书共分为19章,详细讲解中文分词、词性标注、命名实体识别、依存句法分析、语义角色标注、文本相似度算法、语义相似度计算、词频-逆文档频率(TF-IDF)、条件随机场、新词发现与短语提取、搜索引擎Solr Cloud和Elasticsearch、Word2vec词向量模型、文本分类、文本聚类、关键词提取和文本摘要、自然语言模型(Language Model)、分布式深度学习实战等内容,同时配套完整实战项目,例如对话机器人实战、搜索引擎项目实战、推荐算法系统实战。
本书理论联系实践,深入浅出,知识点全面,通过阅读本书,读者不仅可以理解自然语言处理的知识,还能通过实战项目案例更好地将理论融入实际工作中。
《分布式机器学习实战》(人工智能科学与技术丛书)【陈敬雷编著】【清华大学出版社】
新书特色:深入浅出,逐步讲解分布式机器学习的框架及应用配套个性化推荐算法系统、人脸识别、对话机器人等实战项目。
【配套视频】
推荐系统/智能问答/人脸识别实战 视频教程【陈敬雷】
视频特色:把目前互联网热门、前沿的项目实战汇聚一堂,通过真实的项目实战课程,让你快速成为算法总监、架构师、技术负责人!包含了推荐系统、智能问答、人脸识别等前沿的精品课程,下面分别介绍各个实战项目:
1、推荐算法系统实战
听完此课,可以实现一个完整的推荐系统!下面我们就从推荐系统的整体架构以及各个子系统的实现给大家深度解密来自一线大型互联网公司重量级的实战产品项目!
2、智能问答/对话机器人实战
由浅入深的给大家详细讲解对话机器人项目的原理以及代码实现、并在公司服务器上演示如何实际操作和部署的全过程!
3、人脸识别实战
从人脸识别原理、人脸识别应用场景、人脸检测与对齐、人脸识别比对、人脸年龄识别、人脸性别识别几个方向,从理论到源码实战、再到服务器操作给大家深度讲解!
自然语言处理NLP原理与实战 视频教程【陈敬雷】
视频特色:《自然语言处理NLP原理与实战》包含了互联网公司前沿的热门算法的核心原理,以及源码级别的应用操作实战,直接讲解自然语言处理的核心精髓部分,自然语言处理从业者或者转行自然语言处理者必听视频!
人工智能《分布式机器学习实战》 视频教程【陈敬雷】
视频特色:视频核心内容有互联网公司大数据和人工智能、大数据算法系统架构、大数据基础、Python编程、Java编程、Scala编程、Docker容器、Mahout分布式机器学习平台、Spark分布式机器学习平台、分布式深度学习框架和神经网络算法、自然语言处理算法、工业级完整系统实战(推荐算法系统实战、人脸识别实战、对话机器人实战)。
上一篇:DeepSeek大模型技术系列一》DeepSeek核心算法解析:如何打造比肩ChatGPT的国产大模型
下一篇:DeepSeek大模型技术系列三》DeepSeek大模型基础设施全解析:支撑万亿参数模型的幕后英雄
相关文章:

DeepSeek-R1:通过强化学习激发大语言模型的推理能力
注:此文章内容均节选自充电了么创始人,CEO兼CTO陈敬雷老师的新书《自然语言处理原理与实战》(人工智能科学与技术丛书)【陈敬雷编著】【清华大学出版社】 文章目录 DeepSeek大模型技术系列三DeepSeek大模型技术系列三》DeepSeek-…...

MATLAB中fft函数用法
目录 语法 说明 示例 含噪信号 高斯脉冲 余弦波 正弦波的相位 FFT 的插值 fft函数的功能是对数据进行快速傅里叶变换。 语法 Y fft(X) Y fft(X,n) Y fft(X,n,dim) 说明 Y fft(X) 用快速傅里叶变换 (FFT) 算法计算 X 的离散傅里叶变换 (DFT)。 如果 X 是向量&…...

【SpringBoot】【JWT】使用JWT的claims()方法存入Integer类型数据自动转为Double类型
生成令牌时使用Map存入Integer类型数据,将map使用claims方法放入JWT令牌后,取出时变成Double类型,强转报错: 解决: 将Integer转为String后存入JWT令牌,不会被自动转为其他类型,取出后转为Integ…...

Crack SmartGit
感谢大佬提供的资源 一、正常安装SmartGit 二、下载crackSmartGit crackSmartGit 发行版 - Gitee.com 三、使用crackSmartGit 1. 打开用户目录:C:\Users%用户名%\AppData\Roaming\syntevo\SmartGit。将crackSmartGit.jar和license.zip拷贝至 用户目录。 2. 用户…...

【备赛】在keil5里面创建新文件的方法+添加lcd驱动
一、先创建出文件夹和相应的.c和.h文件 因为在软件里面创建出的是在MDk文件那里面的,实际上是不存在你的新文件夹里的。 二、在keil5软件里面操作 1)添加文件夹 -*---------------------------------------------------------- 这里最好加上相对路径&…...

Rk3568驱动开发_驱动实现流程以及本质_3
1设备号: cat /proc/devices 编写驱动模块需要要想加载到内核并与设备正常通信,那就需要申请一个设备号,用cat /proc/devices可以查看已经被占用的设备号 设备号有什么用?不同设备其驱动实现不同用设备号去区分,例如字…...

【学习笔记】LLM+RL
文章目录 1 合成数据与模型坍缩(model collapse),1.1 递归生成数据与模型坍缩1.2 三种错误1.3 理论直觉1.4 PPL指标 2 基于开源 LLM 实现 O1-like step by step 慢思考(slow thinking),ollama,streamlit2.1…...

深入理解IP子网掩码子网划分{作用} 以及 不同网段之间的ping的原理 以及子网掩码的区域划分
目录 子网掩码详解 子网掩码定义 子网掩码进一步解释 子网掩码的作用 计算总结表 子网掩码计算 子网掩码对应IP数量计算 判断IP是否在同一网段 1. 计算步骤 2. 示例 3. 关键点 总结 不同网段通信原理与Ping流程 1. 同网段通信 2. 跨网段通信 网段计算示例 3. P…...

rust 前端npm依赖工具rsup升级日志
rsup是使用 rust 编写的一个前端 npm 依赖包管理工具,可以获取到项目中依赖包的最新版本信息,并通过 web 服务的形式提供查看、升级操作等一一系列操作。 在前一篇文章中,记录初始的功能设计,自己的想法实现过程。在自己的使用过…...
2.2 STM32F103C8T6最小系统板的四种有关固件的开发方式
2.2.1 四种有关固件的开发方式 四种有关于固件的开发方式从时间线由远及近分别是:寄存器开发、标准外设驱动库开发、硬件抽象层库开发、底层库开发。 四种开发方式各有优缺点,可以参考ST官方的测试与说明。 1.寄存器开发 寄存器编程对于从51等等芯片过渡…...

【C++】 stack和queue以及模拟实现
一、stack及其模拟实现 1.1 stack介绍 stack是一种容器适配器,专门用在具有后进先出操作的上下文环境中,其删除只能从容器的一端进行 元素的插入与提取操作。stack是作为容器适配器被实现的,容器适配器即是对特定类封装作为其底层的容器&am…...
python与C系列语言的差异总结(2)
Python有很多表达布尔值的方式,布尔常量False、0、Python零值None、空值(如空的列表[]和空字符串""),都被视为False。布尔常量True和其他一切值都被视为True。但不相等。这个自由度相比C类语言更加高。 if (not None):…...

Linux之文件系统
1.前言 文件 内容属性 文件分为被打开的文件(跟基础IO有关,在内存上)和没有被打开的文件(在磁盘上)。 在磁盘上找没有被打开的文件属于文件系统的工作 2.对硬件的理解 2.1 磁盘,服务器,机柜,机房 1.磁…...
LeetCode刷题 -- 23. 合并 K 个升序链表
小根堆排序与合并 K 个有序链表的实现 1. 介绍 本技术文档详细介绍了如何使用 小根堆(Min Heap) 实现 K 个有序链表的合并。 核心思想是: 使用 小根堆 维护当前最小的节点。每次取出堆顶元素(最小值)加入合并链表&…...
DeepSeek在MATLAB上的部署与应用
在科技飞速发展的当下,人工智能与编程语言的融合不断拓展着创新边界。DeepSeek作为一款备受瞩目的大语言模型,其在自然语言处理领域展现出强大的能力。而MATLAB,作为科学计算和工程领域广泛应用的专业软件,拥有丰富的工具包和高效…...

mapbox基础,使用geojson加载fill-extrusion三维填充图层
👨⚕️ 主页: gis分享者 👨⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨⚕️ 收录于专栏:mapbox 从入门到精通 文章目录 一、🍀前言1.1 ☘️mapboxgl.Map 地图对象1.2 ☘️mapboxgl.Map style属性1.3 ☘️fill-extrusion三维填充图层样式二、�…...

基于 SpringBoot 的 “电影交流平台小程序” 系统的设计与实现
大家好,今天要和大家聊的是一款基于 SpringBoot 的 “电影交流平台小程序” 系统的设计与实现。项目源码以及部署相关事宜请联系我,文末附上联系方式。 项目简介 基于 SpringBoot 的 “电影交流平台小程序” 系统设计与实现的主要使用者分为 管理员 和…...
单片机裸机编程-时机管理
对于 RTOS 实时操作系统,我们是通过 TASK(任务)进行底层操作的,这与裸机编程中的函数(fun)类似。不同的任务或函数实现不同的功能,在RTOS中,单片机有信号量、队列等不同任务之间的通…...
Flutter系列教程之(2)——Dart语言快速入门
目录 1.变量与类型 1.1 num类型 1.2 String类型 1.3 Object与Dynamic 1.4 类型判断/转换 1.5 变量和常量 2.方法/函数 3.类、接口、抽象类 3.1 类 3.2 接口 4.集合 4.1 List 4.2 Set 4.3 Map 5.总结 Dart语言的语法和Kotlin、Java有类似之处,这里就通…...

pyecharts介绍
文章目录 介绍安装pyecharts基本使用全局配置选项 折线图相关配置地图模块使用柱状图使用 介绍 echarts虑是个由百度开源的数据可视化,凭借着良好的交互性,精巧的图表设计,得到了众多开发者的认可,而Pyhon是门富有表达力的语言&a…...

19c补丁后oracle属主变化,导致不能识别磁盘组
补丁后服务器重启,数据库再次无法启动 ORA01017: invalid username/password; logon denied Oracle 19c 在打上 19.23 或以上补丁版本后,存在与用户组权限相关的问题。具体表现为,Oracle 实例的运行用户(oracle)和集…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)
HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...

label-studio的使用教程(导入本地路径)
文章目录 1. 准备环境2. 脚本启动2.1 Windows2.2 Linux 3. 安装label-studio机器学习后端3.1 pip安装(推荐)3.2 GitHub仓库安装 4. 后端配置4.1 yolo环境4.2 引入后端模型4.3 修改脚本4.4 启动后端 5. 标注工程5.1 创建工程5.2 配置图片路径5.3 配置工程类型标签5.4 配置模型5.…...

大话软工笔记—需求分析概述
需求分析,就是要对需求调研收集到的资料信息逐个地进行拆分、研究,从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要,后续设计的依据主要来自于需求分析的成果,包括: 项目的目的…...

8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂
蛋白质结合剂(如抗体、抑制肽)在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上,高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术,但这类方法普遍面临资源消耗巨大、研发周期冗长…...
Objective-C常用命名规范总结
【OC】常用命名规范总结 文章目录 【OC】常用命名规范总结1.类名(Class Name)2.协议名(Protocol Name)3.方法名(Method Name)4.属性名(Property Name)5.局部变量/实例变量(Local / Instance Variables&…...

Module Federation 和 Native Federation 的比较
前言 Module Federation 是 Webpack 5 引入的微前端架构方案,允许不同独立构建的应用在运行时动态共享模块。 Native Federation 是 Angular 官方基于 Module Federation 理念实现的专为 Angular 优化的微前端方案。 概念解析 Module Federation (模块联邦) Modul…...

多模态大语言模型arxiv论文略读(108)
CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文标题:CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文作者:Sayna Ebrahimi, Sercan O. Arik, Tejas Nama, Tomas Pfister ➡️ 研究机构: Google Cloud AI Re…...
CMake控制VS2022项目文件分组
我们可以通过 CMake 控制源文件的组织结构,使它们在 VS 解决方案资源管理器中以“组”(Filter)的形式进行分类展示。 🎯 目标 通过 CMake 脚本将 .cpp、.h 等源文件分组显示在 Visual Studio 2022 的解决方案资源管理器中。 ✅ 支持的方法汇总(共4种) 方法描述是否推荐…...

听写流程自动化实践,轻量级教育辅助
随着智能教育工具的发展,越来越多的传统学习方式正在被数字化、自动化所优化。听写作为语文、英语等学科中重要的基础训练形式,也迎来了更高效的解决方案。 这是一款轻量但功能强大的听写辅助工具。它是基于本地词库与可选在线语音引擎构建,…...