如何评价微软正在开发的人工智能编程软件 DeepCoder? | 目的地Destination

如何评价微软正在开发的人工智能编程软件 DeepCoder?

这篇论文现在貌似正在open review,我建议感兴趣的人都去看看,openreview.net/pdf? 因为内容非常简单,计算机本科大二水平完全足够。

这篇论文大概意思是这样:

首先定义一个DSL,这个DSL只有少数基本的原语,原语组合可以实现各种功能,然后机器输出一堆input和output作为测试样例,让神经网络排列组合原语符合测试样例,测试样例都通过了就说明程序写对了。比如你给一堆无序数组作为input,给排序好的数组作为output,那DeepCoder就会输出一个排序函数(其实这个例子不好因为排序是内置的原语)。论文稍微有点意思的地方是提出了一个sort and add的搜索策略并提出对这个策略的优化。从实用的角度来说功能非常局限,几乎写不出真正可用的商业代码。

当然这只是个开始,以后应该能写出更复杂更有用的代码,甚至舍弃DSL直接输出python之类的真实代码。这个东西的前景我是这么看的:理想情况是公司里只需要产品经理和测试工程师,产品经理提需求,测试工程师写测试数据集,然后DeepCoder根据测试数据生成可用代码直接上线,但实际应该不会这么美好。首先,机器生成代码的成本一定不能太高,有买GPU阵列的钱不如多请几个码农,性价比提升不了一切都免谈;再者,你不能每更新一次就从头生成,所以分模块设计架构是必须的,这样架构师的饭碗就保住了;还有要考虑到维护问题,万一机器生成有bug的程序,而且代码还非常难懂(比如变量名全是编号),谁来debug?所以开发核心代码的工程师的饭碗也丢不了。最后的结果应该是一些比较不重要的小模块交给机器来完成,程序员主攻技术难点以及设计架构,这对技术好的人是个好事,可以少做很多无聊工作。另外DeepCoder也可以辅助算法工程师设计算法,机器生成算法雏形,算法工程师进一步优化,也能省不少事情……

但话再说回来,这篇文章给我的感觉就是新瓶装旧酒。程序生成这个东西很早就有了,上古时代有拿搜索树写程序的,然后有用演化计算写程序的,现在DL火了又开始用神经网络来搞,理论上工程上并没有什么大进展。这要是都能发顶会我真是一口老血卧床不起大病三天然后要考虑转行了……

来源:知乎 www.zhihu.com
作者:知乎用户(登录查看详情)

【知乎日报】千万用户的选择,做朋友圈里的新鲜事分享大牛。 点击下载

此问题还有 35 个回答,查看全部。
延伸阅读:
编程到底难在哪里?
是否可以用计算机实现诊断疾病?

分享

如何评价微软正在开发的人工智能编程软件 DeepCoder?:等您坐沙发呢!

Leave your comment