谷歌大脑教AI写代码,能否取代程序员?
极客时间编辑部
讲述:杜力大小:2.23M时长:02:27
据谷歌大脑最新论文称,他们能够让神经网络来完成源代码编辑。研究人员收集了来自数千名 Python 开发者的数百万次细粒度的源代码,构建了一个大型编辑序列数据集,训练出了一个模型,试图让它学会“编程”。通过对原始状态和编辑序列(Edits 1 & 2)的观察,研究人员发现,神经网络“预测代码”并知道后面怎么“编下去”,是完全可行的。
研究人员还为“机器程序员”考虑了两种表征方式,显式表征和隐式表征。显式表征由一个两阶段的 LSTM 网络实现,第一阶段能够编码每一个状态序列,第二阶段会将前面已观察到的编辑序列解码出来,因此,实例化序列中每一次编辑的状态结果都会被模仿,将代码呈现出来。
而为了不让“AI 程序员”的作品仿效失真,还需要带入隐式表征,这就要求采用的隐式模型不仅能够对隐式表征进行操作,还能更好地捕捉到编辑内容和编辑上下文之间的关系序列,进而更好地学习策略。
隐式注意力模型是谷歌人员参考了 Transformer 的位置编码与 Multi-head Attention(MHA)改造出的双向注意力模型,双向注意力模型能够在真实数据中实现高准确率、精准置信度和较好的可扩展性。它与显式模型的协同工作几乎可以解决所有任务,甚至是那些涉及元字符和具有较长替换序列的任务,这使机器洞察人类工程师的编程意图、并在将来写出“神似人类”的代码成为了可能。
但就目前的研究现状来看,距离“AI 程序员”上岗还有很长一段路要走。
首先,机器编写代码的能力还远远不够,真实效果有待验证。优秀的开发者往往会根据新需求、新的网络环境、bug 的修复、最新的运营活动、公司的战略意图等各种不断变化的因素来构建代码,而让机器根据过去的代码序列来动态判断和预测即将发生的编辑内容,目前的性能完全不足以支撑实际应用。
其次,即使性能达到了,机器也只能完成相对简单的任务。如果想要开发出比较复杂和创新性的产品,还需人类程序员来完成。更关键的是,机器开发的成本并不低,而且随着数据量的增加,它的成本也在指数级提升。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
请先领取课程
免费领取
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
精选留言
由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论