DeepSeek-R1:开源Top推理模型的实现细节、使用与复现

核心观点

● 直接用强化学习就可以让模型获得显著的推理能力,说明并不一定需要SFT才行。
● 强化学习并不一定需要复杂的奖励模型,使用简单的规则反而取得意想不到的效果。
● 通过知识蒸馏让小模型一定程度上也有推理能力,甚至在某些场景下的表现超过了Top模型,比直接在小模型上进行强化学习更好。

DeepSeek-R1-Zero:纯强化学习的推理能力

在这里插入图片描述

训练模版

DeepSeek团队设计了如下的训练模型,要求模型按照如下格式进行输出:首先进行推理过程,然后给出最终答案。通过限制输出的结构格式,避免内容偏见,并且可以观察模型在强化学习过程中的推理进展。
在这里插入图片描述

奖励模型

DeepSeek-R1-Zero的训练信号来源于奖励系统,主要包括两种奖励类型:
● 准确性奖励:评估模型回答的正确性,适用于数学问题和LeetCode问题,通过规则验证答案。
● 格式奖励:要求模型将思考过程放在特定标签之间(<think></think>)。
不使用神经奖励模型,这是因为可能导致奖励黑客问题,且重训练需要额外资源,复杂化训练流程。

顿悟时刻

论文中展示了一个 R1-Zero 在解决一道数学题时的中间版本输出,被称为模型的「顿悟时刻」。在这个例子中,模型在推理过程中突然意识到可以“重新评估”之前的步骤,并尝试用一种新的方法来解题,这种思维与人类似,说明模型初步掌握了人类思维的推理能力(红色字体部分)。

在这里插入图片描述

性能表现

在这里插入图片描述

DeepSeek-R1-Zero的自我进化过程显示出其在强化学习下的推理能力提升,能够处理复杂推理任务。此外,模型在训练过程中思考时间持续改善,能够生成数百到数千个推理标记,促进深度思考,从而实现更加强大和正确的推理能力。

DeepSeek-R1:多阶段训练推理能力

在这里插入图片描述

从Zero的训练过程中很容易得到启发:如果在训练初期先进行一部分高质量COT数据的微调,能否显著增强模型的推理能力,又或者加速收敛?

冷启动阶段

针对Zero模型不稳定的情况,尝试先通过收集数千条长CoT数据对模型进行微调。增加这一阶段有两个好处:

  1. 赠加模型的可读性,在SFT阶段可以设计易读的输出格式,包含推理过程和总结,从而过滤不友好的响应格式。
  2. 增加模型的推理能力,通过人类先验设计的模式,可以观察到DeepSeek-R1表现优于DeepSeek-R1-Zero,这是因为迭代训练更适合推理模型。

基于推理性能的强化学习优化

在对DeepSeek-V3-Base进行冷启动数据微调后,采用与DeepSeek-R1-Zero相同的大规模强化学习训练,重点提升模型在编码、数学、科学和逻辑推理等推理密集型任务中的能力。训练过程中发现CoT在多语言提示中常出现语言混合,为此还需要引入语言一致性奖励,需要计算CoT中目标语言单词的比例。尽管这个训练目标会在一定程度上降低模型的推理能力,但其实一致的语言表达会更加符合我们的使用需求。最终奖励通过将推理任务的准确性与语言一致性奖励直接相加形成,随后对微调后的模型进行训练,直至在推理任务上收敛。

第二次微调

在推理导向的强化学习收敛后,利用检查点收集监督微调(SFT)数据,增强模型在写作、角色扮演等任务的能力。使用以下方法收集到的约80万条样本对DeepSeek-V3-Base进行第两轮的微调。

  1. 推理数据:通过拒绝采样从强化学习训练的检查点生成推理轨迹,扩展数据集,包含使用生成奖励模型的数据,过滤混合语言、长段落和代码块,最终收集约60万条推理相关训练样本。
  2. 非推理数据:采用DeepSeek-V3的Pipeline,重用部分SFT数据,针对某些任务生成潜在的思维链,最终收集约20万条非推理训练样本。

第二次强化学习

这阶段论文中没有给出具体的实现步骤,仅提供了一段文字概述。在第二次微调后,同样需要再进行一轮强化学习,这一阶段主要是为了提升模型的有用性和无害性,同时改善推理能力。推理数据遵循DeepSeek-R1-Zero方法,利用基于规则的奖励指导数学、代码和逻辑推理,一般数据使用奖励模型捕捉复杂场景中的人类偏好。整合奖励信号和多样数据分布,训练出在推理上表现优异的模型,同时优先考虑有用性和无害性。有用性评估集中在最终摘要,强调响应的实用性和相关性。无害性评估涵盖整个响应,识别和减轻潜在风险、偏见或有害内容。

