DeepSeekMath论文中后训练统一视角(Unified Paradigm)解析

news/2025/2/23 14:15:17

以下是一篇简单的博客,用来介绍论文 DeepSeekMath: Pushing the Limits of Mathematical Reasoning in Open Language Models(特别是其第 5.2.1 节 “Towards to a Unified Paradigm”)中提到的统一强化学习范式。希望能帮助大家更系统地理解这些后训练(Alignment / 强化学习)方法,以及它们之间的共性与区别。


引言

近年来,大语言模型(Large Language Models, LLMs)已经在自然语言处理、代码生成、数学推理等领域取得了长足的进步。虽然基础模型(Base Model)可通过大规模数据自监督学习获得“通用能力”,但在许多高要求任务(如复杂数学推理、事实问答、对话对齐等)上,我们往往需要进一步做 监督微调(SFT)或者 强化学习式的后训练。这些后训练方法会让模型更好地对齐人类需求、追求高质量输出,从而提高模型在多步推理、回答准确度、对话安全性等方面的表现。

在大语言模型的后训练中,目前最常见的几种思路包括:

  • SFT(Supervised Fine-tuning)
  • RFT(Rejection Sampling Fine-tuning)
  • DPO(Direct Preference Optimization)
  • PPO(Proximal Policy Optimization)
  • GRPO(Group Relative Policy Optimization)

它们表面看上去有些不同,比如有的基于对错规则、有的基于人类偏好、有的需要单独训练价值函数、有的需要对答案进行对比等等。然而,DeepSeekMath 一文在其第 5.2.1 小节 “Towards to a Unified Paradigm” 中提出了一个 统一视角(Unified Paradigm) 来看待这些方法:所有后训练策略都可以在一个统一的公式框架下描述,主要区别在于 “数据来源(Data Source)”、“奖励函数(Reward Function)” 和 “梯度系数(Gradient Coefficient / Advantage)” 的计算方式。

接下来我们就从这三个要素出发,逐一进行更详细的阐述。


一、统一视角:公式与三大要素

论文里给出的一个关键公式是,所有方法都可写作:

∇ θ J ( θ )    =    E ( q , o ) ∼ D [ ∑ t = 1 ∣ o ∣ Gradient Coefficient ( q , o , t )    ∇ θ    log ⁡ π θ ( o t ∣ q , o < t ) ] \nabla_{\theta} J(\theta) \;=\; \mathbb{E}_{(q, o) \sim \mathcal{D}} \biggl[ \sum_{t=1}^{|o|} \text{Gradient Coefficient}(q, o, t)\; \nabla_{\theta}\;\log \pi_{\theta}(o_t \mid q, o_{<t}) \biggr] θJ(θ)=E(q,o)D[t=1oGradient Coefficient(q,o,t)θlogπθ(otq,o<t)]

这里:

  • ( θ \theta θ) 是我们要训练的策略模型(Policy Model)的参数;
  • ( q q q) 表示问题或输入(prompt),( o o o) 表示模型对问题的回答(输出序列);
  • ( π θ ( o t ∣ q , o < t ) \pi_{\theta}(o_t \mid q, o_{<t}) πθ(otq,o<t)) 表示我们训练的模型对下一个 token ( o t o_t ot) 的条件概率;
  • Data Source ( D \mathcal{D} D) 决定了训练时从哪里采样 ( ( q , o ) (q, o) (q,o)) 对;
  • Reward Function 用来给回答打分;
  • Gradient Coefficient(梯度系数)概括了如何根据奖励信号来给不同回答、不同时刻的 token 施加正向或负向的梯度更新。

关于log求梯度问题可以参考笔者的另一篇博客:在后训练(Post Training)方法中,“对 log π 求梯度” 的含义

在不同方法中:

  • 数据源可能是“离线”固定数据,或是“在线”不断从最新模型策略里采集;
  • 奖励函数可能是简单的对错规则,也可能是单独训练的奖励模型(如通过人类偏好数据进行训练的 RM);
  • 最后,具体的梯度系数计算方法(Advantage 估计)也有所不同,这就衍生出 SFT、RFT、DPO、PPOGRPO 等多种实现。

接下来我们分三个部分来介绍“数据源”、“奖励函数”、“算法/梯度系数”在典型方法中的差异。


二、数据源(Data Source):离线 vs. 在线

