开源社区里的数学推理蒸馏数据集不少,规模动辄几万到几十万条。但我在调研时发现两个反复出现的问题:
- 答案没有逐条严格验证。部分数据集采用宽松的规范化匹配,格式不同、实质错误的回答也会被判为正确;
- 评测集污染。训练题与 AIME 等评测题同源重叠,训练后在榜单上的分数虚高,无法反映真实推理能力。
这两个问题直接影响蒸馏出来的模型质量评估。于是我按「验证和去污染优先于规模」的思路,构建了 WSAI-Math-Distill——一个严格验证的数学长思维链蒸馏数据集。
数据集概况
| Split | 条数 | 说明 |
|---|---|---|
train |
3,867 | 教师答案经严格判分确认正确,思维链完整非空 |
rejected |
2,582 | 判分不通过(真实错误或格式不匹配),保留全部字段与 reject_reason |
构建参数:
- 教师模型:DeepSeek
deepseek-v4-flash,thinking 模式,输出reasoning_content+content双通道; - 题源:OpenR1-Math-220k(Apache-2.0)中的竞赛来源题面,去污染后 6,245 题,构成:amc_aime 2,845 / olympiads 2,600 / aops_forum 800;
- 教师通过率:61%(3,867 / 6,449 次独立求解)。
构建流水线
1 | OpenR1-Math-220k (93,733 题) |
下面展开讲两个关键环节:判分协议和去污染。这两部分是本数据集区别于同类数据集的核心。
判分协议:最严格原始口径
对每条教师回答,执行以下流程:
- 只提取正式解答(
content)中最后一个\boxed{...}的内容作为预测; - 预测与 gold 标准答案按三种方式判等,全部通过才记为正确:
- 去首尾空白后的精确字符串相等;
math_verify严格语义验证(无任何预处理);- 纯数字情形下的浮点精确相等(误差 < 1e-9);
- 不做任何规范化:不补 LaTeX 花括号、不去
\text{}包裹、不剥离选项字母、不提取子串数字、不做模糊匹配。
格式不同即判错。例如模型输出 \boxed{\text{(C) }50} 而 gold 是 50,这条样本进入 rejected,不进入训练集。多答案、选择题字母等无法在原始口径下对齐的样本,一律拒收。
这样做的代价是显性的:61% 的通过率是下界口径,rejected 里包含一部分实质正确但书写形式与 gold 不一致的样本。收益也是显性的:train 里没有任何一条判分注水的样本。对于蒸馏数据来说,我认为这个取舍是值得的——错误答案配上完整的思维链,是最难靠事后抽查发现的污染。
去污染:8-gram 指纹检测
指纹构建过程:
- 评测集题目文本规范化(小写、剥 LaTeX 命令、仅保留字母数字)后切 8-gram(词级),共计 264,265 个指纹;
- 覆盖评测集:AIME 2024(30 题)+ AIME 2025(30 题)+ Humanity’s Last Exam 文本子集(2,158 题,仅用于指纹,从不入库);
- 判定规则:训练题的任一 8-gram 命中指纹,整题剔除。题库阶段剔除 3,444 题;已入库记录经二次回滤,额外剔 27 条后归零。
已知局限:8-gram 重叠可以拦截原题与近原题,无法拦截彻底改写的同构题。这一点在 README 里也如实写明了。
数据统计
| 项 | p10 | p50 | p90 | max |
|---|---|---|---|---|
reasoning(字符) |
630 | 2,721 | 17,472 | 58,614 |
problem(字符) |
135 | 281 | 505 | 1,992 |
content(字符) |
113 | 527 | 1,035 | 2,677 |
几个事实:
- 思维链语言为英文(3,866/3,867);
content全部以\boxed{}收尾,无空链、无短于 300 字符的思维链;- 教师(v4-flash)的思维链是简练跳跃风格,短句、草稿式,中位数约 2.7k 字符。
使用方法
加载:
1 | from datasets import load_dataset |
Qwen3 / Qwen3.5 系列可以直接映射 chat 模板字段:
1 | messages = [ |
通用格式:
1 | <|user|> |
与相关数据集对比
| 数据集 | 规模 | 教师答案验证 | 判分口径 | 去污染 |
|---|---|---|---|---|
| WSAI-Math-Distill | 3,867 + 2,582 | 逐条 vs gold | 最严格(无规范化) | AIME24/25 + HLE 8-gram |
| OpenR1-Math-220k | 93.7k | 逐条(多口径) | 含宽松口径 | 发布方声明,未附方法细节 |
| OpenMathReasoning | 525k | 大规模验证 | 常规 | 发布方声明 |
规模上本数据集不占优势。它的定位是:每条可溯源、判分零水分,适合作为小模型数学推理冷启动的高置信种子集,或作为更大混合训练配方中的纯度参照——如果混合数据训练效果异常,可以用它做对照排查。
局限
如实列出:
- 规模有限(3,867 条);
rejected未区分「真实错误」与「格式不匹配」两类;- 题源为英语言竞赛数学(AMC/AIME 难度带为主),未覆盖中文题、多学科与 HLE 式跨域推理;
- 教师思维链为简练风格,长链难题(需 >16k token 推理)覆盖不足;
- 8-gram 去污染存在固有盲区。
致谢与许可
- 题目来自 open-r1/OpenR1-Math-220k(Apache-2.0),派生自 NuminaMath;
- 教师思维链由 DeepSeek
deepseek-v4-flash生成。
数据集采用 Apache-2.0 许可。