数学推理是现代大型语言模型(LLM)的一个重要能力。尽管这个领域近来有了一些进展,但是闭源和开源的LLM之间仍然存在明显的差距。闭源模型如GPT-4、PaLM-2和Claude 2在GSM8K和MATH等常见数学推理基准上占据主导地位,而开源模型如Llama、Falcon和OPT在所有基准上都明显落后
为了解决这个问题,研究界正朝着两个方向努力
(1)Galactica 和 MINERVA 等持续型预训练方法,可以在超过千亿个数学相关网络数据的基础上对 LLM 进行持续训练。这种方法可以提高模型的一般科学推理能力,但计算成本较高
拒绝采样微调(RFT)和WizardMath等特定数据集微调方法,即使用特定数据集的监督数据对LLM进行微调。虽然这些方法可以提高在特定领域内的性能,但无法泛化到微调数据之外的更广泛数学推理任务。例如,RFT和WizardMath可以将在GSM8K(其中之一是微调数据集)上的准确性提高30%以上,但会损害在MMLU-Math和AQuA等领域之外数据集上的准确性,使其降低多达10%
近日,来自滑铁卢大学和俄亥俄州立大学等机构的研究团队提出了一种轻量级却又可泛化的数学指令微调方法,可用于增强 LLM 的一般性(即不限于微调任务)数学推理能力。
重写后的内容:在过去,关注的方法主要是思维链(CoT)方法,即通过逐步自然语言描述来解决数学问题。这种方法非常通用,可以应用于大多数数学学科,但在计算精度和复杂的数学或算法推理过程(例如求解二次方程根和计算矩阵特征值)方面存在一些困难
相比之下,像思维程序(PoT)和 PAL 这样的代码格式 prompt 设计方法则是利用外部工具(即 Python 解释器)来大幅简化数学求解过程。这种方法是将计算过程卸载到外部 Python 解释器来求解复杂的数学和算法推理(例如使用 sympy 求解二次方程或使用 numpy 计算矩阵特征值)。但是,PoT 难以应对更抽象的推理场景,比如常识推理、形式逻辑和抽象代数,尤其是没有内置的 API 时。
为了兼顾CoT和PoT两种方法的优点,该团队引入了一个新的数学混合指令微调数据集MathInstruct,该数据集具有两个主要特点:(1) 广泛涵盖不同的数学领域和复杂程度,(2) 将CoT和PoT原理融合在一起
MathInstruct 基于七个现有的数学原理数据集和六个新整理出的数据集。他们使用 MathInstruct 微调了不同大小(从 7B 到 70B)的 Llama 模型。他们将所得到的模型称为 MAmmoTH 模型,结果发现 MAmmoTH 的能力是前所未有的,就像是一个数学通才。
为了评估MAmmoTH,研究团队使用了一系列评估数据集,其中包括领域内的测试集(GSM8K、MATH、AQuA-RAT、NumGLUE)和领域外的测试集(SVAMP、SAT、MMLU-Math、Mathematics、SimulEq)
研究结果显示,MAmmoTH 模型在泛化到领域外数据集方面表现更好,同时也显著提升了开源 LLM 在数学推理方面的能力
值得注意的是,在常用的竞赛级MATH数据集上,MAmmoTH的7B版本能够以3.5倍的优势(35.2% vs 10.7%)击败WizardMath(这是MATH上之前最佳的开源模型),而经过微调的34B MAmmoTH-Coder甚至可以超过使用CoT的GPT-4
这项研究的贡献可以总结为两个方面:(1)在数据工程方面,他们提出了一个高质量的数学指令微调数据集,其中包含了多种不同的数学问题和混合原理。(2)在建模方面,他们训练和评估了大小从7B到70B的50多个不同的新模型和基准模型,以探究不同数据源和输入-输出格式的影响
研究结果表明,MAmmoTH和MAmmoTH-Coder等新模型在准确度方面明显超过了之前的开源模型
该团队已经发布了他们整理得到的数据集,并开源了新方法的代码,同时在Hugging Face上发布了训练好的不同大小的模型
重新整理一个多样化的混合指令微调数据集
该团队的目标是编制一份列表,其中包含高质量且多样化的数学指令微调数据集,其应具有两个主要特征:(1) 广泛涵盖不同的数学领域和复杂程度,(2) 将 CoT 和 PoT 原理组合到一起。
对于第一个特征,研究人员首先选择了一些广泛使用的高质量数据集,这些数据集涉及不同的数学领域和复杂程度,例如GSM8K、MATH、AQuA、Camel和TheoremQA。然后他们注意到现有的数据集中缺乏大学水平的数学知识,例如抽象代数和形式逻辑。为了解决这个问题,他们利用网上找到的少量种子示例,使用GPT-4合成了TheoremQA中问题的CoT原理,并通过自我指导的方式创建了“问题-CoT”配对
对于第二个特征,将 CoT 和 PoT 原理组合到一起可以提升数据集的多功能性,使其训练的模型有能力解决不同类型的数学问题。但是,大多数现有数据集提供的程序原理有限,导致 CoT 和 PoT 原理之间不平衡。为此,该团队又用到了 GPT-4,来为所选数据集补充 PoT 原理,包括 MATH、AQuA、 GSM8K 和 TheoremQA。然后再对这些 GPT-4 合成的程序进行过滤,做法是将它们的执行结果与人类标注的基本真值进行比较,这能确保所添加的都是高质量的原理。
遵循这些准则,他们创建了一个新的数据集 MathInstruct,详见下表 1。
其中包含 26 万对 (指令,响应),覆盖广泛的核心数学领域(算术、代数、概率学、微积分和几何等),包含混合的 CoT 和 PoT 原理,并有不同的语言和难度。
重新设置训练
MathInstruct 的所有子集都被统一成了类似 Alpaca 的指令数据集的结构。这种标准化操作可以确保微调得到的模型能够一致地处理数据,无论原始数据集的格式如何
在基础模型方面,该团队选择了Llama-2和Code Llama
通过在 MathInstruct 上进行调整,他们获得了不同尺寸的模型,包括7B、13B、34B和70B
评估数据集
为了评估模型的数学推理能力,该团队选择了一些评估数据集,见下表 2,其中包含许多不同领域内和领域外样本,涉及多个不同数学领域。
评估数据集包含不同难度等级,包括小学、中学和大学水平。有些数据集还包括形式逻辑和常识推理
所选择的评估数据集既有开放式问题,也有多项选择题。
对于开放式问题(如 GSM8K 和 MATH),研究者采用了 PoT 解码,因为大多数这类问题可以通过程序求解。、
对于多项选择题(如 AQuA 和 MMLU),研究者采用了 CoT 解码,因为这个数据集中的大部分问题都可以通过 CoT 更好地处理。
CoT 解码不需要任何触发词,而 PoT 解码需要一个触发语:「Let’s write a program to solve the problem」。
主要结果
下表 3 和表 4 分别报告了在领域内外数据上的结果。
总体而言,在不同的模型大小上,MAmmoTH 和 MAmmoTH-Coder 都优于之前最佳的模型。新模型在领域外数据集上取得的性能增长多于在领域内数据集上所获增长。这些结果表明新模型确实有成为数学通才的潜力。MAmmoTH-Coder-34B 和 MAmmoTH-70B 在一些数据集上的表现甚至超过了闭源 LLM。
研究人员还比较了使用不同的基础模型的情况。具体而言,他们进行了实验,比较了Llama-2和Code-Llama这两种基础模型。从上述两个表格可以看出,Code-Llama整体上优于Llama-2,尤其是在领域外数据集上。MAmmoTH和MAmmoTH-Coder之间的差距甚至可达到5%
消融研究在数据源上的探索
他们通过进行研究来探索性能增益的来源。为了更好地理解MAmmoTH相对于已有的基准模型的优势来源,研究者进行了一系列对照实验,结果如图2所示
总结起来,MAmmoTH 的显著性能优势可以归功于:1) 涵盖不同的数学领域和复杂程度的多样化数据源,2) CoT 和 PoT 指令微调的混合策略。
他们也研究了主要子集的影响。对于用于训练 MAmmoTH 的 MathInstruct 的多样化来源,理解各个来源对模型整体性能的贡献程度也很重要。他们关注的重点是四个主要子集:GSM8K、MATH、 Camel 和 AQuA。他们进行了一项实验:逐渐将每个数据集添加到训练中,并将性能与在整个 MathInstruct 上微调的模型进行比较。
根据表5的结果可以看出,如果训练数据集的多样性不足(例如只有GSM8K时),模型的泛化能力非常差:模型只能适应数据分布内的情况,难以解决GSM问题之外的问题
多样化数据源对MAmmoTH的重要影响在这些结果中得到了凸显,这也是使MAmmoTH成为数学通才的核心关键。这些结果还提供了宝贵的见解,对于我们未来的数据整理和收集工作提供了指导,例如我们应该始终收集多样化的数据,避免只收集特定类型的数据
以上是通过MAmmoT,让LLM成为数学通才:从形式逻辑进阶到四则运算的详细内容。更多信息请关注PHP中文网其他相关文章!