模型蒸馏:为小模型带来推理能力

为了证明蒸馏也能为小模型带来一定程度的推理能力,仅使用SFT,不包括强化学习阶段,通过使用800k样本对开源模型Qwen和Llama进行直接微调,提升了小型模型的推理能力。
在这里插入图片描述

DeepSeek团队还对比了经过大规模强化学习的模型和经过R1蒸馏后的模型的推理能力,如下表展示:
在这里插入图片描述

从这个结果可以得出两个结论:1)将更强大的模型蒸馏成更小的模型会产生优异的结果,而本文提到的依赖于大规模强化学习的较小模型需要巨大的计算能力,甚至可能无法达到蒸馏的性能。2)虽然蒸馏看起来既经济又有效,但想要实现智能推理可能仍然需要更强大的基础模型和更大规模的强化学习。

本地使用

在这里插入图片描述

Ollama已经提供了6个蒸馏模型的使用,最低只需要4GB显存即可调用。

ollama run deepseek-r1:1.5b

在这里插入图片描述

复现

在这里插入图片描述

针对DeepSeek团队没有开放的一些具体细节,HF团队创建了一个项目,旨在完全复现出R1的训练、评估、数据、以及权重等,足以看出开源界对R1系列模型的期待。
项目地址:open-r1

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【10.2】队列-设计循环队列

一、题目 设计你的循环队列实现。 循环队列是一种线性数据结构&#xff0c;其操作表现基于 FIFO&#xff08;先进先出&#xff09;原则并且队尾被连接在队首之后以形成一个循环。它也被称为“环形缓冲器”。 循环队列的一个好处是我们可以利用这个队列之前用过的空间。在一个普…

2023年吉林省职业院校技能大赛网络系统管理样题-网络配置(华三代码)

目录 附录1:拓扑图 附录2:地址规划表 1.S1 2.S3 3.S4 4.S5 5.S7 6.S8 7.S9 8.R1 9.R2 10.R3 11.EG1 12.EG2 13.AC1 14.AC2 附录1:拓扑图 编号 型号

机器学习-线性回归(对于f(x;w)=w^Tx+b理解)

一、&#x1d453;(&#x1d499;;&#x1d498;) &#x1d498;T&#x1d499;的推导 学习线性回归&#xff0c;我们那先要对于线性回归的表达公示&#xff0c;有所认识。 我们先假设空间是一组参数化的线性函数&#xff1a; 其中权重向量&#x1d498; ∈ R&#x1d437; …

中文输入法方案

使用了三年的自然码双拼&#xff0c;毫无疑问是推荐使用双拼输入法。 三年积累下来的习惯是&#xff1a; 1 自然码方案 2 空格出字 字母选字 直到如今&#xff0c;想要做出改变&#xff0c;是因为这样的方案带来的痛点&#xff1a; 1 使用空格出字就无法使用辅助码&#…

【东雪莲病毒|罕见病毒|Traitor Virus】

恶意程序分析&#xff1a;东雪莲病毒&#xff08;Traitor Virus&#xff09; 项目地址&#xff1a;东雪莲病毒|罕见病毒|Traitor Virus(Github) 代码效果展示 一、代码概述 这是一款使用Python编写的恶意程序。在获取管理员权限后&#xff0c;会对计算机系统执行一系列破坏性…

《Java核心技术 卷II》日期和时间API的时间线

日期和时间API Java1.0的Date类过于简单&#xff0c;大部分被弃用。 Java1.1引入Calendar类&#xff0c;但没有处理诸如闰秒之类的问题。 Java 8引入java.time.API&#xff0c;修正过去缺陷。 时间线 1967年&#xff0c;铯133原子的特性推导出了秒的精确定义。之后由原子钟网络…

IO进程寒假作业DAY6

请使用互斥锁 和 信号量分别实现5个线程之间的同步 使用互斥锁 #include <stdio.h> #include <string.h> #include <stdlib.h> #include <stdio.h> #include <unistd.h> #include <sys/types.h> #include <sys/stat.h> #include &…

mybatis(112/134)

多对一 第一种方法&#xff1a; 一的表参数设置&#xff1a; <association property"clazz" javaType"Clazz"> <id property"cid" column"cid"/> <result property"cname" column"cname"/> <…

读书笔记:《华为突围ERP封锁全纪实》

文章背景&#xff1a; 2019年5月&#xff0c;华为被美国制裁&#xff0c;其ERP系统面临断供风险。ERP系统是企业核心管理软件&#xff0c;一旦中断&#xff0c;华为的全球业务将陷入瘫痪。面对这一生死存亡的危机&#xff0c;华为启动了“突围”计划&#xff0c;历经数年艰苦奋…

