部署DeepSeek模型,进群交流最in玩法!
立即加群
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >o3 Deep Research: DeepSeek R1 多阶段训练流程问答解析

o3 Deep Research: DeepSeek R1 多阶段训练流程问答解析

原创
作者头像
立委
发布于 2025-02-27 20:30:01
发布于 2025-02-27 20:30:01
29500
代码可运行
举报
文章被收录于专栏:deepseekdeepseek腾讯云TVP
运行总次数:0
代码可运行
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
好的,我将对 DeepSeek R1 的整体训练过程进行研究,并重点分析强化阶段(第二、三、四阶段)的具体细节,
包括 RLSFT、CoT 的方法和策略。

报告将采用问答解析的形式,同时保持一定的技术深度,并确保可读性。还会在必要时提供与 GPT-4、Claude、Gemini 
等模型的简单核心对比,以展示其独特性。

我会尽量参考 DeepSeek 官方网站的论文和技术资料,同时结合网络上的研究和学习经验进行综合分析。

DeepSeek R1 多阶段训练流程问答解析

Q1: DeepSeek R1 的整体训练包含哪些阶段,为什么采用多阶段策略?

A: DeepSeek R1 采用了四阶段的训练流程,包括两个强化学习(RL)阶段和两个监督微调(SFT)阶段 (DeepSeek-R1的四个训练阶段 - 蝈蝈俊 - 博客园)。这一多阶段策略旨在先通过少量数据稳定模型输出格式,然后大规模提升推理能力,接着扩展通用能力,最后对齐人类偏好,逐步打造出既擅长推理又安全实用的模型 (DeepSeek-R1的四个训练阶段 - 蝈蝈俊 - 博客园) (DeepSeek-R1的四个训练阶段 - 蝈蝈俊 - 博客园)。具体来说:

通过上述多阶段渐进式训练,DeepSeek R1 最终在推理能力上达到接近OpenAI o1系列闭源模型的水平,同时保持了输出的规范性和对用户需求的良好适应 ([2501.12948] DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning) (阅读 | DeepSeek-R1:怎么用强化学习把一个普通语言模型调教成推理高手?_腾讯新闻)。

Q2: 第二阶段的推理强化学习是如何实施的?训练是逐个问题进行还是批量进行?训练数据是否会保留?奖励机制如何设计?

A: 阶段2是针对推理能力的强化学习训练。在这一阶段,DeepSeek R1 采用了GRPO算法(分组相对策略优化)来高效地进行RL训练 ([2501.12948] DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning)。具体来说,对每个问题,不会只生成单一回答,而是从当前策略采样一组不同的回答,然后根据这组回答的得分情况来优化模型 ([2501.12948] DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning) ([2501.12948] DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning)。这种“按问题分组”的方式相当于批量生成和评价:每道训练题目产生多个解答,计算每个解答的奖励,并用组内奖励的相对差异(优势值)指导模型参数更新 ([2501.12948] DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning)。由于采用组内平均得分作为基准(baseline),GRPO 不需要额外的价值网络(critic),降低了大模型RL的开销 ([2501.12948] DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning)。因此,就单个问题而言是通过多次尝试来强化,但在实现中会并行处理多个问题批次,以加速训练。每轮生成的回答在用于计算梯度更新后并不长期保留,属于在线的RL采样;只有当阶段2训练收敛后,会使用最终的模型来批量生成数据供下阶段使用 (DeepSeek-R1的四个训练阶段 - 蝈蝈俊 - 博客园)。

奖励机制方面,DeepSeek R1 在此阶段设计了规则奖励,主要包括:

最终,以上各项奖励会加权求和形成总奖励 (DeepSeek-R1的四个训练阶段 - 蝈蝈俊 - 博客园)。模型通过最大化期望奖励来更新参数:正确且格式规范、语言一致的回答获得最高回报,从而模型逐步学会既推理正确表述规范地回答问题 (DeepSeek-R1的四个训练阶段 - 蝈蝈俊 - 博客园)。

