论文解读之DeepSeek R1

今天带来DeepSeek R1的解读

一、介绍

deepseek主打复杂推理任务,如数学、代码任务。

R1以预训练过的V1-base初始化,主要发挥了RL在长思维链上的优势,R1-Zero直接RL而在前置步骤中不进行SFT,即缺少了有监督的指令微调阶段,探索了思维链解决复杂问题的能力,使得R1-Zero表现出自我验证、反思、产生长思维链的能力;同时用较大的模型的复杂推理能力来蒸馏,以提升llama和qwen的推理能力。

R1在数学、代码等benchmark上表现出色,一些数据集上超过O1

二、方法

2.1 R1-Zero

探索预训练后不经过SFT直接进行RL在推理任务上的能力

2.1.1 策略优化算法

使用GRPO(Group Relative Policy Optimization)的强化学习策略优化算法,以减少RL阶段的训练消耗,具体来说是在PPO的优化目标的基础上,在每个数据点上采样多次,使用多个样本的奖励输出归一化后作为优势函数,代替了价值模型在优化算法中的需求,少了一个需要更新参数的模型。

2.1.2 奖励模型

使用基于规则的奖励,以及格式奖励,要求其将思考过程放在两个思考token之间;无基于模型的奖励,防止reward hacking(类似于GAN中的模式坍塌,即防止奖励模型在强化学习过程中无法泛化到所有任务)在大规模强化学习过程中出现。

2.1.3 现象

随着RL的过程,模型表现出更复杂的行为:

1.响应长度加长

2.出现aha moment,即训练到一定程度开始出现回顾之前的输出步骤的现象。

看起来是模型在回顾之前的输出,并且去寻找不同的解决问题的路径,给真正的智能带来一定曙光

2.1.4 缺点

R1-zero

未经过SFT,存在可读性不强,语言混合的问题

2.2 R1

探索两个问题:(1)以一部分高质量数据冷启动加强推理表现并且加速收敛(2)训练更可用的长cot和通用表现的模型

2.3.1 冷启动

为防止R1-Zero的不稳定的从V3 base模型的冷启动阶段强化学习,构建、收集了小部分长CoT的冷启动数据去微调base模型作为强化学习的起始,这里的微调数据从R1中以few shot的形式生成

好处是:

1.规定了输出格式,可读性更好;

2.效果更好,SFT数据经过人工后处理

2.3.2 推理导向强化学习

在强化学习过程中加入语言一致性的奖励,将其作为基于规则的奖励作为奖励的第一部分;

同时,将可基于规则判断产生的推理任务的数据作为奖励的第二部分

2.3.3 拒绝采样和有监督微调

推理数据:

使用2.3.2阶段训出来的模型使用拒绝采样收集SFT数据;同时通过采用生成奖励模型,将事实和模型输出丢给v3做判断;过滤了混合语言、长段落、代码块

收集共600K推理相关的训练样本

非推理数据:

采用V3的SFT数据,对特定非推理任务,用V3产生可能的思维链数据,过于简单的问题不在响应中提供CoT数据

200K推理无关数据

将V3-base 在以上SFT数据上训练2epoch

2.3.4 全场景强化学习

对推理数据,和R1一样根据规则的强化学习;通用数据,按V3的流程

2.4 蒸馏

主要在qwen和llama上做,只做了SFT,验证蒸馏的作用

三、其他探索

3.1 蒸馏和强化的对比

在Qwen base的基础上对代码、数学、STEM数据进行强化学习训练,和用R1蒸馏做了对比,发现蒸馏效果更好,

那么为什么不用R1-zero做蒸馏,这样不是更公平些,比较zero没做sft而R1流程更全?

感觉是trick

3.2 失败的尝试

过程奖励模型:由于在推理中定义细粒度步骤很困难;界定中间步骤是否正确同样困难、存在奖励hacking问题

Monte Carlo Tree Search:涉及将答案拆解成小步骤,让模型系统地探索解决空间。该方法当训练规模变大时、词表变大时搜索树变得很大;同时存在价值模型不好训练的问题

四、结论和展望

R1和R1 zero探索了纯RL对推理任务的极大提升,同时用R1通过(冷启动+RL)训练出一个产推理类型数据的模型,以合成长cot的SFT以及强化数据,再进行SFT+强化过程,取得有力效果;同时探索了蒸馏的意义,提升小模型的能力。

四个未来做的:

1.通用能力

2.多语言

3.提示词工程

4.软件服务支持

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

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

相关文章

【Java学习】类和对象

目录 一、选择取块解 二、类变量 三、似复刻变量 四、类变量的指向对象 五、变量的解引用访问 1.new 类变量(参) 2.this(参) 3.类变量/似复刻变量. 六、代码块 七、复制变量的赋值顺序 八、访问限定符 1.private 2.default 九、导类 一、选择取块解 解引用都有可以…

使用css实现镂空效果

前言: 最近在公司完成小程序的新手引导中遇到了要将蒙层挖空,漏出后面内容的功能,找了各种资料之后,发现了一种就使用几行css代码就实现这个效果的方式,在这里分享给各位小伙伴们。 功能描述:实现下图的镂…

15.1 Process(进程)类

版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。 通常开发时想要获得进程是比较困难的事,必须要调用CreateToolhelpSnapshot、ProcessFirst、ProcessNext等API或者诸如 Zw…

【全栈开发】----Mysql基本配置与使用

本篇是在已下载Mysql的情况下进行的,若还未下载或未创建Mysql服务,请转到这篇: 2024 年 MySQL 8.0.40 安装配置、Workbench汉化教程最简易(保姆级)_mysql8.0.40下载安装教程-CSDN博客 本文对于mysql的操作均使用控制台sql原生代码…

