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

server/2025/2/2 21:25:56/

近年来,人工智能(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/server/164434.html

相关文章

Visual Studio使用GitHub Copilot提高.NET开发工作效率

GitHub Copilot介绍 GitHub Copilot 是一款 AI 编码助手&#xff0c;可帮助你更快、更省力地编写代码&#xff0c;从而将更多精力集中在问题解决和协作上。 GitHub Copilot Free包含哪些功能&#xff1f; 每月 2000 代码补全&#xff0c;帮助开发者快速完成代码编写。 每月 …

SAP SD学习笔记27 - 请求计划(开票计划)之1 - 定期请求(定期开票)

上两章讲了贩卖契约&#xff08;框架协议&#xff09;的概要&#xff0c;以及贩卖契约中最为常用的 基本契约 - 数量契约和金额契约。 SAP SD学习笔记26 - 贩卖契约(框架协议)的概要&#xff0c;基本契约 - 数量契约_sap 框架协议-CSDN博客 SAP SD学习笔记27 - 贩卖契约(框架…

MySQL知识点总结(十二)

请说明EXPLAIN语句的作用 EXPLAIN语句能够生成SQL语句的执行计划&#xff0c;显示出优化器如何执行该SQL语句的最优路径。可以用来检查SELECT,INSERT,REPLCAE,UPDATE和DELETE语句。 为什么使用索引会比全表扫描提供更好的查询性能&#xff1f; 索引是一个方案对象&#xff0…

【题解】AtCoder Beginner Contest ABC391 D Gravity

题目大意 原题面链接 在一个 1 0 9 W 10^9\times W 109W 的平面里有 N N N 个方块。我们用 ( x , y ) (x,y) (x,y) 表示第 x x x 列从下往上数的 y y y 个位置。第 i i i 个方块的位置是 ( x i , y i ) (x_i,y_i) (xi​,yi​)。现在执行无数次操作&#xff0c;每一次…

三、js笔记

(一)JavaScript概述 1、发展历史 ScriptEase.(客户端执行的语言):1992年Nombas开发出C-minus-minus(C--)的嵌入式脚本语言(最初绑定在CEnvi软件中).后将其改名ScriptEase.(客户端执行的语言)Javascript:Netscape(网景)接收Nombas的理念,(Brendan Eich)在其Netscape Navigat…

rust如何操作oracle

首先鄙视甲骨文&#xff0c;这么多钱的公司&#xff0c;不做一个rust库&#xff0c;还要社区帮忙。有个开源的rust库&#xff0c;叫oracle&#xff0c;但是并不是甲骨文做的。 我们来看一个从oracle数据库取所有表和视图的示例: // 定义连接字符串let conn_str1 format!(&quo…

【Linux探索学习】第二十七弹——信号(一):Linux 信号基础详解

Linux学习笔记&#xff1a; https://blog.csdn.net/2301_80220607/category_12805278.html?spm1001.2014.3001.5482 前言&#xff1a; 前面我们已经将进程通信部分讲完了&#xff0c;现在我们来讲一个进程部分也非常重要的知识点——信号&#xff0c;信号也是进程间通信的一…

Dest1ny漏洞库:用友 U8 Cloud ReleaseRepMngAction SQL 注入漏洞(CNVD-2024-33023)

大家好&#xff0c;今天是Dest1ny漏洞库的专题&#xff01;&#xff01; 会时不时发送新的漏洞资讯&#xff01;&#xff01; 大家多多关注&#xff0c;多多点赞&#xff01;&#xff01;&#xff01; 0x01 产品简介 用友U8 Cloud是用友推出的新一代云ERP&#xff0c;主要聚…