来自凹庙的枫色
量子比特报告|公众号QbitAI
你见过这种编程题目描述的方式吗?
没有自然语言描述,没有输入输出示例,你看到的只是一个Python函数。
这是麻省理工学院、艾伦人工智能和微软的研究人员提出的一种新的编程主题描述方法:
每个主题都由一个简短的 Python 函数 f 定义,目标是找到一个输入 x 使 f 输出为真。
这种题型可以让AI更容易复习题型,不会影响人类程序员的理解。
AI编程,路真的越来越平坦了。
接下来,我们来详细了解一下这项研究。
没有自然语言描述的编程主题
我们再解释一下这个描述方法:
问题以Python函数的形式出现,参数就是答案。
求解问题的目标是找到使函数的输出为真的输入x,即满足f(x)=真的正确答案。
现在,请推论:如何以这种新形式求解具有 1000 个不连续“o”的字符串?
正确答案:
以下是其他两个问题的描述示例。
动态规划——最长单调递增子序列问题:
经典的河内塔? (Towers of Hanoi):
研究人员在这种提问形式中包含了各种编程问题,并提出了一个开源数据集:称为P3。
这个数据集的题型非常全面:涉及不同难度、不同领域、不同算法工具的题。
有简单的字符串操作问题;
有经典如河内塔和国际象棋(例如,骑士旅行算法和N皇后问题变体)等困难问题;
还有两种挑战寻找最佳策略的问题类型,例如井字游戏、剪刀石头布、Mastermind 等;
它还包括国际数学奥林匹克竞赛(I??MO)和国际大学生程序设计竞赛(ICPC)的主题,如各种图论和数论问题。
包含208种题型,14万+题,还在更新中。
每个问题至少提供一个答案。
这个新颖的编程挑战题库数据集捕捉了编程问题的本质,可用于教授人工智能编程和评估人工智能的编程能力。
研究人员表示,这套题可以客观评价AI的编程能力。因为您可以直接验证答案的正确性,而无需检查答案。因此,这类问题不会增加AI学习任何答案偏差的负担。
我希望这个数据集可以开发新的AI编程解决方案
基于这些主题的不同AI求解器的编程效果如何?
研究人员做了一些深入的实验,开发了基于随机森林、Transformer和不同类型的GPT-3提示的AI求解器。他们使用不同的参数枚举,自顶向下的方法,并使用这个 P3 数据集来评估性能。
首先,使用之前解决新问题的方法来测试这些求解器在这个数据集上的引导效率。
事实证明,增加尝试次数可以解决新问题。但他们也可以通过学习过去的经验更快地解决新问题。
下图显示了这些 AI 求解器在不同尝试下解决的问题数量:
在一项小型用户研究中,21 个人在 Python 编程方面存在差异 具有多年经验的程序员有完成了 30 道不同难度的题。每个问题最多分配 6 分钟来解决。
使用这个数据集来评估人工智能和人类程序员对编程问题难度的看法:
人类认为困难的问题对人工智能来说也更难。在这个阶段,人工智能求解器可以解决的大部分问题对于人类来说都比较简单。
上图显示了人类和AI对各种主题的难度分数,按人类分数排序。人类难度分数是通过超过解决问题所允许的最大时间的平均分数来衡量的,而人工智能则是根据解决问题所需的尝试次数来衡量。
此外,AI 可以解决 60% 的这类问题,初学者和有经验的程序员分别解决了 76% 和 87% 的问题。
总的来说,使用这个新颖的数据集和一个精心设计的 AI 求解器,可以大大减少解决 AI 编程所需的尝试次数,解决更多问题。
因此,研究人员希望这个新的编程题库数据集能够支持大家研发新的AI编程解决方案,提高AI编程的效率和性能。
之前,加州大学伯克利分校已经训练了 AI 来刷 LeetCode。在总共 5,000 次测试中,人工智能能够完成 15% 的测试。
不知道用这个数据集进行训练会达到什么水平的AI编程能力?
论文地址:
文章来源:《电脑编程技巧与维护》 网址: http://www.dnbcjqywh.cn/zonghexinwen/2021/0626/1187.html
上一篇:面向监狱编程,就靠它了
下一篇:员工自学1年编程,想要2天写出“俄罗斯方块”,
电脑编程技巧与维护投稿 | 电脑编程技巧与维护编辑部| 电脑编程技巧与维护版面费 | 电脑编程技巧与维护论文发表 | 电脑编程技巧与维护最新目录
Copyright © 2018 《电脑编程技巧与维护》杂志社 版权所有
投稿电话: 投稿邮箱: