DeepSeek-R1 论文解读 —— 强化学习大语言模型新时代来临?

embedded/2025/2/3 15:34:58/

近年来,人工智能(AI)领域发展迅猛,大语言模型(LLMs)为通用人工智能(AGI)的发展开辟了道路。OpenAI 的 o1 模型表现非凡,它引入的创新性推理时缩放技术显著提升了推理能力,不过该模型是闭源的。

<a class=DeepSeek-R1 paper title" />
今天,我们深入探讨由 DeepSeek 发布的突破性研究论文,该论文介绍了 DeepSeek-R1。这篇题为《DeepSeek-R1:通过强化学习激发大语言模型的推理能力》的论文,展示了一种前沿的开源推理模型,以及使用大规模强化学习技术训练此类模型的详细方法。

回顾:大语言模型训练过程

在这里插入图片描述

在深入探讨这篇论文之前,让我们简要回顾一下大语言模型的训练过程。通常,大语言模型要经过三个主要训练阶段:

  • 预训练:在这个阶段,大语言模型在大量文本和代码上进行预训练,以学习通用知识。这一步有助于模型熟练预测序列中的下一个标记。例如,给定 “write a bedtime _” 这样的输入,模型可以用 “story” 等合理的词补全。然而,预训练后,模型在遵循人类指令方面仍存在困难,下一阶段将解决这个问题。
  • 监督微调:在这个阶段,模型在指令数据集上进行微调。数据集中的每个样本都有一个指令 - 响应配对组成,其中响应作为标签。经过这个阶段,模型在遵循指令方面会表现得更好。
  • 强化学习:大语言模型利用反馈进一步优化。一种有效的方法是人类反馈强化学习(RLHF),即根据人类反馈训练模型。但收集大规模、高质量的人类反馈,尤其是针对复杂任务,颇具挑战。因此,另一种常用方法是人工智能反馈强化学习(RLAIF),由人工智能模型提供反馈。要使 RLAIF 有效工作,需要一个能力强大的模型来提供准确反馈。

引入 DeepSeek-R1-Zero 模型

Training <a class=DeepSeek-R1-Zero using only RL in post-training, without SFT" />

本文所探讨的研究省略或部分省略了监督微调阶段。具体来说,为了训练论文中提出的首个模型 DeepSeek-R1-Zero,我们从一个名为 DeepSeek-V3-Base 的预训练模型开始,它有 6710 亿个参数。监督微调阶段被完全省略。为了大规模进行强化学习,研究采用了一种基于规则的强化学习方法,而非标准的依靠人类或人工智能反馈的强化学习方式。

基于规则的强化学习

在这里插入图片描述

所使用的强化学习方法称为组相对策略优化(GRPO),由 DeepSeek 内部开发。

给定一个待训练的模型和一个输入问题,将输入送入模型,会采样得到一组输出。每个输出都包含推理过程和答案。GRPO 方法观察这些采样输出,并通过使用预定义规则为每个输出计算奖励,来训练模型生成更优的选项:

  • 准确性:一组规则用于计算准确性奖励。例如,对于有确定答案的数学问题,我们可以确切检查模型给出的最终答案是否正确。对于有预定义测试用例的代码问题,编译器会根据测试用例生成反馈。
  • 格式:另一类规则用于创建格式奖励。在论文中的下图里,我们可以看到模型被要求如何响应,其推理过程在标签内,答案在标签内。格式奖励确保模型遵循这种格式。

在这里插入图片描述

这种基于规则的机制不使用神经模型生成奖励,简化并降低了训练过程的成本,使其大规模应用成为可能。此外,研究人员发现奖励模型可能会受到奖励作弊问题的影响,即模型找到一种漏洞或意外方式来最大化奖励,但这与预期目标并不相符。

DeepSeek-R1-Zero 性能洞察

