Number Cookbook: Number Understanding of Language Models and How to Improve It
作者: Haotong Yang, Yi Hu, Shijia Kang, Zhouchen Lin, Muhan Zhang
分类: cs.CL, cs.AI
发布日期: 2024-11-06 (更新: 2025-03-05)
备注: ICLR 2025 poster
🔗 代码/项目: GITHUB
💡 一句话要点
提出Number Cookbook基准,提升LLM在数值理解和处理方面的能力
🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)
关键词: 大型语言模型 数值理解 数值处理 基准测试 微调 思维链 算术推理
📋 核心要点
- 现有LLM在数值理解和处理方面存在不足,例如比较大小等简单任务出错,阻碍了其在复杂数学问题中的应用。
- 论文构建了Number Cookbook基准,包含多种数值表示和任务,用于全面评估和提升LLM的数值能力。
- 实验表明,简单微调可以有效提升LLM在某些数值任务上的表现,但专门设计的增强技术效果不佳,思维链技术有一定影响。
📝 摘要(中文)
大型语言模型(LLM)在解决日益复杂的推理任务方面表现出色,但在基本的数值理解和处理方面却常常犯令人惊讶的错误(例如9.11 > 9.9)。数值能力对于处理复杂的算术和数学问题至关重要,并且是大多数推理任务的基础,但之前的工作很少关注它,或者只讨论了一些受限的任务(如整数加法)。本文全面研究了LLM的数值理解和处理能力(NUPA)。首先,我们引入了一个基准,涵盖四种常见的数值表示和四大类别的17个不同的数值任务,总共产生了41个有意义的组合。这些任务来源于中小学教育课程,几乎涵盖了所有日常的数值理解和处理场景,并且这些任务的规则非常简单明了。通过该基准,我们发现当前的LLM在许多任务中经常失败。为了研究这个问题,我们使用现有的和潜在的技术(如分词器、位置编码和数字格式)训练小型模型来增强NUPA,并使用我们的测试平台全面评估它们的有效性。我们还在我们提出的NUPA任务上微调了实际规模的LLM,发现1)简单的微调可以在许多但不是所有任务上大大提高NUPA,2)令人惊讶的是,旨在增强NUPA的技术对于微调预训练模型来说是无效的。我们进一步探讨了思维链技术对NUPA的影响。我们的工作提供了对LLM中NUPA更详细和全面的理解。我们的基准和代码已在https://github.com/GraphPKU/number_cookbook上发布。
🔬 方法详解
问题定义:论文旨在解决大型语言模型(LLM)在数值理解和处理能力(NUPA)方面的不足。现有方法要么关注度不够,要么只关注特定任务(如整数加法),缺乏对LLM在各种数值表示和任务上的全面评估和提升。LLM在基础数值任务上的错误会严重影响其在复杂数学问题和推理任务中的表现。
核心思路:论文的核心思路是构建一个全面的基准测试集(Number Cookbook)来评估LLM的NUPA,并探索各种技术来提升LLM在该方面的能力。通过系统性的实验,分析不同技术对NUPA的影响,并为未来的研究提供指导。这样设计的目的是为了更深入地了解LLM的数值能力瓶颈,并找到有效的改进方法。
技术框架:整体框架包括以下几个主要阶段: 1. 基准构建:设计并构建Number Cookbook基准,涵盖四种数值表示和17种数值任务,共41个组合。 2. 小型模型训练:使用各种技术(如不同的分词器、位置编码、数字格式)训练小型模型,评估这些技术对NUPA的影响。 3. 大型模型微调:在Number Cookbook基准上微调实际规模的LLM,观察微调对NUPA的提升效果。 4. 思维链分析:研究思维链技术对NUPA的影响。
关键创新:论文的关键创新点在于: 1. 全面的NUPA基准:提出了一个涵盖多种数值表示和任务的综合性基准,能够更全面地评估LLM的数值能力。 2. 系统性的技术评估:系统地评估了各种技术对NUPA的影响,包括分词器、位置编码、数字格式和微调方法。 3. 对思维链的探索:研究了思维链技术对NUPA的影响,为未来的研究提供了新的方向。 与现有方法的本质区别在于,本文更注重对LLM数值能力的全面评估和系统性提升,而不仅仅是关注特定任务。
关键设计: 1. Number Cookbook基准:包含整数、小数、分数、科学计数法四种数值表示,以及加减乘除、比较大小、单位转换等17种数值任务。 2. 小型模型训练:使用了不同的分词器(如BPE、WordPiece)、位置编码(如绝对位置编码、相对位置编码)和数字格式(如原始数字、科学计数法)。 3. 大型模型微调:使用了标准的微调方法,并探索了不同的学习率和训练策略。 4. 损失函数:使用了交叉熵损失函数来训练模型。
🖼️ 关键图片
📊 实验亮点
实验结果表明,在Number Cookbook基准测试中,简单的微调方法可以在许多数值任务上显著提升LLM的性能。例如,在某些任务上,微调后的模型准确率提升了超过20%。然而,专门设计的增强NUPA的技术(如特定的分词器或位置编码)在微调预训练模型时效果不佳,这表明预训练模型可能已经学习到了一些隐含的数值处理能力。
🎯 应用场景
该研究成果可应用于提升LLM在金融、科学计算、工程等领域的应用能力。通过提高LLM的数值理解和处理能力,可以使其更好地解决涉及复杂数学运算和推理的问题,例如财务报表分析、物理模型仿真、工程设计优化等。未来,该研究可以促进LLM在更广泛的实际场景中的应用。
📄 摘要(原文)
Large language models (LLMs) can solve an increasing number of complex reasoning tasks while making surprising mistakes in basic numerical understanding and processing (such as 9.11 > 9.9). The latter ability is essential for tackling complex arithmetic and mathematical problems and serves as a foundation for most reasoning tasks, but previous work paid little attention to it or only discussed several restricted tasks (like integer addition). In this paper, we comprehensively investigate the numerical understanding and processing ability (NUPA) of LLMs. Firstly, we introduce a benchmark covering four common numerical representations and 17 distinct numerical tasks in four major categories, resulting in 41 meaningful combinations in total. These tasks are derived from primary and secondary education curricula, encompassing nearly all everyday numerical understanding and processing scenarios, and the rules of these tasks are very simple and clear. Through the benchmark, we find that current LLMs fail frequently in many of the tasks. To study the problem, we train small models with existing and potential techniques for enhancing NUPA (such as tokenizers, PEs, and number formats), comprehensively evaluating their effectiveness using our testbed. We also finetune practical-scale LLMs on our proposed NUPA tasks and find that 1) naive finetuning can improve NUPA a lot on many but not all tasks, and 2) surprisingly, techniques designed to enhance NUPA prove ineffective for finetuning pretrained models. We further explore the impact of chain-of-thought techniques on NUPA. Our work provides a more detailed and comprehensive understanding of NUPA in LLMs. Our benchmark and code are released at https://github.com/GraphPKU/number_cookbook.