值得一提的是,DeepSeek R1-Zero(没有冷启动微调的版本)在纯RL下已经自行涌现出了反思验证、超长链式推理等强大能力,但同时输出可读性差、语言混杂 (阅读 | DeepSeek-R1:怎么用强化学习把一个普通语言模型调教成推理高手?_腾讯新闻) (阅读 | DeepSeek-R1:怎么用强化学习把一个普通语言模型调教成推理高手?_腾讯新闻)。因此在 R1 中通过以上冷启动和奖励改进,显著改善了这些问题 (阅读 | DeepSeek-R1:怎么用强化学习把一个普通语言模型调教成推理高手?_腾讯新闻)。阶段2 的RL训练让模型的推理准确率在数学等任务上大幅提升(例如 AIME 数学竞赛准确率从15.6%提高到71% (阅读 | DeepSeek-R1:怎么用强化学习把一个普通语言模型调教成推理高手?_腾讯新闻)),为后续步骤打下强大的推理基础。训练过程中产生的大量问答尝试并未直接用于模型参数更新之外的用途,而是在训练完成后经过筛选用于下一阶段的数据集构建 (DeepSeek-R1的四个训练阶段 - 蝈蝈俊 - 博客园)。

Q3: 第三阶段为什么要用 60 万条推理再生数据和 20 万条非推理数据进行微调?这一混合微调策略有何作用?

A: 阶段3是承上启下的监督微调,目的是在保持高推理能力的同时扩展模型的通用能力 (DeepSeek-R1的四个训练阶段 - 蝈蝈俊 - 博客园)。之所以采用“60万推理 + 20万非推理”的数据组合,主要有以下考虑:

Q4: 第四阶段为何需要再次进行强化学习?这一阶段是如何结合人类偏好进行对齐的,人类偏好对齐有什么必要性?

A: 阶段4是DeepSeek R1的二次强化学习阶段,核心目的在于对齐人类偏好,进一步提升模型在实际应用中的安全性和实用性 (DeepSeek-R1的四个训练阶段 - 蝈蝈俊 - 博客园)。即使经过阶段2和阶段3,模型在推理和一般任务上已表现出色,但仍可能存在不符合用户期望的行为,例如回答不够礼貌有用,或在敏感问题上产生不安全内容。这正是当前尖端LLM都会面临的问题,需要引入人类偏好对齐(例如 OpenAI 的GPT-4通过RLHF过程进行对齐)。对于DeepSeek R1,这一阶段通过融合人类偏好相关的奖励信号来微调模型,使其行为更符合人类期望 (DeepSeek-R1的四个训练阶段 - 蝈蝈俊 - 博客园)。具体而言:

通过上述措施,阶段4 实现了模型行为和人类期望的深度对齐,相当于执行了一次RLHF式(基于人类反馈的强化学习)训练。 (阅读 | DeepSeek-R1:怎么用强化学习把一个普通语言模型调教成推理高手?_腾讯新闻)在对齐后,DeepSeek R1 兼具强大的推理能力和良好的安全性/有用性:既能给出复杂问题的正确解答,又能确保回答让用户容易理解、愿意接受,在敏感问题上遵循安全准则 (DeepSeek-R1的四个训练阶段 - 蝈蝈俊 - 博客园) ([2501.12948] DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning)。这种人类偏好对齐对于模型大规模应用是必要的 (DeepSeek-R1的四个训练阶段 - 蝈蝈俊 - 博客园)——它保证模型不会因为追求高推理准确率而忽略了与用户互动的品质,确保模型的高智商能够以让人类舒适的方式呈现出来。换句话说,经过阶段4,DeepSeek R1 不仅是“推理高手”,也是“贴心助手”。

Q5: DeepSeek R1 与 GPT-4、Anthropic Claude、Google Gemini 等顶尖模型有哪些核心差异?

A: DeepSeek R1 的训练路线与这些闭源大模型有一些独特之处,但总体目标相似(都追求强性能和对齐人类意图)。主要区别在于:

综上,DeepSeek R1 展现了一条与主流商用大模型不同但并行的研发路线:用较少人工介入、充分利用RL自我提升推理,再辅以必要的监督和对齐,来培养强大的通用AI。这为业界提供了新思路,也使研究者能够探究在不开天量数据集的情况下提升模型智力的可能 (The Illustrated DeepSeek-R1 - by Jay Alammar) (The Illustrated DeepSeek-R1 - by Jay Alammar)。各模型各有侧重,但目标殊途同归:让AI既“智商高”又“情商高”,能真正解决问题并让用户放心使用。

**参考文献:**

