影视聚合站 科技 文章内容

60亿击败1750亿、验证胜过微调:OpenAI发现GPT-3解决数学题,并非参数越大越好

发布时间:2021-10-31 15:06:18来源:机器之心

机器之心报道

编辑:杜伟、陈

现在,OpenAI的模型也具备解决小学数学应用题的能力了。

简单的小学数学应用问题,对于人类来说不算什么,但对于模型来说,可能是有难度的。

比如问题:安东尼有50支铅笔。他把1/2的铅笔给了布兰登,剩下的3/5铅笔给了查理。他保留了剩下的铅笔。问安东尼保留了多少支铅笔?

像GPT-3这样的大型语言模型虽然取得了许多令人印象深刻的技能,包括模仿人的多种写作风格、20分钟内完成论文等等。然而,类似GPT-3这样的模型很难执行需要进行准确多步推理的任务。就如上述问题让模型给出准确答案还是困难的。

尽管类似GPT-3这样的模型可以推导出正确解决方案大致内容,但也经常会产生严重的逻辑错误。

为了在复杂逻辑领域可以达到与人类相媲美的性能,模型必须具有判别自身错误的能力,并谨慎地执行之后的过程。但是,模型如何判别解决方案是否正确,来自OpenAI的研究者提出了一个训练验证器(verifier)来判断模型完成的正确性。

在测试阶段会生成许多候选解决方案并选择排名最高的一个。证明验证(verification)显着提高了GSM8K的性能,此外也为这一观点(随着数据的增加,验证比微调基线更有效)提供了强有力证据。

具体来说,该研究训练了一个解决小学数学问题的系统,其准确率约是经过微调的GPT-3模型的两倍。它能像真正的学生一样可以解决90%的数学应用问题:在提供的数据集中进行了小样本测试,结果表明9-12岁的学生测试得分为60%,该研究所提系统在相同的问题上测试得分55%。

这一结果非常重要,因为今天的AI在常识性多步推理方面仍然很弱,即使对小学生来说也很容易,但AI还是存在很大的缺陷。该研究通过训练模型来识别其错误,以便它可以反复试错,直到找到可行的解决方案。

论文地址:https://arxiv.org/pdf/2110.14168.pdf

数据集地址:https://github.com/openai/grade-school-math

下面展示了该研究所提新方法生成的解决方案其中一个案例:

Tim种了5棵树。他每年从每棵树上收集6个柠檬。他十年能得到多少柠檬?

175BVerification:正确

175BFine-tuning:错误

6BVerification:正确

6BFine-tuning:正确

GSM8K数据集

OpenAI基于四个设计原则创建了GSM8K数据集:高质量、高多样性、中等难度和自然语言解决方案。

GSM8K数据集由8.5K个高质量小学数学应用题组成。每个问题需要2到8步解决,解决方案主要涉及使用加减乘除等基本算术运算执行一系列基础计算以获得最终答案。微调后的SOTA模型在该数据集上表现不佳,主要是问题的高度多样性导致的。与此同时,GSM8K解决方案仅依赖于基本概念,因此实现高测试性能是一个容易实现的目标。

GSM8K数据集中的三个示例问题。

值得注意的是,GSM8K中的解决方案是用自然语言而不是纯数学表达式编写的。通过坚持使用自然语言,模型生成的解决方案更容易被人类解释。OpenAI的方法保持相对领域不可知。

方法

OpenAI研究了两种解决GSM8K问题的方法:微调和验证。微调是基线方法,它使用与GPT-3中生成式预训练相同的语言建模目标(Brown等人,2020年)。在测试时,OpenAI通过自回归采样单个低温解决方案并检查最终答案是否正确来判断性能。相比之下,验证包括对多个高温解决方案进行采样,为每个解决方案分配一个分数,并输出排名最高的解决方案。验证器被训练来判断解决方案的正确性,其中训练信号完全取决于解决方案是否获得了正确的最终答案。

对于这两种方法,OpenAI使用GPT-3系列模型作为初始化,主要关注175B和6B大小的模型。175B模型最大,产生的结果最令引人瞩目,而6B模型更易于实现研究目。

