坐井说天阔---DeepSeek-R1

前言

DeepSeek-R1这么火,虽然网上很多介绍和解读,但听人家的总不如自己去看看原论文。于是花了大概一周的时间,下班后有进入了研究生的状态---读论文。

DeepSeek这次的目标是探索在没有任何监督数据的情况下训练具有推理能力的大模型,最初的方向是通过纯强化学习过程进行自我进化来具备推理能力。当然这个目标并未完全实现,最终还是使用到的监督数据进行微调。

做的第一个尝试就是使用大规模强化学习 (RL) 训练,训练出来的模型称之为: DeepSeek-R1-Zero. 实验结果显示该模型的输出可读性差和语言混合等挑战。

然后考虑是否可以使用少量高质量的数据进行少样本监督训练和强化学习相结合的方式,来提升推理能力,并且提升输出结果质量。这一种思路训练出来的模型便是DeepSeek-R1

顺着这个思路,DeepSeek又进行了下一步的尝试,上一步使用的数据在其他大模型(如阿里的QWen)上进行微调训练,即蒸馏过程。实验结果显示该过程可以显著提升其他没有推理能力的模型也具有良好的推理能力。

详情如下,水平有限,内容可能有误,仅个人理解,个人记录而已。

DeepSeek-R1-Zero

为了实现目标,首先做了开放研究尝试,只用通过大规模强化学习 (RL) 训练的模型,仅通过 RL 有效学习和泛化的能力,没有监督微调 (SFT) ,训练出来的模型称为:DeepSeek-R1-Zero,但实验发现该模型它遇到了可读性差和语言混合等挑战。

虽然这个尝试不尽人意,但其训练过程还是具有一定参考意义。也是实验过程中发现了两件有意思的事情。

首先训练过程中,发现随着测试时间的增加,DeepSeek-R1-Zero出现了自我进化的现象,会进行自我进行更复杂的行为,如下图所示,比如会主动重新评估先前的步骤,会自己探索解决方案的代替方法。这些行为是与强化学习环境交互自己出现的,并且显著增强了模型的推理能力,从而使得训练出来的模型可以更高效,更准确的处理更具有挑战性的任务

另外一件事是“Aha Moment”,DeepSeek-R1-Zero 自己会分配更多的思考时间来重新评估其初始方法,从而思考是否有更有效,更准确的解决方案。下图给了一个具体的例子。

“Aha Moment”说明了,对于大模型推理能力的训练,不需要明确的教它如何解决问题,只需要简单地为其提供正确的激励措施,然后它就会自主进行思考从而找到更有效的解决策略。“Aha Moment”也在提醒我们,强化学习有可能在AI训练中解锁新的智能水平,为未来开发出更加自主和自适应的大模型铺平道路。

DeepSeek-R1,使用冷启动进行强化学习

DeepSeek-R1-Zero 遇到了可读性差和语言混合等挑战。为了解决DeepSeek-R1-Zero遇到的问题,从两个方向进行了尝试,

  1. 是不是可以使用少量高质量的数据作为冷启动(cold start)来进一步提高推理性能或者减少训练成本

  2. 对于DeepSeek-R1-Zero 遇到的可读性差和语言混合等挑战,如何训练出一个模型。用户友好,可以产生清晰连贯的思维链(CoT),也有强大的通用能力。

