【论文笔记】DeepSeek-R1 技术报告

news2025/5/16 9:36:08

在这里插入图片描述

最强开源LLM,性能和效果都很棒;在数学、代码这种有标准正确答案的场景,表现尤为突出;一些其他场景的效果,可能不如DeepSeek-V3和Qwen。

在这里插入图片描述

Deepseek-R1没有使用传统的有监督微调sft方法来优化模型,而使用了大规模强化学习RL来实现推理能力的提升。更进一步,通过引入冷启动解决仅RL遇到的缺陷。

以往的研究工作大多依赖于大量的监督数据来提升模型性能。在本研究中展示了即使不依赖监督微调(SFT)作为预训练步骤,通过大规模强化学习(RL)也能显著提升推理能力。此外,我们还展示了通过引入少量冷启动数据可以进一步提升性能。在接下来的章节中,将按顺序介绍:
(1)DeepSeek-R1-Zero,它直接在基础模型上应用 RL,不依赖任何监督微调数据;介绍了如何直接在基础模型上进行大规模强化学习,无需监督微调数据。
(2)DeepSeek-R1,它从经过长推理链(Chain-of-Thought, CoT)数据微调的检查点开始应用 RL;介绍了多阶段训练流程如何打造出性能卓越的推理模型。
(3)将 DeepSeek-R1 的推理能力蒸馏到小型dense模型中,介绍了如何将大模型的推理能力有效转移到小模型中。
在这里插入图片描述

DeepSeek-R1-Zero

在这里插入图片描述

RL算子

为了节省 RL 的训练成本,我们采用了 Group Relative Policy Optimization(GRPO)。GRPO 放弃了通常与策略模型大小相同的批判模型(critic model),而是通过组分数来估计Baseline。
在这里插入图片描述
在这里插入图片描述

奖励模型

在这一步,只使用了基于规则的奖励模型。
奖励是训练信号的来源,决定了 RL 的优化方向。为了训练 DeepSeek-R1-Zero,我们采用基于规则的奖励系统,主要包括以下两种奖励:
● 准确性奖励:准确性奖励模型用于评估回答是否正确。例如,在数学问题中,模型需要以指定格式(例如在方框内)提供最终答案,以便可靠地通过基于规则的验证来确认正确性。同样,在 LeetCode 问题中,可以使用编译器根据预定义的测试用例生成反馈。
● 格式奖励:除了准确性奖励模型外,我们还采用格式奖励模型,强制模型将推理过程放在 和 标签之间。
没有在开发 DeepSeek-R1-Zero 时应用结果或过程神经奖励模型,因为我们发现神经奖励模型可能在大规模强化学习过程中出现奖励劫持(reward hacking)的问题,而重新训练奖励模型需要额外的训练资源,并且会使整个训练流程复杂化。
为了训练 DeepSeek-R1-Zero,设计了一个简单的模板,指导基础模型按照我们的指定指令进行操作。如上表所示,该模板要求 DeepSeek-R1-Zero 首先生成推理过程,然后提供最终答案。我们故意将约束限制在这一结构化格式上,避免任何内容相关的偏见——例如强制要求反思性推理或推广特定的解决问题策略——以确保我们能够准确观察模型在强化学习(RL)过程中的自然发展。

相关发现&总结

  • “顿悟时刻”
    在这个阶段,DeepSeek-R1-Zero 学会为问题分配更多的思考时间,通过重新评估其初始方法来实现。这种行为不仅是模型推理能力增长的证明,也是研究人员观察其行为的一个“顿悟时刻”。
    它突显了强化学习的力量和美丽:我们不是明确地教模型如何解决问题,而是仅仅提供正确的激励,模型就会自主发展出高级的问题解决策略。“顿悟时刻” 有力地提醒我们,RL 解锁人工系统中智力新水平的潜力,为未来更自主、更适应性强的模型铺平了道路。
  • DeepSeek-R1-Zero 的缺点
    尽管 DeepSeek-R1-Zero 展示了强大的推理能力,并且能够自主发展出意外且强大的推理行为,但它面临着一些问题。例如,DeepSeek-R1-Zero 在可读性方面表现不佳,存在语言混用的问题。

DeepSeek-R1

