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

麻省理工发布增强版“高数”求解器:7门课程正确率达81%

时间:2023-03-22 11:08:36 科技观察

不只打小学数学题,AI已经开始攻克高数了!近日,麻省理工学院的研究人员宣布,他们基于OpenAICodex预训练模型,通过few-shotlearning在本科水平的数学问题上成功实现了81%的准确率!论文链接:https://arxiv.org/abs/2112.15594代码链接:https://github.com/idrori/mathq首先来看几个小题的答案,比如计算旋转生成的图绕轴Volume的单变量函数的计算、Lorenz吸引子和投影的计算、奇异值分解(SVD)几何的计算和描述,不仅能答对,还能给出相应的解释!真是逆天啊。回想过去,高数及格只是及格。现在AI可以一杆得分81分。我单方面声明,人工智能已经超越了人类。更重要的是,除了解决普通机器学习模型难以解决的问题外,这项研究还表明该技术可以大规模扩展,可以解决课程和类似课程中的问题。这也是历史上第一次单一的机器学习模型能够解决如此大规模的数学问题,并且还能解释解决问题的过程,将其图形化,甚至生成新的问题!其实这篇论文早在年初就已经发表了。经过半年的修改,篇幅从114页增加到181页。可以解决的数学题较多,附录直接从A-Z编号。文章的主要作者单位有四个,分别是麻省理工学院、哥伦比亚大学、哈佛大学和滑铁卢大学。第一作者IddoDrori是麻省理工学院电气工程与计算机科学系AI部门的讲师,也是哥伦比亚大学工程与应用科学学院的兼职副教授。曾获得CCAINeurIPS2021最佳论文奖。主要研究方向为教育机器学习,即试图让机器解决、解释和生成大学水平的数学和STEM课程;气候科学的机器学习,即基于数千年的数据预测极端气候变化和监测气候,整合多学科工作来预测大西洋多年来海洋生物地球化学的变化;自动驾驶机器学习算法;和更多。他还是剑桥大学出版社出版的《深度学习科学》一书的作者。高等教育里程碑在这篇论文之前,大多数研究人员认为神经网络无法处理高级数学问题,只能解决一些简单的数学问题。即便Transformer模型在各种NLP任务中超越了人类的表现,它仍然不至于无法解决数学问题。主要原因是各种大型模型如GPT-3仅在文本数据上进行预训练。后来,有研究人员发现,语言模型仍然可以通过逐步解析的方式(思想链)来引导推理和回答一些简单的数学问题,但高级的数学问题就没那么容易解决了。当目标是高数问题时,首先要收集一波训练数据。作者从麻省理工学院的七门课程中随机抽取了25个问题,包括:18.01单变量微积分18.02多元微积分18.03微分方程18.05概率与统计概论18.06线性代数6.042计算机科学数学哥伦比亚大学的COMS3251计算线性代数对于MATH数据集,研究人员从数据集的六个主题(代数、计数和概率、中级代数、数论、预代数和大学预科)中随机抽取15个问题。为了验证模型生成的结果没有对训练数据过拟合,研究人员选择了尚未在网上公开的COMS3251课程来验证生成的结果。工作流模型将课程问题作为输入,然后根据上下文进行自动扩充,生成合成程序,最后输出答案和生成的解释。对于不同的问题,输出可能不同。例如,18.01的答案是方程式,18.02的答案是布尔值,18.03和18.06的答案是图形或向量,18.05的答案是数值。要得到一个问题,第一步是让模型找到问题的相关上下文。研究人员主要关注Codex生成的Python程序,所以他们在问题前加上文字“writeaprogram”,并将文字放在Python程序的三个引号内,伪装成程序中的docstring。生成程序后,需要一个Codex提示来指定要导入哪些库。作者选择在问题前加上“usesympy”字符串作为上下文,指定为解决问题而合成的程序应该使用这个包。通过统计每门课程使用的Python编程包,我们可以看到所有课程都使用了NumPy和Sympy。Matplotlib仅用于有需要绘图的问题的类中。大约一半的课程使用数学、随机和SciPy。实际运行时,研究人员只指定导入SymPy或绘图相关包,其他导入包自动合成。采用零样本学习的方式,即只对原问题使用自动增强,可以自动解决71%的问题。如果一个问题没有解决,研究人员会尝试用Few-shotlearning来解决这类问题。首先使用OpenAI的text-similarity-babbag-001embedding引擎获取所有问题的2048维embedding,然后对所有向量使用余弦相似度计算,找出与已解决问题最相似的未解决问题。最后,将最相似的问题及其对应的代码用作新问题的少样本示例。如果生成的代码没有输出正确答案,则添加另一个已解决的问题代码对,每次使用下一个类似的已解决问题。在实践中可以发现,最多5个示例的few-shotlearning效果最好,可以自动解决的问题总数从zero-shotlearning的71%增加到few-shotlearning的81%。要解决剩下的19%的问题,就需要人工编辑的介入。研究人员首先收集了所有问题,发现这些问题大多含糊不清或包含冗余信息,例如提及电影人物或时事等,需要对问题进行梳理,提炼出问题的精髓。问题梳理主要涉及去除冗余信息,将长句结构分解为更小的组件,并将提示转换为程序格式。另一种需要人为干预的情况是,一个问题的答案需要多个步骤的绘图来解释,即Codex需要交互提示,直到达到想要的可视化效果。除了生成答案外,模型还应该能够解释答案的原因。研究人员使用了提示“这是上面的代码正在做的事情:1”。引导模型生成逐步解释。一旦回答了问题,下一步就是使用Codex为每门课程生成新问题。研究人员创建了每个班级学生所写问题的编号列表,这个列表在随机问题数量后被截断,结果用于提示Codex生成下一个问题。重复此过程,直到为每门课程创建了足够多的新问题。为了评估生成的问题,研究人员对参加过这些课程的麻省理工学院学生或同等学历的学生进行了调查,以将机器生成的问题的质量和难度与课程原件进行比较。从学生调查的结果可以看出,机器的评分质量已经可以与人类出题相媲美;在难度上,人类问题更适合作为课程主题,而机器生成的结果难度稍高;超过一半的课程主题可以被学生看作是模型生成的,最接近人类的是18.01课程参考:https://www.reddit.com/r/artificial/comments/v8liqh/researchers_built_a_neural_network_that_not_only/