现在,让我们来探究一下 DeepSeek-R1-Zero 模型的一些性能表现。
在这里插入图片描述
在论文中的上表里,我们看到了 DeepSeek-R1-Zero 与 OpenAI 的 o1 在推理相关基准测试中的比较。令人印象深刻的是,DeepSeek-R1-Zero 与 o1 相当,在某些情况下甚至超越了它。论文中下面这张有趣的图展示了在 AIME 数据集上训练期间的改进过程。值得注意的是,AIME 上的平均一次通过率大幅提升,从最初的 15.6% 跃升至令人惊叹的 71.0%,达到了与 OpenAI 的 o1 相当的水平!
在这里插入图片描述

DeepSeek-R1-Zero 的自我进化过程

在这里插入图片描述
论文的一个关键发现是模型的自我进化过程,如上图所示。x 轴表示训练步数,y 轴表明随着训练的进行,模型的响应长度增加。通过强化学习,模型在解决推理任务时自然学会分配更多思考时间。令人惊奇的是,这一过程无需任何外部调整。

“顿悟时刻” 现象—— Aha Moment

如果上述内容还不够令人称奇,论文中还提到了 DeepSeek-R1-Zero 的另一个有趣现象 ——“顿悟时刻”。论文中的以下示例展示了这一现象。给定一道数学题,模型开始推理过程。然而,在某个时刻,模型开始重新评估其解决方案。模型学会重新评估其初始方法,并在必要时进行自我纠正。这种非凡的能力在强化学习训练过程中自然显现。
在这里插入图片描述

DeepSeek-R1 模型的训练过程

现在,我们来讨论第二个模型 DeepSeek-R1 的训练过程。但首先,既然我们刚刚看到了 DeepSeek-R1-Zero 卓越的能力,为什么还需要第二个模型呢?

为什么需要 DeepSeek-R1

主要有两个原因:
在这里插入图片描述

  • 可读性问题:DeepSeek-R1-Zero 的输出往往可读性较差。
  • 语言一致性问题:它经常在单个回答中混合多种语言。

上述问题使得 DeepSeek-R1-Zero 的用户体验欠佳。有趣的是,一项消融研究表明,引导模型使用单一语言会略微损害其性能。与通常使用单一语言的人类不同,该模型通过使用多种语言能更好地表达自己,这一点令人着迷。

DeepSeek-R1 的训练流程

为了解决这些问题,DeepSeek-R1 采用四阶段流程进行训练:

  • 冷启动(阶段 1):从预训练模型 DeepSeek-V3-Base 开始,模型在从 DeepSeek-R1-Zero 收集的少量结果数据集上进行监督微调。这些结果经过验证,质量高且可读性强。这个数据集包含数千个样本,规模相对较小。在这个小规模高质量数据集上进行监督微调,有助于 DeepSeek-R1 缓解初始模型中存在的可读性问题。
  • 推理强化学习(阶段 2):这个阶段应用与前一个模型相同的大规模强化学习方法,以提升模型的推理能力。具体来说,在编程、数学、科学和逻辑推理等任务中,这些任务有明确的解决方案,可为强化学习过程定义奖励规则。
  • 拒绝采样和监督微调(阶段 3):在这个阶段,使用阶段 2 的模型检查点生成大量样本。通过拒绝采样,只保留正确且可读的样本。此外,使用生成式奖励模型 DeepSeek-V3 来决定保留哪些样本。这个阶段还包含了部分 DeepSeek-V3 的训练数据。然后,模型在这个数据集上进行监督微调。这个数据集不仅包含推理相关的问题,还提升了模型在更多领域的能力。
  • 多样化强化学习阶段(阶段 4):这是最后一个阶段,包含多样化的任务。对于像数学这样适用的任务,使用基于规则的奖励。对于其他任务,由大语言模型提供反馈,使模型符合人类偏好。

此外,利用阶段 3 构建的数据集对各种较小的开源模型进行了提炼,提供了具有高推理能力的较小规模替代模型。

DeepSeek-R1 的显著成果

在这里插入图片描述

