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.mzph.cn/news/894019.shtml

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

相关文章

Unity游戏(Assault空对地打击)开发(1) 创建项目和选择插件

目录 前言 创建项目 插件导入 地形插件 前言 这是游戏开发第一篇&#xff0c;进行开发准备。 创作不易&#xff0c;欢迎支持。 我的编辑器布局是【Tall】&#xff0c;建议调整为该布局&#xff0c;如下。 创建项目 首先创建一个项目&#xff0c;过程略&#xff0c;名字请勿…

汽车网络信息安全-ISO/SAE 21434解析(中)

目录 第七章-分布式网络安全活动 1. 供应商能力评估 2. 报价 3. 网络安全职责界定 第八章-持续的网络安全活动 1. 网路安全监控 2. 网络安全事件评估 3. 漏洞分析 4. 漏洞管理 第九章-概念阶段 1. 对象定义 2. 网路安全目标 3. 网络安全概念 第十章 - 产品开发 第十…

K8S极简教程(4小时快速学会)

1. K8S 概览 1.1 K8S 是什么 K8S官网文档&#xff1a;https://kubernetes.io/zh/docs/home/ 1.2 K8S核心特性 服务发现与负载均衡&#xff1a;无需修改你的应用程序即可使用陌生的服务发现机制。存储编排&#xff1a;自动挂载所选存储系统&#xff0c;包括本地存储。Secret和…

C基础寒假练习(4)

输入带空格的字符串&#xff0c;求单词个数、 #include <stdio.h> // 计算字符串长度的函数 size_t my_strlen(const char *str) {size_t len 0;while (str[len] ! \0) {len;}return len; }int main() {char str[100];printf("请输入一个字符串: ");fgets(…

FaceFusion

文章目录 一、关于 FaceFusion预览 二、安装三、用法 一、关于 FaceFusion FaceFusion 是行业领先的人脸操作平台 github : https://github.com/facefusion/facefusion官方文档&#xff1a;https://docs.facefusion.io/Discord : https://discord.com/invite/facefusion-1141…

AI杂谈(一)

名词解释 LLM 大语言模型&#xff08;Large Language Model&#xff0c;LLM&#xff09;是一种基于深度学习的自然语言处理模型&#xff0c;旨在理解和生成自然语言文本。这类模型通常由数亿到数千亿个参数构成&#xff0c;能够处理复杂的语言任务&#xff0c;如文本生成、翻…

fps一些内容添加

1 增强输入要点记录 输入 &#xff1a;输入值的类型 布尔 1d&#xff0c;2d&#xff0c;3d 映射&#xff1a;就是确定按键输入键位&#xff0c;输入类型&#xff0c;和一些触发器&#xff08;按键方式&#xff09;修改器&#xff08;对输出值进行修改&#xff09; 基本的&am…

为什么应用程序是特定于操作系统的?[计算机原理]

你把WINDOWS程序复制到MAC上使用&#xff0c;会发现无法运行。你可能会说&#xff0c;MAC是arm处理器&#xff0c;而WINDWOS是X86 处理器。但是在2019年&#xff0c;那时候MAC电脑还全是Intel处理器&#xff0c;在同样的X86芯片上&#xff0c;运行MAC和WINDOWS 程序还是无法互相…

2025苹果CMS v10短剧模板源码

文件不到70kb&#xff0c;加载非常快 无配置&#xff0c;没有详情页&#xff0c;上传就可以直接使用 使用教程&#xff1a;上传到网站template目录并解压、进入网站后台选择模板 注意&#xff1a;默认调用ID为1的数据和扩展分类&#xff0c;建议新建站使用 源码下载&#xf…

​ONES 春节假期服务通知

ONES 春节假期服务通知 灵蛇贺岁&#xff0c;瑞气盈门。感谢大家一直以来对 ONES 的认可与支持&#xff0c;祝您春节快乐&#xff01; 「2025年1月28日 &#xff5e; 2025年2月4日」春节假期期间&#xff0c;我们的值班人员将为您提供如下服务 &#xff1a; 紧急问题 若有紧急问…