受到 DeepSeek-R1-Zero 令人鼓舞的结果的启发,自然会提出两个问题:
1)通过引入少量高质量数据作为冷启动,是否可以进一步提升推理性能或加速收敛?
2)如何训练一个用户友好的模型,使其不仅能够产生清晰连贯的推理链(CoT),还具备强大的通用能力?
为了解决这些问题,我们重新设计了 DeepSeek-R1 的训练流程。该流程包括以下四个阶段:
● 冷启动:增加上千条CoT数据,引入人类先验知识,在DeepSeek-V3的基础上进行迭代优化,增加整体模型的可读性。在DeepSeek-V3-Base的基础上,让模型具备更好的可读性、回答模版以及潜力。
● 面向推理的强化学习,引入语言一致性奖励:计算方法是 CoT 中目标语言单词的比例。训练到在归因任务上收敛。该步骤类似DeepSeek-R1-Zero,但是额外增加了语言一致性奖励函数。
● 拒绝采样与监督微调:对于每个提示,采样多个回答,并仅保留正确的回答,提高数据质量。将标准答案和模型输出一起输入给DeepSeek-V3,令其判断是否采样该样本。总共收集了大约 600k 条与推理相关的训练样本。
● 面向所有场景的强化学习:旨在提升模型的有用性(泛化性)和无害性,同时优化其推理能力。具体来说,使用组合的奖励信号和多样化的提示分布来训练模型。

在这里插入图片描述

知识蒸馏

为了使更高效的小模型具备像 DeepSeek-R1 这样的推理能力,我们直接使用 DeepSeek-R1 生成的 800k 样本对开源模型(如 Qwen 和 Llama)进行微调,详细过程如上节所述。我们的研究结果表明,这种简单的蒸馏方法显著提升了小型模型的推理能力。
我们使用的基底模型包括 Qwen2.5-Math-1.5B、Qwen2.5-Math-7B、Qwen2.5-14B、Qwen2.5-32B、Llama-3.1-8B 和 Llama-3.3-70B-Instruct。我们选择 Llama-3.3 是因为其推理能力略优于 Llama-3.1。
需要注意的是:对于蒸馏模型,我们仅应用了 SFT,并没有 RL 阶段,尽管加入 RL 可能会显著提升模型性能。我们的主要目标是展示蒸馏技术的有效性,将 RL 阶段的探索留给更广泛的学术界。

结合后文的实验结果,知识蒸馏主要有两个结论:
● 将更强大的模型的能力蒸馏到小型模型中可以取得出色的结果,而小型模型仅依靠本文提到的大规模 RL 训练需要巨大的计算资源,且可能无法达到蒸馏的效果。
● 虽然蒸馏策略既经济又有效,但要突破智能的边界,可能仍然需要更强大的基础模型和更大规模的强化学习。

参考资料:

● Github:https://github.com/deepseek-ai/DeepSeek-R1
● CSDN:https://blog.csdn.net/qq_38961840/article/details/145384852
● 论文:
http://arxiv.org/abs/2401.02954
http://arxiv.org/abs/2501.12948

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2328372.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于javaweb的SSM羽毛球会员俱乐部系统场馆课程运动设计与实现(源码+文档+部署讲解)

技术范围:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:免费功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文编写和辅导、论文…

[dp4_路径问题] 下降路径最小和 | 最小路径和 | 地下城游戏

目录 1.下降路径最小和 题解 2.最小路径和 题解 3.地下城游戏 题解 做算法题的时候,谨记图画得越详细越好,思路想的越清晰越好,然后再用代码实现一下就好啦 1.下降路径最小和 链接:931. 下降路径最小和 给你一个 n x n 的…

EasyExcel 数据字典转换器实战:注解驱动设计

一、场景痛点与解决方案 1. 问题背景 在 Excel 导入导出场景中,开发者常面临以下问题: 数据可读性差:数据库存储的字典值(如 1、true)直接导出时难以理解双向转换复杂:导入时需将用户输入的标签反向解析…

解决STM32CubeMX中文注释乱码

本人采用【修改系统环境变量】的方法 1. 使用快捷键 win X,打开【系统R】,点击【高级系统设置】 2. 点击【环境变量】 3. 点击【新建】 4.按图中输入【JAVA_TOOL_OPTIONS】和【-Dfile.encodingUTF-8】,新建环境变量后重启CubeMX即可。 解释…

AI产品的上层建筑:提示词工程、RAG与Agent

上节课我们拆解了 AI 产品的基础设施建设,这节课我们聊聊上层建筑。这部分是产品经理日常工作的重头戏,包含提示词、RAG 和 Agent 构建。 用 AI 客服产品举例,这三者的作用是这样的: 提示词能让客服很有礼貌。比如它会说&#x…

基于自定义注解+反射+AOP+Redis的通用开关设计:在投行交易与风控系统的落地实践

一句话总结🤣 一个注解让业务逻辑自动切换,Redis当起了隐形操盘手 业务痛点和需求场景 交易系统需支持毫秒级动态切换报价策略,如切换到备用流动性通道风控模型需支持灰度发布(10%流量测试新权重算法)和紧急熔断&am…

RK3588使用笔记:ubuntu/麒麟系统功能测试程序

