查看原文
其他

近乎完美!最强算术语言模型: Goar-7B,干翻GPT-4,怒越PaLM-540B!24G可训练

ShuYini AINLPer 2023-07-10

点击上方AINLPer,设为星标
更多干货,第一时间送达

引言

 前两天,OpenAI对step-by-step数学推理问题发表了最新的研究,指出了「过程监督优于结果监督」的结论,旨在提升GPT-4的数学推理能力。今天给大家分享的这边篇文章就是基于该理论(「好像比OpenAI要早」),旨在提升模型大数计算能力,基于LLaMA预训练了Goat模型,Goar-7B在Zero-shot上的准确效果,堪比、甚至超越PaLM-540B模型的Few-shot结果;在大数计算方面远超GPT-4。

Paper:https://arxiv.org/pdf/2305.14201.pdf

Code:https://github.com/liutiedong/goat

背景介绍

 大型语言模型(LLM)在广泛的自然语言处理(NLP)任务中表现出卓越的性能。并且当今最值得注意的是OpenAI的GPT-4,它在此类任务中取得了最先进的性能。然而,令人惊讶的是,如此强大的语言模型仍然难以处理基本的算术任务。「GPT-4在算术任务中的性能,尤其是大数的乘法和除法,目前还远未达到最佳状态,准确度水平趋向于零」

 在本文介绍了一种微调的语言模型:Goat。不同于以往对算术计算的研究,该模型在 LLaMA上采用端到端监督指令微调范式,利用包含约100万个样本的综合生成数据集进行训练得到。它非常擅长算术任务。Goat 在初等算术(包括整数的加法、减法、乘法和除法)中实现了最先进的性能。实验结果表明,仅通过监督微调而不应用任何特殊技术,「Goat模型能够在Zero-shot设置中以近乎完美的精度为大数加法和减法生成答案」。这种出色的算术能力归因于 LLaMA 对数字的一致标记化,并表明这对于以前的 LLM 来说几乎是不可能实现的,例如 Bloom、OPT、GPT-NeoX 、Pythia等。

 然而,该模型在面对乘除运算时遇到了很大的挑战。为了克服这一挑战,本文提出了一种方法,即「将各种算术任务分为可学习和不可学习任务」,随后利用基本算术原理将不可学习任务(例如多位数乘法和除法)分解为一系列可学习任务。本文方法确保促进模型学习的中间监督也很容易被人类理解,即通过模型微调在生成最终答案之前生成合适的CoT。「本文方法大大优于 GPT-4 的长乘法和长除法」。最终使用 BIG-bench (Srivastava et al., 2022) 算术子任务评估模型的性能,并对本文方法的有效性进行综合评估。实验结果表明,该模型可以学习计算模式并将其泛化到看不见的数据,而不仅仅是纯粹权重记忆计算。此外,Goat-7B 可以在24GB VRAM GPU上使用LoRA低秩适应技术进行训练,可以「很容易复现论文成果」

方法介绍

「模型选择」:LLaMA是一组开源预训练语言模型,使用公开可用的数据集对数万亿个标记进行训练,并在许多基准测试中实现了最先进的性能。当今许多常用的子词标记化技术都不能理想地表示数字。然而,LLaMA 将每个数字拆分为一个单独的标记,从而确保数字的标记化一致。语言模型的选择对本文主要工作至关重要。「作者认为这项工作中表现出的卓越算术能力主要归功于 LLaMA 对数字的一致标记化」。实验验证了其它LLM,如 Bloom、OPT、GPT-NeoX和Pythia,在同一算术数据集上进行微调,无法与LLaMA的算术能力相提并论。

「算术任务可学习性」:作者将算数任务分为可学习和不可学习两类。「可学习任务」指的是模型经过训练后能在预定义的训练周期内生成正确答案的任务,而「不可学习任务」则是模型即使进行了大量训练仍然难以正常生成答案的任务。作者通过实验在一个简化的合成环境中对每个任务进行了特定细化的模型微调,旨在探究这些任务的可学习性。下表展示了公认可学习任务和不可学习任务。 作者发现,模型的可学习性与任务的复杂度和所需的工作记忆大小有关。对于可学习任务,模型在进行简单加减法等任务时表现良好,但在涉及到多步计算和多位数乘法等复杂任务时表现欠佳。作者还指出,不同的语言模型对于同一个可学习任务的表现有所不同,「进一步提出了一种新的中间监督机制,可以提高模型对于一些不可学习任务的学习效率」

「加减运算处理」:加法和减法任务可以通过监督微调学习,并且模型能够成功地捕获算术运算背后的模式。

「多位数乘法」:对于多位数乘法,作者提出采用与Sketchpad相似的策略,在生成答案之前,将LLMs微调为生成一系列可学习子任务的CoT。具体而言,将多位数乘法分解为五个可学习的子任务:提取、拆分、展开、乘积和逐项相加并复制,以此来突破多位数乘法的学习难题。以397×4429为例,下面展示了如何将一个复合的、难以学习的任务分解为多个简单而又可学习的子任务。397×4429=4429×(300+90+7)=4429×300+4429×90+4429×7=1328700+398610+31003。

「多位除法」:学习n位数被1位数除法是可行的,但是多位数除法是无法学习的。作者设计了一种基于递归公式的CoT,其中递归公式涉及到除数、余数和商的关系。该方法的主要思想是通过重复减去除数的倍数,直到余数小于除数,从而对除法进行计算。具体运算如下图所示:「数据及训练」:作者使用Python脚本合成数据集,该「数据集包含约100万个问答对」。答案包含所提议的数字运算类型以及最终数字输出。为了使模型能够根据指示解决算术问题并促进自然语言问答,「使用ChatGPT生成了数百个指示模板」。采用各种技术增强模型对多样化问题的适应能力,例如随机删除算术表达式中数字和符号之间的空格,用“x”或“times”替换“*”等。使用24GB VRAM GPU可以使用LoRA轻松微调Goat-7B。

实验结果

 作者使用BIG-bench算术数据集以及额外选择的任务来评估Gota模型。结果如下表所示。在Zero-shot设置中,与Few-shot GPT-4相比,Goat-7B在 BIG-bench上的精度相当甚至更高。

推荐阅读

[1]5月总结,了解大语言模型最新进展:10篇论文,篇篇高能!

[2]斯坦福发布AlpacaFarm,RLHF人工成本降低45倍!

[3]Meta最新模型LIMA,没有RLHF,远胜Alpaca!!

[4]DTG:一种简单有效的Prompt方法,激发LLMs能力!

[5]三种Prompt方法大幅提升大模型LLMs推理能力

[6]MPT-7B:可商用的开源模型,效果堪比LLaMA-7B

点击下方链接🔗关注我们

「资料整理不易,点个再看吧」

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存