开篇:数学能力在常规语言模型中的崭露头角
数学能力长期以来被认为是语言模型中难以攻克的领域,只有在模型规模极大或经过大量数学相关预训练的情况下才可能显现。然而,最新的研究表明,即使是规模较小的常规语言模型,如LLaMA-2 7B,也已经展现出了强大的数学能力。这一发现挑战了以往的观点,即数学能力的显现需要模型具有极大的规模或特定的数学预训练。事实上,通过对数学问题的监督式微调(SFT),LLaMA-2 7B模型在从256个随机生成的答案中选择最佳答案时,已经能够在GSM8K和MATH基准测试中分别达到97.7%和72.0%的准确率。这一成就不仅仅是对模型本身能力的一次展示,更重要的是,它为我们如何提升模型在数学问题解决方面的稳定性提供了新的思路。
标题:Common 7B Language Models Already Possess Strong Math Capabilities
作者: Chen Li, Weiqi Wang, Jingcheng Hu, Yixuan Wei, Nanning Zheng, Han Hu, Zheng Zhang*, Houwen Peng*
论文链接: https://arxiv.org/pdf/2403.04706.pdf
公众号【AI论文解读】后台回复“论文解读” 获取论文PDF!
LLaMA-2 7B模型的数学能力揭示
LLaMA-2 7B模型在没有特定数学预训练的情况下,通过对数千个数学问题进行监督式微调(SFT),展现出了强大的数学解决能力。在GSM8K和MATH基准测试中,模型在从256个随机生成的答案中选择最佳答案时,分别达到了97.7%和72.0%的准确率。然而,当只考虑单次随机生成的答案时,准确率分别下降到49.5%和7.9%,这揭示了一个主要问题——如何一致性地激发模型固有的数学能力。
为了解决这个问题,研究者们首先观察到,随着SFT数据的指数级增长,准确率几乎呈线性甚至超线性提升。此外,当使用所有可用的GSM8K和MATH训练数据时,准确率远未达到饱和,这激励研究者们进一步扩大SFT数据规模。然而,由于公开可用的真实数学问题数据量有限,研究者们转而使用合成数据。通过使用GPT-4 Turbo生成的合成数学问题,研究者们发现这些合成数据几乎与真实数据一样有效,并且在规模扩大到大约一百万个样本时没有明显的饱和迹象。通过这种简单直接的方法,LLaMA-2 7B模型在GSM8K和MATH基准测试中的准确率分别提升到82.6%和40.6%,超过了之前的模型。
此外,研究还发现,随着SFT数据规模的增加,模型在处理不同复杂性推理问题和错误类型方面的表现也有所不同。具体来说,计算错误比推理错误更容易被缓解。这些发现为我们如何提升大型语言模型在数学问题解决方面的能力提供了宝贵的见解。
解决不稳定性问题:监督式微调数据的线性增长
在数学能力的研究中,我们发现即使是小型的通用语言模型,如LLaMA-2 7B模型,在没有特定的数学相关预训练的情况下,也已经具备了强大的数学能力。这一发现挑战了之前的观点,即认为数学能力只能在大规模模型中显现,或者需要大量的数学相关预训练。然而,我们面临的主要问题是如何一致性地引出模型固有的数学能力。在GSM8K和MATH基准测试中,如果只考虑单次随机生成的答案,准确率分别降至49.5%和7.9%。我们将这一现象称为不稳定性问题。
1. 线性增长的观察
为了解决不稳定性问题,我们首先观察到,随着监督式微调(SFT)数据的指数级增加,准确率呈现出线性甚至超线性的提升。此外,我们注意到,当使用所有可用的GSM8K和MATH训练数据时,准确率远未达到饱和状态。这一观察鼓励我们进一步扩大SFT数据规模。然而,公开可用的真实数学问题数据量有限,这限制了我们进行持续扩展的可能性。
2. 利用合成数据进行规模扩展
为了克服真实数据不足的限制,我们转向合成数据。我们采用了GPT-4 Turbo模型来生成合成数学问题,并通过简单的验证器(同样基于GPT-4 Turbo)来提高问题的质量。通过这种方法,我们能够显著提高模型生成正确答案的可靠性。例如,我们将GSM8K的SFT数据从7.5K扩展到960K,将MATH的SFT数据从7.5K扩展到480K。这种数据扩展表现出近乎完美的扩展行为,并使我们的模型成为第一个在GSM8K和MATH上分别超过80%和40%准确率的标准LLaMA-2 7B基础模型。
创新方法:合成数学问题的生成与验证
在解决不稳定性问题的过程中,我们采用了一种创新的方法来生成和验证合成数学问题。
1. 合成数学问题的生成
我们的方法包括以下几个步骤:
步骤1:生成新的数学问题。我们使用GPT-4 Turbo API根据参考数学问题生成一个全新的问题,并设置了特定的格式要求,以适应不同的目标数据集。
步骤2:验证问题。**我们通过尝试解决问题并将解决和验证步骤集成到单个提示中,来提高生成问题的质量。
步骤3:生成思路链(CoT)答案。我们请求GPT-4 Turbo为每个新生成的问题产生一个思路链答案。
2. 合成数据与真实数据的比较
为了评估合成数学问题的质量,我们使用LLaMA-2 7B模型对合成数据和真实数据进行了比较。结果表明,合成数学问题几乎与真实问题一样有效。
实验结果:合成数据与真实数据的对比
在实验中,我们对合成数据和真实数据进行了对比,以评估合成数据的有效性。
1. 使用合成数据进行SFT数据规模扩展
我们首先检查了真实数学问题在整个GSM8K和MATH训练集上的扩展行为。随着数据量的增加,我们观察到一致的准确率提升,没有出现饱和迹象。然后,我们考虑使用合成生成的数学问题进一步扩展SFT数据。我们大胆地将合成SFT数据扩展到GSM8K的960K和MATH的480K,结果显示几乎完美的扩展行为,并达到了最新的准确率水平。
2. 合成SFT数据与真实数据的比较
我们利用LLaMA-2 7B模型评估了合成生成的数学问题与GSM8K和MATH训练集中的真实问题的有效性。结果表明,合成数学问题几乎与真实问题一样有效。此外,我们还探索了其他合成方法,这些方法也被证明是有效的,尽管略逊于我们的方法。
3. 扩展到约一百万SFT数学数据
考虑到合成方法的有效性,我们大幅增加了GSM8K和MATH问题的SFT数据规模,分别达到960K和480K。我们的简单扩展策略产生了最新的准确率水平,并且我们还发现准确率尚未达到峰值。探索额外扩展的效果将作为我们未来的研究方向。
扩展SFT数据的影响:从7.5K到近百万的数据量
在研究中,我们观察到通过扩展监督式微调(SFT)数据,可以显著提高模型在数学问题上的准确性。起初,我们的模型在GSM8K和MATH基准测试中的准确率分别为49.5%和7.9%,但这是基于每个问题仅产生一个随机答案的情况。为了解决这种不稳定性问题,我们首先尝试使用现有的GSM8K和MATH训练数据进行扩展,结果发现准确率有了显著提升,但并未达到饱和状态,这表明我们有进一步扩展SFT数据的空间。
由于公开可用的真实数学问题数据量有限,我们转而使用合成数据。我们采用了GPT-4 Turbo模型生成新的数学问题,并通过简单的验证器来提高问题的质量。这种方法被证明与真实数据几乎同样有效,并且在扩展到大约一百万个样本时没有明显的饱和迹象。通过这种方法,我们的LLaMA-2 7B模型在GSM8K和MATH基准测试中的准确率分别提高到了82.6%和40.6%,超过了之前的模型。
此外,我们还观察到,合成SFT数据的扩展对于更强大的基础模型(如LLaMA-2 70B)同样有效,该模型在GSM8K和MATH基准测试中的准确率分别达到了90.6%和52.8%。这些结果不仅展示了合成数据扩展方法的有效性,也证明了我们的方法在不同规模的模型上都能取得显著的性能提升。
模型性能分析:错误类型与推理复杂性的关系
我们的研究还深入分析了模型性能的提升背后的原因。首先,我们发现随着SFT数据规模的增加,模型在使用256次尝试时的准确率趋于平稳,但在使用单次响应时准确率有显著提升。这表明模型的上限能力相对恒定,性能提升主要是由于生成正确答案的稳定性增强。
其次,我们分析了数学问题解决的准确率与推理步骤(CoT)数量的关系,并发现准确率遵循幂律分布。通过扩展SFT数据集,我们提高了每个推理步骤的可靠性。通过重新采样,增加训练样本中更长CoT步骤的比例,我们显著提高了模型对困难问题的准确率。
最后,我们对错误类型进行了分析,发现计算错误相比推理错误更容易被缓解。这一发现为我们提供了优化模型性能的方向,即通过增加合成数据来减少计算错误,从而提高整体性能。
跨数据集性能:在不同基准测试中的表现
为了评估我们模型的泛化能力,我们在多个基准测试上进行了评估,包括GSM8K、MATH、SVAMP、ASDiv和匈牙利国家高中考试。我们发现,使用GSM8K合成数据训练的模型在SVAMP和ASDiv基准测试上表现更好,而使用MATH合成数据训练的模型在GSM8K基准测试上表现更好,但在MATH基准测试上表现较差。这表明不同的训练数据对模型的泛化能力有不同的影响。
此外,我们还测试了模型在匈牙利国家高中考试这一超出域的基准测试上的表现。结果显示,无论是使用GSM8K还是MATH合成数据训练的模型,随着数据量的增加,其他基准测试的准确率也有所提高。这进一步证明了我们的方法不仅能够提高模型在特定任务上的性能,也能够增强模型的泛化能力。
数据合成策略的探讨:与其他方法的比较
在提升大型语言模型(LLM)在数学任务中的表现方面,数据合成策略起着至关重要的作用。本文中,我们采用了一种简单直接的“全新”生成策略,即利用GPT-4 Turbo生成基于参考数学问题的全新问题,并通过简单的验证器(同样基于GPT-4 Turbo)来提高问题的质量。这种方法的有效性在**Table 1**中得到了证实,合成的数学问题在准确性上几乎与真实问题相当,显示出合成SFT数学问题在规模扩展方面的潜力。
与其他合成方法相比,如在**Figure 6**中所示,我们的方法在数据规模较大时表现出更强的性能。例如,添加约束的方法和我们的方法在数据规模增加时展现出更强的性能。这表明在数据规模增大时,数据合成策略的选择变得更为关键,某些方法能够更有效地扩展数据,从而提高性能。
此外,问题验证步骤也被证明可以提高生成问题的质量。在我们的实验中,我们发现它可以提高MATH基准测试的性能,如**Table 5**所示,尽管在GSM8K数据集上我们并未看到显著影响。
相关工作:大型语言模型在数学任务中的应用
大型语言模型(LLM)在多种任务中取得了显著的成就,其中封闭源的大型语言模型,如GPT系列、Gemini、Grok和Claude-2,表现最为先进。然而,开源模型如LLaMA和LLaMA-2也迅速进步,并在某些任务上与封闭源模型展现出竞争力。我们的工作旨在通过在合成数据上微调开源LLM,提高其在数学任务上的性能。
在提升数学能力方面,链式推理(Chain-of-thought)框架鼓励LLM通过特定设计的提示来执行多步推理,从而提高推理性能。基于这项工作,许多后续研究提出了进一步的改进。这些工作主要集中在如何通过更好的提示设计或推理策略来提高性能,而不是微调模型,因此这些方法与我们的工作是互补的。
另一类工作尝试通过在数学数据上训练模型直接提高性能。一种直接的方法是使用微调来改进模型。一种广泛使用的方法是使用合成数据,这与我们的方法非常接近:MetaMath提出了引导问题来扩充数据,LeMA收集了使用GPT-4作为校正器的错误-校正数据对,而MuggleMath通过一系列预定义的操作将GPT-4与GSM8K数据集结合起来。与这些基于合成数据的努力相比,我们的数据合成方法更为简单且可扩展,因为引入了更少的先验和约束。
结论与展望:LLaMA-2 7B模型的数学能力及未来研究方向
本研究揭示了,如LLaMA-2 7B这样的通用7B语言模型已经展现出强大的数学能力,挑战了先前的观点,即高级数学推理仅限于更大、经过更广泛预训练的模型。通过显著扩大SFT数据规模,我们显著提高了模型解决数学问题的稳定性。我们的方法使Xwin-Math模型达到了与更大模型相当,甚至在某些情况下超越的性能水平。我们的分析还表明,性能提升主要归因于单步推理准确度的提高,额外的训练数据重采样可以提高更难问题的准确度。此外,我们观察到与逻辑推理错误相比,计算错误的减少更为显著。
我们的研究为大型语言模型的数学能力提供了宝贵的见解,并为未来的研究方向奠定了基础。未来的研究可以探索进一步扩展SFT数据的效果,以及如何通过改进数据合成策略和验证步骤来提高模型在更广泛数学任务中的表现。