Reasoning, Code, or Both? How Large Language Models Handle Variations in Math Questions
作者: Matthew Kutakh
分类: cs.AI, cs.CL, cs.LG
发布日期: 2026-05-26
备注: 6 pages, 4 figures, 2 tables
💡 一句话要点
对比思维链、单步代码执行与迭代代码执行,评估大语言模型在数学问题变体上的鲁棒性。
🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)
关键词: 大语言模型 数学推理 鲁棒性 思维链 代码执行 问题变体 程序辅助语言模型 逐步编码
📋 核心要点
- 现有大语言模型在数学推理中,对问题的细微变化(如数字或名称)敏感,鲁棒性不足。
- 论文对比了思维链(CoT)、单步代码执行(PAL)和迭代代码执行(SBSC)三种方法在问题变体上的表现。
- 实验结果表明,CoT方法在面对问题变体时表现出更好的鲁棒性,代码执行方法并未显著提升鲁棒性。
📝 摘要(中文)
大型语言模型(LLMs)在数学推理基准测试中表现出令人印象深刻的准确性,但当问题通过简单的更改(如不同的名称或数字)进行修改时,其性能会下降。代码执行方法(允许模型生成和运行Python代码,而不是用自然语言进行推理)已被提议作为一种解决方案,但它们对推理鲁棒性(在问题变体中保持准确性的能力)的影响尚未经过系统测试。本研究评估了来自GSM-Symbolic数据集的1000个问题上的三种方法:使用思维链(CoT)提示的纯推理、使用程序辅助语言模型(PAL)的单步代码执行以及使用逐步编码(SBSC)的迭代代码执行。所有三种方法都在配对的原始问题和修改问题上使用Claude Haiku 4.5运行。CoT是最鲁棒的方法,准确率下降了1.3个百分点,并且1.8%的问题在扰动下崩溃。PAL的鲁棒性最差,为1.7个百分点,3.1%的问题崩溃,SBSC介于两者之间。尽管这些差异在统计上不显着($p = .096$),但方向趋势在所有测量中都是一致的,这表明代码执行(无论是单步还是迭代)并不能提高小学水平问题变体的推理鲁棒性。
🔬 方法详解
问题定义:论文旨在解决大语言模型在数学推理中,对问题细微变化(例如,数字或名称的改变)的敏感性问题。现有方法,即使在标准数据集上表现良好,在面对这些变体时,性能会显著下降,缺乏鲁棒性。
核心思路:论文的核心思路是通过对比不同的推理方法(思维链CoT、单步代码执行PAL和迭代代码执行SBSC)在问题变体上的表现,来评估哪种方法更具鲁棒性。通过对问题进行简单修改,观察模型在原始问题和修改后问题上的准确率差异,从而量化鲁棒性。
技术框架:整体流程包括:1)选择GSM-Symbolic数据集,包含1000个小学数学题;2)对每个问题生成一个变体,例如改变数字或名称;3)使用Claude Haiku 4.5模型,分别采用CoT、PAL和SBSC三种方法解决原始问题和变体问题;4)比较三种方法在原始问题和变体问题上的准确率,计算准确率下降的百分比和问题崩溃的比例,以此评估鲁棒性。
关键创新:论文的关键创新在于系统性地评估了代码执行方法(PAL和SBSC)对数学推理鲁棒性的影响。以往研究主要关注代码执行方法在提高准确率方面的作用,而忽略了其在面对问题变体时的表现。该研究表明,代码执行方法并不一定能提高推理的鲁棒性,甚至可能降低鲁棒性。
关键设计:CoT方法采用标准的思维链提示,引导模型逐步推理;PAL方法采用单步代码生成和执行,将问题转化为Python代码并执行;SBSC方法采用迭代的代码生成和执行,允许模型逐步完善代码。实验中,使用Claude Haiku 4.5模型,并对所有方法采用相同的超参数设置,以保证实验的公平性。使用准确率下降百分比和问题崩溃比例作为评估鲁棒性的指标。
🖼️ 关键图片
📊 实验亮点
实验结果表明,在面对小学数学题的简单变体时,思维链(CoT)方法表现出最佳的鲁棒性,准确率下降仅为1.3个百分点,问题崩溃比例为1.8%。相比之下,单步代码执行(PAL)的鲁棒性最差,准确率下降1.7个百分点,问题崩溃比例为3.1%。尽管差异不具有统计显著性(p=0.096),但趋势表明代码执行方法并未提升鲁棒性。
🎯 应用场景
该研究结果对于提升大语言模型在实际应用中的可靠性至关重要。例如,在教育领域,可以帮助开发更适应不同学生提问方式的智能辅导系统。在金融领域,可以提高模型在处理复杂和多变的市场数据时的准确性。未来的研究可以探索更复杂的代码执行策略或结合其他技术来提高模型的鲁棒性。
📄 摘要(原文)
Large Language Models (LLMs) achieve impressive accuracy on mathematical reasoning benchmarks, yet their performance drops when problems are modified with simple changes like different names or numbers. Code execution methods, which let models generate and run Python code instead of reasoning in natural language, have been proposed as a solution, but their effect on reasoning robustness (the ability to maintain accuracy across problem variations) has not been systematically tested. This study evaluates three approaches on 1,000 problems from the GSM-Symbolic dataset: pure reasoning using chain-of-thought (CoT) prompting, single-shot code execution using Program-Aided Language models (PAL), and iterative code execution using Step-by-Step Coding (SBSC). All three were run on paired original and modified problems using Claude Haiku 4.5. CoT was the most robust method, with an accuracy drop of 1.3 percentage points and 1.8% of problems breaking under perturbation. PAL was the least robust at 1.7 percentage points and 3.1% broke, with SBSC falling in between. Although these differences were not statistically significant ($p = .096$), the directional trend was consistent across all measures, suggesting that code execution, whether single-shot or iterative, does not improve reasoning robustness on grade-school-level problem variations.