微调

OpenAI通过更新模型参数来进行微调,以最小化所有训练token的交叉熵损失。下图2显示了对20个epoch时不同大小的训练集进行微调后的测试性能。

结果不出所料,可以看到175B模型明显优于较小的模型。假设一个对数线性趋势,我们可以简单地推断这些结果,以估计当使用完整的GSM8K训练集时,需要具有10^16个参数的模型才能达到80%的求解率。尽管如此,175B模型似乎需要至少两个额外数量级的训练数据才能达到80%的求解率。

在下图3中,OpenAI展示了6B模型测试性能在100个训练epoch的过程中如何变化。当允许模型对每个问题进行N个单独的猜测时,OpenAI使用test@N表示至少一次正确解决的问题的百分比。尽管很快开始过拟合测试损失,但Test@1的性能几乎单调地提高。并且,随着epoch次数的增加,test@100的性能比test@1下降得更快。

选择具有良好覆盖性的模型对于成功训练验证器至关重要。从实证角度来看,test@100性能在前几个epoch内达到峰值。出于这个原因,OpenAI使用训练了2个epoch的模型来生成用于训练验证器的样本。如果改为微调6B模型以直接输出最终答案而无需任何中间步骤,则性能会从20.6%急剧下降至5.2%。

验证

为了改进微调基准,OpenAI训练验证器判断模型生成的解决方案的正确性,并在测试时搜索这些验证器。以问题和候选解决方案为条件,验证器输出解决方案正确的概率。仅根据它们是否达到正确的最终答案,将训练解决方案标记为正确或不正确。不过,在实践中,一些解决方案会使用有缺陷的推理得出正确的最终答案,从而导致误报。

如下图4所示,OpenAI按如下方式训练验证器:

在训练集上对模型(生成器)进行2个epoch的微调;

从生成器中为每个训练问题抽取100个完成样本,并将每个解决方案标记为正确或不正确;

在数据集上训练一个单一epoch的验证器。

在测试时,OpenAI对每个测试问题采样了100个完成情况,用验证器对它们进行排名,然后返回得分最高的那个。下图5展示了6B和175B模型的验证和微调两种方法之间的对比情况,结果发现在低数据集下使用验证方法是没有好处的。有趣的是,175B验证器比6B验证器更早「起飞」,超越微调基线需要的时间更少。

在完整的训练集上,随着epoch的增加,使用验证方法的6B模型最终略优于微调的175B模型,性能提升大约相当于模型大小增加30倍。

训练验证器既可以在全部的生成解决方案里进行单个标量预测(singlescalarprediction),也可以在解决方案的每个token后进行单个标量预测,OpenAI选择后者,即训练验证器在每个token之后进行预测。实验结果如图6a所示,它们分别标记为「解决方案级别」和「token级别」。

在图6b中,通过消融实验验证训练验证器中使用目标(objective)的作用,OpenAI将使用两个目标与仅使用验证目标进行比较。

在图6c中,OpenAI对生成器和验证器的大小进行了实验,研究发现使用大的生成器、小的验证器组合性能显著优于小的生成器、大的验证器组合。

与AI俱进,化时光为翎:「AI中国」机器之心2021年度评选暨特别策划

机器之心正式启动「AI中国」2021年度评选暨「与AI俱进,化时光为翎」特别策划,包括2021年度评选、年度内容专题、年度报告和AI科技年会四项内容。

我们希望借此与AI公司并肩,与创新产业同行,评选出企业榜、解决方案榜、生态榜、行业事件榜和专业品牌榜,并与机器之心读者分享他们的技术突破与实践中的精彩行业故事。最终评选结果将在AI科技年会现场发布。

欢迎各企业机构扫码报名或了解更多详情。

©THEEND

转载请联系本公众号获得授权

投稿或寻求报道:content@jiqizhixin.com

© 2016-2021 ysjhz.com Inc.

站点统计| 举报| Archiver| 手机版| 小黑屋| 影视聚合站 ( 皖ICP备16004362号-1 )