当前位置: 首页 > news >正文

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

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

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

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

在这里插入图片描述

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

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

引入 DeepSeek-R1-Zero 模型

Training 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

相关文章:

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

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

高阶C语言|深入理解字符串函数和内存函数

文章目录 前言1.求字符串长度1.1 字符串长度函数:strlen模拟实现 2.长度不受限制的字符串函数2.1 字符串拷贝函数:strcpy模拟实现 2.2 字符串连接函数:strcat模拟实现 2.3 字符串比较函数:strcmp模拟实现 3.长度受限制的字符串函数…...

UE学习日志#17 C++笔记#3 基础复习3

19.2 [[maybe_unused]] 禁止编译器在未使用某些内容时发出警告 19.3 [[noreturn]] 永远不会把控制权返回给调用点 19.4 [[deprecated]] 标记为已弃用,仍然可以使用但是不鼓励使用 可以加参数表示弃用的原因[[deprecated("")]] 19.5 [[likely]]和[[un…...

团体程序设计天梯赛-练习集——L1-028 判断素数

前言 一道10分的题目,相对来说比较简单,思考的时候要仔细且活跃,有时候在写代码的时候一些代码的出现很多余,并且会影响最后的结果 L1-028 判断素数 本题的目标很简单,就是判断一个给定的正整数是否素数。 输入格式…...

从0开始使用面对对象C语言搭建一个基于OLED的图形显示框架(基础图形库实现)

目录 基础图形库的抽象 抽象图形 抽象点 设计我们的抽象 实现我们的抽象 测试 抽象线 设计我们的抽象 实现我们的抽象 绘制垂直的和水平的线 使用Bresenham算法完成任意斜率的绘制 绘制三角形和矩形 矩形 三角形 实现 绘制圆,圆弧和椭圆 继续我们的…...

创新创业计划书|建筑垃圾资源化回收

目录 第1部分 公司概况........................................................................ 1 第2部分 产品/服务...................................................................... 3 第3部分 研究与开发.................................................…...

反射、枚举以及lambda表达式

一.反射 1.概念:Java的反射(reflection)机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性,既然能拿到那么&am…...

ROS应用之IMU碰撞检测与接触事件识别

前言 碰撞检测与接触事件识别是机器人与环境交互中的重要任务,尤其是在复杂的动态环境中。IMU(惯性测量单元)作为一种高频率、低延迟的传感器,因其能够检测加速度、角速度等动态变化而成为实现碰撞检测的核心手段之一。结合先进的…...

docker安装MySQL8:docker离线安装MySQL、docker在线安装MySQL、MySQL镜像下载、MySQL配置、MySQL命令

一、镜像下载 1、在线下载 在一台能连外网的linux上执行docker镜像拉取命令 docker pull mysql:8.0.41 2、离线包下载 两种方式: 方式一: -)在一台能连外网的linux上安装docker执行第一步的命令下载镜像 -)导出 # 导出镜…...

android安卓用Rime

之前 [1] 在 iOS 配置用上自改方案 [2],现想在安卓也用上。Rime 主页推荐了两个安卓平台支持 rime 的输入法 [3]: 同文 Tongwen Rime Input Method Editor,但在我的 Realme X2 Pro 上似乎有 bug:弹出的虚拟键盘只有几个 switcher…...

每日一博 - 三高系统架构设计:高性能、高并发、高可用性解析

文章目录 引言一、高性能篇1.1 高性能的核心意义 1.2 影响系统性能的因素1.3 高性能优化方法论1.3.1 读优化:缓存与数据库的结合1.3.2 写优化:异步化处理 1.4 高性能优化实践1.4.1 本地缓存 vs 分布式缓存1.4.2 数据库优化 二、高并发篇2.1 高并发的核心…...

C++ 中的引用(Reference)

在 C 中,引用(Reference)是一种特殊的变量类型,它提供了一个已存在变量的别名。引用在很多场景下都非常有用,比如函数参数传递、返回值等。下面将详细介绍 C 引用的相关知识。 1. 引用的基本概念和语法 引用是已存在…...

负荷预测算法模型

1. 时间序列分析方法 时间序列分析方法是最早被用来进行电力负荷预测的方法之一,它基于历史数据来构建数学模型,以描述时间与负荷值之间的关系。这种方法通常只考虑时间变量,不需要大量的输入数据,因此计算速度快。然而&#xff…...

【C语言】内存管理

【C语言】内存管理 文章目录 【C语言】内存管理1.概念2.库函数3.动态分配内存malloccalloc 4.重新调整内存的大小和释放内存reallocfree 1.概念 C 语言为内存的分配和管理提供了几个函数。这些函数可以在 <stdlib.h> 头文件中找到。 在 C 语言中&#xff0c;内存是通过…...

deepseek大模型本机部署

2024年1月20日晚&#xff0c;中国DeepSeek发布了最新推理模型DeepSeek-R1&#xff0c;引发广泛关注。这款模型不仅在性能上与OpenAI的GPT-4相媲美&#xff0c;更以开源和创新训练方法&#xff0c;为AI发展带来了新的可能性。 本文讲解如何在本地部署deepseek r1模型。deepseek官…...

动态规划DP 最长上升子序列模型 拦截导弹(题目分析+C++完整代码)

概览检索 动态规划DP 最长上升子序列模型 拦截导弹 原题链接 AcWiing 1010. 拦截导弹 题目描述 某国为了防御敌国的导弹袭击&#xff0c;发展出一种导弹拦截系统。 但是这种导弹拦截系统有一个缺陷&#xff1a;虽然它的第一发炮弹能够到达任意的高度&#xff0c;但是以后每…...

