GPT-4数学能力还能更强!
新研究发现GPT-4代码解释器做题准确率与其使用代码的频率有关。
为此,研究人员提出新方法对症下药,直接将其数学能力拔至新SOTA:
在MATH数据集上,做题准确率从53.9%增加到了84.3%。
你没听错,就是前段时间被称为ChatGPT推出后最强模式的那个代码解析器(Code Interpreter)。
研究人员窥探了其代码生成和执行机制,使用自我验证、验证引导加权多数投票的方法,直接打开其做数学题的任督二脉。
好奇网友随即而来:
还想看他们做高数👀。
还有网友认为:
这也就是大脑的工作方式,人类在解决数学问题时也会自我验证。
一起来康康这项研究的细节~
GPT-4代码解析器的代码生成和执行机制究竟是怎样的?
来自港中文MMLab、南京大学、中科大、清华、城大、长沙理工等多个机构的学者为解开这一问题,使用特定代码约束提示进行了一项试验。
他们设计了3种不同的提示方法,限制GPT-4代码解析器使用代码的频率:
结果发现,允许GPT-4代码解析器多次生成和执行代码,其解题正确度明显高于仅用自然语言推理或只用1次代码的情况。
经分析,研究人员认为代码的多次生成和执行可以让GPT-4代码解析器逐步完善解决方案,当代码执行产生错误时,GPT-4代码解析器可以自我调试修改方案。
继而引入“代码使用频率”概念,量化不同提示方法下代码的使用次数。
基于前面的分析结果,研究人员希望能加强GPT-4代码解析器生成准确代码、评估代码执行结果以及自动调整解决方案的能力。
所以提出了CSV(自我验证)提示的方法,也就是为解决方案C引入了一个额外的验证阶段,称为V。
加入自我验证提示效果对应上图绿色Verification Prompt。
如此一来,GPT-4代码解析器需额外生成代码来验证答案,如果结果是False则重新推理得到正确答案。
CSV提示不仅对验证到逻辑推理每一步都进行了扩展,而且可以自动更正错误,无需外部模型或人工参与。
通过上图这个例子可看出,在没有自我验证的情况下,模型生成了一个错误的答案。通过自我验证,模型纠正了错误并生成了正确的答案。
此外,鉴于CSV可以有效地验证问题的答案,研究人员又提出了验证引导加权多数投票(VW-voting)的方法,将自我验证结果集成到多数表决中,给予不同验证状态不同权重,使表决更可靠。
在实际操作中,一旦一个答案被确认为错误,那就不会进行额外的验证,从而得到一个错误的验证状态。研究人员分配相应的权重给这些状态:真实(wT)、不确定(wU)和错误(wF)。
最后从候选答案中择取得分最高的那一个:
用上了上述方法,GPT-4代码解析器做数学题的能力up up。
在MATH数据集上,原始GPT-4代码解析器的准确率为69.69%,使用CSV提示后提高到73.54%,再结合加权多数表决后进一步提高到84.32%,相比之前SOTA提高了30%以上。
在MATH数据集的各个子任务中,提出方法均取得显著提高,尤其是在高难度级别的题目中效果更明显。
例如在中级代数(Intermediate Algebra)题目中,原来的GPT-4代码解析器准确率为50.1%,使用新方法后提高到74.4%。
除此之外,研究人员还在GSM8K、MMLU-Math、MMLU-STEM等数据集上进行了验证。
上表可以看出,使用验证引导加权多数投票的方法还可以显著减少需要采样的解路径数量(Sampled paths),在GSM8K数据集上只需要5个路径就达到97%的准确率。
针对不同难度的题目(下图a)以及不同类型题目(下图b)的测试中,使用新方法后准确率都有了提升。
研究人员还发现GPT-4代码解析器的代码使用频率提高与准确率提高正相关。随着题目难度的增加,代码使用频率稳步上升。这说明在较难的数学问题上,更频繁地使用代码很重要。
此外,值得注意的是,尽管添加基于代码的自我验证可以提高每个单独题目类型的性能,但改进的程度也因题目类型而异,从7.6%到仅0.6%不等。
研究人员指出:
特别是几何问题的准确性仅提高了0.6%,原本GPT-4代码解析器的准确性也只有54.0%,在各个题目类型中属于较低的。这种差异可能是因为解决几何问题通常需要多模态,超出了本文研究范围。
论文传送门:https://arxiv.org/abs/2308.07921
参考链接: [1]https://twitter.com/_akhaliq/status/1691734872329699813?s=20 [2]https://x.com/justfannet/status/1691983780498600376?s=46&t=iTysI4vQLQqCNJjSmBODPw