DeepSeek-R1 数据增强与负采样机制调研笔记

DeepSeek-R1 数据增强与负采样机制调研笔记

调研日期:2026-09-15 资料范围:thinking/DeepSeek-R1_数据增强与负采样机制深度调研报告.docx(13 万字)。来源覆盖 R1 arXiv v1 / Nature 正式版 / 67 页补充材料 / 64 页同行评议文件、DeepSeekMath(GRPO 源头)、开源复现(open-r1、TRL、veRL、slime、OpenRLHF、ms-swift)、后续学术工作(DAPO、Dr. GRPO、Minimal-RL、NSR 等)

结论先行:R1 真正的"数据增强"是 拒绝采样(Rejection Sampling, RS)——从推理 RL 收敛检查点 Dev2 采样、按规则 + V3 生成式裁判双重过滤,产出 804,745 条 SFT 数据;真正的"负采样"发生在 GRPO 组内相对优势层面——错误响应获得负 advantage、在梯度上被压低,而全对/全错的零优势组不产生梯度、属纯算力损耗。复现断点不在算法公式而在数据配方:采样次数 K、过滤阈值、温度等参数官方从未披露。学术前沿正在改写"负梯度的净价值"这一基础问题——粗粒度负梯度有害,需向 token 级细粒度化。

1. 术语界定:R1 语境下的"数据增强"与"负采样"

大模型后训练文献中两个术语含义宽泛,直接套用会造成系统性误读。R1 官方论文与 DeepSeekMath 技术源头有明确口径。

1.1 "数据增强"在 R1 语境下的三层含义

层级 机制 数据规模 来源
第一层 冷启动 SFT 数据构造 数千条(作者明确"thousands") few-shot 提示 + 直接提示模型生成 + R1-Zero 输出收集 → 规则/格式过滤 + V3 改写 + 人工核验
第二层 拒绝采样数据生产 804,745 条(Nature SI 精确数) 推理 RL 收敛后从 Dev2 采样 → 规则 + V3 judge 双重过滤 → 对 V3-Base 重新微调
第三层 RL prompt 难度调度 — 官方未披露;DAPO 动态采样、Light-R1 离线带通等后续工作补全

三层分别对应人工设计、自我增强、在线选择,构成本报告"数据增强"侧的完整讨论域。

1.2 "负采样"在 R1 语境下的两层含义

R1 使用 GRPO(Group Relative Policy Optimization),不存在显式负样本检索:

  • 组内负优势(negative advantage):对同一 prompt 采样的 G 个响应,优势估计为 \hat{A}_i = (r_i - \text{mean}(r)) / \text{std}(r),二值奖励下错误响应获得负 advantage、在梯度上被整体惩罚 → 即"用组内错误样本做负例"
  • 零优势组(zero-advantage group)过滤:当一组响应全对或全错时优势全为零、不产生梯度,该批采样在算力上被实际丢弃 → DAPO 动态采样显式过滤的对象

2. R1 训练四阶段流水线(数据视角)

2.1 四阶段概览

\text{冷启动 SFT} \rightarrow \text{推理导向 RL} \rightarrow \text{拒绝采样 + SFT} \rightarrow \text{全场景 RL}

Nature 版为中间检查点引入正式命名:

  • Dev1:冷启动 SFT 后
  • Dev2:推理 RL 收敛后(即拒绝采样源)
  • Dev3:拒绝采样 SFT 后
  • R1:全场景 RL 后(最终发布)

2.2 关键数据流要素

阶段 输入 产出 训练目标
冷启动 SFT 数千条长 CoT 格式化基座 V3-Base → 可读性
推理 RL ~166K 可验证 prompt(数学 26K + 代码 17K + bug 修复 8K + STEM 22K + 逻辑 15K + 通用 66K + 无害性 12K) GRPO 收敛检查点 Dev2 推理能力
拒绝采样 + SFT Dev2 采样 + 规则/V3 judge 双重过滤 804,745 条 SFT(数学 395,285 + 代码 211,129 + STEM 10,124 + 逻辑 10,395 + 通用 177,812) V3-Base → 2-3 epoch SFT
全场景 RL 推理规则奖励 + 通用偏好奖励(仅末 400 步) DeepSeek-R1 全场景对齐

