论文解读之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.软件服务支持

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux:用 clang 编译带 sched_ext 功能内核

文章目录 1. 前言2. 编译过程2.1 准备内核源代码2.2 安装编译工具2.3 配置、编译、运行2.3.1 配置2.3.2 编译2.3.3 运行 3. 参考资料 1. 前言 限于作者能力水平,本文可能存在谬误,因此而给读者带来的损失,作者不做任何承诺。 2. 编译过程 …

FPGA之​​​​​​​​​​​​​​HRBANK与HOBANK有什么区别?

在FPGA设计中,HP Bank(High-Performance Bank)与HR Bank(High-Range Bank)是针对I/O电气特性划分的不同区域,二者的主要区别在于支持的电压范围、信号速率以及应用场景。以下是具体对比: 核心区…

Ubuntu 下 nginx-1.24.0 源码分析 - ngx_ssl_init 函数

#if (NGX_OPENSSL)ngx_ssl_init(log); #endif objs/ngx_auto_config.h 中 #ifndef NGX_OPENSSL #define NGX_OPENSSL 1 #endif 所以这个条件编译成立 NGX_OPENSSL 是一个宏定义,用于控制与 OpenSSL 相关的功能是否被启用 若用户通过./configure参数(如-…

pandas(13 Caveats Gotchas和SQL比较)

前面内容:pandas(12 IO工具和稀松数据) 目录 一、Caveats警告 & Gotchas预见 1.1 在Pandas中使用if/Truth语句 1.2 位运算布尔 1.3 isin操作 1.4 重新索引reindex和 loc&iloc 使用注意事项 1.5 loc和iloc 二、Python Pandas 与SQL的比较 2.1 数…

MongoDB 7 分片副本集升级方案详解(下)

#作者:任少近 文章目录 1.4 分片升级1.5 升级shard11.6 升级shard2,shard31.7 升级mongos1.8重新启用负载均衡器1.9 推荐MongoDB Compass来验证数据 2 注意事项: 1.4 分片升级 使用“滚动”升级从 MongoDB 7.0 升级到 8.0,即在其他成员可用…

洛谷 P2894 USACO08FEB Hotel 题解

题意 第一行输入 n , m n,m n,m&#xff0c; n n n 代表有 n n n 个房间 ( 1 ≤ n ≤ 50 , 000 ) (1\leq n \leq 50,000) (1≤n≤50,000)&#xff0c;编号为 1 ∼ n 1 \sim n 1∼n&#xff0c;开始都为空房&#xff0c; m m m 表示以下有 m m m 行操作 ( 1 ≤ m < 50…

VS2022中.Net Api + Vue 从创建到发布到IIS

VS2022中.Net Api Vue 从创建到发布到IIS 前言一、先决条件二、创建项目三、运行项目四、增加API五、发布到IIS六、设置Vue的发布 前言 最近从VS2019 升级到了VS2022,终于可以使用官方的.Net Vue 组合了,但是使用过程中还是有很多问题,这里记录一下. 一、先决条件 Visual …

BGP分解实验·18——BGP选路原则之权重

在本地对进入的NLRI做权重设置&#xff0c;从而对过滤特定的路由进行优选。严格来说&#xff0c;权重值并不能算是路径属性&#xff0c;因为它并处传递&#xff0c;所能影响的仅仅限于本地路由器。 实验拓扑如下&#xff1a; 完成实验拓扑的基础实验&#xff0c;R1的配置如下…

正点原子ESP32S3系列开发板全面支持小智AI

什么是小智AI? 小智AI项目是由虾哥发起并开源的一个项目。该项目能帮助更多人入门AI硬件开发&#xff0c;了解如何将当下飞速发展的大语言模型应用到实际的硬件设备中。 小智AI功能如下&#xff1a; WiFi / ML307 Cat.1 4G BOOT键唤醒和打断&#xff0c;支持点击和长按两种触…

【2025最新计算机毕业设计】基于SpringBoot+Vue高校社团管理系统 【提供源码+答辩PPT+文档+项目部署】

作者简介&#xff1a;✌CSDN新星计划导师、Java领域优质创作者、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流。✌ 主要内容&#xff1a;&#x1f31f;Java项目、Python项目、前端项目、PHP、ASP.NET、人工智能…

