随着人工智能的进步,可以被机器取代的工作也越来越多,而这次,轮到软件工程师了。
微软研究院和剑桥大学研究人员开发出一套可自己写程式的人工智能“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
(本文由 数位时代 授权转载;首图来源:shutterstock)