人工智能系统正在变得越来越聪明,它们不仅能下围棋、炒股票,现在还学会了写代码。由微软和剑桥大学研究员一同开发的人工智能系统DeepCoder,完成了人类编程挑战赛所设定的基本挑战。
DeepCoder能从其他程序中“偷”代码,然后开始写自己的程序。不过,人类程序员目前还不用担心自己的饭碗会被它给抢走。因为DeepCoder的研究团队称,他们开发这个系统是为了让没有任何编码知识的人更容易地写程序。
据研究团队透露,DeepCoder使用了深度学习技术来模拟大脑的神经网络,借此它可以处理大量的数据,进行评估做出决策。
具体做法是,研究人员给定DeepCoder输入和输出列表。这样DeepCoder可以确定哪些代码段将带来什么样的所需结果。DeepCoder开发者之一马克·布罗克施密特(Marc Brockschmidt)表示,最终,这种方法有望让非编程人员只要仅仅描述某个程序的想法,就可以让系统自行编写程序。
人类程序员已经非常熟悉如何借鉴其他公开程序的方法,但像DeepCoder这样的系统可以更快地搜索,并比此前的人工智能系统思考更深。它甚至还可以用人类还没有想到的方式组合代码。
“有了这个程序后,突然之间,人们可以拥有更多的生产力了。真正有望大幅缩短开发代码所需要的精力。”麻省理工学院教授阿曼多·索拉尔·勒扎玛(Armando Solar-Lezama)在接受《新科学家》采访时说。
与人类程序员一行行运行代码,对整个程序进行试错不同,DeepCoder可以提前预测哪些代码是有用的,哪些是错误的。另外,它能从各种选择中学习,让自己随着时间的增加变得更聪明。
DeepCoder的技术已经得到了应用。在2015年,麻省理工学院的研究人员开发出了一个程序,它可以把有故障的代码行换成其他程序中切实可用的代码,自动修复软件缺陷。布罗克施密特表示,未来版本会让构建常规程序变得容易,比如从网站获取信息,或者自动对Facebook照片进行分类,到时候,这些都不需要人类程序员动手。
不过,广大程序员们暂时还可以放宽心,不必担心他们的工作会被人工智能取代。索拉尔·勒扎玛认为,DeepCoder只是让编程工作中最枯燥乏味的部分自动化,程序员能够将时间专门花在处理比较复杂的工作上。
最后需要指出的是,DeepCoder目前只能够解决涉及大约五行代码的编程挑战。“一下子生成一大段代码很难,可能不切实际。但是真正庞大的代码却可以通过组合大量的小段代码编写而成。”索拉尔·勒扎玛说。