2.3 成本结构(Nature SI Supplementary Table 4)

项目 H800 GPU 小时 占比
R1-Zero 训练 101K 68.7%
SFT 数据创建(冷启动 + 800K 构造) 5K 3.4%
R1 主体训练(两阶段 RL) 41K 27.9%
合计 147K(约 294K,按2/GPU·小时) 100%

工程含义:在 R1 范式下,拒绝采样式数据生产的算力代价远低于 RL 训练本身,瓶颈在 RL 的采样与训练算力,而非数据制造。

3. 数据增强引擎:拒绝采样的官方机制

3.1 阶段三 800K 数据生产流程

[Dev2 检查点] → 每个 prompt 采样多条响应(K 未披露)
       ↓
       规则奖励校验(数学 sympy、代码编译器)
       ↓
       规则不可校验题目 → V3 生成式裁判(JSON 二分类)
       ↓
       可读性过滤(混合语言/长段落/代码块 → 剔除)
       ↓
[推理样本 ~60 万] ∪ [复用 V3 SFT 流水线的非推理样本 ~20 万]
       ↓
       对 V3-Base 重新微调 2-3 epoch(学习率 5×10⁻⁵ → 5×10⁻⁶ 余弦衰减)
       ↓
   [Dev3 检查点]

3.2 关键事实

  • 采样源是 Dev2 而非最终 R1:Nature 同行评议中审稿人 #2 追问后,作者明确答复"We employ the same set of 800,000 data instances for distillation… the reasoning data are generated by the R1-Dev2 model"
  • 同一份数据两用:训练 R1 自身的 800K 与蒸馏六个小模型的 800K 是同一份数据,推理轨迹产自中间检查点 Dev2
  • 从 V3-Base 重启而非 Dev2 续训:论文未解释动机,社区"干净基座、避免误差累积"说无官方出处
  • 平均输出 5,355.3 token,几乎全部为单轮:作者承认"may limit the multi-turn conversational capabilities of DeepSeek-R1"

3.3 V3 生成式裁判(judge)机制

Nature SI Listing 4 公开的提示词核心:

"You will be presented with a reasoning-related question, its corresponding reference answer, and an answer requiring evaluation. … Output the following content in JSON format, including two key: 'analysis' … 'correctness': correct/incorrect"

三个工程含义:

  1. 输入是三元组(问题 + 参考答案 + 待评答案),judge 判定标准被显式锚定在参考答案上 → 自由文本评判被压缩为可批量执行的 JSON 二分类
  2. judge 是被评判模型的"前辈"(V3 评判 R1 系轨迹),形成 DeepSeek 谱系内判别能力的反向复用
  3. 官方承认边界(SI §7.1):对开放式生成与长文写作"exhibits limited generalizability" → 写作类数据最终仍依赖人工标注

3.4 阶段三 SFT 训练配置(Nature SI §2.4.2)

参数 值
微调 epoch 2-3(v1 写死"two epochs",SI 放宽为"2-3 epochs")
学习率 5 \times 10^{-5} → 5 \times 10^{-6} 余弦衰减
最大上下文 32,768 token
batch size 128

3.5 官方未披露项(截至 Nature 版)

项 状态
采样次数 K 未知
采样温度 未知
过滤阈值(规则 + V3 judge) 未知
600K 产出率 未知
完整 800K 原始数据集 未公开(仅数据样本)
V3 judge 判分准确率、与人工一致性 未报告

4. 负采样的算法本质:GRPO 组内相对机制

4.1 GRPO 目标函数

\mathcal{J}_{\text{GRPO}}(\theta) = \mathbb{E}\left[ \frac{1}{G} \sum_{i=1}^{G} \min\left( \frac{\pi_\theta(o_i|q)}{\pi_{\theta_{\text{old}}}(o_i|q)} \hat{A}_i, \text{clip}\left( \frac{\pi_\theta(o_i|q)}{\pi_{\theta_{\text{old}}}(o_i|q)}, 1-\epsilon, 1+\epsilon \right) \hat{A}_i \right) - \beta \, D_{\text{KL}}(\pi_\theta \| \pi_{\text{ref}}) \right]

四个结构性要点:

  1. 无 critic:去掉 PPO 中与策略模型同等规模的价值函数,baseline 改为同问题下 G 个采样的平均奖励
  2. 重要性采样比率 + clip 算子:照搬 PPO,限制新旧策略单步偏移
  3. KL 直接进 loss(与 PPO 不同):用 Schulman 无偏估计量 \hat{D}_{\text{KL}} = \frac{\pi_{\text{ref}}(o_i|q)}{\pi_\theta(o_i|q)} - \log \frac{\pi_{\text{ref}}(o_i|q)}{\pi_\theta(o_i|q)} - 1,恒非负
  4. 结果监督(outcome supervision)下:组内 G 个奖励先"减均值、除标准差"归一化,再赋给该输出全部 token → 同一输出内所有 token 共享同一个 advantage

直接推论:奖励高于组均值的样本获得正 advantage、被强化;低于组均值的获得负 advantage、其 token 似然被整体压低——这就是 GRPO 语境下"负采样"的准确含义,即策略梯度意义上的负 advantage,而非对比学习中的负样本对。

4.2 二值奖励下的等价性

NeurIPS 2025《On the Effect of Negative Gradient in Group Relative Deep Reinforcement Optimization》Lemma 4.2:

二值奖励下 GRPO 执行的是"两个互斥组之间的偏好优化",以权重 \omega^+ 提升正确组似然、以 \omega^- 压低错误组似然

两层含义:

  1. GRPO 与 DPO(Direct Preference Optimization)在数学上同源,差别在于"偏好对"是策略自身采样后经规则奖励在线切分
  2. 梯度权重随题目难度自适应:某题正确率 \rho 很低时,少数正确样本获得极大的正 advantage(稀有正确被重奖)

4.3 DeepSeekMath vs R1 超参对比

参数 DeepSeekMath R1(Nature 版 Methods)
学习率 — 1 \times 10^{-6}
KL 系数 \beta 0.04 0.001
每题采样数 G 64 16
rollout 温度 — 1.0
batch size 1024 512 条轨迹(32 个问题 × 16)
clip 比率 \epsilon — 0.2(阶段一)/ 第二阶段降温
KL 策略 "每次探索后只更新一次策略" 单次 rollout 生成 16 \times 32 条输出、随机切成 16 个 minibatch、只训一个内层 epoch
参考模型刷新 — 每 400 步用最新策略替换参考模型

R1 较 DeepSeekMath 的关键收紧:KL 系数从 0.04 降到 0.001、组大小从 64 降到 16,配合 minibatch 复用与参考模型定期刷新,共同构成大规模 GRPO 训练的稳定化配方。

4.4 DeepSeekMath 统一范式

任何后训练方法对参数 \theta 的梯度都可写为:

\nabla_\theta \mathcal{J} = \mathbb{E}\left[ \underbrace{\nabla_\theta \log P(\text{data}|\theta)}_{\text{数据源}} \cdot \underbrace{r}_{\text{奖励函数}} \cdot \underbrace{\nabla_\theta \log P(\text{data}|\theta)}_{\text{梯度系数 GC}} \right]

按此范式,SFT、RFT、Online RFT、DPO、PPO、GRPO 的差别被完全还原为"数据从哪采、奖励由谁给、梯度系数如何随奖励变化"三个维度。

方法 数据源 奖励函数 梯度系数
SFT 人工/离线 — 恒为 1
RFT / Online RFT 离线 / 在线采样 规则 0/1 指示函数(错误样本梯度为零)
DPO 离线偏好对 — 正负样本对似然比
PPO 在线采样 价值模型 连续,符号由 advantage 决定
GRPO 同 prompt 多采样 组内均值基线 \hat{A}_i(带符号),KL 修正

官方原文逐字:

"GRPO uniquely adjusts its gradient coefficient based on the reward value provided by the reward model. This allows for differential reinforcement and penalization of responses according to their varying magnitudes. In contrast, Online RFT lacks this feature; it does not penalize incorrect responses and uniformly reinforces all responses with correct answers at the same level of intensity. As demonstrated in Figure 5, GRPO surpasses online RFT, thereby highlighting the efficiency of altering positive and negative gradient coefficients."

注意:该消融仅由 DeepSeekMath 1.3B 模型 Figure 5 给出,正文无精确终值,证据强度有限。

4.5 RFT 技术谱系

\text{STaR (NeurIPS'22)} \rightarrow \text{RAFT (2023)} \rightarrow \text{ReST (2023)} \rightarrow \text{Yuan RFT (arXiv:2308.01825)} \rightarrow \text{DeepSeekMath (2024-02)} \rightarrow \text{R1 (2025-01)}

关键节点:

  • STaR:模型生成推理链,只保留最终答案正确的样本微调 → GPT-J CommonsenseQA 从 60.0% → 72.5%
  • RAFT:把"过滤"推广为"按奖励模型排序选优"
  • ReST:Grow(离线采样扩充数据集)+ Improve(按递增阈值过滤后微调)双循环
  • Yuan RFT:发现 RFT 性能由"不同推理路径数"而非增广样本数决定;k=100 时 LLaMA-7B GSM8K 从 35.9% → 49.3%
  • DeepSeekMath:把 RFT 纳入统一范式、指出"只奖不罚"的结构性缺陷、提出 GRPO
  • R1:同时继承两端——RL 阶段用 GRPO 的负梯度机制,数据阶段把拒绝采样放大为约 600K 条推理 SFT 样本的工业管线

5. 学术前沿:负样本价值之争

第 4 章已确立 GRPO 的机制事实:二值奖励下正确样本获得正梯度、错误样本获得负梯度。2025 年以来多篇论文围绕"负样本(负梯度)的净价值"给出方向不一的证据。

5.1 "GRPO≈高级拒绝采样":Minimal-RL(arXiv:2504.11343)

实验设置:Qwen2.5-Math-7B-base + LLaMA-3.2-3B-Instruct,Numina-Math ~86 万题,二元可验证奖励,每提示采样 G 个回答。

核心证据:

变种 LLaMA-3.2-3B 平均准确率
vanilla Reinforce 24.2%
RAFT++(只训正样本) 27.6%
Reinforce-Rej(剔除全对/全错) 28.5%
GRPO 28.4%

作者结论:

  • "incorrect samples are particularly harmful"——错误样本梯度方差高且具有误导性
  • Mean Zero "leads to increased KL divergence and does not improve reward"
  • std 归一化在剔除坏样本之上 "yields little additional gain"
  • 强论断:GRPO 相对 vanilla Reinforce 的主要增益来自对全错(及全对)组的隐式零梯度过滤,而非奖励归一化

熵机制:RAFT++ 前 100-200 次迭代收敛更快,随后策略熵快速塌缩、被 GRPO 反超 → 负样本价值重新定位为"maintaining exploration and preventing distributional collapse"

边界:

  • 限于数学二元结果奖励、7B/3B 中小模型、组大小 G 远小于 R1 官方 16
  • 作者自认"defining negative samples solely based on final answer correctness may be too coarse"
  • OpenReview 投稿版新增 Non-negative GRPO 与离线 RS 基线,作者将"负样本主要维持探索"软化为"在线循环是首要因素,负梯度在其上仍有增量价值"

5.2 反方向证据:负样本本身即有效

Princeton NSR(arXiv:2506.01347):

  • 仅 NSR(Negative Sample Reinforcement)"can be highly effective: it consistently improves performance over the base model across the entire Pass@k spectrum (k up to 256), often matching or surpassing PPO and GRPO"
  • 反之仅 PSR 提升 Pass@1 却因多样性下降损害高 k 表现
  • 机制:压低错误生成概率、按模型先验把概率质量重新分配给合理候选
  • 条件性:Model-Task Alignment(arXiv:2508.21188)发现 NSR 有效性依赖较强的模型-任务对齐

SPO(arXiv:2505.11595):用 RLAIF 类信号对组内质量做细分,负样本"are as effective as positive samples … in some cases even outperforming"

NGRPO(arXiv:2509.18851):向全错组注入虚拟最大奖励样本校准 advantage,使其获得均匀负 advantage,配合非对称 clip

5.3 负梯度的副作用与修正

LLD(Lazy Likelihood Displacement)研究(NeurIPS 2025,UBC/Vector):

  • 机制:对错误回答全部 token 等强度惩罚,会误伤与错误样本共享前缀或推理模式的正确 token
  • Pos Only 变体平均性能比 GRPO 低 1.3%
  • NTHR(token 级选择性惩罚)在多个规模上较 GRPO 稳定提升 0.8%-2.4%

Dr. GRPO(arXiv:2503.20783,Sea AI Lab/NUS):两类系统性偏差:

  1. 长度偏差:除以 \text{std}(r) 使"for negative advantages … longer responses are penalized less" → 错误回答越长惩罚越被稀释,变相鼓励"错得啰嗦"
  2. 难度偏差:除以组内 std 使"questions with lower standard deviations … are given higher weights" → 过易/过难的边缘题获得不成比例的权重

修正方案:移除两项归一化、以全局常数做损失聚合(已被 TRL loss_type="dr_grpo" 与 veRL 三个配置项原生支持)

争议:std 归一化价值本身处于争议中——Minimal-RL 认为无额外收益、Dr. GRPO 认为去掉更优、Lite PPO(arXiv:2508.08221)组件消融认为组均值加批级 std 归一化仍有价值。

5.4 统一图景

并置各方证据可勾勒出不矛盾但未收敛的图景:

  • 负梯度存在净价值(Pos Only 反降 1.3%、Minimal-RL 修订版承认完整 GRPO 最优、DeepSeekMath 官方消融)
  • 但价值兑现高度依赖粒度——粗粒度(整条错误回答等强度惩罚)时产生 LLD 误伤、长度与难度偏差和高方差误导梯度
  • 细粒度化(token 级选择性惩罚、组内质量区分、虚拟 advantage 注入)则让负信号持续贡献增益

工程取舍:"过滤全错组"与"利用全错组"两条路线的分野本质不在于负样本有无价值,而在于当前验证器能否对错误样本做细粒度区分:

  • 不能时 → 等强度负梯度期望为噪声,过滤更稳妥
  • 能时 → 丢弃等于放弃学习信号

6. 数据调度工程:零优势组与采样策略

6.1 零优势组问题

当 prompt 的 G 条采样全对或全错时,组内奖励全同、\hat{A}_i = 0 恒成立,对策略梯度无贡献。DAPO 论文形式化为"梯度递减"问题:

  • 随训练推进,准确率为 1 的"全对组"占比单调上升
  • 每个 batch 中真正含有效梯度的 prompt 数持续缩水
  • 梯度估计方差增大、训练信号被稀释
  • 有效 batch size 是随训练进程恶化的隐变量

社区定量分析:若单条样本通过率为 \rho,组退化的概率为 \rho^G + (1-\rho)^G;当 \rho=0.5、G=16 时退化率已达 66%。SRPO 实测训练中接近 50% 的采样组内奖励完全相同。

Skywork-OR1 补充:零优势组虽不贡献 policy loss,但仍参与 KL loss 与熵 loss 的归一化权重,会间接扰动训练稳定性。

6.2 DAPO 四件套消融链(AIME 2024 avg@32,Qwen2.5-32B Base)

起点 分数
Naive GRPO 30
+ Overlong Filtering +6
+ Clip-Higher(非对称裁剪) +6
+ Dynamic Sampling(过滤 0/1 组并补采) +8
DAPO 完整 50(仅用 50% 训练步数超过 DeepSeek-R1-Zero-Qwen-32B 的 47)

6.3 动态采样的开销争议

DAPO 立场:总训练时间不受显著影响,Figure 6 显示收敛时间甚至缩短——但论文未量化每步需多采多少 prompt。

反方证据:

  • 小米 MiMo 实测:naive 动态采样的样本浪费率 22.1%、GPU 空闲率 69.3%
  • 构建 Seamless Rollout Engine 后训练提速 2.29×、浪费率降至 12.9%
  • 独立复现者定位慢点:"补到 batch 满"的末位补采形成一串串行 refill barrier
  • 综述转引:动态采样每步墙钟时间约为普通步的 1.5-3 倍

综合结论:动态采样以墙钟开销换步数效率,样本效率收益真实,但必须搭配系统级配套(异步 rollout、提前终止、过采样上限)才不至于得不偿失。

6.4 采样策略谱系

策略 代表工作 粒度 取舍
在线动态采样(batch 内补采) DAPO 细 样本效率高但墙钟开销 1.5-3×
离线带通过滤(pass rate ∈ [0.25, 0.625]) Light-R1 粗 开销小但数据新鲜度差
易数据池回采 MiMo 中 折中
历史重采样(epoch 级丢弃全对题) SRPO / Skywork-OR1 粗 比纯在线便宜
先易后难课程 + 优先采样 Kimi k1.5 中 算力集中到模型最弱区

主轴:过滤粒度越细(batch 内在线)样本效率越高但墙钟开销越大;粒度越粗(离线/epoch 级)开销越小但数据新鲜度越低。

6.5 框架实现现状

框架 零优势组处理 采样加速
TRL 保持最小实现,不跳过零优势组;默认 loss_type 已演进为 dapo(token 级归一化) 仅暴露监控指标
veRL 支持 Dr. GRPO 三配置;组过滤用原始 acc 而非 shaping 后 reward(易踩坑) vLLM 解耦生成与训练
OpenRLHF 跳过零优势组 Ray + vLLM
slime 跳过零优势组 异步 rollout + partial rollout 缓存
ms-swift 离线 RFT(每 prompt 64 条、ORM+PRM 双阈值) —

关键事实:rollout 生成约占 GRPO 训练总时长的 70%,长尾生成导致 GPU 利用率低下是主要瓶颈。各框架应对高度趋同:以 vLLM/SGLang 解耦生成与训练、异步 rollout 容忍一步 off-policy、partial rollout 缓存未完成生成跨步续算。

7. 开源复现:open-r1 数据重建与教训

7.1 OpenR1-Math-220k 构造

NuminaMath 1.5 的 40 万道题
       ↓ DeepSeek-R1 逐题生成(提示词前固定"reasoning step by step")
       ↓ 单条上限 16k token(75% 在 8k 内解出)
       ↓ 每题 2 条解答(部分 4 条)
       ↓
   [40 万题、约 80 万条解答]
       ↓
       Math Verify(sympy 等价判定)规则校验
       ↓ 55% 的题目至少有一条正确解答
       ↓
   [23.9 万题有规则正确解]
       ↓
       规则未覆盖样本用 Llama-3.3-70B-Instruct 作裁判
       ↓ 找回 28,000 道(约 12%)
       ↓
   [22.5 万题最终数据集]

吞吐量瓶颈:vLLM 下每块 H100 每小时仅 15 条,切换 SGLang 后 25 条;512 块 H100 集群每天 30 万条。

去污:scripts/decontaminate.py(沿用 s1 论文的 8-gram 重合法),但发布的 OpenR1-Math-220k 未对 MATH-500 做彻底去污(Light-R1 复检 10 条、II-Thought 复检近 20 条)。

负结果:72B 奖励模型给"已通过正确性验证的样本"排序效果与随机选一条持平(剥掉 思维链、只把"问题+最终答案"喂给 RM)。

7.2 issue #538:完整 GRPO 翻车记录

用 Qwen2.5-1.5B-Instruct + OpenR1-Math-220k + 参照官方 demo 配置 → MATH-500 准确率"随训练推进从 55.4 一路下降到 18.2"。

四个成因:

  1. 难度-能力错配:72.6% 的题来自奥赛,1.5B 模型绝大多数 16 条采样全错、优势为零、梯度为零
  2. 奖励权重诱发 reward hacking:format + tag_count + accuracy 三种奖励等权 1.0,模型先吃满格式分、输出塌缩为连续感叹号 → 修正:accuracy 1.0 / format 0.1-0.2 并弃用 tag_count
  3. 超参敏感:1.5B 规模 GRPO 在 1e-6 量级学习率才稳定,升到 1e-5 约 100 步后崩溃
  4. 模板陷阱:DeepSeek 蒸馏模型 chat template 会省略 思维链块内容并预填,干扰 format 奖励

四个坑中没有一个是算法层面的——全部落在数据难度配比、奖励函数设计与训练配置上。

7.3 复现鸿沟的不对称结论

  • 蒸馏可追平:OpenR1-Qwen-7B MATH-500 90.6 vs 官方 93.5(域内差距 <3 分);OpenR1-Distill-7B(MoT 350k)在 AIME24/GPQA/LiveCodeBench 持平或略超
  • 纯 RL 未完成:open-r1 Step 2/3 始终未标记完成;第三方受控对比:GRPO 仅带来"适度的域内提升、域外小幅退化","计算昂贵且不稳定"

断点不在算法——GRPO 公式、框架实现均公开;而在数据配方——官方从未披露 RL 提示集的难度分布、每题采样条数、采样温度与过滤阈值。

8. 横向对比与社区流传说法的可信度甄别

8.1 Kimi k1.5:显式负样本路线

关键创新:

  • 最短拒绝采样(n=8 选最短正确解):筛选目标从"正确"升级为"正确且简短"
  • long2short DPO:正样本为最短正确解,负样本包括"错误长响应 + 长度 1.5 倍的正确长响应" → 负样本定义从"对错"扩展到"推理效率"
  • 在线阶段长度治理:长度奖励按组内相对位置计算,对正确响应越短奖励越高,错误响应只罚不奖
  • partial rollouts:超长轨迹在固定 token 预算处截断、存入 replay buffer 待下一迭代续写,仅当前迭代段需要 on-policy 计算

8.2 rStar-Math 与 MCTS 路线

  • 74.7 万道竞赛级数学题,每轮自进化对每题做 16 次 MCTS rollout
  • 过程偏好模型(PPM):对每个中间步骤取 Q 值最高的两个候选为正、最低的两个为负
  • 四轮自进化后 Qwen2.5-Math-7B MATH 从 58.8% → 90.0%、AIME 2024 平均解出 53.3%(8/15)

取舍:R1 与 k1.5 均明确弃用 MCTS 与 PRM——R1 论文 §4.2 列为"不成功的尝试"(步骤难以细粒度定义、PRM 易引入 reward hacking、MCTS 搜索空间过大)。

8.3 路线对比表

路线 代表 负样本粒度 系统代价
离线拒绝采样(仅正确解) R1 阶段三 无负样本 无额外评判模型
在线 GRPO + 组内负 advantage R1 推理 RL 整响应级 无额外评判模型
离线 DPO(响应级偏好对) Kimi k1.5 long2short 响应级 DPO 训练
MCTS + 过程偏好模型 rStar-Math 步骤级 MCTS 搜索 + PPM 训练

粒度变细伴随着系统代价:R1 路线无需训练额外评判模型,k1.5 的 DPO 只需构造偏好对,rStar-Math 须维护 MCTS 搜索与 PPM 训练两套系统(这解释了它为何止步于 7B 单域)。

8.4 社区流传说法的可信度分级

说法 出处 判定
"采样 1000 个回答" 小宇宙播客第 89 期 杜撰——论文原话仅"sample multiple responses",无任何数字
"V3 Base 作价值模型过滤" 致 Great 分享实录 口述误差——是 V3(不是 V3-Base)、作生成式 judge(不是 value model)、对照参考答案输出 JSON 二分类
"训练用温度 0.6 采样" 多处社区笔记 混淆——0.6 是 R1 部署建议温度;训练 rollout 温度为 1.0(Nature 版 Methods 首次披露)
"每 prompt 采样 64 条" 社区笔记 无出处——可能受 cons@64 评测口径影响
"只保留成功率 10%-90% 的问题" CSDN 面经 演绎讹传——过滤 0/1 组有出处(DAPO),但"10%-90%"无任何论文出处
"阶段三 SFT 重新作用于 V3-Base 是为了避免误差累积" 张俊林、京东云等 社区推测——论文有据但动机归因无官方出处

信息源校准原则:

  • 凡官方有据 → 当事实陈述
  • 凡单一权威来源 → 加限定语
  • 凡社区流传无出处 → 标注"未经证实"
  • 凡官方沉默之处 → 流传数字按杜撰处理

9. 工程范式清单

经官方披露与开源复现双重印证的 4 条范式:

# 范式 官方依据 工程建议
1 难度带通(DAPO 0/1 过滤、Light-R1 [0.25, 0.625]) 缺位(R1 论文未提动态采样) 上线 GRPO 前先配零优势组占比监控,按 pass rate 分桶追踪 prompt 分布漂移
2 奖励极简与防 hacking R1 推理域全部用规则;偏好奖励推迟到末 400 步 奖励项从正确性单项起步;accuracy 1.0 / format 0.1-0.2;神经奖励一律末期、低权重
3 基座重置 + 迭代数据飞轮 阶段三从 V3-Base 重新微调 2-3 epoch;同源 800K 蒸馏六小模型 把"RL 产物 → 拒绝采样 → 基座重置 SFT → 下一轮 RL"设计为闭环,数据一次生产两线复用
4 正确性之外,可读性/风格是显式设计目标 拒绝采样同时卡正确性与可读性;Nature SI 显式风格原则 数据预算优先投向验证器质量与风格设计,而非堆采样规模

两个异常点:

  1. "难度带通"是唯一官方依据缺位的范式——R1 论文通篇未提动态采样,完全由后续开源工作补全,社区方案属逆向工程而非复现
  2. 四条范式中三条本质是"做减法"(过滤零优势组、砍奖励项、从干净基座重来)——与"数据增强=加数据"的直觉相反

10. 关键数字速查

类别 数字 来源
拒绝采样 SFT 总数据 804,745 条 Nature SI Supplementary Table 2
推理 / 非推理拆分 ~600K / ~200K arXiv v1
数学 / 代码 / STEM / 逻辑 / 通用 395,285 / 211,129 / 10,124 / 10,395 / 177,812 Nature SI
平均输出 token 5,355.3(代码最长 7,435.7,通用最短 1,419.8) Nature SI
推理 RL prompt 数 ~166K Nature 同行评议
每题采样 G 16(阶段一)/ 16(阶段二 RL 1700 步) Nature 版 Methods
学习率 1 \times 10^{-6}(阶段一)/ 阶段二降温 Nature 版 Methods
KL 系数 \beta 0.001 Nature 版 Methods
clip 比率 \epsilon 0.2 Nature 版 Methods
参考模型刷新频率 每 400 步 Nature 版 Methods
偏好奖励介入点 第二阶段 RL 末 400 步 Nature 版 Methods
全流程成本 147K H800 GPU 小时(~$294K) Nature SI Supplementary Table 4
SFT 数据创建成本 5K 小时(3.4%) Nature SI Supplementary Table 4
OpenR1-Math-220k 题级保留率 ~56%(22.5 万 / 40 万) open-r1
OpenR1-Math-220k 规则 vs LLM 裁判 23.9 万 vs 30.8 万 open-r1
rollout 占 GRPO 训练总时长 ~70% 多项独立 profiling

11. 延伸阅读

12. 一句话总结

R1 数据机制的核心可收敛为:冷启动 SFT(数千条)→ 推理 GRPO(166K prompt、16 条采样)→ 从 Dev2 拒绝采样生成 804,745 条 SFT(对 V3-Base 重新微调)→ 全场景 RL;所谓"负采样"是拒绝采样丢弃错误/不可读 + GRPO 对组内错误响应施加负优势的双重机制;复现断点不在算法而在数据配方,官方沉默的参数应按杜撰对待。

评论(0)

评论加载中…