1. 离线采样(Offline Sampling)

  • SFT(Supervised Fine-tuning)
    最常见的思路:直接用标注好的(问题,答案)对训练。数据一般来自人类标注或高质量语料。这里数据是一次性提供的,模型不需要再和环境交互、也不需要实时采样。
  • RFT(Rejection Sampling Fine-tuning)
    先从一个已训练好的 SFT 模型里离线采样出多条回答,然后用“对错规则”等进行筛选,保留正确或更好的回答,再对模型做一次监督微调。
  • DPO(Direct Preference Optimization)
    也是先离线采样,形成对比对 (better vs. worse);然后依据偏好比较进行优化。

这些方法有一个共同点:采样用的模型 不是实时更新的,而是固定在之前 SFT 的 checkpoint 上。因此它们无法持续适应模型策略的迭代变化,训练到后期时,之前采好的数据也许不能涵盖模型最新的错误或薄弱点。

2. 在线采样(Online Sampling)

  • Online RFT
    和 RFT 思路类似,只不过换成“使用当前训练中的模型策略来不断生成回答再进行筛选”,这样能让数据分布跟随模型的演化,也就能持续发现并矫正新的问题。
  • PPO(Proximal Policy Optimization) / GRPO(Group Relative Policy Optimization)
    都是强化学习思想的体现:每次训练步都要从“当前策略”那里生成回答,计算奖励,进而更新策略模型,再继续生成下一批回答……让数据始终紧贴最新的策略分布。

从实验上看,“在线采样”往往可以在后期阶段继续提升模型能力,因为它能不断修正模型此时此刻暴露出的错误或不佳回答。离线采样方法在达到一定程度之后就很难再精进。


三、奖励函数(Reward Function):Rule vs. Model

1. 规则式(Rule-based)

在一些有明确对错判定的任务上,可直接用“答案是否正确”来打分。例如在数学任务中,如果我们能够用外部的公式或计算器对回答进行检验,就可以简单地给对的回答 1 分,错的回答 0 分。

  • 优点:逻辑简单,几乎不需要额外的标注或训练 RM。
  • 缺点:只能在“答案对/错明确”的场景下适用,许多开放任务(对话、创意写作等)没有简单的对错标签。

2. 模型式(Model-based)

当没有简单规则,或者我们更希望有更细粒度的评估(比如部分正确、比较好 vs. 比较差),就可以训练一个 Reward Model(RM)。RM 通常是通过人类对多种回答进行打分或偏好比较来训练得到;之后在真正的 RL 阶段,策略模型每生成一个回答,RM 都会给出一个“奖励分数”。

  • 优点:适用更广的场景,可以捕捉细腻的好坏差异,也不局限于单一的对/错;
  • 缺点:训练和维护 RM 本身需要额外的数据与开销,RM 也会带来噪声和不确定性。

PPO__GRPO__90">四、算法(梯度系数):SFT / RFT / DPO / PPO / GRPO

算法的区别主要是:怎么利用数据(问题 + 回答)+ 奖励,来更新策略模型参数 (\theta)。也即上文所说的“梯度系数”到底如何计算。下面把几种主要方法放在一起对比:

1. SFT(Supervised Fine-tuning)

  • 数据源:人工或高质量答案;
  • 奖励:本质上没有显式的“奖励函数”,就是对正样本做对数似然最大化;
  • 梯度系数:相当于所有正样本 token 的系数全为 1,没有负样本的惩罚。
  • 公式:( ∇ θ J S F T    =    E ( q , o ) ∼ D S F T ∑ t ∇ log ⁡ π θ ( o t ) \nabla_{\theta} J_{\mathrm{SFT}} \;=\; \mathbb{E}_{(q, o) \sim D_{\mathrm{SFT}}} \sum_t \nabla \log \pi_\theta(o_t) θJSFT=E(q,o)DSFTtlogπθ(ot))

2. RFT(Rejection Sampling Fine-tuning)

  • 数据源:先从模型离线采样多个回答,然后“拒绝”错误回答,只保留对的;
  • 奖励:对的答案系数为 1,错的答案系数为 0;
  • 梯度系数:如果回答是正确,就对其做与 SFT 类似的更新;如果错的,直接跳过不训练。
  • 缺陷:对一切正确答案都给予同样的梯度增强力度,对一切错误答案完全忽视,没有区分到底“多好”或“错到什么程度”。

3. DPO(Direct Preference Optimization)

  • 数据源:离线采样到成对回答,然后有一个“better vs. worse”对比信息;
  • 奖励:可以理解为针对两条回答的偏好,倾向于提升更好回答、压制更差回答;
  • 梯度系数:基于 ( σ ( better logit − worse logit ) \sigma(\text{better logit} - \text{worse logit}) σ(better logitworse logit)) 的偏好比较做更新。

