您现在的位置是:首页 >人工智能 > 2021-04-28 02:21:36 来源:
将深度学习AI放在软件开发上
莱斯大学的计算机科学家已经创建了一个深度学习的软件编码应用程序,可以帮助人类程序员浏览越来越多的通常没有文档的应用程序编程接口或API。
Rice应用程序被称为Bayou,是由国防高级研究计划局资助的一项计划创建的,旨在从GitHub等在线源代码库中提取知识。关于Bayou的论文将于5月1日在不列颠哥伦比亚省温哥华举行的第六届学习代表国际会议上发表,该会议是深度学习研究的首要渠道。用户可以在askbayou.com上试用。
设计可以对计算机进行编程的应用程序是计算机科学领域长期以来所熟知的,称为人工智能(AI)。
“人们已经尝试了60年来构建可以编写代码的系统,但问题是这些方法并没有那么模糊,”Bayou联合创始人赖斯计算机科学副教授Swarat Chaudhuri说。“你通常需要提供很多关于目标程序的详细信息,写下这些细节可以和编写代码一样多。
“Bayou是一个相当大的改进,”他说。“开发人员可以向Bayou提供非常少量的信息 - 实际上只是几个关键字或提示 - 而且Bayou会尝试阅读程序员的想法并预测他们想要的程序。”
Chaudhuri说,Bayou通过研究数百万行人类编写的Java代码来训练自己。“它基本上研究了GitHub上的所有内容,并借鉴它来编写自己的代码。”
Bayou联合创始人Chris Jermaine是计算机科学教授,他与Chaudhuri共同负责Rice的智能软件系统实验室,他说Bayou对于合成特定软件API的代码示例特别有用。
“今天的编程与30或40年前的编程非常不同,”杰梅因说。“今天的计算机放在我们的口袋里,戴在我们的手腕上以及数十亿的家用电器,车辆和其他设备中。程序员从头开始编写代码的日子早已不复存在。”
该实验室的研究科学家Bayou建筑师Vijay Murali说:“现代软件开发完全是关于APls。这些是系统特定的规则,工具,定义和协议,允许一段代码与特定的操作系统,数据库交互,硬件平台或其他软件系统。有数百种API,开发人员很难对它们进行导航。他们在Stack Overflow等问答网站上花了很多时间向其他开发人员寻求帮助。“
Murali说,开发商现在可以开始在Bayou询问其中的一些问题,这将立即给出答案。
“即时反馈可以立即解决问题,如果没有,Bayou的示例代码应该为他们的同龄人带来更明智的问题,”Murali说。
Jermaine表示,该团队的主要目标是让开发人员尝试扩展Bayou,后者已经在许可的开源许可下发布。
“我们掌握的关于人们对像Bayou这样的系统的期望的信息越多,我们就越能做到这一点,”他说。“我们希望尽可能多的人使用它。” Bayou基于一种称为神经草图学习的方法,该方法训练人工神经网络以识别数十万个Java程序中的高级模式。它通过为每个读取的程序创建一个“草图”,然后将该草图与程序背后的“意图”相关联来实现。
当用户询问Bayou问题时,系统会判断要求写入的程序。然后,它为用户可能想要的几个最可能的候选程序创建草图。
“基于这种猜测,Bayou的一个独立部分,一个了解Java的低级细节并且可以进行自动逻辑推理的模块,将生成四到五个不同的代码块,”Jermaine说。“它会向用户呈现这些内容,就像在网络搜索上点击一样。'这个很可能是正确答案,但这里还有三个可能是您正在寻找的内容。'”