论文源地址:https://arxiv.org/pdf/2402.03300
强化学习(RL)真的能让大模型学会它不懂的数学题吗?DeepSeekMath 的实验数据揭示了一个残酷的真相:RL 显著提升了 Maj@K(鲁棒性),却对 Pass@1(能力边界)几乎无能为力。这说明当前的 RL 流水线更多是在做“分布锐化”(Distribution Sharpening),而非注入新知识。
本文以 DeepSeekMath 为切入点,剖析其背后的数据工程玄机(为什么 ArXiv 数据反而无效?),并基于 GRPO 算法探讨 LLM 强化学习的真实机理:在一个封闭的题库里“内卷”,我们究竟得到的是智能的提升,还是仅仅是对齐了答案的分布?
很高兴在这个圣诞节和大家一起探讨这篇非常有分量的论文《DeepSeekMath: Pushing the Limits of Mathematical Reasoning in Open Language Models》
第一阶段:DeepSeekMath 的核心逻辑架构
这篇论文如果去掉所有 benchmark 的吹嘘,剩下的干货可以归纳为三个公式化的结论:
1. 初始化策略:Code > General Text
结论: 做数学推理模型,不要从通用语言模型(General LLM)开始训练,要从代码模型(Code LLM)开始训练 。 原理: 论文通过消融实验发现,代码训练激发的逻辑推理能力可以迁移到数学任务上。即使是两阶段训练(先 Code 后 Math),也比混合训练或纯 Math 训练效果好 。
这验证了 Code 和 Math 在潜空间(Latent Space)表征上的高度重叠性——都是形式化语言、强逻辑依赖。
2. 数据工程:Iterative FastText Pipeline
结论: 开源的 Common Crawl (CC) 中蕴含的数学知识远超我们的想象,甚至比 arXiv 更有用,但需要极高精度的过滤 。 方法: 他们没有只用简单的正则过滤,而是搞了一个“迭代式”的数据挖掘流水线(Iterative Pipeline)。
-
Seed: OpenWebMath 做种子。
-
Expansion: 训练 FastText 模型召回 CC 网页 -> 标注 -> 发现新域名 -> 补充 Seed -> 重新训练 FastText。
-
Result: 经过4轮迭代,搞到了 120B Token。
-
反直觉发现: 论文声称 arXiv 论文数据对提升数学推理能力几乎无效 。这是一个非常反直觉且值得怀疑的结论(我们稍后详细讨论,因为这可能涉及数据分布差异问题)。
3. 强化学习:GRPO
痛点: 传统的 PPO (Proximal Policy Optimization) 非常吃显存。因为它需要维护一个与 Policy Model 等大的 Value Model (Critic),仅仅为了计算 Advantage (GAE) 。
GRPO 的核心洞察: 如果我们对同一个 Prompt 采样一组(Group)输出,能不能直接用这组输出的相对好坏来代替 Value Model 的基准预测?
公式预览:
DeepSeek 提出,不再训练 Critic,而是采样 个输出
,计算它们的 Reward 平均值作为 Baseline
Advantage 直接由组内归一化得到:
深度解析:GRPO (Group Relative Policy Optimization)
1. PPO的缺点
在 LLM 的 RLHF/RLAIF 中,PPO 的显存占用是巨大的。
标准 PPO 包含:
-
Policy Model (
): 你要训练的模型。
-
Reference Model (
): 用于计算 KL 散度,防止跑偏(通常冻结)。
-
Reward Model (
): 给输出打分。
-
Value Model (
): (最占资源的累赘) 预测当前状态的期望收益,用于计算 GAE。
Value Model 通常和 Policy Model 一样大。对于 70B 的模型,这就意味着你需要双倍的显存,或者极其复杂的卸载策略。
2. GRPO 的数学优点
请看论文中的 Figure 4 。
GRPO 极其激进地砍掉了 Value Model。它的逻辑如下:
1.Group Sampling: 对于每个 Question ,从旧策略
中采样
个输出
。
2.Relative Advantage: 它假设这 个输出已经代表了当前策略在当前状态下的分布。因此,这组输出的平均奖励就可以作为 Baseline。 如果一个输出
的奖励
高于组平均值,它的 Advantage 就是正的;反之则是负的。
(注:论文中支持 Outcome Supervision 和 Process Supervision,这里以 Outcome 为例)
3.KL Divergence: 传统的 PPO 把 KL 散度作为 Reward 的一部分扣除 ()。 GRPO 稍微改了一下,把 KL 散度直接加在 Loss 函数里作为正则项 。
3. 为什么重要?
资源效率: 没有 Value Model,训练大模型时的显存需求大幅下降 。这意味着你可以用同样的资源训练更大的模型,或者增大 Batch Size,或者增大 Group Size (G)。
方差缩减: 通过 Group Sampling,GRPO 实际上利用了类似于 "Leave-One-Out" 的方差缩减技巧(和 RLOO 很像)。这种相对优势的计算通常比训练一个尚未收敛的 Critic 更稳定。
大家需要注意论文中几个微妙的数据点,这也可能就是 RL 的真实局限性:
Pass@1 vs Maj@K 请看 Figure 7 。 论文明确指出:"RL enhances Maj@K but not Pass@K."
解读: 强化学习并没有显著提升模型解决“它原本不会做的问题”的能力(Pass@1 没怎么涨)。RL 提升的是鲁棒性——让模型在多次采样中更容易输出它原本就能做对的那个答案(Maj@K 涨了)。
深层含义: 这暗示当前的 RL (GRPO/PPO) 更多是在做 Alignment (对齐) 或 Distribution Sharpening (分布锐化),而不是真正注入了新的推理能力。这对于研究 RL+LLM 的上限很重要。
ArXiv 数据无效论 论文声称 ArXiv 数据无效 。这非常值得怀疑
可能性 A: ArXiv 的 LaTeX 格式极其复杂,清洗难度大,DeepSeek 当时没洗干净。
可能性 B: Math 题目(GSM8K/MATH)多为竞赛题,与 ArXiv 上的科研论文在分布上差异巨大(Out-of-Distribution)。
不要盲目相信“论文无用”,这很可能是 Domain Mismatch 导致的。
第二阶段:DeepSeekMath 的数据工程
Common Crawl (CC),这是全互联网的网页存档,几百 TB 的数据,里面充斥着广告、色情、新闻、代码,只有极少部分是高质量的数学内容。
目标是:把里面的数学网页全挖出来。
失败的常规做法 (Baseline)
通常我们会训练一个分类器(比如 BERT 或 FastText),给它看一些数学网页(正样本),再看一些非数学网页(负样本),训练好后去扫一遍 CC。
问题: 正样本太局限了。比如正样本里只有英文数学题,分类器就会认为“只有英文题目才是数学”,结果就会漏掉中文数学博客、或者只有公式没有文字的网页。这就是 Recall(召回率) 低的问题。
DeepSeek 的解法:迭代式“滚雪球”
DeepSeek 设计了一个4轮迭代的循环,每一轮都为了发现分类器之前“没见过”的数学网页特征。
我们可以配合这个逻辑图(基于论文 Figure 2)来看:
第一步:冷启动 (Seed)
原料: 拿现成的 OpenWebMath 数据集(高质量数学网页集合)做正样本。
动作: 随便找点 CC 网页做负样本,训练一个 FastText 分类器 。
为什么是 FastText? 因为 CC 数据量太大(400亿网页 ),BERT 跑不完,FastText 是线性模型,极其快。
结果: 用这个初代 FastText 扫一遍 CC,把看着像数学的网页捞出来(这是第一批数学语料)。
第二步:发现盲区
痛点: 初代分类器肯定漏了很多东西。比如它可能没见过 mathoverflow.net 这种高深论坛的网页结构,导致把它们扔了。
策略:按“域名”聚类统计
-
DeepSeek 统计了每个域名下被捞出来的网页比例。
-
假设: 如果
mathoverflow.net这个域名下有 10% 的网页被初代分类器认为是数学网页,那这个域名极大概率是一个垂直数学站点 。 -
推论: 既然是垂直站点,那这个域名下剩下 90% 被分类器扔掉的网页,大概率也是数学网页,只是分类器不认识
第三步:人工修正与增强 (Annotation & Feedback)
-
动作: 标注员去检查这些“高密度数学域名”。
-
发现: 比如发现
mathoverflow.net/questions下面的页面确实全是数学。 -
修正: 把这些之前被漏掉的 URL 对应的网页找回来,手动把它们标记为“正样本” 。
-
意义: 这时候,你的正样本库里就多了一批“初代分类器不认识”的困难样本(Hard Positives)。
第四步:闭环迭代 (Loop)
-
动作: 把新发现的困难样本加入训练集,重新训练 FastText 。
-
效果: 新的分类器学会了更复杂的数学网页特征。再回去扫 Common Crawl,就能捞出更多东西了。
-
终止: 循环了 4 次后,发现第 4 次捞出来的东西和第 3 次差不多(98% 重合),说明能挖的都挖完了,停止 。
为什么这个设计很重要?
-
数据分布的探索 (Exploration): 这里的“按域名扩展”本质上是一种基于元数据(Metadata)的探索策略。如果你只基于 Content(网页内容)做分类,你会陷入局部最优;引入 Domain(网站结构)这个额外维度,帮打破了局部最优。
-
Weak-to-Strong (弱监督增强): FastText 是一个很弱的模型(Weak Learner)。但通过这种数据迭代清洗(Data Iteration),你可以用弱模型构建出比直接用强模型(但数据差)更好的结果。所以这也是前沿的研究点,就是觉得其实模型参数实际上已经非常够用了,是数据不够用。
第三阶段:统一范式
论文在 Section 5.2.1 和 Appendix A.1 试图做一件野心很大的事:用一个统一的梯度公式,把 SFT、RFT、DPO、PPO 和 GRPO 全部囊括进去。
1. “大一统”公式 (The Master Formula)
论文提出,无论你用什么微调方法,其参数 的更新梯度都可以写成如下形式 :
这个公式看似简单(就是标准的 Policy Gradient 形式),但它把所有算法拆解成了三个核心变量的组合
-
Data Source (
): 训练数据
从哪来?
-
Reward Function (
): 谁来评价好坏?(是规则 Rule 还是模型 Model?)
-
Gradient Coefficient (GC): 奖励信号如何转化为梯度权重?(这是算法的核心差异)
2. 五大算法的本质差异
基于这个范式,我们可以把主流算法放在手术台上解剖(对应论文 Table 10 ):
A. SFT (Supervised Fine-Tuning)
-
Data Source: 离线固定数据集 (
).
-
GC: 1.
-
SFT 是“盲信”的。只要在数据集里,GC 就是 1,模型必须无条件提高其概率。这解释了为什么 SFT 容易过拟合(Overfitting)和出现幻觉(Hallucination)——因为它不区分数据的质量,也没有负反馈机制。
B. RFT (Rejection Sampling Fine-Tuning)
-
Data Source: 离线采样 (
).
-
GC:
.
-
这是一个二值滤波器。做对了 GC=1,做错了 GC=0(甚至不参与计算)。它比 SFT 强在它引入了“筛选”,但它依然是离线的。
C. DPO (Direct Preference Optimization)
-
Data Source: 离线数据集 (
).
-
GC: 隐式推导.
-
很多人觉得 DPO 不是 RL,但在 DeepSeek 的视角下,DPO 只是一个GC 被特定的闭式解锁死的 RL。它的局限性在于 Data Source 是静态的,缺乏探索(Exploration)。
D. PPO (Proximal Policy Optimization)
-
Data Source: 在线实时采样 (
).
-
GC:
(Advantage).
-
PPO 的精髓在于
。它不仅看 Result,还看 Baseline。如果
是负的,GC 就是负的,模型会被惩罚。这是真正的强化学习。
E. GRPO (Group Relative Policy Optimization)
-
Data Source: 在线实时采样 (
).
-
GC:
(Group Relative Advantage).
-
本质: 它的 GC 计算不需要 Critic 模型,而是通过组内归一化实现:
| 方法 | Data Source (数据源) | Reward Type | Gradient Coefficient (GC) | 你的 PhD 视角解读 |
| SFT | (静态数据集) | N/A | 1 | 无论好坏,无脑模仿。 |
| RFT | (旧模型离线采样) | Rule (0/1) | 0 或 1 | 简单的拒绝采样,只学对的,不理错的。 |
| Online RFT | (在线实时采样) | Rule (0/1) | 0 或 1 | 在线版的 RFT。好处是数据分布随模型漂移(On-Policy)。 |
| PPO | (在线实时采样) | Model (连续值) | Advantage ($A_t$) | 引入 Critic,用 Advantage 加权。既学好的(正 A),也抑制坏的(负 A)。 |
| GRPO | (在线实时采样) | Model (连续值) | Group Advantage | PPO 的去 Critic 版。利用 Group 内的相对优劣作为 Advantage。 |
| DPO | (静态数据集) | Implicit | (隐式推导) | 离线算法。虽然好用,但受限于静态数据的分布。 |
3. 关键洞察:为什么 Online RFT 吊打 Offline RFT?
为了验证“Data Source”的重要性,论文做了一个漂亮的消融实验(Figure 5 ):
-
对比: RFT (用旧模型采样) vs Online RFT (用正在训练的模型实时采样)。
-
结果: 训练初期两者差不多,但随着步数增加,Online RFT 显著优于 RFT 。
这就是 RL 中经典的 Distribution Shift (分布漂移) 问题。
-
Offline: 当模型变强后,旧模型采样的样本对它来说太简单了(Easy Positives),或者分布已经偏离,产生的梯度信号充满了噪声。
-
Online: 模型始终在自己的探索边界 (Exploration Frontier) 上学习。它不仅学到了“什么是对的”,更重要的是通过生成错误样本(在 Online RFT 中会被过滤掉,但在 GRPO 中会被赋予负分),它隐式地学到了“什么是错的”。
基于这个统一范式,DeepSeekMath 指出了学术界可以发力的方向 :
1数据源的革新 (Data Source):
目前的 RL (包括 GRPO) 还是只用了 SFT 的 Prompt ()。
Idea: 如果我们让 也动起来呢?比如让模型自己提出更难的问题(Self-instruct / Curriculum Learning),或者用 Tree-Search (ToT) 生成更高质量的轨迹作为 Data Source 10。这能解决“Maj@K 提升但 Pass@1 不提升”的瓶颈。
2梯度系数的鲁棒性 (Robust GC): 目前的 GC 极度依赖 Reward Model 的打分。如果 Reward Model 被 hack 了(Reward Hacking),GC 就会把模型带沟里去。
Idea: 探索 Weak-to-Strong 的泛化。如果我们的 Reward Model 只有 7B 的能力,如何通过改进 GC 的计算方式(例如引入不确定性估计 ),去指导一个 70B 的模型变得更强?
思考
今天的论文就到这里结束了,首先祝大家圣诞节快乐,其次是自己对深度学习和强化学习的一点理解,其实到现在为止,我依然认为,在大模型的强化学习中:一开始的深度学习预训练,和人一样,是一个产生神经元链接的开始,而强化学习仅仅是加粗这根神经元,没有学到新的东西。
为什么现在的 RL 只能“加粗”? 难道 RL 不能像 AlphaGo 那样创造新策略(第37手)吗?
数据源的封闭性: DeepSeekMath 的 RL 训练数据仅仅是 SFT 阶段的问题集 ()
采样的局限性: 也就是用了简单的 Nucleus Sampling
我们没有去外面找新题,也没有让老师教新课。我们只是把期中考试(SFT)的卷子发下去,把标准答案撕了,让学生一遍又一遍地重做这些题,做得好的就加分,仅此而已。
AlphaGo 的不同点: AlphaGo 有一个完美的环境模拟器(围棋规则)。它可以做 MCTS(蒙特卡洛树搜索),去探索那些人类棋谱里从来没出现过的状态。LLM 缺乏这样一个完美的 Verifier 和 Simulator。
RL 的真正价值可能在于“逻辑缝合”虽然 RL 没法注入新的“知识性知识”(比如它不会通过 RL 突然知道 2025 年谁是美国总统),但它可能注入了过程性知识。

被折叠的 条评论
为什么被折叠?