【C++】设计模式详解:单例模式

文章目录 Ⅰ. 设计一个类&#xff0c;不允许被拷贝Ⅱ. 请设计一个类&#xff0c;只能在堆上创建对象Ⅲ. 请设计一个类&#xff0c;只能在栈上创建对象Ⅳ. 请设计一个类&#xff0c;不能被继承Ⅴ. 请设计一个类&#xff0c;只能创建一个对象&#xff08;单例模式&#xff09;&am…

K8s运维管理平台 - KubeSphere 3.x 和4.x 使用分析:功能较强,UI美观

目录标题 Lic使用感受优点&#xff1a;优化点&#xff1a; 实操首页项目 | 应用负载 | 配置 | 定制资源定义存储监控告警集群设置 **KubeSphere 3.x** 和 **4.x**1. **架构变化**&#xff1a;2. **多集群管理**&#xff1a;3. **增强的 DevOps 功能**&#xff1a;4. **监控与日…

SpringBoot或SpringAI对接DeekSeek大模型

今日除夕夜&#xff0c;deepseek可是出尽了风头&#xff0c;但是我看网上还没有这方面的内容对接&#xff0c;官网也并没有&#xff0c;故而本次对接是为了完成这个空缺 我看很多的博客内容是流式请求虽然返回时正常的&#xff0c;但是他并不是实时返回&#xff0c;而是全部响应…

低代码系统-产品架构案例介绍、明道云(十一)

明道云HAP-超级应用平台(Hyper Application Platform)&#xff0c;其实就是企业级应用平台&#xff0c;跟微搭类似。 通过自设计底层架构&#xff0c;兼容各种平台&#xff0c;使用低代码做到应用搭建、应用运维。 企业级应用平台最大的特点就是隐藏在冰山下的功能很深&#xf…

文献阅读 250128-Tropical forests are approaching critical temperature thresholds

Tropical forests are approaching critical temperature thresholds 来自 <Tropical forests are approaching critical temperature thresholds | Nature> 热带森林正在接近临界温度阈值 ## Abstract: The critical temperature beyond which photosynthetic machinery…

判断子序列

hello 大家好&#xff01;今天开写一个新章节&#xff0c;每一天一道算法题。让我们一起来学习算法思维吧&#xff01; function isSubsequence(s, t) {// 初始化两个指针&#xff0c;分别指向字符串 s 和 t 的起始位置let i 0; let j 0; // 当两个指针都未超出对应字符串的长…

您与此网站之间建立的连接不安全

网站建立好后&#xff0c;用360浏览器打开后地址栏有一个灰色小锁打着红色叉点击后显示“您与此网站之间建立的连接不安全”“请勿在此网站上输入任何敏感信息&#xff08;例如密码或信用卡信息&#xff09;&#xff0c;因为攻击者可能会盗取这些信息。” 出现这个提示的主要原…

解读隐私保护工具 Fluidkey:如何畅游链上世界而不暴露地址?

作者&#xff1a;Techub 独家解读 撰文&#xff1a;Tia&#xff0c;Techub News 隐私不只是个人权利的象征&#xff0c;更是我们迈向透明、信任未来的重要过渡桥梁。如果你还未意识到隐私的重要性&#xff0c;推荐阅读 KeyMapDAO 的文章《「被出卖的自由」&#xff1a;我到底该…

uniapp 地图添加,删除,编辑标记,在地图中根据屏幕范围中呈现标记

前言 小程序实现新功能&#xff0c;在地图中选取位置添加标记&#xff0c;并在地图中呈现添加的标记&#xff0c;&#xff08;呈现的是根据当前屏幕范围内的标记&#xff09;&#xff0c;并对标记进行分享&#xff0c;删除&#xff0c;编辑&#xff0c;导航&#xff0c;并从分…

DPO、KTO、DiffusionDPO

DPO&#xff08;Direct Preference Optimization&#xff09; 原文来自于 https://arxiv.org/pdf/2305.18290&#xff0c; Bradley-Terry (BT)模型&#xff0c;假设人的喜欢遵循下面的公式&#xff0c;给定x&#xff0c;得到 y 1 y_1 y1​和 y 2 y_2 y2​分别遵循以下关系&am…

Android Studio安装配置

一、注意事项 想做安卓app和开发板通信&#xff0c;踩了大坑&#xff0c;Android 开发不是下载了就能直接开发的&#xff0c;对于新手需要注意的如下&#xff1a; 1、Android Studio版本&#xff0c;根据自己的Android Studio版本对应决定了你所兼容的AGP&#xff08;Android…