首页 AI开发编程 说出你想说的 人工智能可以编写代码:麻省理工学院的新研究自动化编程

说出你想说的 人工智能可以编写代码:麻省理工学院的新研究自动化编程

标题:说出你的要求,AI就能写出代码:MIT新研究让编程也自动化了

钱明来自敖飞寺

由Qubits 制作|公众号QbitAI

说出你想做什么,AI会自动编写代码。

现在,我们距离这一目标又近了一步。

近日,麻省理工学院的一个研究小组发布了新的研究成果。

他们提出了一种将模式识别和推理灵活结合的方法,解决无监督学习条件下AI自动编程遇到的问题。

我先给大家举几个例子:

任务要求:

给定一个数组,翻转数字后计算中位数。

AI会给出代码:

(减少(反向(数字(deref(排序a)(/(len a)2))))0

(lambda2 (+(* arg1 10) arg2)))

任务要求:

输入:

1、[-101、63、64、79、119、91、-56、47、-74、-33]

4、[-6、-96、-45、17、26、-38、17、-18、-112、-48]

输出:

39

8

AI给出的代码:

(最大值(MAP DIV3(DROP 输入0 输入1)))

这是怎么做到的?给人类程序员一个任务,在开始编写代码之前,他们会根据自己的经验判断代码架构是什么样的。如果没有经验,就必须用推理来改进代码结构。

该人工智能系统通过结合模式识别和推理来模仿人类编写代码的方式。

该模型分为两个模块,即草图生成器和程序合成器。

输入任务需求后,首先经过摘要生成器,生成满足任务需求概率较高的代码摘要,即可能满足任务需求的初始代码,但细节并不丰富。然后代码大纲进入代码合成器模块以查找满足任务要求的模块。

摘要生成器是一个具有注意机制的seq2seq 递归神经网络(RNN)。在完成给定任务后,它由LSTM 编码器进行编码,然后逐个令牌进行解码。

代码合成器有两个组件:广度优先概率枚举器和神经网络识别器。前者根据可能性从大到小列举代码草图,而后者则根据任务需求指导流程。

具体效果如何?为了验证模型的性能,研究团队选择了两个模型进行比较。

它们是仅合成器模型(仅合成器)和仅生成器模型(仅生成器)。

仅合成器模型相当于正在研究的代码合成器模块。模式识别后,所有可能的编码都会从头开始枚举。它可以与微软研究院研究团队在2016年提出的“Deepcoder”模型相媲美。

仅生成器模型,相当于研究中的摘要生成器模块,用于预测完整的代码。它可以与微软研究院和麻省理工学院团队在2017年提出的“RobustFill”模型相媲美。

比较的任务是数组列表、字符串转换和自然语言要求。

在数组列表任务中,与其他两项研究相比,本研究中的模型可以在简单程序中表现出良好的性能。

在字符串转换任务中,性能优于仅合成器模型,并且在某些情况下优于仅生成器模型。

真正展示该模型能力的是在AlgoLisp数据集上进行的测试。在这个数据集中,不仅有与数组列表和字符串相关的输入和输出示例,还有相应的自然语言描述。

在此数据集上,研究人员测试了模型在非结构化数据情况下的性能。

测试结果表明,该模型的性能完全超越了学者之前的研究。

而且,当包含“偶”和“奇”要求时,性能更加突出,表明模型具有更大的通用性。

如果您对这项研究感兴趣,可以阅读论文以获取更多研究细节。

门户网站:

学习推断程序草图

https://arxiv.org/abs/1902.06349

作者为网易新闻·网易账号“每个人都有自己的态度”签约作者

– 超过-

诚意招聘

Qubit正在招聘编辑/记者到北京中关村工作。我们期待有才华、有热情的学子加入我们!相关详情请在量子比特公众号(QbitAI)对话界面回复“招聘”。

量子比特QbitAI·今日头条签约作者

\’\’ 追踪AI技术和产品新进展

热门文章