数据恢复-01-机械硬盘的物理与逻辑结构

磁盘存储原理 磁盘存储数据的原理: 磁盘存储数据的原理是利用磁性材料在磁场作用下的磁化性质,通过在磁盘表面上划分成许多小区域,根据不同的磁化方向来表示0和1的二进制数据,通过读写磁头在磁盘上的移动,可以实现数据…

神经网络新手入门(3)光明顶复出(2006-2012)

让我们继续这场科技江湖的传奇,见证神经网络如何从寒冬中涅槃重生: 第五章:光明顶复出(2006-2012) 2006年,江湖人称"深度学习教主"的辛顿(Geoffrey Hinton)闭关修炼二十…

【C++】基础入门(详解)

🌟 Hello,我是egoist2023! 🌍 种一棵树最好是十年前,其次是现在! 目录 输入&输出 缺省参数(默认参数) 函数重载 引用 概念及定义 特性及使用 const引用 与指针的关系 内联inline和nullptr in…

【2025最新版】软件测试面试题总结(150道题含答案解析)

接口测试面试题 1:你平常做接口测试的过程中发现过哪些 bug? 2:平常你是怎么测试接口的? 3:平常用什么工具测接口? 4: webService 接口是如何测试的? 5:没有接口文档,如何做接口测试? 6&…

使用EVE-NE-锐捷实现NAT+ACL服务限制

一、项目拓扑 二、项目实现 1.NET配置 点击左侧的NetWorks,设置与图相同的配置,实现实验环境桥接到物理网络 2.GW配置 进入特权模式 enable进入全局模式 configure terminal 更改名称为GW hostname GW进入g0/0接口 interface g0/0将g0/0接口IP地址配置为192.168.…

nginx 实战配置

一、配置一个默认80端口的,静态页面,路径是path1。 http://192.168.0.111/path1 , /path1路径指向linux的/data/index1.html vi /data/nginx-1.24.0/conf/nginx.conf 文件添加以下配置 location /path1 { alias /data/…

kubekey一键部署k8s高可用与kubesphere

kubekey一键安装k8s与kubesphere还是蛮方便的,kubesphere官网上面也提到了高可用安装的一些事宜,但是没有涉及到kubesphere资深的redis的系统的部署问题,本文简单给出对应配置,其实这个配置在kubephere的cluster-configuration.ya…

怎么使用服务器运行pySCENIC

前言 我们注意到在其他的一些论坛,有一些用户反馈,在服务器上面运行pyscenic不太顺畅。本文我们整理了在服务器上运行pyscenic的三个方法供大家参考,分别是conda安装pyscenic运行、arboreto_with_multiprocessing运行、容器化运行。总的来说&…

QEMU 搭建arm linux开发环境

Qemu 作为一款强大的开源虚拟化软件,为我们提供了一个便捷且经济实惠的方式来模拟各种硬件环境,从而在上面安装和学习 Linux 系统。本文将详细介绍如何使用 Qemu 搭建 Linux 学习环境, 环境准备 操作系统:建议使用 Ubuntu 20.04…

坐井说天阔---DeepSeek-R1

前言 DeepSeek-R1这么火,虽然网上很多介绍和解读,但听人家的总不如自己去看看原论文。于是花了大概一周的时间,下班后有进入了研究生的状态---读论文。 DeepSeek这次的目标是探索在没有任何监督数据的情况下训练具有推理能力的大模型&#…

EasyExcel 复杂填充

EasyExcel ​Excel表格中用{}或者{.} 来表示包裹要填充的变量,如果单元格文本中本来就有{、}左右大括号,需要在括号前面使用斜杠转义\{ 、\}。 ​代码中被填充数据的实体对象的成员变量名或被填充map集合的key需要和Excel中被{}包裹的变量名称一致。 …

华为防火墙pppoe拨号接入互联网配置案例

目录 1.pppoe拨号背景2.网络拓扑3.网络需求4.网络配置4.1 网络基础配置4.2 pppoe配置4.2.1 pppoe服务端配置(现网环境可忽略)4.2.2 pppoe客户端配置4.2.3 结果验证 5.小结 1.pppoe拨号背景 PPPoE(Point-to-Point Protocol Over Ethernet)拨号产生的背景…

认识vue-admin

认识vue-admin **核心交付:** 为什么要基于现成架子二次开发 什么是二次开发:基于已有的代码(项目工程,脚手架)开进行新功能的开发 所以看懂已有的框架中的既有代码,变得很重要了 1. 背景知识 后台管理系统是一种最…

【16】思科AireOS:创建使用 LWA 认证的 WLAN

1. 概述 LWA(Local Web Authentication)是一种基于 Web 认证的方式,允许无线客户端在连接 WLAN 后,使用 Web 认证页面进行身份验证。该方法适用于访客网络或需要身份认证的场景。 本指南详细介绍如何在 Cisco AireOS 无线控制器(WLC)上配置 LWA 认证的 WLAN,并确保认证…

电解电容的参数指标

容量 这个值通常是室温25℃,在一定频率和幅度的交流信号下测得的容量。容量会随着温度、直流电压、交流电压值的变化而改变。 额定电压 施加在电容上的最大直流电压,通常要求降额使用。 例如额定电压是4V,降额到70%使用,最高施…

【C++】IO流

目录 一、C语言的输入与输出二、流是什么三、CIO流3.1 C标准IO流3.2 C文件IO流3.2.1 二进制读写3.2.2 文本读写 四、stringstream的简单介绍结尾 一、C语言的输入与输出 C语言中我们用到的最频繁的输入输出方式就是scanf ()与printf()。 scanf(): 从标准输入设备(键盘)读取数据…