在本文结尾,我们着重介绍一下免费可用的 DeepSeek-R1 与 OpenAI 的 o1 模型相比取得的显著成果。论文中的上图显示,DeepSeek-R1 不仅与 o1 相当,在某些基准测试中还超越了它。

此外,经过提炼的 320 亿参数模型也展现出了令人瞩目的性能,使其成为具有高推理能力的可行较小规模替代模型。

参考文献和链接

  • 论文页面: [2501.12948] DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning
  • GitHub 页面:GitHub - deepseek-ai/DeepSeek-R1

http://www.ppmy.cn/embedded/159210.html

相关文章

(undone) MIT6.S081 2023 学习笔记 (Day7: LAB6 Multithreading)

网页&#xff1a;https://pdos.csail.mit.edu/6.S081/2023/labs/thread.html 任务1&#xff1a;Uthread: switching between threads (moderate) (doing) 在这个练习中&#xff0c;你将设计一个用户级线程系统中的上下文切换机制&#xff0c;并实现它。为了帮助你开始&#xf…

蓝桥杯之c++入门(四)【循环】

目录 前言6. while循环6.1 while语法形式6.2 执行流程6.3 实践6.4 练习练习1&#xff1a;反向输出每一位练习2&#xff1a;数位之和练习3&#xff1a;求和1练习4&#xff1a;含 k 个 3 的数练习5&#xff1a;角谷猜想练习6&#xff1a;计算多项式的值 7. for循环7.1 for循环语法…

mysql重学(一)mysql语句执行流程

思考 一条查询语句如何执行&#xff1f;mysql语句中若列不存在&#xff0c;则在哪个阶段报错一条更新语句如何执行&#xff1f;redolog和binlog的区别&#xff1f;为什么要引入WAL什么是Changbuf&#xff1f;如何工作写缓冲一定好吗&#xff1f;什么情况会引发刷脏页删除语句会…

Ubuntu下的Doxygen+VScode实现C/C++接口文档自动生成

Ubuntu下的DoxygenVScode实现C/C接口文档自动生成 Chapter1 Ubuntu下的DoxygenVScode实现C/C接口文档自动生成1、 Doxygen简介1. 安装Doxygen1&#xff09;方法一&#xff1a;2&#xff09;方法二&#xff1a;2. doxygen注释自动生成插件3. doxygen注释基本语法4. doxygen的生成…

飞桨PaddleNLP套件中使用DeepSeek r1大模型

安装飞桨PaddleNLP 首先安装最新的PaddleNLP3.0版本&#xff1a; pip install paddlenlp3.0.0b3 依赖库比较多&#xff0c;可能需要较长时间安装。 安装好后&#xff0c;看看版本&#xff1a; import paddlenlp paddlenlp.__version__ 输出&#xff1a; 3.0.0b3.post2025…

群晖NAS安卓Calibre 个人图书馆

docker 下载镜像johngong/calibre-web&#xff0c;安装之 我是本地的/docker/xxx/metadata目录 映射到 /usr/local/calibre-web/app/cps/metadata_provider CALIBREDB_OTHER_OPTION 删除 CALIBRE_SERVER_USER calibre_server_user 缺省用户名口令 admin admin123 另外有个N…

AI开发学习之——PyTorch框架

PyTorch 简介 PyTorch &#xff08;Python torch&#xff09;是由 Facebook AI 研究团队开发的开源机器学习库&#xff0c;广泛应用于深度学习研究和生产。它以动态计算图和易用性著称&#xff0c;支持 GPU 加速计算&#xff0c;并提供丰富的工具和模块。 PyTorch的主要特点 …

Games202Lecture5 Real time Environment mapping实时环境光照

SDF &#xff08;Signed Distance Function&#xff09; SDF shadows pro:快 con:需要大量存储 相关理论&#xff1a;optimal transport sdf作用1&#xff1a;做ray marching (03min:20s) https://www.youtube.com/watch?vhX3mazz8txohttps://www.youtube.com/watch?vh…