可以从头开始编码和构建新计算机程序的AI可能会改变世界,从而引起全新的企业家。并把很多人退出工作……
对于我们许多人来说,数字世界是一个外星人的地方。抬起引擎盖,去看看运行它的代码,就像直接凝视着矩阵的屏幕。结果,有些人可以编码,而那些不能编码的人。在这个新世界生活和呼吸的人,以及统治着它的盖茨和扎克伯格等自称的黑客,以及那些只是在边缘涉足边缘的人,盲目地嘲笑自己的智能手机上的应用程序,例如猫玩纱球。
结果,今天,随着世界公司竞争建立新的数字帝国的竞争,对程序员的需求从未如此高。但是,不幸的是,正如新数字宇宙的国王和皇后在世界舞台上习惯了他们的新崇高地位一样,镇上有一名新程序员,它的包装 - 一种名为DeepCoder的人工智能(AI)系统,它学会了如何在Scratch中编写自己的代码和新软件程序。看起来AI不太高兴地击败其他人AI来提交,建造更多的人工智能,设计新的教练,诊断疾病,做梦,编造新的秘密语言或在线屠杀玩家 - 显然,它的时间太多了,所以嘿,嘿,为什么不接受霍比呢?
由微软和剑桥大学的研究人员创建,DeepCoder使用一种称为“程序合成”的技术来削减现有软件的代码,并重新利用IT来创建新程序,就像人类程序员一样。为已知的一些说明或输入和输出提供深编码器,它将学习需要使用哪些代码以及在哪里生成所需结果。
“最终,” DeepCoder的Microsoft创作者之一Marc Brockschmidt说,他是英国剑桥大学的,“该方法可以允许非编码者简单地描述程序的想法,并且系统将构建它。”
麻省理工学院的Armando Solar-Lezama说:“突然之间,人们可能会更加生产力,他没有参与这项工作,“他们可以建立以前无法建立的系统。”
从拥有可以构建新程序的AI的另一个大优势的AIs则是,它可以更彻底,更广泛地搜索代码,搜索数据库和源代码站点,例如Github和Stackoverflow,以获取有趣且有用的代码片段,甚至比人类编码者可以更快地绘制量的幅度,甚至比人类编码者可以使用的量度更快,并且它可以以某种方式将源代码组合在一起。无法弄清楚如何在烧瓶中添加身份验证?繁荣。想关闭sendmail吗?完毕。一切都可以眨眼。
所有这些使系统比人类的前辈快得多。目前,DeepCoder可以试用数千种不同的代码组合并创建工作程序,尽管事实是,目前大多数只有五行长 - 在许多情况下,这仍然足以创建一个工作程序,这是一秒钟的分数。而且因为它了解了源代码工作的哪些组合以及哪些源代码的结合,所以每次看到一个新问题时,它都会改善。
例如,新系统的用例几乎是无限的,例如,在2015年,麻省理工学院的研究人员创建了一个程序,该程序通过用其他程序的工作行替换有缺陷的代码线来自动修复软件错误。
Brockschmidt说,DeepCoder的未来版本可以使构建从网站上刮擦信息的例行程序变得非常容易,或者自动对Facebook照片进行分类,例如,没有人类编码器或非编码器,必须抬起手指。
他说:“这种技术提供的自动化的潜力确实可以表明开发代码所需的努力巨大减少。”但是他认为这些系统并不会使程序员失业,至少尚未使。他说,随着程序的合成使编程中一些最乏味的部分自动化,现在编码人员将能够将时间花在更复杂的工作上。
Solar-Lezama说:“一枪生成非常大的代码很难,并且可能是不现实的,但是真正的大型代码是通过将大量小型代码组合在一起而构建的,并且随着时间的流逝,我们可以看到像DeepCoder这样的系统自动自动化整个堆栈的方法。”