DeepSeek R1 官方论文 ([2501.12948] DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning) ([2501.12948] DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning)及技术报告、DeepSeek 官方博客和数据集说明 (DeepSeek-R1的四个训练阶段 - 蝈蝈俊 - 博客园) ([2501.12948] DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning),以及相关分析文章和讨论 (阅读 | DeepSeek-R1:怎么用强化学习把一个普通语言模型调教成推理高手?_腾讯新闻) (阅读 | DeepSeek-R1:怎么用强化学习把一个普通语言模型调教成推理高手?_腾讯新闻)。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
上述内容综合了官方资料与社区解读,以问答形式呈现,希望对DeepSeek R1的训练策略有全面而清晰的说明。

后记

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
才试了一下 openai o3 最新推出的 deep research 功能,不能不说,作为研究工具,非常给力,
完成后的成品具有直接发表的水平,想做一点后编辑都难。有点叹为观止的感觉,堪称完美。
当然,现在各家头部模型都开始 offer 这种“深度研究”的功能了,这等于是平替了大多数咨询公司的研究人员的工作。
即便是训练有素的数据分析和调研人员,多数人实际上做不了它这么全面和细致。最见功力的是它的引用的全面和细密。
说话有根据,幻觉自然减少。

【相关】

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
一起来学Go --- (go的枚举以及数据类型)
枚举指一系列的相关的常量,比如下面关于一个星期的中每天的定义,通过上篇博文,我们可以用在const后跟一对圆括号的方式定义一组常量,这种定义法在go语言中通常用于定义枚举值。go语言并不支持众多其他语言明确支持的enum关键字。
Wyc
2018/09/11
5710
Golang语言社区--Go语言基础第三节常量
大家好,我是彬哥;今天继续我们的基础课程的讲解,本篇给大家讲解的是关于Go语言常量的知识。那么在编程语言中何为常量?常量解释如下:
李海彬
2018/03/07
9270
Golang语言社区--Go语言基础第三节常量
Go语言编程设计学习Day1:helloworld 变量 常量
简单了解一下go语言的历史, 二十世纪八十年代,肯·汤普逊在内的Plan 9项目原班人马加入了谷歌在Google,他们创造了Go语言。早在2007年9月,Go语言还是这帮大牛的20%自由时间 的实验项目。幸运的是,到了2008年5月,Google发现了Go语言的巨大潜力,从而开始全力支持 这个项目,让这批人可以全身心投入Go语言的设计和开发工作中。Go语言的第一个版本在2009 年11月正式对外发布,并在此后的两年内快速迭代,发展迅猛。第一个正式版本的Go语言于2012 年3月28日正式发布,让Go语言迎来了第一个引人瞩目的里程碑。
冷环渊
2022/12/16
5140
Go语言编程设计学习Day1:helloworld 变量 常量
go语言基本数据类型和变量
使⽤关键字 var 定义变量,⾃动初始化为零值。如果提供初始化值,可省略变量类型,由编译器⾃动推断。
onenewcode
2024/02/09
1510
【Go语言】【3】GO语言常量
  通常情况下语言入门前会讲一堆背景和特性,目的是为了能让学习者对该语言有一个大概的认识,但这里我想直接进入细节,不是因为任性,而是因为常量是编程语言最基本的组成元素,这与语言背景无关。
