当前位置: 首页 > 科技观察

北大计算机博士生先于OpenAI发表预训练语言模型求解数学题论文

时间:2023-03-14 23:07:02 科技观察

北京大学计算机科学博士生在OpenAI中国作者获得最佳长短论文之前发表了一篇关于用预训练语言模型解决数学问题的论文。然而,有人欢喜有人愁。由北京大学博士生沈建豪牵头的EMNLP投稿“Generate&rank:Amulti-taskframeworkformathwordproblems”(Generate&rank:Amulti-taskframeworkformathwordproblems)在综合期间被认为不够重要审查,最后被收录在Findings中,但没有被主接受。“审稿人普遍喜欢这篇论文,但它看起来像一篇边缘论文。鉴于这是BART在数学问题上的应用,而数学问题解决对于NLP来说并不是真正重要的任务,我怀疑高度工程化解决方案的价值到这个任务。”根据官方文件,一般列为Findings的论文得分较低,或者被认为较不“新颖”。为特定任务扩展了最先进的技术,但对EMNLP社区没有新的见解或更广泛的适用性;实验不错,新颖,分析结论全面,但方法不够“新颖”。虽然,OpenAI认为这篇论文非常重要。有趣的是,10月29日,OpenAI提出了一种新方法“验证”(verification),声称可以解决小学数学题。论文地址:https://arxiv.org/pdf/2110.14168.pdfGSM8K数据集地址:https://github.com/openai/grade-school-mathOpenAI的待解数学应用题长这样:OpenAI的GSM8K的数据集中的三个问题示例,红色为计算的标注。而且,OpenAI发现,“验证”可以直接将GPT-3的60亿参数求解数学题的准确率提高一倍,甚至与1750亿参数持平。用于微调方法的GPT-3模型。更重要的是,一个9-12岁的孩子在测试中得到了60分,而OpenAI的方法在同样的问题上可以得到55分,已经达到了人类小学生90%左右的水平!都是在解决数学应用题,那么这两篇文章会不会“相似但同样有效”呢?巧了,真的是!不仅如此,OpenAI的最新作品《Training Verifiers to Solve Math Word Problems》还引用了博士生申建豪提交的论文《Generate & Rank: A Multi-task Framework for Math Word Problems》。北京大学学生,9月7日。申建豪、殷宜春、李琳、尚立峰、蒋欣、张明、刘群、《生成&排序:一种数学文字问题的多任务框架》、EMNLP2020Findings。该工作由北京大学计算机学院和华为诺亚方舟实验室共同完成。论文地址:https://arxiv.org/abs/2109.03034下面我们来看看沈老师的论文要解决的数学应用问题。两人确实很像!深入OpenAI论文的Introduction部分,可以发现下面这句话。OpenAI在论文中表示其思路与沈建豪在RelatedMethods中的论文类似,也可以看下面这句话。我们的工作与他们的方法有许多基本的相似之处,尽管我们在几个关键方面有所不同。文末OpenAI还引用了沉博士的文章。也就是说,OpenAI认可了沈建豪论文中方法的价值,而沈建豪的论文发表时间竟然比OpenAI早了一个月!值得一提的是,该论文的第一部作品沈建豪是2014年浙江省高考第一名,也是北大数学学院数据方向第一名。大学。现为北京大学计算机学院在读博士,导师为张明教授。语言模型能解决数学问题吗?OpenAI的GPT-3“文采出众”,上知天文,下知地理。很容易模仿名家的文笔,表现出广博的知识面。而GPT-3的“语言”模型是典型的偏科生,擅长写作,不擅长推理,无法完成准确的多步推理,比如解小学数学题。问题是语言模型只能模仿正确解的规律,却不懂其中的“逻辑”。因此,如果人类想要教大型语言模型理解复杂的逻辑,就必须让模型学会认识自己的错误,并谨慎选择解决问题的步骤。从这个角度来看,OpenAI和博士生沈建豪都提出了一种“先生成,再排序”的方法,帮助语言模型掌握数学推理能力,知道自己的推理是否错误。两者内容对比的核心框架是:generator+reordering/validator。北京大学和华为诺亚的生成和重排序框架沉彤文章中的模型由生成器和排序器组成,通过生成任务和排序任务联合训练。生成器的目标是为给定的数学应用题生成解决方案表达式。然后,排序器需要从一组候选者中选择一个正确的表达式。两者共享用于编码解码的相同BART模型,排序器在该模型上添加了一个评分函数来对表达式进行评分。此外,他们还构建了一个表达式库,为分拣机提供训练示例。这里使用了两种不同的策略:基于模型的生成和基于树的扰动。Model-basedgeneration是使用generator通过harnesssearch的方式得到前K个表达式,添加到表达式库中。基于树的干扰首先将正确的表达式转化为二叉树,然后使用扩展、编辑、删除和交换四个操作来获得新的表达式,作为对先前方法的补充。基于树的扰动训练过程包括多任务训练和表达式的在线更新。预训练的BART首先针对生成任务进行微调。之后,使用微调的BART和基于树的扰动生成表达式作为排序器的训练样本。然后进行生成和排序的联合训练。这个过程以迭代的方式进行,两个模块(即生成器和分类器)不断相互促进。同时,用于排序器的训练实例在每次迭代后更新。Generate&Rank和OpenAI方法的训练过程包括一个生成器和一个验证器。OpenAI的验证者验证者(verifier)可以判断模型生成的解是否正确,所以在测试的时候,验证者会把问题和候选答案作为输入,输出每个答案正确的概率。验证者在训练时,只训练解是否达到正确的最终答案,标记为正确或错误。验证器的具体训练方式分为“三步走”:首先,模型的“生成器”在训练集上微调2个epoch。从生成器中为每个训练问题抽取100个答案,并将每个答案标记为正确或错误。在数据集上,验证器针对单个时期进行了训练。测试时,要解决一个新问题,首先要生成100个候选解,然后由“验证器”打分,最后选出排名最高的解。思路确实很相似,但是有几个细节不太一样。1.OpenAI在文章中表示,他们的生成器和验证器是分开训练的,目的是限制生成器的训练,防止过拟合,但原则上,他们认为应该可以将这些模型结合起来进行联合训练,并且沉确实使用了联合训练的方式,实验结果也表明联合训练可以提升最终的效果。2.沉同学提出了一种帮助训练rearranger的方法:Tree-basedDisturbance,其实就是设计了一系列有难度的负样本,在正确表达的基础上加入一点干扰作为新的负样本。.OpenAI没有提到类似的过程。3、为了评估“验证者”的性能,OpenAI收集了一个新的“GSM8K数据集”并开源用于研究。GSM8K由8500道高质量、高多样性、中等难度的小学数学题组成。数据集中的每道题都需要计算2到8步才能得到最终答案,涉及“加减乘除”四种算术运算。Shen最后在两个常用的数据集Math23K和MAWPS上进行了实验。其中,Math23K是一个大型中文数据集,包括23162个数学问题及其对应的表达式解。MAWPS是一个包含2373个问题的英文数据集,所有这些问题都是具有一个未知变量的线性问题,可以用一个表达式解决。当然,最明显的是使用的语言模型不同。Shen使用的是预训练模型BART,而OpenAI使用的是60亿和1750亿参数的GPT-3。