这篇论文现在貌似正在open review,我建议感兴趣的人都去看看,https://openreview.net/pdf?id=ByldLrqlx因为内容非常简单,计算机本科大二水平完全足够。这篇论文大概意思是这样:首先定义一个DSL,这个DSL只有少数基本的原语,原语组合可以实现各种功能,然后机器输出一堆input和output作为测试样例,让神经网络排列组合原语符合测试样例,测试样例都通过了就说明程序写对了。比如你给一堆无序数组作为input,给排序好的数组作为output,那DeepCoder就会输出一个排序函数(其实这个例子不好因为排序是内置的原语)。论文稍微有点意思的地方是提出了一个sort and add的搜索策略并提出对这个策略的优化。从实用的角度来说功能非常局限,几乎写不出真正可用的商业代码。当然这只是个开始,以后应该能写出更复杂更有用的代码,甚至舍弃DSL直接输出python之类的真实代码。这个东西的前景我是这么看的:理想情况是公司里只需要产品经理和测试工程师,产品经理提需求,测试工程师写测试数据集,然后DeepCoder根据测试数据生成可用代码直接上线,但实际应该不会这么美好。首先,机器生成代码的成本一定不能太高,有买GPU阵列的钱不如多请几个码农,性价比提升不了一切都免谈;再者,你不能每更新一次就从头生成,所以分模块设计架构是必须的,这样架构师的饭碗就保住了
...
继续阅读
(45)