deepseek的CoT优势、两阶段训练的有效性学习笔记

文章目录

  • 1 DeepSeek的CoT思维链的优势
    • 1.2 open-r1的CoT训练数据
    • 1.3 ReAct任务与CoT任务适用场景
  • 2 AI推理方向:deepseek与deepmind的两条路线的差异
    • 2.1 PRM与ORM的两大学派分支的差异
    • 2.2 DeepSeek-R1的两阶段训练概述


1 DeepSeek的CoT思维链的优势

DeepSeek跟之前市面上很多其他的大模型,比如豆包、通义、文心存在一定的差异;
如图,来自清华大学新媒体研究中心的报告《DeepSeek:从入门到精通》举了两种的差异

  • 常规的是概率预测(这里其实有点歧义,后者也是…我感觉可以说是,问答单机版);
  • 后者是链式推理,这里就要强调思维链的过程。
    在这里插入图片描述
    比如一个思维过程就是:
问题:A有3本书,B比A多2本,C比B少1本,C有几本?
思考过程:
- A有3本书 → B有3+2=5本 → C有5-1=4本 → 答案是4。问题:(用户的新问题)
思考过程:

CoT 的优点:

  • CoT 通过将复杂问题分解为多步骤的子问题,相当显著的增强了大模型的推理能力
  • CoT 使得大模型通过向我们展示“做题过程”,使得我们可以更好的判断大模型在求解当前问题上究竟是如何工作的
  • 让大模型一步一步输出步骤,我们通过这些步骤的呈现可以对大模型问题求解的过程施加更大的影响

1.2 open-r1的CoT训练数据

开源22万条DeepSeek R1的高质量数据!你也能复现DeepSeek了

笔者一直好奇该准备怎么样的数据集,才值得做训练,可以看一下这里面的开源数据集:
在这里插入图片描述

挑一个例子出来看看:

<问题>
## Task B-1.3. A ship traveling along a river has covered $24 \mathrm{~km}$ upstream and $28 \mathrm{~km}$ downstream. For this journey, it took half an hour less than for traveling $30 \mathrm{~km}$ upstream and $21 \mathrm{~km}$ downstream, or half an hour more than for traveling $15 \mathrm{~km}$ upstream and $42 \mathrm{~km}$ downstream, assuming that both the ship and the river move uniformly. Determine the speed of the ship in still water and the speed of the river.<解题过程>
## Solution. Let $t$ be the time required for the boat to travel $24 \mathrm{~km}$ upstream and $28 \mathrm{~km}$ downstream, $v_{R}$ the speed of the river, and $v_{B}$ the speed of the boat. When the boat is traveling upstream, its speed is $v_{B}-v_{R}$, and when it is traveling downstream, its speed is $v_{B}+v_{R}$. Since $t=\frac{s}{v}$, from the given data, we obtain the following system of equations: $\left\{\begin{array}{l}t=\frac{24}{v_{B}-v_{R}}+\frac{28}{v_{B}+v_{R}} \\ t+0.5=\frac{30}{v_{B}-v_{R}}+\frac{21}{v_{B}+v_{R}} \\ t-0.5=\frac{15}{v_{B}-v_{R}}+\frac{42}{v_{B}+v_{R}}\end{array}\right.$ By introducing new variables $x=\frac{3}{v_{B}-v_{R}}, y=\frac{7}{v_{B}+v_{R}}$, the system transforms into: $\left\{\begin{array}{l}t=8 x+4 y \\ t+0.5=10 x+3 y \\ t-0.5=5 x+6 y\end{array}\right.$ Substituting $t$ from the first equation into the remaining two, we get: $\left\{\begin{array}{l}8 x+4 y+0.5=10 x+3 y \\ 8 x+4 y-0.5=5 x+6 y\end{array}\right.$ $\left\{\begin{array}{l}2 x-y=0.5 \\ 3 x-2 y=0.5\end{array}\right.$ The solution to the last system is (0.5, 0.5). Then we have: $\frac{3}{v_{B}-v_{R}}=0.5$, hence, $v_{B}-v_{R}=6 \mathrm{~and}$ $\frac{7}{v_{B}+v_{R}}=0.5$, hence, $v_{B}+v_{R}=14$. The speed of the river is $v_{R}=4 \mathrm{~km} / \mathrm{h}$, and the speed of the boat is $v_{B}=10 \mathrm{~km} / \mathrm{h}$. ## Note: By substituting $x=\frac{1}{v_{B}-v_{R}}, y=\frac{1}{v_{B}+v_{R}} \mathrm{~and}$ following the same procedure, the initial system transforms into the system $\left\{\begin{array}{l}6 x-7 y=0.5 \\ 9 x-14 y=0.5\end{array}\right.$ The solution to this system is $\left(\frac{1}{6}, \frac{1}{14}\right)$.<答案>
v_{R}=4\mathrm{~}/\mathrm{},v_{B}=10\mathrm{~}/\mathrm{}

解题过程再贴一下:

##Solution.
Let t t t be the time required for the boat to travel 24 k m 24 \mathrm{~km} 24 km upstream and 28 k m 28 \mathrm{~km} 28 km downstream, v R v_{R} vR the speed of the river, and v B v_{B} vB the speed of the boat. When the boat is traveling upstream, its speed is v B − v R v_{B}-v_{R} vBvR, and when it is traveling downstream, its speed is v B + v R v_{B}+v_{R} vB+vR.
Since t = s v t=\frac{s}{v} t=vs, from the given data, we obtain the following system of equations:
{ t = 24 v B − v R + 28 v B + v R t + 0.5 = 30 v B − v R + 21 v B + v R t − 0.5 = 15 v B − v R + 42 v B + v R \left\{\begin{array}{l}t=\frac{24}{v_{B}-v_{R}}+\frac{28}{v_{B}+v_{R}} \\ t+0.5=\frac{30}{v_{B}-v_{R}}+\frac{21}{v_{B}+v_{R}} \\ t-0.5=\frac{15}{v_{B}-v_{R}}+\frac{42}{v_{B}+v_{R}}\end{array}\right. t=vBvR24+vB+vR28t+0.5=vBvR30+vB+vR21t0.5=vBvR15+vB+vR42
By introducing new variables x = 3 v B − v R , y = 7 v B + v R x=\frac{3}{v_{B}-v_{R}}, y=\frac{7}{v_{B}+v_{R}} x=vBvR3,y=vB+vR7,
the system transforms into:
{ t = 8 x + 4 y t + 0.5 = 10 x + 3 y t − 0.5 = 5 x + 6 y \left\{\begin{array}{l}t=8 x+4 y \\ t+0.5=10 x+3 y \\ t-0.5=5 x+6 y\end{array}\right. t=8x+4yt+0.5=10x+3yt0.5=5x+6y
Substituting t t t from the first equation into the remaining two, we get:
{ 8 x + 4 y + 0.5 = 10 x + 3 y 8 x + 4 y − 0.5 = 5 x + 6 y \left\{\begin{array}{l}8 x+4 y+0.5=10 x+3 y \\ 8 x+4 y-0.5=5 x+6 y\end{array}\right. {8x+4y+0.5=10x+3y8x+4y0.5=5x+6y
{ 2 x − y = 0.5 3 x − 2 y = 0.5 \left\{\begin{array}{l}2 x-y=0.5 \\ 3 x-2 y=0.5\end{array}\right. {2xy=0.53x2y=0.5

The solution to the last system is (0.5, 0.5).
Then we have: 3 v B − v R = 0.5 \frac{3}{v_{B}-v_{R}}=0.5 vBvR3=0.5,
hence, v B − v R = 6 a n d v_{B}-v_{R}=6 \mathrm{~and} vBvR=6 and 7 v B + v R = 0.5 \frac{7}{v_{B}+v_{R}}=0.5 vB+vR7=0.5,
hence, v B + v R = 14 v_{B}+v_{R}=14 vB+vR=14.
The speed of the river is v R = 4 k m / h v_{R}=4 \mathrm{~km} / \mathrm{h} vR=4 km/h,
and the speed of the boat is v B = 10 k m / h v_{B}=10 \mathrm{~km} / \mathrm{h} vB=10 km/h.
##Note:
By substituting x = 1 v B − v R , y = 1 v B + v R a n d x=\frac{1}{v_{B}-v_{R}}, y=\frac{1}{v_{B}+v_{R}} \mathrm{~and} x=vBvR1,y=vB+vR1 and following the same procedure, the initial system transforms into the system { 6 x − 7 y = 0.5 9 x − 14 y = 0.5 \left\{\begin{array}{l}6 x-7 y=0.5 \\ 9 x-14 y=0.5\end{array}\right. {6x7y=0.59x14y=0.5
The solution to this system is ( 1 6 , 1 14 ) \left(\frac{1}{6}, \frac{1}{14}\right) (61,141).

1.3 ReAct任务与CoT任务适用场景

两个任务有相似,有不同,应用场景区分:
CoT(Chain-of-Thought)任务

  • 静态推理链:模型在单次生成中输出完整的中间步骤,无需与外部系统交互。
  • 外部依赖:无需调用外部工具或数据源,完全依赖模型内部知识生成推理链。
  • 模型调用方式:单次调用生成完整推理链。
  • 线性结构:仅包含“推理”环节,例如:
问题:小明有5个苹果,吃掉2个后买了3个,现在有多少?  
推理:5-2=3 → 3+3=6 → 答案是6。  

ReAct(Reasoning + Action)任务

  • 动态交互循环:模型交替执行“推理(Reasoning)”和“行动(Action)”,并与外部环境(如API、数据库、工具)交互。
  • 外部依赖:依赖外部工具(如计算器、搜索引擎、API)执行行动,并基于返回结果调整后续推理
  • 模型调用方式:可能需要多次调用模型(如每次行动后生成新的推理步骤),或通过单次调用生成包含交互指令的文本(由外部系统解析执行)
  • 循环结构:包含“思考→行动→观察”的迭代过程,例如:
问题:上海今日天气如何?适合户外跑步吗?  
思考:需要先获取上海当前天气数据。  
行动:调用天气API查询上海实时温度、湿度、降水概率。  
观察:上海今日晴,温度25℃,湿度60%,降水概率0%。  
推理:天气条件适宜跑步 → 答案是适合。  

选择建议与适用范围

维度CoTReAct
是否需要工具是(依赖API、数据库等)
问题开放性封闭式(答案确定)开放式(需动态数据)
延迟要求低(单次生成)较高(需多次交互)
典型任务数学题、逻辑推理实时咨询、工具调用、复杂决策

2 AI推理方向:deepseek与deepmind的两条路线的差异

2.1 PRM与ORM的两大学派分支的差异

PRM(过程奖励模型)与ORM(结果奖励模型)的核心差异在于奖励信号的密度与反馈时机,这导致了两者在训练效率、适用场景和实现成本上的显著区别。以下是具体对比:

维度PRM(DeepMind路线)ORM(DeepSeek路线)
奖励粒度对推理过程的每一步骤进行细粒度打分(如数学题的每一步计算、代码生成的每一行逻辑)。仅对最终结果整体打分(如答案是否正确、代码是否通过测试)。
信号密度密集反馈,每一步均有奖励信号,帮助模型及时修正错误。稀疏反馈,仅在最终结果处提供信号,模型需自行回溯错误来源。
适用场景复杂推理任务(数学解题、代码生成、逻辑规划),需多步推理且中间步骤对结果影响大。结果明确且可快速验证的任务(文本分类、简单生成任务),或中间步骤难以量化评估的场景。
数据成本需标注中间步骤的正确性(人工或LLM-as-judge),标注成本高且易引入噪音。仅需标注最终结果对错,数据获取成本低。
训练效率初期收敛慢(需协调多步奖励),但长期上限高;适合需高精度推理的场景。初期收敛快,但易陷入局部最优(如“蒙对答案”却过程错误);适合简单任务或资源有限的情况。
技术挑战需设计可靠的中间步骤评估机制(如MATH-SHEPHERD的自动标注),易受后续推理质量干扰(错误传播)。依赖最终结果的明确性,难以处理模糊或多解问题(如开放式创作)。
典型应用OpenAI O1的“长思考”模式、数学解题(每一步验算)、代码生成(逐行逻辑检查)。文本偏好对齐(如安全过滤)、拒绝采样(选择最高分结果)、简单分类任务。

PRM优势

  • 错误定位:能精准识别推理链中的错误步骤,避免“结果正确但过程错误”的隐患(如数学题蒙对答案)。
  • 泛化性:通过密集反馈提升模型对复杂任务的分解能力,增强多步推理的鲁棒性。
  • 上限提升:在Let’s Verify Step by Step等研究中,PRM相比ORM可将准确率提升10-20%。

PRM劣势

  • 标注成本高:人工标注中间步骤昂贵,自动标注(如MC补全)依赖高质量生成模型,易引入噪音。
  • 训练复杂度:需协调多步奖励信号,易出现“局部最优陷阱”(如模型为追求单步高分而偏离整体目标)。
  • 推理延迟:结合搜索算法(如MCTS)时,计算开销大幅增加。

ORM优势

  • 低成本:仅需结果标注,适合数据匮乏场景(如小规模人工标注或用户隐式反馈)。
  • 易扩展:可直接复用传统RL的稀疏奖励框架(如AlphaGo的胜负奖励)。
  • 稳定性:对中间过程不敏感,适合结果驱动型任务(如文本生成的整体流畅度评估)。

ORM劣势

  • 过拟合风险:模型可能学会“作弊”以优化最终指标(如代码生成通过测试但逻辑混乱)。
  • 反馈延迟:错误需到最终步骤才能被惩罚,导致训练效率低下(尤其对长推理任务)。
  • 可解释性差:无法诊断错误来源,难以迭代优化模型能力。

2.2 DeepSeek-R1的两阶段训练概述

Rule-based reward指基于预设规则自动计算的奖励,无需人工标注,常见类型包括:

  • 答案正确性:数学题数值匹配、代码执行结果正确(如LeetCode单元测试通过)。
  • 格式规范性:输出是否遵循指定模板(如与分段、Markdown语法)。
  • 语言一致性:是否混用中英文、逻辑连接词使用合理性(参考R1-Zero阶段的语言混杂惩罚)。
  • 过程完整性:推理步骤长度、是否包含验证环节(如“Double-check: 重新计算后答案应为0.5”)。

DeepSeek的step1和step2并非简单的时间分割,而是能力解耦与渐进增强的过程:

阶段Step1(推理优先)Step2(综合优化)
核心目标专注提升推理能力,通过强化学习最大化rule-based reward(如数学正确率)。在保持推理能力基础上,优化可读性、格式、多任务泛化,融合多种reward信号。
数据使用完全依赖程序合成或规则生成的数据(如自动构造数学题),无需人工标注。引入数千条人工筛选的冷启动数据(含长思维链),结合拒绝采样产生的优质样本。
奖励组合单一rule-based reward(如答案正确性+步骤长度)。混合rule-based reward(格式检查) + 模型打分(语言流畅度) + 人工偏好对齐。
关键技术纯强化学习(GRPO),允许输出格式混乱以探索更优推理路径。监督微调(SFT)修正格式,拒绝采样筛选高质量答案,局部再强化学习微调。

Step1训练后的模型(如R1-Zero)作为Step2的初始化参数,通过以下方式实现能力迁移:

  • 参数继承:保留已习得的推理能力(神经网络权重),仅新增可读性相关的embedding层微调。
  • 课程学习:在Step2初期使用高温度采样(鼓励探索),逐步降低温度以稳定格式。
  • 奖励重塑:在原有正确性奖励基础上,逐步增加格式奖励的权重(参考技术报告中语言一致性奖励从0.1到0.3的渐变)。

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

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

相关文章

BeginInvoke和Invoke的使用时机

在 WinForms 中&#xff0c;Control.BeginInvoke 和 Control.Invoke 都用于在 UI 线程上执行代码&#xff0c;但它们的核心区别在于 阻塞行为 和 线程调度方式。以下是 BeginInvoke 相比 Invoke 的主要优势&#xff1a; 1. 非阻塞调用 Invoke&#xff08;同步调用&#xff09;&…

大语言模型实践——基于现有API的二次开发

基于现有的API平台做一些实用的AI小应用。 API服务商&#xff1a;阿里云百炼 云服务器&#xff1a;阿里云&#xff08;2核2GB&#xff09; 部署框架&#xff1a;gradio 调用框架&#xff1a;openai 语言&#xff1a;Python &#xff08;注&#xff1a;若搭建网站或API接口…

STM32 RTC 实时时钟说明

目录 背景 RTC(实时时钟)和后备寄存器 32.768HZ 如何产生1S定时 RTC配置程序 第一次上电RTC配置 第1步、启用备用寄存器外设时钟和PWR外设时钟 第2步、使能RTC和备份寄存器访问 第3步、备份寄存器初始化 第4步、开启LSE 第5步、等待LSE启动后稳定状态 第6步、配置LSE为…

Prometheus监控系列 | blackbox_exporter配置实战

Prometheus监控系列 | blackbox_exporter配置实战 1. blackbox简介2. blackbox_exporter部署2.1. 下载安装包2.2. 配置启动文件3. blackbox_exporter配置文件详解3.1. HTTP监控3.2. TCP监控3.3. ICMP监控4. 监控域名SSL证书的到期时间5. 配置Prometheus配置文件6. Grafana监控展…

Node.js 中实现多任务下载的并发控制策略

1、背景与需求 在实际开发中&#xff0c;我们常常需要从多个源下载文件&#xff0c;例如从多个服务器下载图片、视频或音频文件。如果不加以控制&#xff0c;同时发起过多的下载任务可能会导致服务器过载&#xff0c;甚至引发网络拥堵。因此&#xff0c;合理控制并发数量是实现…

HTML应用指南:利用POST请求获取接入比亚迪业态的充电桩位置信息

在新能源汽车快速发展的今天,充电桩的分布和可用性成为了影响用户体验的关键因素之一。比亚迪作为全球领先的新能源汽车制造商,不仅在车辆制造方面取得了卓越成就,也在充电基础设施建设上投入了大量资源。为了帮助用户更方便地找到比亚迪充电桩的位置,本篇文章,我们将探究…

【经验分享】Linux 系统安装后内核参数优化

在 Linux 系统安装后&#xff0c;进行内核优化有助于提升系统的性能、稳定性和安全性。以下是一些常见的内核优化操作&#xff1a; 修改/etc/sysctl.conf 文件 执行sysctl -p使配置生效。 kernel.shmmax 135185569792 kernel.shmall 4294967296 fs.aio-max-nr 3145728 fs.fi…

【2024 CSDN博客之星】技术洞察类:从DeepSeek-V3的成功,看MoE混合专家网络对深度学习算法领域的影响(MoE代码级实战)

目录 一、引言 1.1 本篇文章侧重点 1.2 技术洞察—MoE&#xff08;Mixture-of-Experts&#xff0c;混合专家网络&#xff09; 二、MoE&#xff08;Mixture-of-Experts&#xff0c;混合专家网络&#xff09; 2.1 技术原理 2.2 技术优缺点 2.3 业务代码实践 2.3.1 业务场…

防火墙是什么?详解网络安全的关键守护者

当今信息化时代&#xff0c;企业和个人在享受数字生活带来的便利时&#xff0c;也不可避免地面对各种潜在的风险。防火墙作为网络安全体系中的核心组件&#xff0c;就像一道牢不可破的防线&#xff0c;保护着我们的数据和隐私不受外界威胁的侵害。那么防火墙是什么&#xff1f;…

Windows系统下设置Vivado默认版本:让工程文件按需打开

在FPGA开发过程中&#xff0c;我们常常需要在一台电脑上安装多个不同版本的Vivado软件&#xff0c;以满足不同项目的需求。然而&#xff0c;当双击打开一个Vivado工程文件&#xff08;.xpr&#xff09;时&#xff0c;系统默认会调用一个固定的版本&#xff0c;这可能并不是我们…

DeepSeek模型架构及优化内容

DeepSeek v1版本 模型结构 DeepSeek LLM基本上遵循LLaMA的设计&#xff1a; 采⽤Pre-Norm结构&#xff0c;并使⽤RMSNorm函数. 利⽤SwiGLU作为Feed-Forward Network&#xff08;FFN&#xff09;的激活函数&#xff0c;中间层维度为8/3. 去除绝对位置编码&#xff0c;采⽤了…

蓝桥杯---N字形变换(leetcode第6题)题解

文章目录 1.问题重述2.例子分析3.思路讲解4.代码分析 1.问题重述 这个题目可以是Z字形变换&#xff0c;也可以叫做N字形变换&#xff1a; 给定我们一串字符&#xff0c;我们需要把这串字符按照先往下写&#xff0c;再往右上方去写&#xff0c;再往下去写&#xff0c;再往右上…

vscode无法ssh连接远程机器解决方案

远程服务器配置问题 原因&#xff1a;远程服务器的 SSH 服务配置可能禁止了 TCP 端口转发功能&#xff0c;或者 VS Code Server 在远程服务器上崩溃。 解决办法 检查 SSH 服务配置&#xff1a;登录到远程服务器&#xff0c;打开 /etc/ssh/sshd_config 文件&#xff0c;确保以下…

LogicFlow自定义节点:矩形、HTML(vue3)

效果&#xff1a; LogicFlow 内部是基于MVVM模式进行开发的&#xff0c;分别使用preact和mobx来处理 view 和 model&#xff0c;所以当我们自定义节点的时候&#xff0c;需要为这个节点定义view和model。 参考官方文档&#xff1a;节点 | LogicFlow 1、自定义矩形节点 custo…

19.3 连接数据库

版权声明&#xff1a;本文为博主原创文章&#xff0c;转载请在显著位置标明本文出处以及作者网名&#xff0c;未经作者允许不得用于商业目的。 ​​​​​​​需要北风数据库的请留言自己的信箱。 连接数据库使用OleDbConnection&#xff08;数据连接&#xff09;类&#xff…

19.2 C#数据库操作概览

版权声明&#xff1a;本文为博主原创文章&#xff0c;转载请在显著位置标明本文出处以及作者网名&#xff0c;未经作者允许不得用于商业目的。 需要北风数据库的请留言自己的信箱。 C#对数据的处理主要集中在System.Data命名空间。 对数据操作会使用到以下几个类&#xff1a…

YOLOv11实时目标检测 | 摄像头视频图片文件检测

在上篇文章中YOLO11环境部署 || 从检测到训练https://blog.csdn.net/2301_79442295/article/details/145414103#comments_36164492&#xff0c;我们详细探讨了YOLO11的部署以及推理训练&#xff0c;但是评论区的观众老爷就说了&#xff1a;“博主博主&#xff0c;你这个只能推理…

JavaEE架构

一.架构选型 1.VM架构 VM架构通常指的是虚拟机&#xff08;Virtual Machine&#xff09;的架构。虚拟机是一种软件实现的计算机系统&#xff0c;它模拟了物理计算机的功能&#xff0c;允许在单一物理硬件上运行多个操作系统实例。虚拟机架构主要包括以下几个关键组件&#xff…

[笔记] 汇编杂记(持续更新)

文章目录 前言举例解释函数的序言函数的调用栈数据的传递 总结 前言 举例解释 // Type your code here, or load an example. int square(int num) {return num * num; }int sub(int num1, int num2) {return num1 - num2; }int add(int num1, int num2) {return num1 num2;…

如何在Linux中设置定时任务(cron)

在Linux系统中&#xff0c;定时任务是自动执行任务的一种非常方便的方式&#xff0c;常常用于定期备份数据、更新系统或清理日志文件等操作。cron是Linux下最常用的定时任务管理工具&#xff0c;它允许用户根据设定的时间间隔自动执行脚本和命令。在本文中&#xff0c;我们将详…