PPOProximal_Policy_Optimization_111">4. PPO(Proximal Policy Optimization)

  • 数据源:在线采样(当前策略模型);
  • 奖励:由奖励模型或其他打分模块给出;
  • 价值网络 + GAE(Generalized Advantage Estimation) 来计算每个 token 的优势(Advantage),再结合 KL 惩罚(减少策略更新过大时的训练不稳定)。
  • 梯度系数:( a d v t \mathrm{adv}_t advt),可以随回答质量上下浮动,为好回答提供更强的正反馈、为差回答提供负反馈。

GRPOGroup_Relative_Policy_Optimization_117">5. GRPO(Group Relative Policy Optimization)

  • 数据源:在线采样;
  • 奖励:同 PPO,但不需要单独训练价值函数。直接同一批次中,相同问题的一组回答互相比对,超出平均水平的回答会被强化,低于平均水平的回答被惩罚;
  • 梯度系数:基于每条回答相对于组内平均分的差值来计算 advantage,再加上对 KL 的限制项。
  • 优点:不需要占用额外显存去训练 Critic / Value Net,也能充分利用组内对比获取相对奖励;在数学场景等离散对错比较明显的任务里,也能得到不错的稳定性与收敛效果。

五、实验现象与启示

论文以及其他相关工作(如 WizardMath、Math-Shepherd 等)都表明,在数学或多步推理任务中,像 GRPO / PPO 等在线强化学习方法往往能把模型性能从原本“已经不错”的阶段再推高一截,特别在大模型的尾声对齐上很有效。这也说明了几点:

  1. 在线采样在后期更具优势
    离线采样的固定回答分布会逐渐失效,而在线方法可以持续暴露模型的新弱点并强化纠正。

  2. 奖励信号要足够精细且可靠
    对/错固然简单,但很多情况下需要更丰富的反馈;或者至少要有过程监督(Process Supervision)来区分部分中间思路对/错,而非只看最后答案。如果奖励信号质量不佳,模型依赖它反而会产生偏移或对齐失败。

  3. 梯度系数的设计影响很大
    简单的 RFT 只把正确回答都当作“一样好”——这在复杂任务中往往不足以引导最佳策略;而 PPOGRPO 那种更细腻的优势分配,可让模型往“真正优质回答”精进。

  4. 并非一定能学到新的逻辑能力
    一些实验观察到:强化学习阶段更多是“分布对齐”和“稳健性”方面的优化,有时 Pass@1 未必大幅提高,但 Maj@k 之类的指标会明显上升。也就是说,它有时候更多是在“把潜在的正确解”调到更高概率(而不一定让模型学到更多新知识)。不过在数学等场景下,如果奖励函数或过程监督足够好,还是能帮助模型内化更好的多步推理习惯。


六、未来可能的方向

论文第 5.2.3 小结中也讨论了未来如何让 RL 阶段更有效。下面提几点可能性:

  1. 数据源

    • 除了直接采样外,可以考虑更灵活的探索策略,例如树搜索(Tree-of-Thought)来发现更多可能性;
    • 在遇到 OOD(Out-of-distribution)问题时,让模型依然能暴露弱点并在线更新。
  2. 奖励函数

    • 如何让奖励模型更全面、更具泛化能力?
    • 如何在奖励函数中注入不确定度信息,避免“信错”有瑕疵的偏好数据?
    • 对于多步骤的复杂任务,如何在回答过程(Chain-of-thought)里精确地标注并奖励/惩罚每一步?
  3. 算法鲁棒性

    • 目前大多数 RL 算法都「完全相信」奖励信号,但如果奖励模型里有噪声,就可能把模型带偏;
    • 如何让算法能面对欠准确或矛盾的偏好数据时,依旧能稳健收敛?
  4. 大规模部署和推理效率

    • 在线 RL 需要反复采样、反复 forward 与 backward,算力需求很高;
    • 需要探索如何高效地利用大模型进行多轮推理、自举、自我纠错,甚至结合蒸馏技术来减轻开销。

总结

通过引入一个统一视角,我们可以将常见的后训练(强化学习)方法归结到同一个公式框架下,并关注三大关键:数据源(离线 vs. 在线)、奖励函数(规则 vs. 模型)以及算法/梯度系数(SFT、RFT、DPO、PPOGRPO 等)。这些要素的组合与差异,就解释了各方法在实践中的不同表现和适用范围。

  • 离线方法(RFT、DPO)更容易实现,但容易在后期出现瓶颈。
  • 在线方法PPOGRPO)能持续进步,但需要更大开销,也需要更好的奖励机制。
  • 规则式奖励 适合答案对错明确的场景(如数学客观题),模型式奖励(RM)适合更开放的任务,但要付出额外的数据标注和训练代价。

