首页 - 技术 - GPT-4数学又提高了30分,代码分析器仁都二麦打开了,网友:就像大脑的运作方式一样

GPT-4数学又提高了30分,代码分析器仁都二麦打开了,网友:就像大脑的运作方式一样

2023-10-10 09:32

GPT-4 数学能力可以更强!

新研究发现,GPT-4代码解释器的准确性与使用代码的频率有关。

为此,研究人员提出了解决问题的新方法,直接将数学能力提升到新的SOTA:

在MATH数据集上,准确率从53.9%提升到84.3%。

你没听错,就是前段时间ChatGPT推出后被称为最强模式的代码解释器(Code Interpreter)。

研究人员窥探了它的代码生成和执行机制,利用自我验证和验证引导的加权多数投票方法,直接开放了它做数学题的能力。

好奇的网友立刻赶来:

我还想看他们做高等数学。

有网友认为:

大脑就是这样运作的,人类在解决数学问题时也会验证自己。

来看看这项研究的详细内容吧~

提高数学技能的两个步骤

GPT-4代码解析器的代码生成和执行机制到底是怎样的?

为了解决这个问题,来自香港中文MMLab、南京大学、中国科学技术大学、清华大学、城市大学、长沙理工学院等机构的学者利用特定的代码约束提示进行了实验。

他们设计了 3 种不同的提示方法来限制 GPT-4 代码解析器使用代码的频率:

提示1:根本不允许使用代码,输出完全依赖自然语言推理,禁止将代码纳入解决方案中。提示2:该代码只允许使用一次,即该代码在生成解时只能在单个代码块内使用。基本提示:没有限制,GPT-4代码解析器可以执行一系列推理步骤,每个步骤可以由文本+Python代码组成。

△ (a) 回答不同提示的准确率比较 (b) 代码使用频率与五个难度级别的准确率成正比,当数学题比较复杂时更明显

发现,通过让GPT-4代码解析器多次生成并执行代码,其解决问题的准确性明显高于仅使用自然语言推理或仅使用一次代码时。

经过分析,研究人员认为代码的多次生成和执行可以让GPT-4代码解析器逐步完善解决方案。当代码执行产生错误时,GPT-4代码解析器可以自我调试并修改解决方案。

然后引入“代码使用频率”的概念,量化不同提示方式下代码被使用的次数。

基于之前的分析结果,研究人员希望增强GPT-4代码解析器生成准确代码、评估代码执行结果以及自动调整解决方案的能力。

因此提出了CSV(自验证)提示的方法,即为方案C引入一个额外的验证阶段,称为V。

添加上图中绿色验证提示对应的自我验证提示效果。

因此,GPT-4 代码解析器需要生成额外的代码来验证答案。如果结果为False,则会重新推理得到正确答案。

CSV提示不仅将验证的每一步延伸到逻辑推理,而且可以自动纠正错误,无需外部模型或人工干预。

△MATH数据集中的第712道中级代数问题。

CSV提示:使用代码解释器逐步解决问题,请使用代码解释器验证您的答案。

从上面的例子可以看出,模型在没有自我验证的情况下生成了错误的答案。通过自我验证,模型纠正错误并生成正确的答案。

此外,鉴于 CSV 可以有效验证问题的答案,研究人员提出了一种验证引导的加权多数投票(VW-voting)的方法,将自我验证结果融入多数投票中,并赋予不同的权重不同的验证状态。让投票更可靠。

在实际操作中,一旦确认答案错误,则不再进行额外验证,导致验证状态不正确。研究人员为这些状态分配了相应的权重:正确(wT)、不确定(wU)和错误(wF)。

最后,从候选答案中选择得分最高的:

使用上述方法,GPT-4代码解析器解决数学问题的能力比之前的最高水平提高了30%。

在 MATH 数据集上,原始 GPT-4 代码解析器的准确率为 69.69%,使用 CSV 提示后提高到 73.54%,结合加权多数投票进一步提高到 84.32%,相比之下有所提高比之前的SOTA提升了30%以上。

△在MATH数据集

上的准确率(%)

在MATH数据集的每个子任务中,所提出的方法都取得了显着的改进,尤其是在高难度问题上。例如,在中级代数题中,原来的GPT-4代码解析器的准确率为50.1%,使用新方法后提高到74.4%。

此外,研究人员还在GSM8K、MMLU-Math、MMLU-STEM等数据集上进行了验证。

△在GSM8K数据集上的表现

从上表可以看出,使用验证引导的加权多数表决法还可以显着减少需要采样的解路径(Sampled paths)数量。只需5条路径即可在GSM8K数据集上达到97%的准确率。

△在MMLU数据集上的表现

在不同难度(下图a)和不同类型题(下图b)的测试中,使用新方法后准确率有所提高。

△每条曲线上的四个点分别对应使用提示1、提示2、BasicPrompt 和CSV Prompt 获得的结果。

研究人员还发现,GPT-4 代码解析器代码使用频率的增加与准确性的提高呈正相关。随着题目难度的增加,代码使用频率稳步增加。这说明了在更难的数学问题上更频繁地使用代码的重要性。

此外,值得注意的是,虽然添加基于代码的自我验证可以提高每种问题类型的性能,但改进的幅度也因问题类型而异,从 7.6% 到 0.6% 不等。

研究人员注意:

尤其是几何题的准确率仅提高了0.6%。原始GPT-4代码解析器的准确率仅为54.0%,在各种题型中较低。这种差异可能是由于解决几何问题通常需要多模态,超出了本文的范围。

论文传送门:https://www.gsm-guard.net/abs/2308.07921