摘要
对推理模型日益增长的兴趣使得数学成为算法和方法改进的重要试验场。然而,现有的开放数学数据集要么包含少量高质量、人工编写的问题,要么包含大量质量不确定的机器生成的问题,迫使研究人员在质量和数量之间做出选择。在这项工作中,我们提出了[Big-Math],一个包含超过25万个高质量数学问题的数据集,这些问题具有可验证的答案,专门为强化学习(RL)而设计。为了创建[Big-Math],我们严格地过滤、清理和整理公开可用的数据集,提取满足我们三个要求的问题:
(1)具有唯一可验证解决方案的问题,
(2)开放式问题,
(3)具有封闭式解的问题。
为了确保[Big-Math]的质量,我们手动验证过滤过程中的每个步骤,并通过多轮迭代改进我们的过滤器。
根据我们的过滤过程的发现,我们引入了47,000个具有验证答案的新问题,[Big-Math-Reformulated]:通过系统的重构算法,将封闭式问题(即多项选择题)重新构造为开放式问题。与最常用的现有开源数学推理数据集GSM8k和MATH相比,[Big-Math]的规模要大一个数量级(250,000个问题,而GSM8k中有8,000个问题,MATH中有12,000个问题),而我们严格的过滤确保我们保持最适合RL的问题。我们还对数据集进行了严格的分析,发现[Big-Math]在问题领域中包含高度的多样性,并包含了广泛的问题难度,从而为不同能力和训练要求的模型提供了广泛的下游用途。总之,这项工作提出了我们的新数据集[Big-Math],这是最大的适用于RL训练的开放数学问题数据集。通过弥合数据质量和数量之间的差距,[Big-Math]为推进大语言模型(LLM)中的推理奠定了坚实的基础。
分析与讨论
讨论和分析 [Big-Math] 数据集。我们将考虑数据集的难度、多样性以及我们提出的过滤器的结果。在整个分析过程中,我们将包含讨论要点,以帮助 [Big-Math] 的下游使用。
数据集难度
我们基于 Llama-3.1-8B 模型的推演 (rollouts) 计算 [Big-Math] 中问题的难度,这为理解问题复杂度提供了一个基准。对于数据集中的每个问题,我们生成 64 个推演,并计算每个问题的成功率。大多数最简单的数据(最高的解决率)来自 Orca-Math、cnk_12 和 MATH 数据集,而最困难的数据则更均匀地分布在各个数据集上。特别是,我们发现几乎所有的 Omni-MATH 和 HARP 都无法被 Llama-3.1-8B 解决。因此,为了在这些困难的子集上对 Llama-3.1-8B 应用强化学习 (RL),需要对该特定模型进行监督微调,或者使用利用过程奖励模型的 RL 训练算法。例如,具有可验证奖励的强化学习 (RLVR) 不太可能在 Omni-Math 和 HARP 上有效工作,因为模型的响应不会产生训练信号。
接下来,我们将问题按难度分为五个等级,最难的等级是成功率低于 20% 的问题,最简单的等级是成功率高于 80% 的问题。我们发现,从最简单到最难,这五个等级分别有 71,926 个 (28.64%)、30,533 个 (12.16%)、25,763 个 (10.26%)、31,249 个 (12.44%) 和 91,647 个问题(占问题总数的 36.50%)。
现在一个显而易见的问题是:从业者应该如何将这些数据集难度用于他们自己的目的? 一般来说,那些训练能力较弱或较小模型的从业者可能希望删除最困难的问题,因为模型部署不太可能得到正确的答案。这导致学习过程效率低下,因为用于大语言模型的多数强化学习方法(除了那些具有过程奖励模型的方法)如果模型永远无法得出正确答案,将获得 0 信号。另一方面,对于那些训练更大或数学专用模型的从业者来说,他们会发现许多简单的问题是多余的,并且在这些数据上进行训练将是低效的。因此,对于训练强大模型的从业者来说,只保留较难的问题是明智的。假设保留了最难的两个等级的数据,仍然有超过 120,000 个问题,比下一个最接近的适合强化学习的数据集多 10 倍以上。 接下来,我们看看我们新颖的 [Big-Math-Reformulated] 子集的难度。我们看到我们的子集遵循与数据集其余部分相似的解决率分布;它在难度分布的低端和高端周围的密度略高。然而,[Big-Math-Reformulated] 偏向于更难的问题。具体来说,我们发现 [Big-Math-Reformulated] 中有 34.44% 位于最难的等级,另外有 16.42% 位于第二难的等级,两者加起来超过了新数据的 50%。 最后,我们研究了每个问题领域的解决率分布,如图4所示。我们发现,难度最高的问题集中在微分方程、离散数学和抽象代数领域,而预代数领域则以显著优势成为最简单的领域。有趣的是,其余领域的难度分布非常广泛,表明在每个领域内部,可能存在需要不同专业水平才能解决的问题。令人惊讶的是,线性代数被认为是相对容易的领域之一,而几何学则被认为是难度最高的领域之一。然而,这可能是领域分类过程本身造成的偏差,也可能是 Llama-3.1-8B 的特定训练数据所致。
数据集多样性
Big -Math
在本节中,我们将详细描述我们的数据收集、清理、过滤和重构过程的技术细节。
数据集收集
我们考虑了许多公开可用的数学数据集,并选择了 3 个在最近的文献中常用的、已建立的数学问题数据集:HARP、Omni-MATH 和 NuminaMath。这项工作的目标是找到一个满足我们三个需求的、高质量的数学问题的大型集合。人工编写的问题通常被认为是高质量的,我们选择的数据集提供了大量的人工编写的问题作为起点($> 75\%$)。此外,我们选择纳入合成生成的数据,但将自己限制在一个已建立的来源。表1显示了来源的细分,包括原始数据量和过滤后的数据量。
数据集清洗和过滤
上述所有数据集的收集使我们得到了一个超过 640,000 个问题的组合数据集。然而,这个数据集可能包含许多重复的问题、不良内容以及不符合我们期望的数据。为了获得最高质量的数据集,并适用于强化学习 (RL) 训练,我们接下来使用定制和通用策略相结合的方法,对来自每个来源的数据进行清洗和过滤。我们通过应用人机协作方法来确保过滤器的质量,通过人工验证和对正面和负面示例的注释来迭代地改进过滤器。通过迭代过程的结束,我们的过滤器实现了超过 90% 的 F1 分数,通常远高于 90%。过滤后,数据应仅包含密切遵循我们三个期望属性的问题:开放式、可验证、封闭形式的问题-解决方案对。
针对特定来源的过滤和清理
我们清理和过滤过程的第一步是观察来自每个数据集的样本数据,并根据它们各自的独特性,设计定制的过滤器,以便在每个来源上单独使用。
HARP
\[asy\]” 来识别这些问题。为了谨慎起见,我们移除了 625 个这样的问题(占数据集的 13%),因为我们认为模型需要看到渲染后的图像才能解决问题。
Omni-MATH
\[i\]\[/i\]"),并手动修改了每个问题以删除署名(总计 45 个)。接下来,我们发现一些问题包含了关于其在比赛中的得分信息,并从问题中移除了这些文本。具体来说,我们在许多问题中发现了短语“如果正确答案是 X
并且你的答案是 Y
”。此外,我们还发现并移除了 2 个具有以下解决方案的问题:“所提供的问题不包含解决方案。因此,无法提取最终答案。”,这很可能是从在线资源提取问题-解决方案对时出现的解析错误。
NuminaMath
在 NuminaMath 中,我们发现了每个子集的一些独特特征。首先,由于某些子集非常大,我们使用 MinHashLSH 过滤器对每个子集中的问题进行去重。我们使用 128 个哈希函数,并通过几轮实验,凭经验确定 0.6 或 0.7 的相似度阈值(取决于子集)是我们可以在不降低过滤器质量的情况下设置的最严格的阈值。接下来,NuminaMath 数据集没有明确包含每个问题的答案,因此我们通过搜索带框的解决方案(LaTeX 中的“\boxed{}”)来提取答案。任何解决方案不包含恰好 1 个带框答案的问题都会被过滤掉。最后,对于 aops_forum 子集,我们发现 2535 个问题包含不必要的信息,包括问题归属(例如“proposed by”)、提交年份、积分(例如“(1 point)”),并使用正则表达式删除这些字符串。在特定于来源的过滤结束时,我们发现还剩下 463,426 个问题。但是,这些问题还不适合使用,因为这些数据仍然包含不适合强化学习训练的问题。
源不可知过滤
在对各个子集运行上述的每个过滤器之后,我们对整个集合执行 11 项过滤操作。这些过滤器专门用于将原始的问答对数据集转换为适合使用强化学习 (RL) 训练数学推理模型的数据集。与特定于源的过滤器一样,我们也会手动验证每个源不可知过滤器的结果,并迭代地改进它们的性能,直到它们达到合适的结果(如果适用)。我们的过滤过程的高级结果见表2。
去重和数据清洗
为了防止模型在不知情的情况下过于频繁地在相同的问题上进行训练(并存在过拟合的风险),我们需要删除重复项。为了处理这个问题,我们运行一个非常简单有效的去重步骤,通过字符串匹配(不包括空格)计算重复问题,删除除一个副本之外的所有重复问题。接下来,我们还希望确保最终数据集具有多样化的问题集,而不会专注于任何特定问题类型。为此,我们使用 SemDeDup 算法删除语义重复项(含义相似的问题,例如,数字更改后的相同问题)。为了嵌入问题向量,我们使用 sentence-transformers/all-MiniLM-L6-v2 的模型,并删除余弦相似度大于 0.5 的问题。对于语义去重,我们测试了 0.95 到 0.2 之间的阈值,发现即使是最严格的阈值也可以聚类不同的问题(可能是由短问题引起的)。我们希望确保没有重复数据通过,因此我们有目的地选择一个阈值,通过我们的人工验证确定没有剩余重复项。最后,MATH 和 Omni-MATH 测试集是评估在我们的数据集上训练的模型的首选候选对象,因此我们需要确保这些测试集中的问题不存在于我们的训练集中。为了使用任何 500 个 MATH 测试集问题和 500 个 Omni-MATH 测试集问题来清洗我们的数据集,我们通过字符串匹配算法查找并删除所有受污染的数据,这与去重相同。我们惊讶地发现重复率极低($<1\%$),仅删除了 4,229 个问题,其中大部分重复项存在于 Orca-Math (3,916)、GSM8k (3,875) 和 cn_k12 (405) 数据集之间。
确保问题可解
由于多种原因,现有的数学数据集中存在一些无法解决的问题。
(语言过滤器) 首先,在这项工作中,我们专注于仅限英语的模型,并要求提供英语数学问题。因此,我们使用 FastText 语言标识符,并删除任何英语不是主要语言的问题(仅检测到 101 个非英语问题)。[^3] 通过我们的迭代改进过程,我们发现删除 LaTeX 以及大多数特殊字符(例如数字、数学符号、“()[]{}!@#$%^&”等)非常重要,以便使用语言检测模型实现高精度。此外,非常短的问题($<10$ 个字符)通常被归类为非英语(即使它们完全是数字),因此我们简单地包含所有少于 10 个非 LaTeX、非特殊字符的问题。
(超链接检测) 接下来,我们使用简单的正则表达式删除包含超链接的问题,因为超链接的存在表明模型可能没有解决问题所需的全部资源(例如,指向包含定理的网站的超链接)。虽然这可能会删除可解决的问题(超链接也可能链接到问题的网站来源),但我们宁愿谨慎行事,删除所有包含超链接的问题。这种过度过滤可以在未来通过更复杂的过滤器来解决。
(模型解决率) 最后,虽然手动确保每个问题-答案对的正确性是不可行的,但我们开发了一种使用大语言模型进行正确性判断的启发式方法。对于每个问题,我们从 Llama-3.1-8B 生成 64 个解决方案(约 30,000,000 次运行次数),并从 Llama-3.1-405B 生成 5-8 个解决方案(约 1,100,000 次运行次数,在预过滤的子集上生成)。如果任一模型使用标准答案回答问题,那么我们确定该问题-答案对可能是有效的。我们不将此过滤器应用于 HARP、Omni-Math、MATH 或 GSM8k,因为这些数据集包含预解析的答案。
当然,这种方法不能保证给定的答案是正确的,因为答案可能属于常见的错误,或者模型在预训练或后训练期间已经见过这些数据。此外,此过滤器不能保证删除的数据具有不正确的答案,因为我们使用的模型很可能无法解决最困难的数学问题。改进此过滤器的一种方法是使用更强大的、特定于数学的模型。
(超链接检测) 接下来,我们使用一个简单的正则表达式来移除包含超链接的问题,因为超链接的存在表明模型可能没有解决问题所需的全部资源(例如,指向包含定理的网站的超链接)。虽然这可能会移除一些可解决的问题(超链接也可能链接到问题的网站来源),但我们宁愿谨慎行事,移除所有包含超链接的问题。这种过度过滤可以在未来通过更复杂的过滤器来解决。
(模型解决率) 最后,虽然手动确保每个问题-答案对的正确性是不可行的,但我们开发了一种使用大语言模型来判断正确性的启发式方法。对于每个问题,我们从 Llama-3.1-8B 生成 64 个解决方案(约 30,000,000 次 rollout),并从 Llama-3.1-405B 生成 5-8 个解决方案(约 1,100,000 次 rollout,在预过滤的子集上生成)。如果任一模型使用标准答案回答了问题,那么我们就认为该问题-答案对可能是有效的。我们不对 HARP、Omni-Math、MATH 或 GSM8k 应用此过滤器,因为这些数据集包含预解析的答案。 当然,这种方法并不能保证给出的答案是正确的,因为答案可能属于常见的错误范畴,或者模型在预训练或后训练阶段已经接触过这些数据。此外,此过滤器也不能保证被移除的数据一定包含错误的答案,因为我们使用的模型很可能无法解决那些最困难的数学问题。 改进此过滤器的一个方法是使用更强大的、专门针对数学问题的模型。
确保问题是开放式的
强化学习的一个重要方面是,训练信号应该适当地将好的行为与高奖励联系起来,将差的行为与低奖励联系起来。因此,提供选择题答案的问题会带来一个问题:模型可能会在没有提供正确的中间推理步骤的情况下,无意中回答出正确的答案选项(通常有 25-50% 的概率猜对),从而导致较差的学习信号。因此,我们选择删除任何选择题、判断题和是非题。为了检测和删除所有这三种类型的问题,我们开发了基于正则表达式的过滤器和基于模型的过滤器。
(正则表达式过滤器) 对于选择题,我们使用一个简单的正则表达式过滤器,搜索按顺序出现的字母选项(A、B、C、D)或数字选项(1、2、3、4)。为了确保我们不会意外地删除引用形状(例如“矩形 ABCD…”)或数字(例如 1234)的问题,我们首先从问题中删除这些字符串,然后再进行正则表达式搜索。接下来,对于判断题,我们在答案中或在解决方案的最后一行(如果可用)中搜索“true”或“false”。然后,对于是非题,我们执行与判断题相同的检查,在答案或解决方案中搜索确切的短语。此外,我们还在问题的最后一行搜索暗示是非题的特定短语:“is”、“are”、“do”、“does”和“can”。虽然这些正则表达式过滤器保证可以删除所有这种确切形式的数据,但它们不够灵活,无法捕捉到许多例外情况。
(基于模型的过滤器) 因此,针对每种问题类型,我们通过迭代开发一个与 Llama-3.1-70B 大语言模型配合使用的提示词,来设计一个基于模型的过滤器。例如,为了开发多项选择题的提示词,我们首先手动查找多项选择题和开放式问题的示例,并将这些作为上下文示例包含在内。接下来,我们在数据集上运行过滤器,并检查 100 个被分类为正例(多项选择题)的问题和 100 个被分类为负例(开放式问题)的问题。我们迭代地将难以正确分类的问题添加到提示词中,主要选择那些遵循之前未见模式的问题。对于这些过滤器,我们优先考虑高召回率,以确保尽可能多地移除不需要的数据。在这个过滤器开发的迭代过程中,我们持续进行,直到达到超过 98% 的召回率,这需要 5-8 轮的人工验证。
确保问题具有唯一可验证性
使用强化学习训练推理模型的关键方面是存在可验证的答案,通常以ground truth的形式与模型响应进行比较。
(答案过滤器) 作为一个简单的第一步,我们删除所有最终答案先前不存在,或者无法从解决方案中提取的示例(例如,如果解决方案中没有“\boxed{}”元素)。
(多部分问题过滤器) 接下来,我们发现很大一部分问题包含多个部分,需要多个对应的答案。当然,有一些方法可以处理多部分问题中的部分正确性,但这仍然是一个开放的研究问题,需要进一步研究,因此我们将这些问题留给未来更困难的数据集版本。为了开发我们的多部分问题过滤器,我们遵循与多项选择题过滤器类似的模式:一种双重过滤器方法,包括正则表达式过滤器和基于模型的过滤器。对于正则表达式,我们通过手动搜索数据并改进正则表达式来迭代改进过滤器。我们过滤器的最终版本搜索常见的信号:有序的罗马数字(例如 i, ii, iii),括号中多个编号的部分(例如 (1) … (2)),句点分隔的多个编号部分(例如 1. … 2.),以及编号的特殊字符(例如 1⃝ … 2⃝)。对于基于模型的过滤器,我们使用与多项选择题相同的迭代过程,使用 Llama-3.1-70B 大语言模型,每次迭代检查 100 个正面和负面分类的示例,直到我们达到超过 98% 的召回率。
(证明过滤器) 虽然可以验证证明,但可能存在许多正确的变体,并且目前尚不清楚如何快速验证用自然语言编写的证明(除了转换为定理证明语言,这可能会导致额外的解析错误)。因此,我们还选择从我们的数据集中删除证明,将它们留给未来更困难的版本。我们使用前面讨论的相同双重方法来开发我们的证明过滤器。正则表达式过滤器只是在问题中搜索以下短语之一:“证明 that” 或 “a proof”。我们再次通过使用 Llama-3.1-70B 大语言模型的迭代改进过程来实现基于模型的过滤器,检查 100 个预测为正面和负面的示例,仅在达到 98% 的召回率后才完成该过程。
[Big-Math-Reformulated]
基于前几节的发现,我们引入了一个新的子集,包含 47,000 个问题和答案,即 [Big-Math-Reformulated],我们在此对其进行描述。在开发我们的过滤器期间,我们发现了大量的多项选择题($> 117,000$),这些问题在 [Big-Math] 的过滤过程中被移除。特别是,我们关注的是从人工编写的高质量来源(奥林匹克竞赛、amc_aime 和 aops_forum)中丢失的大量数据。多项选择题的固有结构对强化学习 (RL) 算法提出了挑战。具体来说,多项选择形式增加了回答正确的概率,而不管推理链的正确性如何。这可能导致算法将高奖励分配给不正确的推理,从而降低了此类问题在强化学习 (RL) 环境中的效用。为了解决这个问题,我们提出了一种新颖的方法,通过将多项选择题重新表述为开放式问题,并由大语言模型执行一系列精心设计和详细的步骤,从而重新引入这些有价值的问题。我们的重新表述过程被开发为系统化和严谨的,以确保原始问题的完整性和复杂性得到维护,同时使其适用于强化学习 (RL)。
重构策略

(关键信息提取) 我们首先识别每个问题的几个核心信息。我们确定问题是否为多项选择题,提取核心数学概念(例如几何),并识别关键问题细节(例如距离、问题的目标)。在第一步中,我们还要求语言模型制定将问题转换为开放式格式的策略,以及用于改述问题并确保原始问题完整性得到维护的策略。最后,我们提取最终答案应采用的格式计划(例如,答案应以 $cm^3$ 表示)。\
(重构) 接下来,我们以提取的关键信息为条件,将多项选择题重构为开放式问题。\
(判断) 在完成重述后,我们会从多个维度进行关键评估,以判断重述是否成功。这包括确定新的问题是否为多项选择题,或者问题是否只有有限数量的可能答案,而这些答案仍然可以被视作多项选择题。此外,我们还会评估重述后的问题是否避免了任何信息失真:即没有修改现有信息,没有遗漏关键信息,也没有添加新的信息。最后,我们会确定预期的答案格式是否清晰,以及该问题是否能够独立存在,而无需参考原始选项。\
(验证) 最后,我们会进行最终验证,通过检查预期信息(例如,预期的答案格式、改写策略等)是否存在,来确认整个过程是否成功。
重构后处理
我们重构的结果是 88,983 个问题,这些问题已经通过了判断和验证步骤。但是,我们仍然需要确保 [Big-Math] 中的问题满足相同的标准:具有唯一可验证性、开放式问题且具有闭式解。因此,接下来我们通过评估 Llama-3.1-8B(8 次 rollout)和 Llama-3.1-405B(3 次 rollout)来检查每个重构问题的可解性。我们将 88,983 个问题过滤到仅剩 48,698 个,方法是仅保留至少被其中一个模型解决过一次,但未被 Llama-3.1-8B 100% 解决的问题(以删除可能过于简单或明显的问题)。在两个模型都没有产生与重构答案匹配的解决方案的情况下,很难确定问题出在模型的性能上,还是出在重构的答案上。为了减轻这种不确定性,我们从数据集中排除了这些问题。最后,[Big-Math-Reformulated] 经历了与数据集其余部分相同的全面过滤。我们发现这个过程成功地重新引入了之前被删除的高质量问题。具体来说,72.7% 的 amc_aime 子集被发现是多项选择题,但重构过程成功地重新引入了 63.4% 的多项选择题。
过滤器分析
在本节中,我们将分析我们设计的用于整理 [Big-Math] 的过滤过程。在仔细研究过滤器输出之前,重要的是要注意,我们的过滤过程在设计上是故意比实际需求更为严格的。这种保守的方法确保了 [Big-Math] 仅包含我们期望的数据类型。然而,这也为改进我们的过滤过程以及扩展 [Big-Math] 数据集留下了空间。本文提出的过滤设置仅作为第一步,使我们能够确定需要改进的领域,从而最大限度地提高源数据的效用并开发更精确的过滤器。 为了更好地确定未来工作的重点,我们首先确定移除数据量最多的过滤器:多项选择题过滤器、多部分问题过滤器和证明题过滤器。
多项选择题过滤器
被移除数据中占比最大的是多项选择题过滤器($\sim 18\%$),其中超过 80% 的多项选择题来源于 cn_k12 子集。 鉴于此过滤器影响了如此大量的题目,我们认为这是一个未来极具改进潜力的领域,通过提高过滤器的召回率,可以重新引入一些被错误分类为多项选择题的开放式问题。 此外,我们发现正则表达式过滤器与基于模型的过滤器在分类上存在显著差异,尤其是在奥林匹克和 MATH 子集中,基于正则表达式的过滤器移除的数据量明显高于基于模型的过滤器。 深入研究这些数据——即被一个过滤器判定为正例,而被另一个过滤器判定为负例的数据——是未来深入调查的关键领域。 对此领域的探索能够进一步提升整个过滤系统的召回率,并有可能重新引入数千道题目。
多部分过滤器
类似地,多部分过滤器也显示出进一步优化的潜力。我们再次观察到,基于正则表达式的过滤器始终比基于模型的过滤器移除更多的数据。具体而言,我们发现,与基于模型的过滤器相比,基于正则表达式的过滤器从 Orca-Math 数据集中移除了超过 14,000 个问题,从 Olympiads 数据集中移除了超过 6,500 个问题,以及从 MATH 子集中移除了超过 2,700 个问题。 鉴于这些显著的差异,显然存在进一步改进此过滤步骤的机会。
证明过滤器
有趣的是,证明过滤器的结果与多项选择题和多部分题目的过滤器恰恰相反:基于模型的过滤器比基于正则表达式的过滤器多移除了 10,000 个问题。 这再次是一个需要进一步调查的领域,以确定有多少问题可以在满足我们期望的前提下重新引入到数据集中。
Asymptote 过滤器
一个值得进一步研究的领域是模型使用 Asymptote 矢量图形语言的能力。在我们的工作中,我们从 HARP 子集中找到了 625 个使用这种语言的问题,并将它们全部移除。然而,这并不是人类编写问题中微不足道的一部分,并且可能有利于包含这些问题。与我们的工作相反,@muennighoff2025s1simpletesttimescaling 在 AIME24 上评估了一个模型,该模型包含 Asymptote 语言的图像。据推测,在这种问题上进行训练将对这种设置有利,但是,他们没有在任何 Asymptote 图像上训练模型,也没有分析他们的模型在这些问题上的表现。因此,在训练集中包含此类问题是否有益仍然不清楚。