摘要
代码因其精确性和准确性已被证明可以有效地增强大型语言模型的数学推理能力。以往的持续数学预训练工作通常包含使用数学相关包的代码,这些包主要设计用于工程、机器学习、信号处理或模块测试等领域,而不是直接专注于数学推理。在本文中,我们提出了一种新方法,用于生成伴随相应的推理步骤的数学代码,用于持续预训练。我们的方法首先通过整合数学相关的网络数据、使用数学包的代码、数学教科书和合成数据来构建高质量的数学持续预训练数据集。接下来,我们通过从之前收集的数据集中提取 LaTeX 表达式、表达式所需的条件以及表达式的结果来构建推理步骤。基于这些提取的信息,我们生成相应的代码来准确地捕捉数学推理过程。将生成的代码附加到每个推理步骤,得到由成对的自然语言推理步骤及其对应代码组成的数据。将这些数据与原始数据集结合,得到一个 192 亿个词元的性能优异的数学预训练语料库,我们将其命名为 MathCode-Pile。使用该语料库训练几个流行的基础模型显著提高了它们的数学能力,从而创建了 MathCoder2 模型系列。我们所有的数据处理和训练代码都是开源的,确保了整个数据收集和训练管道的完全透明度和易于复制。代码已发布在 https://github.com/mathllm/MathCoder2。