一、前言 本编文章记录在使用嵌入式系统中的一些功能测试demo程序,大部分都是AI写的,哈哈哈,确实很有帮助,但是得根据自身设备实际情况和知道如何问AI,才能得出你想要的结果,本文就记录一些ubuntu/麒麟系统…

深度学习deeplearn3

# Jupyter Notebook魔法命令,用于在Notebook中内联显示图表 %matplotlib inline# 导入NumPy库,用于高效的数值计算 import numpy as np# 从matplotlib_inline库导入backend_inline模块,用于设置图表显示格式 from matplotlib_inline import b…

Mac强制解锁APP或文件夹

当Mac安装过火绒企业版、云安全访问服务之类的APP需要卸载的时候,会发现需要管理员密码,正常的卸载流程走不下去,直接删除APP,会提示“不能完成此操作,xxx已锁定”的信息,此处就记录一下如何关闭锁定状态&a…

SQL语句(二)—— DML

目录 一、添加数据 1、给指定字段添加数据 2、给全部字段添加数据 3、批量添加数据 二、修改数据 1、修改数据的具体语法 2、案例分析 3、注意事项 三、删除数据 1、删除数据的具体语法 2、案例 3、注意事项 DML全称是Data Manipulation Language,即数据…

Linux系统程序设计:从入门到高级Day02

这一篇 我带大家复习一下,C语言中的文件 那一部分 大家注意 这里的图并非原创 是当时我老师的图片 本片作用主要是 后续会有文件相关操作,这篇帮大家复习C语言文件中的内容 有助于大家后面的理解。 文章中代码大多是图片格式,是因为这是我…

快速掌握MCP——Spring AI MCP包教包会

最近几个月AI的发展非常快,各种大模型、智能体、AI名词和技术和框架层出不穷,作为一个业余小红书博主的我最近总刷到MCP这个关键字,看着有点高级我也来学习一下。 1.SpringAI与functionCall简单回顾 前几个月我曾写过两篇关于SpringAI的基础…

KUKA机器人查看运行日志的方法

对于KUKA机器人的运行日志都是可以查看和导出的,方便查找问题。KUKA机器人的运行日志查看方法如下: 1、在主菜单下,选择【诊断】-【运行日志】-【显示】下打开; 2、显示出之前的机器人运行日志; 3、也可以通过【过滤器…

MySQL 基础使用指南-MySQL登录与远程登录

MySQL 基础使用指南 1. 登录 MySQL 数据库的命令解析 命令格式: mysql -u用户名 -p密码参数说明: -u(user 的缩写):指定登录用户。例如 -uroot 表示以 root 用户登录。-p(password 的缩写)&a…

web-ui windows安装与配置

web-ui windows安装与配置 安装然后安装依赖 运行配置 安装 git clone https://github.com/browser-use/web-ui.git先把clone下来 需要有python环境 最好是 Python 3.11 这里就不赘述了 然后安装依赖 pip install -r requirements.txt运行 python webui.py --ip 127.0.0.1 …

游戏引擎学习第201天

仓库:https://gitee.com/mrxiao_com/2d_game_5 回顾之前的内容,并遇到了一次一阶异常(First-Chance Exception)。 欢迎来到新一期的开发过程,我们目前正在编写调试接口代码。 当前,我们已经在布局系统上进行了一些工…

Doris:打破 SQL 方言壁垒,构建统一数据查询生态

在大数据领域,不同的数据库系统往往使用不同的 SQL 方言。这就好比不同地区的人说着不同的语言,给数据分析师和开发人员带来极大的困扰。当企业需要整合多个数据源进行分析时,可能要花费大量时间和精力,在不同的 SQL 语法之间切换…

github合并多个commit message以及rebase解决文件冲突

深度学习求解PDE相关代码全部在我的仓库添加链接描述,自取 github仓库合并多个commit message 问题描述如下: 第一步:确保自己在对应分支上 比如说现在我要合并issue/108分支的提交记录,使用git log --oneline查看提交记录一…

【零基础入门unity游戏开发——2D篇】SortingGroup(排序分组)组件

考虑到每个人基础可能不一样,且并不是所有人都有同时做2D、3D开发的需求,所以我把 【零基础入门unity游戏开发】 分为成了C#篇、unity通用篇、unity3D篇、unity2D篇。 【C#篇】:主要讲解C#的基础语法,包括变量、数据类型、运算符、…

系统与网络安全------Windows系统安全(5)

资料整理于网络资料、书本资料、AI,仅供个人学习参考。 磁盘分区管理 磁盘的分区管理 WinR运行,执行“diskmgmt.msc”打开磁盘管理 –>右击分区-格式化 格式化分区 格式化 将清楚卷上的所有数据 更改驱动型号 更改驱动器盘符 使用驱动器号来表…