DotaMath: Decomposition of Thought with Code Assistance and Self-correction for Mathematical Reasoning

📄 arXiv: 2407.04078v3 📥 PDF

作者: Chengpeng Li, Guanting Dong, Mingfeng Xue, Ru Peng, Xiang Wang, Dayiheng Liu

分类: cs.CL, cs.AI, cs.LG

发布日期: 2024-07-04 (更新: 2024-07-17)

备注: Work in progress

🔗 代码/项目: GITHUB


💡 一句话要点

DotaMath:结合代码辅助与自纠错的思维分解方法,提升数学推理能力

🎯 匹配领域: 支柱二:RL算法与架构 (RL & Architecture) 支柱九:具身大模型 (Embodied Foundation Models)

关键词: 数学推理 大型语言模型 思维分解 代码辅助 自纠错 指令微调 模仿学习

📋 核心要点

  1. 现有LLM在复杂数学问题上表现不足,难以有效分解问题并利用外部工具。
  2. DotaMath通过思维分解,结合代码辅助和自纠错,将复杂问题拆解为简单子任务。
  3. DotaMath模型在MATH和GSM8K数据集上取得了显著提升,并在其他基准测试中保持竞争力。

📝 摘要(中文)

大型语言模型(LLMs)在处理简单的数学问题方面取得了显著进展,但在更具挑战性和复杂性的数学任务中仍然表现不佳。本文提出了一系列LLMs,采用结合代码辅助与自纠错的思维分解方法进行数学推理,称为DotaMath。DotaMath模型通过将复杂的数学任务分解为更简单的逻辑子任务来解决问题,利用代码来解决这些子任务,从代码解释器获得细粒度的反馈,并进行自我反思和纠正。通过标注多样化的交互式工具使用轨迹,并在GSM8K和MATH数据集上进行查询演化,我们生成了一个名为DotaMathQA的指令微调数据集,包含574K个查询-响应对。我们使用DotaMathQA上的模仿学习训练了一系列基础LLMs,从而产生了DotaMath模型,与各种领域内和领域外的基准测试中的开源LLMs相比,DotaMath模型取得了显著的性能。值得注意的是,DotaMath-deepseek-7B在竞争激烈的MATH数据集上表现出色,达到了64.8%,在GSM8K上达到了86.7%。此外,DotaMath-deepseek-7B在一系列领域内和领域外的基准测试中保持了强大的竞争力(平均80.1%)。展望未来,我们预计DotaMath范式将为解决复杂的数学问题开辟新的途径。我们的代码已在https://github.com/ChengpengLi1003/DotaMath上公开。

🔬 方法详解

问题定义:现有大型语言模型在处理复杂的数学推理问题时,面临着难以分解问题、难以有效利用外部工具(如代码解释器)进行计算和验证的痛点。这导致模型在需要多步骤推理和精确计算的数学任务中表现不佳。

核心思路:DotaMath的核心思路是将复杂的数学问题分解为一系列更小、更易于管理的逻辑子任务。通过代码辅助,模型可以利用代码解释器执行计算,并获得细粒度的反馈。此外,模型还具备自我反思和纠错的能力,根据代码执行结果调整推理过程。

技术框架:DotaMath的整体框架包含以下几个主要阶段:1) 问题分解:将复杂数学问题分解为多个逻辑子任务。2) 代码生成:针对每个子任务,生成相应的代码片段。3) 代码执行:利用代码解释器执行生成的代码。4) 结果反馈:从代码解释器获取执行结果,作为反馈信号。5) 自我反思与纠错:根据反馈信号,模型反思推理过程,并对错误进行纠正。这个过程迭代进行,直到问题得到解决。

关键创新:DotaMath的关键创新在于将思维分解、代码辅助和自纠错机制有机结合。与传统的端到端模型相比,DotaMath能够更好地利用外部知识和工具,提高数学推理的准确性和可靠性。此外,DotaMathQA数据集的构建也为模型的训练提供了高质量的监督信号。

关键设计:DotaMathQA数据集的构建采用了多样化的交互式工具使用轨迹和查询演化策略,以保证数据的丰富性和多样性。模型训练采用模仿学习的方式,学习人类专家解决数学问题的过程。具体的参数设置和网络结构细节在论文中未详细说明,属于未知信息。

🖼️ 关键图片

img_0

📊 实验亮点

DotaMath-deepseek-7B模型在MATH数据集上取得了64.8%的准确率,在GSM8K数据集上取得了86.7%的准确率,显著优于其他开源LLMs。此外,DotaMath-deepseek-7B在领域内和领域外的基准测试中也表现出强大的竞争力,平均准确率达到80.1%。这些结果表明DotaMath方法在提升数学推理能力方面具有显著效果。

🎯 应用场景

DotaMath方法具有广泛的应用前景,可应用于自动化数学解题、科学计算、金融建模等领域。该方法能够提升机器在复杂推理和计算任务中的能力,有望在教育、科研和工业界发挥重要作用,并促进人工智能在数学及相关领域的应用。

📄 摘要(原文)

Large language models (LLMs) have made impressive progress in handling simple math problems, yet they still struggle with more challenging and complex mathematical tasks. In this paper, we introduce a series of LLMs that employs the Decomposition of thought with code assistance and self-correction for mathematical reasoning, dubbed as DotaMath. DotaMath models tackle complex mathematical tasks by decomposing them into simpler logical subtasks, leveraging code to solve these subtasks, obtaining fine-grained feedback from the code interpreter, and engaging in self-reflection and correction. By annotating diverse interactive tool-use trajectories and employing query evolution on GSM8K and MATH datasets, we generate an instruction fine-tuning dataset called DotaMathQA with 574K query-response pairs. We train a series of base LLMs using imitation learning on DotaMathQA, resulting in DotaMath models that achieve remarkable performance compared to open-source LLMs across various in-domain and out-of-domain benchmarks. Notably, DotaMath-deepseek-7B showcases an outstanding performance of 64.8% on the competitive MATH dataset and 86.7% on GSM8K. Besides, DotaMath-deepseek-7B maintains strong competitiveness on a series of in-domain and out-of-domain benchmarks (Avg. 80.1%). Looking forward, we anticipate that the DotaMath paradigm will open new pathways for addressing intricate mathematical problems. Our code is publicly available at https://github.com/ChengpengLi1003/DotaMath.