缩位求和——蓝桥杯

1.题目描述 在电子计算机普及以前&#xff0c;人们经常用一个粗略的方法来验算四则运算是否正确。 比如&#xff1a;248153720248153720 把乘数和被乘数分别逐位求和&#xff0c;如果是多位数再逐位求和&#xff0c;直到是 1 位数&#xff0c;得 24814>145 156 56 而…...

Baklib赋能企业实现高效数字化内容管理提升竞争力

内容概要 在数字经济的浪潮下&#xff0c;企业面临着前所未有的机遇与挑战。随着信息技术的迅猛发展&#xff0c;各行业都在加速推进数字化转型&#xff0c;以保持竞争力。在这个过程中&#xff0c;数字化内容管理成为不可或缺的一环。高效的内容管理不仅能够优化内部流程&…...

【视频+图文讲解】HTML基础2-html骨架与基本语法

图文教程 基本骨架 举个例子&#xff0c;下图所展示的为html的源代码 -!DOCTYPE&#xff1a;表示文档类型&#xff08;后边写的html表示文档类型是html&#xff09;&#xff1b;其中“&#xff01;”表示声明 只要是加这个声明标签的&#xff0c;浏览器就会把下边的源代码当…...

消息队列篇--原理篇--常见消息队列总结(RabbitMQ,Kafka,ActiveMQ,RocketMQ,Pulsar)

1、RabbitMQ 特点&#xff1a; AMQP协议&#xff1a;RabbitMQ是基于AMQP&#xff08;高级消息队列协议&#xff09;构建的&#xff0c;支持多种消息传递模式&#xff0c;如发布/订阅、路由、RPC等。多语言支持&#xff1a;支持多种编程语言的客户端库&#xff0c;包括Java、P…...

ESP32读取DHT11温湿度数据

芯片&#xff1a;ESP32 环境&#xff1a;Arduino 一、安装DHT11传感器库 红框的库&#xff0c;别安装错了 二、代码 注意&#xff0c;DATA口要连接在D15上 #include "DHT.h" // 包含DHT库#define DHTPIN 15 // 定义DHT11数据引脚连接到ESP32的GPIO15 #define D…...

Golang dig框架与GraphQL的完美结合

将 Go 的 Dig 依赖注入框架与 GraphQL 结合使用&#xff0c;可以显著提升应用程序的可维护性、可测试性以及灵活性。 Dig 是一个强大的依赖注入容器&#xff0c;能够帮助开发者更好地管理复杂的依赖关系&#xff0c;而 GraphQL 则是一种用于 API 的查询语言&#xff0c;能够提…...

Java - Mysql数据类型对应

Mysql数据类型java数据类型备注整型INT/INTEGERint / java.lang.Integer–BIGINTlong/java.lang.Long–––浮点型FLOATfloat/java.lang.FloatDOUBLEdouble/java.lang.Double–DECIMAL/NUMERICjava.math.BigDecimal字符串型CHARjava.lang.String固定长度字符串VARCHARjava.lang…...

【单片机期末】单片机系统设计

主要内容&#xff1a;系统状态机&#xff0c;系统时基&#xff0c;系统需求分析&#xff0c;系统构建&#xff0c;系统状态流图 一、题目要求 二、绘制系统状态流图 题目&#xff1a;根据上述描述绘制系统状态流图&#xff0c;注明状态转移条件及方向。 三、利用定时器产生时…...

NFT模式:数字资产确权与链游经济系统构建

NFT模式&#xff1a;数字资产确权与链游经济系统构建 ——从技术架构到可持续生态的范式革命 一、确权技术革新&#xff1a;构建可信数字资产基石 1. 区块链底层架构的进化 跨链互操作协议&#xff1a;基于LayerZero协议实现以太坊、Solana等公链资产互通&#xff0c;通过零知…...

uniapp中使用aixos 报错

问题&#xff1a; 在uniapp中使用aixos&#xff0c;运行后报如下错误&#xff1a; AxiosError: There is no suitable adapter to dispatch the request since : - adapter xhr is not supported by the environment - adapter http is not available in the build 解决方案&…...

分布式增量爬虫实现方案

之前我们在讨论的是分布式爬虫如何实现增量爬取。增量爬虫的目标是只爬取新产生或发生变化的页面&#xff0c;避免重复抓取&#xff0c;以节省资源和时间。 在分布式环境下&#xff0c;增量爬虫的实现需要考虑多个爬虫节点之间的协调和去重。 另一种思路&#xff1a;将增量判…...

Unity | AmplifyShaderEditor插件基础(第七集:平面波动shader)

目录 一、&#x1f44b;&#x1f3fb;前言 二、&#x1f608;sinx波动的基本原理 三、&#x1f608;波动起来 1.sinx节点介绍 2.vertexPosition 3.集成Vector3 a.节点Append b.连起来 4.波动起来 a.波动的原理 b.时间节点 c.sinx的处理 四、&#x1f30a;波动优化…...

Android第十三次面试总结(四大 组件基础)

Activity生命周期和四大启动模式详解 一、Activity 生命周期 Activity 的生命周期由一系列回调方法组成&#xff0c;用于管理其创建、可见性、焦点和销毁过程。以下是核心方法及其调用时机&#xff1a; ​onCreate()​​ ​调用时机​&#xff1a;Activity 首次创建时调用。​…...

React---day11

14.4 react-redux第三方库 提供connect、thunk之类的函数 以获取一个banner数据为例子 store&#xff1a; 我们在使用异步的时候理应是要使用中间件的&#xff0c;但是configureStore 已经自动集成了 redux-thunk&#xff0c;注意action里面要返回函数 import { configureS…...