互联网资讯 / 人工智能 · 2023年12月13日 0

MIT与微软联合开发AI编程题库

MIT微软为AI量身打造了一套leetcode编程题

本文由AI新媒体量子位授权转载。

你见过这种编程题目的描述方式吗?

MIT微软为AI量身打造了一套leetcode编程题

这里没有自然语言的解释,也没有输入输出的示例,只有一个Python函数。

这是MIT、Allen AI和微软的研究团队提出的一种创新的编程题目描述方法:

每道题目由一个简短的Python函数f定义,目的是找到一个输入x,使得f的输出为tRue。

这种题目形式使得AI在理解题目时更加顺畅,同时也不会影响人类程序员的理解。

AI编程的道路似乎越来越顺畅了。

接下来,让我们更详细地了解这项研究。

MIT微软为AI量身打造了一套leetcode编程题
没有自然语言描述的编程题目

再来对这种描述方法进行解释:

题目以Python函数的形式呈现,参数则是答案。

解题的目标是找到能够使函数输出为真的输入x,即满足f(x) = tRue的正确答案。

现在请你试着想象:如果要求解一个包含1000个不连续’o’的字符串,用这种新形式该如何描述呢?

MIT微软为AI量身打造了一套leetcode编程题

正确答案:

MIT微软为AI量身打造了一套leetcode编程题

以下是另外两道题目的描述示例。

动态规划-最长单调递增子序列问题:

MIT微软为AI量身打造了一套leetcode编程题

经典的汉诺塔(ToweRs of Hanoi):

MIT微软为AI量身打造了一套leetcode编程题

研究人员依据这种出题形式,整合了多种编程题,推出了一个名为P3的开源数据集。

该数据集的题型涵盖面广,涉及不同难度、领域和算法工具等多方面内容。

其中包括简单的字符串操作问题;

也有经典难题,如汉诺塔和国际象棋(如骑士游历算法和N皇后问题的变体);

此外,还有针对两人竞争寻找最佳策略的题型,比如井字棋(Tic-Tac-Toe)、石头剪刀布以及珠玑妙算MasteRMind等;

同时,这个数据集也包括来自国际数学奥林匹克竞赛(IMO)和国际大学生程序设计竞赛(ICPC)的题目,包括各类图论和数论难题。

MIT微软为AI量身打造了一套leetcode编程题

数据集共包含208种题型,超过14万个题目,并且在不断更新中。

每道题目都至少提供了一种答案。

MIT微软为AI量身打造了一套leetcode编程题

这套创新的编程挑战题库数据集抓住了编程题目的核心,可以用来训练AI编程并评估其能力。

研究人员指出,这套题目能对AI的编程能力进行客观评估。由于无需查看答案,解答的正确性可以直接验证,因此这类题目不会给AI带来答案偏差的负担。

希望这个数据集能够推动新的AI编程解决方案的开发。

不同的AI求解器在面对这些题目的编程表现如何呢?

研究人员进行了深入实验,开发了基于随机森林、TRansfoRMeR和不同类型的GPT-3 ProMpts的AI求解器,采用不同的参数枚举和自顶向下的方法,使用P3数据集评估性能。

首先,他们测试了这些求解器在这个数据集上如何利用之前解决的题目来解决新题目的自举效率。

结果显示,增加尝试次数有助于解决新题目。同时,它们也能通过学习以往的经验,更快地应对新挑战。

下图展示了这些AI求解器在不同尝试次数下已解决题目的数量:

MIT微软为AI量身打造了一套leetcode编程题

在一项小规模的用户研究中,21名具有不同Python编程经验的程序员完成了不同难度的30道题目。每道题目最多分配6分钟的时间解决。

通过评估AI与人类程序员对编程题难度的感知,发现人类认为难度较大的题目对AI而言也同样较难。在当前阶段,AI求解器能够解决的大多数题目对人类来说相对简单。

MIT微软为AI量身打造了一套leetcode编程题

上图显示了人类与AI对各种题目的难度评分,按人类评分排序。人类的难度评分是基于超过允许最大解题时间的平均分数,而AI的评分则依据解题所需的尝试次数。

此外,AI在这种题目形式下解决了60%的难题,初学者和有经验的程序员分别平均解决了76%和87%的难题。

总体而言,利用这个创新数据集,配合精心设计的AI求解器,可以显著减少AI编程求解所需的尝试次数,并解出更多题目。

因此,研究人员希望这个新的编程题库数据集能够支持大家研究和开发新的AI编程解决方案,提升AI编程的效率与性能。

此前,UC伯克利曾训练AI Leetcode,在5000道题的测试中,AI仅能完成15%。

不知道使用这个数据集训练后,AI编程能力会达到怎样的新高度呢?

论文地址:

开源数据集链接:

MIT微软为AI量身打造了一套leetcode编程题