文章目录
- 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} vB−vR, 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=vB−vR24+vB+vR28t+0.5=vB−vR30+vB+vR21t−0.5=vB−vR15+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=vB−vR3,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+3yt−0.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+4y−0.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. {2x−y=0.53x−2y=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 vB−vR3=0.5,
hence, v B − v R = 6 a n d v_{B}-v_{R}=6 \mathrm{~and} vB−vR=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=vB−vR1,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. {6x−7y=0.59x−14y=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%。
推理:天气条件适宜跑步 → 答案是适合。
选择建议与适用范围
维度 | CoT | ReAct |
---|---|---|
是否需要工具 | 否 | 是(依赖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的渐变)。