让模型用代码自我验证解决方案,结合多数投票集成机制,推理准确率可以提升近30%!

新知榜官方账号

2023-09-02 01:23:40

虽然大型语言模型(LLMs)在常识理解、代码生成等任务中都取得了非常大的进展,不过在数学推理任务上仍然存在很大改进空间,经常会生成无意义、不准确的内容,或是无法处理过于复杂的计算。最近推出的一些语言模型,如GPT-4,PaLM-2都在数学推理上取得了重大进步,特别是OpenAI的最新版模型GPT-4CodeInterpreter,在较困难的数学推理数据集上也展现出了很高的性能。

为了探索「代码生成任务」对「语言模型推理能力」的影响,来自香港中文大学、南京大学、中国科学技术大学、清华大学、香港城市大学、长沙理工大学和塔夫茨大学的研究人员联合发布了一篇论文,通过在代码使用频率(CodeUsageFrequency)上引入不同的约束限制进行实验验证。

实验结果显示,GPT-4CodeInterpreter模型的成功在很大程度上要归功于「在生成和执行代码、评估代码执行的输出以及在收到不合理的输出」时纠正其解决方案方面的强大能力。基于上述结论,研究人员提出了一种新颖且高效的提示方法,显式的基于代码的自我验证(CSV,code-basedself-verification),以进一步提高GPT-4代码解释器的数学推理潜力。

研究人员还发现验证结果的状态可以指示解决方案的置信度,并进一步提高多数表决的有效性。通过结合GPT-4CodeInterpreter和CSV方法,在MATH数据集上的零样本准确率实现了从54.9%到84.3%的巨大提升。为了探索代码的使用对GPT4-Code解决数学问题能力的影响,研究人员采用了一种很直接的方法,即通过精心设计的提示来限制GPT4-Code与代码的交互。

具体包括两种代码限制提示以及一种基础提示用来对比:提示1:Nocodeusageisallowed(不允许使用代码)GPT4-Code不允许在其解决方案中添加代码,也就是说模型只能完全依赖自然语言(NL)推理链,类似于思维链(CoT)框架中的解决方案,由此产生的推理步骤序列叫做CNL,如上图中(a)所示。提示2:Codecanbeusedonlyonce(代码只能使用一次)GPT4-Code只能用单个代码块内的代码来生成解决方案,类似于之前的PAL方法,论文中将此序列称为CSL,即使用符号语言(SL),如Python进行推理,上图中(b)为样例。基本提示:对代码使用没有任何限制。推理序列可表示为,其中每个步骤都由自然语言和Python代码组成,示例如上图中(c)所示。

除此之外,研究人员还引入了代码使用频率(CodeUsageFrequency)来记录不同提示下的代码执行次数,结果表明,GPT4-Code的高性能与高代码使用频率之间存在正相关。具体来说,提示2使用的代码量比提示1多了一倍,并且提示2比提示1的准确率提高了6.9%,表明Python代码链CSL比自然语言链CNL更能提高计算能力,这一观察结果与之前基于Python的提示方法结果一致。

基于代码的自验证CSV受代码使用频率分析观察结果的启发,研究人员决定利用GPT4-Code的代码生成、代码评估、代码执行,以及自动调整解决方案等能力来增强方案验证,以提高推理性能。CSV的主要流程就是对GPT-Code输入提示,来显式地通过代码生成来验证答案正确性。对解决方案C的验证结果V可以分为「真」、「假」、「不确定」三类。

与CSV结合后,模型能够使用代码来验证答案,然后在验证结果为「错误」的情况下审查并调整得出解决方案的方式,从而获得正确答案。在完善和修正初始解决方案后,准确率可以得到显著提高。值得注意的是,验证(verification)和修正(rectification)阶段都是基于代码的,所以必然会导致代码使用频率的增加。在GPT4-Code出现之前,先前的框架大多依赖于外部LLM使用自然语言进行验证和精心设计的少样本提示。相比之下,CSV方法仅依赖于GPT4-Code的直接提示,以零样本的方式简化了流程,利用其先进的代码执行机制来自主验证和独立修正解决方案。

研究人员还将验证阶段集成到了加权多数表决(majorityvoting)中,为验证过程的各个状态分配了不同的权重。为了防止答案被确认为「假」后不再进行其他验证,研究人员将三种状态分配了不同的权重:wT,wF和wU,可以增加系统的可靠性。为了简单起见,集成算法从k个解决方案中提取一对最终答案及其相应的验证结果,表示为其中v和a分别代表第i个最终答案和最终验证结果。因此,每个候选答案a的投票得分可以表示为:最后从所有候选答案中选出得分最高的答案:

实验结果MATH数据集GPT4-Code在MATH基准上的准确率达到了69.69%,大大超过了之前的方法(53.90%),表明GPT4-Code在解决数学问题方面表现出很强的能力。在GPT4-Code的基础上,文中提出的CSV方法进一步提高了准确性,将准确率提高到了73.54%;在加入基于代码的显式自我验证和验证引导的加权多数投票(采样路径数为16)后,结果进一步提高到了84.32%需要注意的是,虽然增加基于代码的自我验证可以提高题目的成绩,但具体程度因题目难度、形式而异。其他数据集研究人员还在其他推理数据集上应用了CSV方法,包括GSM8K、MMLU-Math和MMLU-STEM从结果上来看,CSV+GPT4-Code在各个数据集上都取得了最优的结果。

本页网址:https://www.xinzhibang.net/article_detail-10748.html

寻求报道,请 点击这里 微信扫码咨询

关键词

语言模型 数学推理 GPT-4 代码生成 自我验证

分享至微信: 微信扫码阅读

相关工具

相关文章

相关快讯