为了获取高质量的数据,从以下三种方式进行了数据生产,论文中称之为cold start data(冷启动数据。

  1. 用具有长思维链(CoT)的少样本(few-shot)提示词,

  2. 直接让模型来通过思考和验证来生成详细的答案

  3. 收集DeepSeek-R1-Zero的输出,然后通过人工标注进行后处理来提炼结果

有了冷启动数据之后便开始微调 DeepSeek-V3-Base 模型。结果显示可读性大大增强。而且相对于DeepSeek-R1-Zero, 使用人类设计标注的冷启动数据的训练模式性能更好。

Reasoning-oriented Reinforcement Learning(面向推理的强化学习)

为了进一步增强它在推理密集型任务中推理能力。比如编程,逻辑推理等任务(这些任务有定义明确的问题和解决方案)。参考DeepSeek-R1-Zero训练过程, 对微调后的DeepSeek-V3-Base模型进行了大规模的强化学习训练,

同样,在实验中发现,在CoT过程中已经出现了语言混合的问题,尤其是涉及到多种语言时更容易出错。为了缓解语言混合问题,训练期间引入了语言一致性奖励(language consistency reward),其计算方式是目标语言单词在 CoT 中的比例。虽然这种语言对齐会导致性能略有下降,但这种奖励与人类的偏好一致,使其更具可读性。

最后,将推理任务的准确性(the accuracy of reasoning tasks)和语言一致性的奖励结合起来,直接相加形成最终的奖励。然后,我们在微调模型上进行强化学习训练,直到它在推理任务上实现收敛。

Rejection Sampling and Supervised Fine-Tuning (抑制采样和监督微调)

在有了一定推理能力之后,为了增加其在写作,角色扮演和其他通用任务的能力。利用结果检查点(resulting checkpoint)来收集SFT(Supervised Fine-Tuning)数据来用于下一轮训练以增强其通用能力。

为了增量通用能力,收集了两类数据:Reasoning data -- 推理数据,Non-Reasoning data  非推理数据。

为了获取Reasoning data -- 推理数据,我们通过在结果检查点(resulting checkpoint)通过抑制采样(rejection sampling)来获取推理提示(reasoning prompts)和推理轨迹(reasoning trajectories)。其中一些数据通过使用生成奖励模型,将真实数据和模型预测输入到 DeepSeek-V3 中进行判断是否合格。

经过滤之后。我们总共收集了大约 600k 个推理相关的训练样本。

对于非推理数据,如写作、翻译,我们采用 DeepSeek-V3 管道,并复用 DeepSeek-V3 的 SFT 数据集的一部分。我们总共收集了大约 200k 个与推理无关的训练样本。

我们使用上述约 800k 样本的精选数据集对 DeepSeek-V3-Base 进行了两个 epoch 的微调。


Reinforcement Learning for all Scenarios(适用于所有场景的强化学习)

为了进一步使模型与人类偏好保持一致,保证模型的有用性和无害性,进一步完善模型的推理能力。我们实现了一个二级强化学习阶段。

使用奖励信号(reward signal)和多种提示分布(Diverse Prompt Distributions)的组合来训练模型。对于推理数据,跟DeepSeek-R1-Zero一样,利用基于规则的奖励来执行推理过程。

DeepSeek-R1 Evaluation(DeepSeek-R1 评估)

DeepSeek-R1 表现出优于 DeepSeek-V3 的性能。这种改进主要归因于 STEM 相关问题的准确性提高,其中通过大规模强化学习实现了显著的收益。

此外,DeepSeek-R1 在 FRAMES 方面表现出色,这是一项长期依赖上下文的 QA 任务,展示了其强大的文档分析能力。这凸显了推理模型在 AI 驱动的搜索和数据分析任务中的潜力。在factual benchmark SimpleQA,DeepSeek-R1 的性能优于 DeepSeek-V3,展示了其处理基于事实的查询的能力。

在此基准上,OpenAI-o1 超过 GPT-4o 也观察到类似的趋势。然而,DeepSeek-R1 在Chinese SimpleQA 基准测试中的表现比 DeepSeek-V3 差,主要是因为它倾向于在安全 RL 之后拒绝回答某些查询。在没有安全 RL 的情况下,DeepSeek-R1 可以达到超过 70% 的准确率。

Distillation: Empower Small Models with Reasoning Capability(蒸馏:为小模型赋予推理能力)

此外也将收集到的800k 样本直接对Qwen和Llama等模型进行了微调,这种简答的蒸馏方式显著增强了模型的推理能力。蒸馏模型评估结果如下,蒸馏法具有强大的潜力

在蒸馏过程了,只使用了SFT(Supervised Fine-Tuning)数据进行微调。为了验证大规模 RL 训练实现与蒸馏相当的性能,在这一节又进行了一步实验,在Qwen-32B模型上进行大规模的0样本强化训练,结果显示,不如使用SFT(Supervised Fine-Tuning)数据进行微调的结果。

总结和展望

作者在文中的结论有一定的余地,得出来两个结论。

首先将更强大的模型蒸馏成更小的模型会产生极好的结果,但小模型进行依赖于本大规模 RL 训练需要巨大的计算能力,甚至可能无法达到蒸馏的性能。

其次,虽然蒸馏策略既经济又有效,但超越intelligence界限可能仍然需要更强大的基础模型和更大规模的强化学习。

对未来有以下三点展望。

  • 通用能力:目前,DeepSeek-R1 在函数调用、多轮次、复杂角色扮演和 JSON 输出等任务方面的能力不如 DeepSeek-V3。展望未来,我们计划探索可以利用 CoT 来增强这些领域的任务多长时间。

  • 语言混合:DeepSeek-R1 目前针对中文和英文进行了优化,这可能会导致在处理其他语言的查询时出现语言混合问题。例如,DeepSeek-R1 可能会使用英语进行推理和响应,即使查询使用的是英语或中文以外的语言。我们的目标是在将来的更新中解决此限制。

  • 提示工程:在评估 DeepSeek-R1 时,我们观察到它对提示很敏感。Few-shot 提示始终会降低其性能。因此,我们建议用户直接描述问题并使用zero-shot设置指定输出格式以获得最佳结果。

ps:

    膜拜大佬。DeepSeek-R1虽然不是第一个推理大模型,但R1的出现第一次让推理模型能被大多数人用上,而且是免费用上,并且进行了开源。此外,蒸馏小模型的尝试,也提供了一种新的思路--通过少样本在通用大模型基础上进行微调,同样可以实现具有推理能力的推理模型。这对于企业训练微调自己的推理模型,提供了技术可行性和经济可行性。

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

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

相关文章

moveable 一个可实现前端海报编辑器的 js 库

目录 缘由-胡扯本文实验环境通用流程1.基础移动1.1 基础代码1.1.1 data-* 解释 1.2 操作元素创建1.3 css 修饰1.4 cdn 引入1.5 js 实现元素可移动1.6 图片拖拽2.缩放3.旋转4.裁剪 懒得改文案了,海报编辑器换方案了,如果后面用别的再更。 缘由-胡扯 导火…

滑动窗口算法篇:连续子区间与子串问题

1.滑动窗口原理 那么一谈到子区间的问题,我们可能会想到我们可以用我们的前缀和来应用子区间问题,但是这里对于子区间乃至子串问题,我们也可以尝试往滑动窗口的思路方向去进行一个尝试,那么说那么半天,滑动窗口是什么…

resultType,jdbcType,parameterType区别

1. resultType 用途: 用于定义 SQL 查询结果的返回类型。 直接将查询结果映射到指定的 Java 类型(基本类型、POJO 或 Map)。 特点: 要求数据库字段名与 Java 对象的属性名完全一致(或通过别名匹配)。 …

数字化转型导师坚鹏:AI大模型DEEPSEEK使用方法及案例

AI大模型DEEPSEEK使用方法及案例 ——提升职场人士工作效率 打造数字化转型新利器 课程背景: 很多企业和员工存在以下问题: 不知道DEEPSEEK的发展现状及价值?不知道DEEPSEEK提示词设计方法论?不知道DEEPSEEK的针对性使用案例&…

Spring Boot项目接收前端参数的11种方式

大家好,我是。在前后端项目交互中,前端传递的数据可以通过HTTP请求发送到后端, 后端在Spring Boot中如何接收各种复杂的前端数据呢?这篇文章总结了11种在Spring Boot中接收前端数据的方式。 1 搭建项目 1.通过Spring Initializr…

Deesek:新一代数据处理与分析框架实战指南

Deesek:新一代数据处理与分析框架实战指南 引言 在大数据时代,高效处理和分析海量数据是企业和开发者面临的核心挑战。传统工具如Pandas、Spark等虽功能强大,但在实时性、易用性或性能上仍有提升空间。Deesek(假设名称&#xff…

算法笔记 02 —— 入门模拟

本系列为胡凡编著的算法笔记当中代码部分的精简版整理,笔者也在同时准备Leetcode刷题和实习面试,希望为有一定编码和数据结构基础的同学提供一份系统型的参考,以方便遗忘时的算法查阅、期末复习总览以及C学习参照。 目录 01 简单模拟 Ⅰ害…

Node.js技术原理分析系列——Node.js调试能力分析

本文由体验技术团队屈金雄原创。 Node.js 是一个开源的、跨平台的 JavaScript 运行时环境,它允许开发者在服务器端运行 JavaScript 代码。Node.js 是基于 Chrome V8引擎构建的,专为高性能、高并发的网络应用而设计,广泛应用于构建服务器端应…

LLaMA-Factory DeepSeek-R1 模型 微调基础教程

LLaMA-Factory 模型 微调基础教程 LLaMA-FactoryLLaMA-Factory 下载 AnacondaAnaconda 环境创建软硬件依赖 详情LLaMA-Factory 依赖安装CUDA 安装量化 BitsAndBytes 安装可视化微调启动 数据集准备所需工具下载使用教程所需数据合并数据集预处理 DeepSeek-R1 可视化微调数据集处…

Spring Boot实战:拦截器

一.拦截器快速入门 1.1了解拦截器 什么是拦截器: 概念 :拦截器是Spring框架提供的核功能之, 主要来拦截的请求, 在指定法前后, 根据业务需要执预先设定的代码。 也就是说, 允许开发员提前预定义些逻辑, 在的请求响应前后执. 也可以在请求前阻其执. …

LabVIEW 用户界面设计基础原则

在设计LabVIEW VI的用户界面时,前面板的外观和布局至关重要。良好的设计不仅提升用户体验,还能提升界面的易用性和可操作性。以下是设计用户界面时的一些关键要点: 1. 前面板设计原则 交互性:组合相关的输入控件和显示控件&#x…

qt-C++笔记之QGraphicsScene和 QGraphicsView中setScene、通过scene得到view、通过view得scene

qt-C++笔记之QGraphicsScene和 QGraphicsView中setScene、通过scene得到view、通过view得scene code review! 文章目录 qt-C++笔记之QGraphicsScene和 QGraphicsView中setScene、通过scene得到view、通过view得scene1.`setScene` 方法2.通过 `scene` 获取它的视图 (`views()`)…

CI/CD部署打包方法

项目目前部署方式: 各地区服务器打包同一个runner(需要互相排队,不并发)各地区客户端可以并发打包,同个地区客户端打多个包需要排队 部署方法 下载gitlab-runner: https://docs.gitlab.com/runner/insta…

【含文档+源码】基于Web的在线课堂测试课程考评系统的开发与实现

项目介绍 本课程演示的是一款 基于Web的在线课堂测试课程考评系统的开发与实现,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的 Java 学习者。 1.包含:项目源码、项目文档、数据库脚本、软件工具等所有资料 2.带你从零开始部署运行本套…

【vscode】VScode Remote SSH配置

VScode使用remote ssh 到服务器上的Docker容器中 1. 配置远程服务器docker容器的端口映射,例如将服务器的2222端口映射到container的22端口(默认) 1.1 在容器系统的sshd_config文件中配置参数 #配置文件 vim /etc/ssh/sshd_config #打开端口号 Port 221.2 建立容…

2月第九讲“探秘Transformer系列”

0.1 流程 使用Transformer来进行文本生成其实就是用模型来预测下一个词,完整流程包括多个阶段,如分词、向量化、计算注意力和采样,具体运作流程如下: 分词(tokenize)。把用户的输入文本(此处假…

crewai框架(0.83.0)添加知识源

官方的文档如下 https://docs.crewai.com/concepts/knowledge但是不知道为什么,可能是版本的问题(我用的是0.86.0),参考官方文档的配置我会报错,并且也导入不了数据库,也可能用的不是官方API。本文以常用的…

deepseek + embeding模型搭建本地知识库

上一篇文章讲了ollamadeepseek模型的本地化部署,具体能部署哪一款取决于你的土豪程度: 今天的目标是本地安装部署embeding模型,实现LLMembeding模型的rag知识库的本地化部署,包括: embeding模型的本地化部署anyhingL…

2、树莓派5第一次开机三种方式:使用外设 / 使用网线 / 使用wifi

本文整理了树莓派第一次开机方式,供大家参考 方式一:连接鼠标、键盘、显示器外设开机 树莓派自带USB接口及HDMI接口,因此可以通过USB连接鼠标键盘,HDMI接入显示器,再进行电源供电,就可以完成第一次开机 …

案例-02.部门管理-查询

一.查询部门-需求 二.查询部门-思路 API接口文档 三.代码实现 1.controller层:负责与前端进行交互,接收前端所发来的请求 注:Slf4j用于记录日志使用,可以省略private static Logger log LoggerFactory.getLogger(DeptControlle…