Arithmetic Reasoning with LLM: Prolog Generation & Permutation

📄 arXiv: 2405.17893v1 📥 PDF

作者: Xiaocheng Yang, Bingsen Chen, Yik-Cheung Tam

分类: cs.CL, cs.AI

发布日期: 2024-05-28

备注: 12 pages, 4 figures, accepted by NAACL 2024 Main Conference


💡 一句话要点

提出基于Prolog生成的算术推理方法,提升LLM在数学问题上的表现。

🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)

关键词: 算术推理 大型语言模型 Prolog生成 符号计算 数据增强

📋 核心要点

  1. 思维链(CoT)方法在解决数学问题时易产生累积误差,限制了LLM的准确性。
  2. 利用LLM生成Prolog程序,将问题分解为谓词提取和公式生成,交由外部解释器计算。
  3. 实验表明,基于Prolog的方法在GSM8K基准测试中优于CoT,并通过数据增强提升鲁棒性。

📝 摘要(中文)

本文研究利用大型语言模型(LLM)生成Prolog程序来解决小学数学问题。现有方法如思维链(CoT)依赖LLM生成算术计算序列,容易产生累积计算错误。本文假设LLM应侧重于从问题描述中提取谓词并生成符号公式,然后通过外部代码解释器进行计算。实验结果表明,基于Prolog的算术问题求解在GSM8K基准测试中优于三种不同LLM的CoT生成方法。此外,考虑到Prolog中谓词和符号公式的顺序不敏感性,本文提出通过置换真实谓词进行数据增强,以实现更鲁棒的LLM训练。

🔬 方法详解

问题定义:论文旨在解决大型语言模型(LLM)在算术推理问题中,特别是小学数学问题上的准确性问题。现有的思维链(CoT)方法依赖LLM逐步生成计算过程,容易因为中间步骤的错误而导致最终结果出错,即误差累积问题。这种方法对LLM的计算能力要求较高,而LLM更擅长的是知识的理解和推理,而非精确计算。

核心思路:论文的核心思路是将LLM的优势集中在理解问题和提取关键信息上,而不是让LLM直接进行计算。具体来说,就是让LLM从数学问题描述中提取谓词(predicate)和生成符号公式,然后将这些信息转化为Prolog程序。Prolog程序可以交给专业的Prolog解释器执行,从而保证计算的准确性。这样就将问题分解为LLM擅长的任务(理解和提取)和计算机擅长的任务(精确计算)。

技术框架:整体流程如下:1. 输入数学问题描述;2. LLM根据问题描述生成Prolog程序,包括谓词和公式;3. Prolog解释器执行生成的Prolog程序;4. 输出计算结果。关键模块包括:LLM(负责Prolog程序生成)、Prolog解释器(负责执行计算)。

关键创新:最重要的技术创新点在于将LLM与Prolog解释器结合,利用LLM的理解能力和Prolog解释器的计算能力。与CoT方法相比,该方法将计算过程外包给专业的计算工具,避免了LLM自身计算错误带来的误差累积。此外,论文还提出了数据增强方法,通过置换Prolog程序中的谓词顺序来增加训练数据的多样性,提高模型的鲁棒性。

关键设计:论文的关键设计包括:1. 使用特定的prompt指导LLM生成Prolog程序;2. 设计合适的数据增强策略,例如随机置换Prolog程序中的谓词顺序;3. 选择合适的LLM作为Prolog程序生成器,并进行微调;4. 使用标准的Prolog解释器执行生成的Prolog程序。

🖼️ 关键图片

fig_0
fig_1
fig_2

📊 实验亮点

实验结果表明,基于Prolog的算术问题求解方法在GSM8K基准测试中优于三种不同的LLM的CoT生成方法。具体性能提升数据未知,但强调了Prolog方法在准确性上的优势。此外,通过谓词置换的数据增强方法能够提高模型的鲁棒性,进一步提升性能。

🎯 应用场景

该研究成果可应用于智能教育领域,例如自动解答数学题、个性化辅导等。通过结合LLM的理解能力和专业计算工具的精确性,可以构建更智能、更可靠的数学学习系统。此外,该方法也可以推广到其他需要符号推理和计算的领域,例如科学计算、逻辑推理等。

📄 摘要(原文)

Instructing large language models (LLMs) to solve elementary school math problems has shown great success using Chain of Thought (CoT). However, the CoT approach relies on an LLM to generate a sequence of arithmetic calculations which can be prone to cascaded calculation errors. We hypothesize that an LLM should focus on extracting predicates and generating symbolic formulas from the math problem description so that the underlying calculation can be done via an external code interpreter. We investigate using LLM to generate Prolog programs to solve mathematical questions. Experimental results show that our Prolog-based arithmetic problem-solving outperforms CoT generation in the GSM8K benchmark across three distinct LLMs. In addition, given the insensitive ordering of predicates and symbolic formulas in Prolog, we propose to permute the ground truth predicates for more robust LLM training via data augmentation.