py3study
2020/01/07
2K0
Go语言中的变量和常量
在Go语言中,变量的声明方式多种多样,可以通过var关键字、短变量声明和批量声明等方式实现。
数字扫地僧
2024/06/11
1270
Go常量 【Go语言圣经笔记】
常量表达式的值在编译期计算,而不是在运行期。每种常量的潜在类型都是基础类型:boolean、string或数值型。
Steve Wang
2021/12/06
3380
Go 语言基础入门教程 —— 常量和枚举
在 Go 语言中,常量是指编译期间就已知且不可改变的值,常量只可以是数值类型(包括整型、 浮点型和复数类型)、布尔类型、字符串类型等标量类型。和 PHP 一样,在 Go 语言中,我们可以通过 const 关键字来定义常量(遵循 C 语言的约定)。
学院君
2019/08/08
5940
Go语言数据类型
无论在什么语言中,数据类型主要用于声明或定义不同类型的变量、常量、函数等数据结构,当然在Go语言中也不例外。变量的类型主要目的是为了区分数据在内存中的存储大小。Go语言中的类型主要有以下几种分类:
leoay 技术
2023/06/12
1830
Go语言数据类型
Go语言之旅:变量、常量及类型
因为面向dotnet(C#)的程序员有很多基础语言的知识已经具备,在这一节,我会把那些Golang特别的或者需要注意的部分摘出来,加以演示可能会更快上手和了解。还是从最简单的变量定义、类型、操作符、控制语句等等入手
杨子翔 josonyang
2019/08/31
5640
Go语言之旅:变量、常量及类型
Go语言的基本概念与语法 - Java技术债务
按照约定,包名与导入路径的最后一个元素相同。例如,"math/rand" 包中的源码均以packagerand` 语句开始.
Java技术债务
2024/06/21
920
【Go语言基础】基本数据类型
Go语言中内置了大量的数据类型,包括基本数据类型和符合数据类型,其中基本数据类型有如下七种:
felixzhao
2022/01/05
3530
【Go语言基础】基本数据类型
深入理解C语言中的枚举
在上面的例子中,我们手动指定了枚举常量的值,RED为1,GREEN为2,BLUE为3。
GG Bond1
2024/06/14
1470
Go语言的iota关键字有什么用途?
在Go语言中,iota是一个特殊的常量生成器,它用于在const声明中创建一系列递增的常量值。iota在每次遇到新的const关键字时都会重置为0,然后在每个有常量声明的行上递增1。这个特性使得iota非常适合用于定义枚举类型或生成一组相关的常量。
科技新语
2024/07/01
1010
Go语言的iota关键字有什么用途?
05.Go语言-基本数据类型
在静态类型语言(C++/Java/Golang 等)中规定在创建一个变量或者常量时,必须要指定出相应的数据类型,否则无法给变量分配内存。
面向加薪学习
2022/09/04
3510
【Go语言精进之路】构建高效Go程序:掌握变量、常量声明法则与iota在枚举中的奥秘
在Go语言体系中,变量是存储数据的基本单元,其核心功能在于保存程序运行过程中的信息。每个变量都被赋予了特定的数据类型,这些类型涵盖了诸如整数(int)、浮点数(float)、字符串(string) 等多种基本类型以及其他复合类型。数据类型定义了变量能够存储值的范围和类型,确保了数据的准确性和一致性。
空白诗
2024/06/14
1640
【Go语言精进之路】构建高效Go程序:掌握变量、常量声明法则与iota在枚举中的奥秘
Go 语言中没有枚举类型,但是我们可以这样做
枚举类型是一种常用的数据类型,用于表示一组有限的、预定义的、具名的常量值。在枚举类型中,每个常量都是一个枚举值,它们之间的值相等且唯一。
陈明勇
2023/04/26
6950
Go 语言中没有枚举类型,但是我们可以这样做
go语言中的数据类型
注意,在 Go 语言中有些类型是预定义的别名类型,如 byte 和 rune,它们 实际上是 uint8 和 int32 的别名。还有一种特殊的类型 nil 表示空值,可以表示指针、切片、映射、通道、函数和接口类型的零值。
GeekLiHua
2025/01/21
880
Go 专栏|变量和常量的声明与赋值
上篇文章介绍了环境搭建,并完成了学习 Go 的第一个程序 Hello World。这篇文章继续学习 Go 的基础知识,来看看变量,常量的声明与赋值。
AlwaysBeta
2021/09/02
1.1K0
Go 专栏|变量和常量的声明与赋值
go语言慢速入门——基本内置类型
表中特地强调了类型是否支持类型转换,这是因为go语言对类型要求是非常严格的,是真正的强类型语言。一个具体的例子如下所示:
zy010101
2022/07/27
4600
推荐阅读
相关推荐
一起来学Go --- (go的枚举以及数据类型)
更多 >
LV.1
Golang语言社区站长
目录
  • Q1: DeepSeek R1 的整体训练包含哪些阶段,为什么采用多阶段策略?
  • Q2: 第二阶段的推理强化学习是如何实施的?训练是逐个问题进行还是批量进行?训练数据是否会保留?奖励机制如何设计?
  • Q3: 第三阶段为什么要用 60 万条推理再生数据和 20 万条非推理数据进行微调?这一混合微调策略有何作用?
  • Q4: 第四阶段为何需要再次进行强化学习?这一阶段是如何结合人类偏好进行对齐的,人类偏好对齐有什么必要性?
  • Q5: DeepSeek R1 与 GPT-4、Anthropic Claude、Google Gemini 等顶尖模型有哪些核心差异?
  • **参考文献:**
  • 后记
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档