在实际应用中,具体选哪种方法要看任务特性、数据可用性、算力规模等因素。随着大模型在越来越多领域的崛起,如何利用好强化学习后训练来进一步对齐和优化模型表现,将是个长期的研究与工程热点。论文 DeepSeekMath 中对“数学推理 + RL”进行了详尽的探索,尤其是他们提出的 GRPO 在无价值网络、低内存占用的前提下仍能强化数学推理能力,也是一个不错的尝试范式。

如果你对后训练的理论或实践细节有更多兴趣,不妨进一步阅读原论文和相关开源代码,基于此做自己的实验与改进!


参考资料:

  1. DeepSeekMath: Pushing the Limits of Mathematical Reasoning in Open Language Models
  2. [B. Ouyang et al., Training language models to follow instructions with human feedback, NeurIPS 2022 (InstructGPT / PPO).]
  3. [Z. Deng et al., WizardMath: Empowering Mathematical Reasoning for Large Language Models, 2023 (RLHF/PPO 数学基准).]
  4. [S. Z. Wang et al., Math-Shepherd: Verify and Reinforce LLMs Step-by-Step, 2023 (Process Supervision).]
  5. Tree-of-Thought papers (Yao et al.)

后记

2025年2月22日16点23分于上海,在GPT o1大模型辅助下完成。


http://www.niftyadmin.cn/n/5863468.html

相关文章

PHP 会话(Session)实现用户登陆功能

Cookie是一种在客户端和服务器之间传递数据的机制。它是由服务器发送给客户端的小型文本文件&#xff0c;保存在客户端的浏览器中。每当浏览器向同一服务器发送请求时&#xff0c;它会自动将相关的Cookie信息包含在请求中&#xff0c;以便服务器可以使用这些信息来提供个性化的…

[漏洞篇]文件上传漏洞详解

[漏洞篇]文件上传漏洞详解 一、介绍 1. 概念 文件上传漏洞是指用户上传了一个可执行的脚本文件&#xff0c;并通过此脚本文件获得了执行服务器端命令的能力。这种攻击方式是最为直接和有效的&#xff0c;“文件上传” 本身没有问题&#xff0c;有问题的是文件上传后&#xf…

【爬虫基础】第一部分 网络通讯-编程 P3/3

上节内容回顾&#xff1a;【爬虫基础】第一部分 网络通讯 P1/3-CSDN博客 【爬虫基础】第一部分 网络通讯-Socket套接字 P2/3-CSDN博客 相关文档&#xff0c;希望互相学习&#xff0c;共同进步 风123456789&#xff5e;-CSDN博客 前言 1.知识点碎片化&#xff1a;每个网站实现…

javaEE-SpringBoot日志

一.日志的用途 平时我们使用日志,就是通过控制台打印一些信息,或者程序运行保存,查看控制台报错原因. 随着项⽬的复杂度提升, 我们对⽇志的打印也有了更⾼的需求, ⽽不仅仅是定位排查问题. ⽐如需要记录⼀些⽤⼾的操作记录(⼀些审计公司会要求), 也可能需要使⽤⽇志来记录⽤…

全链路优化:如何让单点登录认证接口并发性能翻倍?

背景 最近针对一个单点登录认证项目进行性能优化&#xff0c;在 8核 16G 环境下的认证并发能力从每秒800次提升至每秒1600次&#xff0c;性能提升一倍&#xff0c;整理此次优化过程中的相关性能优化操作总结和大家分享一下。 Nginx配置优化 在并发认证场景下&#xff0c;Ngi…

leetcode刷题记录(一百一十六)——5. 最长回文子串

&#xff08;一&#xff09;问题描述 5. 最长回文子串 - 力扣&#xff08;LeetCode&#xff09;5. 最长回文子串 - 给你一个字符串 s&#xff0c;找到 s 中最长的 回文 子串。 示例 1&#xff1a;输入&#xff1a;s "babad"输出&#xff1a;"bab"解释&am…

Docker实战-使用docker compose搭建博客

docker run 部署 创建blog网络 [rootk8s-master ~]# docker network create blog 8f533a5a1ec65eae3f98c0ae5a76014a3ab1bf3c087ad952cdc100cc7a658948 [rootk8s-master ~]# docker network ls NETWORK ID NAME DRIVER SCOPE 8f533a5a1ec6 blog bridge …

大语言模型微调的公开JSON数据

大语言模型微调的公开JSON数据 以下是一些可用于大语言模型微调的公开JSON数据及地址: EmoLLM数据集 介绍:EmoLLM是一系列能够支持理解用户、帮助用户心理健康辅导链路的心理健康大模型,其开源了数据集、微调方法、训练方法及脚本等。数据集按用处分为general和role-play两种…