Nemotron-Math-Proofs-v3-SFT的proof样本深度剖析:58,543条初始证明如何训练大模型的定理生成能力
Nemotron-Math-Proofs-v3-SFT的proof样本深度剖析:58,543条初始证明如何训练大模型的定理生成能力
Nemotron-Math-Proofs-v3-SFT 是 NVIDIA 发布的长文本数学推理 SFT 训练数据集,围绕 58,543 条 proof(初始证明)样本,配合 refinement、verification、meta-verification 三类轨迹,共计 414,890 条样本,用于训练大模型的定理生成与数学证明能力。本文将拆解这些 proof 样本的来源、结构与价值。
一、Nemotron-Math-Proofs-v3-SFT 是什么?
这是一个专为数学证明生成设计的监督微调(SFT)数据集,核心信息如下:
| 维度 | 说明 |
|---|---|
| 样本总量 | 414,890 条(质量过滤后) |
| 唯一题目数 | 15,818 道(源自 15,879 道高难度题) |
| 题目来源 | AoPS 社区的证明类题目(高难度筛选) |
| 生成模型 | DeepSeek-V4-Pro(Max 推理模式) |
| 磁盘占用 | 121.95 GiB |
| 许可协议 | CC BY 4.0,可商用、可非商用 |
🎯 它的定位是 Nemotron-Math-Proofs-v2 的替代升级版:更难的问题池、多轮证明打磨、以及额外的验证与元验证轨迹。
二、58,543 条 proof 样本:初始证明是怎么来的?
数据集按 metadata.data_type 字段分为四类任务,其中 proof 是第 1 轮的初始证明生成:
| 子集(data_type) | 样本数 | 平均生成 token 数 |
|---|---|---|
| proof(初始证明) | 58,543 | 210,267 |
| refinement(证明打磨) | 67,971 | 208,965 |
| verification(证明验证) | 236,360 | 41,361 |
| meta_verification(元验证) | 52,016 | 29,057 |
| 总计 | 414,890 | 91,110 |
生成流程遵循 DeepSeekMath-V2 风格的"生成—验证—打磨"四轮管线:
- 第 1 轮(proof):对每道题目生成多条初始证明尝试,单条生成上限高达 400,000 tokens;
- 第 2~4 轮(refinement):对仍未严格解决(strictly solved)的题目,利用前序尝试 + 验证器反馈产出修订证明;
- verification:多条验证轨迹评估候选证明,给出
0、0.5、1三档最终分数; - meta_verification:对候选证明的自评估或代表性验证输出做二次评估。
⚡ 值得注意的细节:
- 推理参数为 temperature
1.0、top-p0.95,鼓励证明思路的多样性; - proof 样本平均生成长度约 21 万 token,属于超长思维链(long-form reasoning),这正是"长上下文定理证明"能力的关键训练信号;
- 全数据集累计记录生成 token 数达 378 亿,总 token 规模约 390 亿。
三、一条 proof 样本里有什么?
数据集以 JSONL 格式存储,每条记录包含以下字段:
uuid:样本唯一标识;messages:标准化的 user/assistant 消息序列,assistant 消息同时包含可见的content和长文本reasoning_content;metadata:任务元数据,含problem、problem_idx、data_type、输入/生成 token 数,以及可选的轮次(round)或阶段信息;source:题目来源标签(本数据集统一为AoPS);license:逐样本许可标签(cc-by-4.0)。
💡 新手提示:识别任务类型请以 metadata.data_type 为准(proof / refinement / verification / meta_verification),而不是兼容字段 subset。
四、数据文件组织:10 个分片的 JSONL
训练集存储在 data/ 目录下的 10 个分片中,按序拼接可逐字节还原原始单文件:
load_dataset 会将这 10 个分片作为同一个 train split 读取,无需手动合并。完整的字段说明与统计信息见 README.md。
五、质量过滤:什么样的样本能留下来?
官方通过严格的后处理管线淘汰不合格样本,这是数据集质量的核心保障:
| 过滤规则 | 适用对象 |
|---|---|
| 剔除不完整、被长度截断的生成 | 全部 |
| 剔除空响应或格式错误的响应 | 全部 |
| 剔除使用 reasoning fallback 的行 | 全部 |
剔除可见答案文本中暴露 <think> 标记的行 |
全部 |
必须包含非空的可见 Solution 与 Self Evaluation 段落 |
proof / refinement |
| 必须包含可解析的最终分数,且使用可见最终证明而非草稿作为输入 | verification / meta_verification |
📊 过滤后验证子集的分布也非常均衡:117,622 条得分为 0 的轨迹,与 118,738 条得分为 0.5 或 1 的轨迹,让模型既能学会"识别错误",也能学会"确认正确"。
六、它能训练出什么能力?
按照官方说明,Nemotron-Math-Proofs-v3-SFT 适用于:
- 结构化数学推理与证明生成——58,543 条 proof 样本是主力;
- 基于历史尝试与验证反馈修订证明——refinement 子集提供多轮打磨轨迹;
- 生成验证轨迹、定位论证缺口——verification 子集规模最大(236,360 条);
- 评估证明自评估与验证器输出——meta-verification 子集;
- 构建长上下文或多轨迹的定理证明推理系统——平均 21 万 token 的生成长度是天然训练素材;
- 研究证明有效性、验证器精度与错误模式等学术方向。
七、快速上手建议
- 加载数据:使用 Hugging Face 的
load_dataset读取trainsplit 即可,10 个分片自动合并; - 按任务切分:用
metadata.data_type == "proof"筛出 58,543 条初始证明样本; - 控制长度:proof/refinement 平均 20 万+ token,训练前建议按自身上下文窗口规划截断或分块策略;
- 版本选择:如需自然语言证明子集,可参考同源问题的 Nemotron-Cascade-2-SFT-Data;
- 许可合规:CC BY 4.0 协议,商用无需额外授权,保留署名即可。
总结
Nemotron-Math-Proofs-v3-SFT 通过 15,879 道高难度题目 × 四轮"生成—验证—打磨"管线,产出了以 58,543 条 proof 样本为核心的 414,890 条长文本训练数据。对于希望让大模型掌握奥林匹克级别定理生成能力的团队来说,这是一份结构清晰、质量可控、可直接商用的完整训练配方。