python:洛伦兹变换

洛伦兹变换&#xff08;Lorentz transformations&#xff09;是相对论中的一个重要概念&#xff0c;特别是在讨论时空的变换时非常重要。在四维时空的背景下&#xff0c;洛伦兹变换描述了在不同惯性参考系之间如何变换时间和空间坐标。在狭义相对论中&#xff0c;洛伦兹变换通常…

LangChain:使用表达式语言优化提示词链

在 LangChain 里&#xff0c;LCEL 即 LangChain Expression Language&#xff08;LangChain 表达式语言&#xff09;&#xff0c;本文为你详细介绍它的定义、作用、优势并举例说明&#xff0c;从简单示例到复杂组合示例&#xff0c;让你快速掌握LCEL表达式语言使用技巧。 定义 …

unity学习20:time相关基础 Time.time 和 Time.deltaTime

目录 1 unity里的几种基本时间 1.1 time 相关测试脚本 1.2 游戏开始到现在所用的时间 Time.time 1.3 时间缩放值 Time.timeScale 1.4 固定时间间隔 Time.fixedDeltaTime 1.5 两次响应时间之间的间隔&#xff1a;Time.deltaTime 1.6 对应测试代码 1.7 需要关注的2个基本…

世上本没有路,只有“场”et“Bravo”

楔子&#xff1a;电气本科“工程电磁场”电气研究生课程“高等电磁场分析”和“电磁兼容”自学”天线“、“通信原理”、“射频电路”、“微波理论”等课程 文章目录 前言零、学习历程一、Maxwells equations1.James Clerk Maxwell2.自由空间中传播的电磁波3.边界条件和有限时域…

electron typescript运行并设置eslint检测

目录 一、初始化package.json 二、安装依赖 三、项目结构 四、配置启动项 五、补充&#xff1a;ts转js别名问题 一、初始化package.json 我的&#xff1a;这里的"main"没太大影响&#xff0c;看后面的步骤。 {"name": "xloda-cloud-ui-pc"…

学习数据结构(3)顺序表

1.动态顺序表的实现 &#xff08;1&#xff09;初始化 &#xff08;2&#xff09;扩容 &#xff08;3&#xff09;头部插入 &#xff08;4&#xff09;尾部插入 &#xff08;5&#xff09;头部删除 &#xff08;这里注意要保证有效数据个数不为0&#xff09; &#xff08;6&a…

PydanticAI应用实战

PydanticAI 是一个 Python Agent 框架,旨在简化使用生成式 AI 构建生产级应用程序的过程。 它由 Pydantic 团队构建,该团队也开发了 Pydantic —— 一个在许多 Python LLM 生态系统中广泛使用的验证库。PydanticAI 的目标是为生成式 AI 应用开发带来类似 FastAPI 的体验,它基…

deepseek R1的确不错,特别是深度思考模式

deepseek R1的确不错&#xff0c;特别是深度思考模式&#xff0c;每次都能自我反省改进。比如我让 它写文案&#xff1a; 【赛博朋克版程序员新春密码——2025我们来破局】 亲爱的代码骑士们&#xff1a; 当CtrlS的肌肉记忆遇上抢票插件&#xff0c;当Spring Boot的…

macbook安装go语言

通过brew来安装go语言 使用brew命令时&#xff0c;一般都会通过brew search看看有哪些版本 brew search go执行后&#xff0c;返回了一堆内容&#xff0c;最下方展示 If you meant "go" specifically: It was migrated from homebrew/cask to homebrew/core. Cas…

若依基本使用及改造记录

若依框架想必大家都了解得不少&#xff0c;不可否认这是一款及其简便易用的框架。 在某种情况下&#xff08;比如私活&#xff09;使用起来可谓是快得一匹。 在这里小兵结合自身实际使用情况&#xff0c;记录一下我对若依框架的使用和改造情况。 一、源码下载 前往码云进行…