微软研究院和剑桥大学研究人员开发出一套可自己写程序的人工智能“DeepCoder”,未来就算不会写程序,也能也能透过 DeepCoder 打造出符合需求的程序,大幅缩短开发时间和成本。在那个机器人取代人类工作的未来,不论你是劳力型还是知识型工作,恐怕都难以全身而退。
从现有程序代码找到适合的片段,组合成符合需求的程序
DeepCoder 使用被称作“程序组合”(program synthesis)的方法,只要给定系统输入值和需要的输出结果,DeepCoder 便可透过搜寻其他程序的程序代码,挑出适合的程序代码片段,再组合成可运作的程序,让程序顺利生成需要的结果。事实上,这个步骤就像许多工程师常做的事:在程序问答网站 Stack Overflow 上搜寻适合的程序代码,再“复制贴上”他们认为可行的程序代码片段。
研究团队指出,和人类工程师相比,DeepCoder 能更全面、广泛地搜寻程序码范例,因此程序代码的组合方式可能是过去人类从未想过的。此外,DeepCoder 将机器学习应用在每次的搜寻和组合程序代码,相较于旧有系统需要花费好几分钟才能选出正确的程序组合,DeepCoder 只需几秒就能写好程序,且速度还会随着练习越来越快。
麻省理工学院研究人员曾在 2015 年将这项技术用于自动修复软件漏洞,其透过机器学习系统找出有漏洞的程序代码片段,并从其他程序找到适用的程序代码片段,用以取代错误的程序代码。
仍是早期研究,写不出企业等级软件和 App
看完 DeepCoder 的介绍,或许不少以写程序为生的工程师开始担心未来是否将被人工智能取代。不过好消息是,该研究尚在早期阶段,目前只能写出 5 行左右的程序代码,难度相当于程序竞赛网站中最简单的问题。
此外,DeepCoder 只能透过组合程序代码片段来写程序,并不能靠自己生成一段全新的程序代码,也还没办法写出企业等级的软件,或是 App 等更复杂的程序代码。
研究人员也指出,该系统的目的并非想要取代人类工程师,而是让电脑协助完成写程序过程中最无趣的地方,工程师可以将时间拿去做更复杂、更有创造力的工作。
AI learns to write its own code by stealing from other programs
New AI shows even programmers are not safe from automation
Microsoft’s new AI sucks at coding as much as the typical Stack Overflow user