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

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

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

本文所探讨的研究省略或部分省略了监督微调阶段。具体来说,为了训练论文中提出的首个模型 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 模型表现非凡,它引入的创新性推理时缩放技术显著提升了推理能力…...
使用Pygame制作“贪吃蛇”游戏
贪吃蛇 是一款经典的休闲小游戏:玩家通过操控一条会不断变长的“蛇”在屏幕中移动,去吃随机出现的食物,同时要避免撞到墙壁或自己身体的其他部分。由于其逻辑相对简单,但可玩性和扩展性都不错,非常适合作为新手练习游戏…...
云计算技术深度解析与实战案例
云计算技术深度解析与实战案例 引言 随着信息技术的飞速发展,云计算作为一种革命性的技术模式,已经渗透到各行各业,成为推动数字化转型的关键力量。本文旨在深入探讨云计算的技术特点、应用场景,并通过一个具体的代码使用案例&a…...
deb安装失败后,无法再安装别的包的解决方案
把package_name换成出安装问题的包 移除该包的安装标记 sudo dpkg --remove --force-remove-reinstreq package_name清理残留文件和配置 sudo apt-get purge package_name...
海外问卷调查如何影响企业的经营?在品牌建设中有何指导意义?
市场调查的定义:通过科学的方法,有目的地、系统地搜集整理一些市场信息,其目的在于了解当下市场现状和发展前景,为企业生产和品牌打造提供一些科学的指导意见,这是任何大企业、中小企业、初创企业都必须重视的一个重要…...
脚本运行禁止:npm 无法加载文件,因为在此系统上禁止运行脚本
问题与处理策略 1、问题描述 npm install -D tailwindcss执行上述指令,报如下错误 npm : 无法加载文件 D:\nodejs\npm.ps1,因为在此系统上禁止运行脚本。 有关详细信息,请参阅 https:/go.microsoft.com/fwlink/?LinkID135170 中的 about_…...
unity学习23:场景scene相关,场景信息,场景跳转
目录 1 默认场景和Assets里的场景 1.1 scene的作用 1.2 scene作为project的入口 1.3 默认场景 2 场景scene相关 2.1 创建scene 2.2 切换场景 2.3 build中的场景,在构建中包含的场景 (否则会认为是失效的Scene) 2.4 Scenes in Bui…...
CPU 100% 出现系统中断 怎么解决
CPU 100% 出现系统中断 怎么解决 电脑开机时会掉帧,切换到桌面时就会卡顿,然后打开任务管理器就会看到系统中断的cpu占用率达到100%,过一段时间再打开还是会有显示100%的占用率,这个问题怎么解决? 文章目录 CPU 100% …...
数据分析系列--⑥RapidMiner构建决策树(泰坦尼克号案例含数据)
一、资源下载 二、数据处理 1.导入数据 2.数据预处理 三、构建模型 1.构建决策树 2.划分训练集和测试集 3.应用模型 4.结果分析 一、资源下载 点击下载数据集 二、数据处理 1.导入数据 2.数据预处理 三、构建模型 1.构建决策树 虽然决策树已经构建,但对于大多数初学者或…...
【MyDB】4-VersionManager 之 4-VM的实现
【MyDB】4-VersionManager 之 4-VM的实现 VM 的实现VM(VersionManager)的基本定义与实现优化具体功能实现begin()开启事务commit()提交事务abort 中止事务read 读取uid对应的数据记录所在的entryinsert方法,插入数据delete方法 VM 的实现 本章代码位于:t…...
2024-2025自动驾驶技术演进与产业破局的深度实践——一名自动驾驶算法工程师的年度技术总结与行业洞察
一、引言:站在自动驾驶的"技术奇点" 2024年是自动驾驶行业从"技术验证"迈向"商业化落地"的关键转折点。从特斯拉FSD V12的端到端技术突破,到中国L3法规的破冰,从大模型重构感知架构,到城市NOA的&qu…...
计算机网络 笔记 传输层
概述: 主要功能: TCP: 特点***: 数据格式: 连接管理***: 建立连接(三次握手) 释放连接(四次挥手) 应用场景 UDP: 特点: 数…...
(leetcode 213 打家劫舍ii)
代码随想录: 将一个线性数组换成两个线性数组(去掉头,去掉尾) 分别求两个线性数组的最大值 最后求这两个数组的最大值 代码随想录视频 #include<iostream> #include<vector> #include<algorithm> //nums:2,…...
《TCP 网络编程实战:开发流程、缓冲区原理、三次握手与四次挥手》
一、 TCP 网络应用程序开发流程 学习目标 能够知道TCP客户端程序的开发流程1. TCP 网络应用程序开发流程的介绍 TCP 网络应用程序开发分为: TCP 客户端程序开发TCP 服务端程序开发说明: 客户端程序是指运行在用户设备上的程序 服务端程序是指运行在服务器设备上的程序,专门…...
62.异步编程+Prism
为什么不需要在构造函数中初始化了? private ICommand _fetchUserInfoCommand; public ICommand FetchUserInfoCommand > _fetchUserInfoCommand ?? new DelegateCommand(ExecuteFetchUserInfoAsync); public MainWindowViewModel() {// 无需…...
基于亿坊PHP框架构建物联网解决方案的优势分析!
在物联网 (IoT) 领域,选到合适的框架对于整个项目的开展也尤为重要。通常情况下,基于PHP的一些主流框架被用户常选择,今天就带大家了解下基于亿坊PHP框架构建物联网解决方案的优势有哪些? 1、开发效率高 在物联网项目中…...
把本地搭建的hexo博客部署到自己的服务器上
配置远程服务器的git 安装git 安装依赖工具包 yum install -y curl-devel expat-devel gettext-devel openssl-devel zlib-devel安装编译工具 yum install -y gcc perl-ExtUtils-MakeMaker package下载git,也可以去官网下载了传到服务器上 wget https://www.ke…...
《DeepSeek 实用集成:大模型能力接入各类软件》
DeepSeek 实用集成 awesome-deepseek-integration/README_cn.md at main deepseek-ai/awesome-deepseek-integration 将 DeepSeek 大模型能力轻松接入各类软件。访问 DeepSeek 开放平台来获取您的 API key。 English/简体中文 应用程序 Chatbox一个支持多种流行LLM模型的桌…...
接口使用实例(1)
大家好,今天我们来看看接口的一些实例,关于如何定义和实现接口,相信通过这些例子,我们能有一些清晰的认知。 先定义一个学生类: 再给定一个学生数组,对这个对象数组中的元素进行排序(按分数排&…...
Git 版本控制:基础介绍与常用操作
目录 Git 的基本概念 Git 安装与配置 Git 常用命令与操作 1. 初始化本地仓库 2. 版本控制工作流程 3. 分支管理 4. 解决冲突 5. 回退和撤销 6. 查看提交日志 前言 在软件开发过程中,开发者常常需要在现有程序的基础上进行修改和扩展。但如果不加以管理&am…...
leetcode——合并K个有序链表(java)
给你一个链表数组,每个链表都已经按升序排列。 请你将所有链表合并到一个升序链表中,返回合并后的链表。 示例 1: 输入:lists [[1,4,5],[1,3,4],[2,6]] 输出:[1,1,2,3,4,4,5,6] 解释:链表数组如下&#…...
跨境数据传输问题常见解决方式
在全球化经济的浪潮下,跨境数据传输已然成为企业日常运营的关键环节。随着数字贸易的蓬勃发展和跨国业务的持续扩张,企业在跨境数据处理方面遭遇了诸多棘手难题。那么,面对这些常见问题,企业该如何应对?镭速跨境数据传…...
python-leetcode-删除链表的倒数第 N 个结点
19. 删除链表的倒数第 N 个结点 - 力扣(LeetCode) # Definition for singly-linked list. # class ListNode: # def __init__(self, val0, nextNone): # self.val val # self.next next class Solution:def removeNthFromEnd(self…...
EasyExcel写入和读取多个sheet
最近在工作中,作者频频接触到Excel处理,因此也对EasyExcel进行了一定的研究和学习,也曾困扰过如何处理多个sheet,因此此处分享给大家,希望能有所帮助 目录 1.依赖 2. Excel类 3.处理Excel读取和写入多个sheet 4. 执…...
lanqiaoOJ 2097:青蛙过河 ← 二分+前缀和+贪心
【题目来源】 https://www.lanqiao.cn/problems/2097/learning/ https://www.luogu.com.cn/problem/P8775 【题目描述】 小青蛙住在一条河边,它想到河对岸的学校去学习。小青蛙打算经过河里的石头跳到对岸。 备注:此图由百度 AI 创作生成 河里的石头排…...
woocommerce独立站与wordpress独立站的最大区别是什么
WooCommerce独立站与WordPress独立站的最大区别在于它们的功能定位和使用场景。 WordPress是一个开源的内容管理系统(CMS),最初是作为博客平台发展起来的,但现在已经演变为一个功能丰富的网站构建工具。它主要用于创建动态网站,提供广泛的定…...
MybatisX插件快速创建项目
一、安装插件 二、创建一个数据表测试 三、IDEA连接Mysql数据库 四、选择MybatiX构造器 五、配置参数 六、项目结构...
【Leetcode 每日一题 - 补卡】219. 存在重复元素 II
问题背景 给你一个整数数组 n u m s nums nums 和一个整数 k k k,判断数组中是否存在两个 不同的索引 i i i 和 j j j,满足 n u m s [ i ] n u m s [ j ] nums[i] nums[j] nums[i]nums[j] 且 ∣ i − j ∣ < k |i - j| < k ∣i−j∣<…...
llama3学习
首先是预训练部分,数据注意版权和风险问题。数据去重和数据清理,PII人的身份信息(人名、地址等)。如果数据有大量PII数据则这个数据丢掉。 网页的数据,提取,代码和数学的提取的特别的方法,OCR…...
H3CNE-31-BFD
Bidirectional Forwarding Dection,双向转发检查 作用:毫秒级故障检查,通常结合三层协议(静态路由、vrrp、ospf、BGP等),实现链路故障快速检查。 BFD配置示例 没有中间的SW,接口downÿ…...