探寻性能优化:如何衡量?如何决策?

目录 一、衡量指标说明 &#xff08;一&#xff09;响应时间&#xff08;Response Time&#xff09; 平均响应时间&#xff08;Average Response Time&#xff09; 百分位数响应时间&#xff08;Percentile Response Time&#xff09; &#xff08;二&#xff09;吞吐量&a…

YOLO11环境搭建CUDA12.6

1.安装CUDA和cuDNN 1.1安装CUDA 1.1.1查看当前你的电脑显卡支持的最高CUDA版本,后面的安装不能超过它 通过命令的方式查看 输入nvidia-smi 1.1.2 下载CUDA 官网地址:CUDA Toolkit Archive | NVIDIA Developer 选择cuda_12.6.3 下载完成后,如下: 安装,一直下一步即可:…

Java多线程——性能与可伸缩性

可伸缩性 当增加计算资源时&#xff08;如CPU、内存、存储容量或I/O带宽&#xff09;&#xff0c;程序的吞吐量或处理能力能相应的增加 Amdahl定理 F为必须被串行执行的部分&#xff0c;在N个处理器的机器中&#xff0c;在增加计算资源所能达到的最高加速比是 N趋于无穷大时…

Spring Boot 项目启动报错 “找不到或无法加载主类” 解决笔记

一、问题描述 在使用 IntelliJ IDEA 开发基于 Spring Boot 框架的 Java 程序时&#xff0c;原本项目能够正常启动。但在后续编写代码并重建项目后&#xff0c;再次尝试运行却出现了 “错误&#xff1a;找不到或无法加载主类 com.example.springboot.SpringbootApplication” 的…

snort3.0-ubuntu18.04 64入侵检测安装与使用

在日常生活中&#xff0c;很多人怀疑自己的手机、电脑被监控了&#xff0c;担心自己的隐私泄漏&#xff0c;实际上最佳的检测方式就是终端检测&#xff0c;也就是EDR&#xff0c;但是就是有那么多的人在网上大放厥词&#xff0c;说任何EDR杀毒软件都检测不到监控&#xff0c;毕…

Spring Cloud-Sentinel

Sentinel服务熔断与限流 Sentinel 是面向分布式、多语言异构化服务架构的流量治理组件&#xff0c;主要以流量为切入点&#xff0c;从流量控制、流量路由、熔断降级、系统自适应保护等多个维度来帮助用户保障微服务的稳定性。 官网地址&#xff1a;home | Sentinelhttps://sen…

蓝桥与力扣刷题(230 二叉搜索树中第k小的元素)

题目&#xff1a;给定一个二叉搜索树的根节点 root &#xff0c;和一个整数 k &#xff0c;请你设计一个算法查找其中第 k 小的元素&#xff08;从 1 开始计数&#xff09;。 示例 1&#xff1a; 输入&#xff1a;root [3,1,4,null,2], k 1 输出&#xff1a;1示例 2&#xff…

安卓设备调试h5页面(调试)

1、在chrome浏览器中输入网址&#xff1a;chrome://inspect/#devices 2、设备连接usb&#xff0c;打开对应app 3、点击inspect fallback&#xff0c;打开对应调试页面

第1章大型互联网公司的基础架构——1.6 RPC服务

你可能在1.1节的引言中注意到业务服务层包括HTTP服务和RPC服务&#xff0c;两者的定位不一样。一般来说&#xff0c;一个业务场景的核心逻辑都是在RPC服务中实现的&#xff0c;强调的是服务于后台系统内部&#xff0c;所谓的“微服务”主要指的就是RPC服务&#xff1b;而HTTP服…

【NLP251】BertTokenizer 的全部 API 及 使用案例

BertTokenizer 是 Hugging Face 的 transformers 库中用于处理 BERT 模型输入的分词器类。它基于 WordPiece 分词算法&#xff0c;能够将文本分割成词汇单元&#xff08;tokens&#xff09;&#xff0c;并将其转换为 BERT 模型可以理解的格式。BertTokenizer 是 BERT 模型的核心…