实名反对所有回答。
一眼看过去,果然大部分人都不讨论paper,(除了我的两个小后宫@Belleve @蘅蒻 )就是单纯的意识形态的狂欢,不是说程序员描述需求的作用不可取代,就是取另一个极端,认为很快程序员也要失业。
我这里就直说吧,5年内的确你不会被AI取代,但是如果继续按着自己意识形态空想,不去了解了解程序生成/机器学习的话,说不定就会被更了解AI的程序员取代。至少,这段时间内,用着主流IDE/Editor的人可以看到DL变得跟自己有关了。
欢迎大家存档待打脸。
0:你不会被AI取代
不赘述,各位认为DeepCoder跟自己无关的已经说得很好了,可惜重点错。
1:DL会入侵IDE
我们就说说这paper吧。Deep Coder提出了什么新的东西?生成程序的算法?错(除非你硬要算Sort and Add这种复杂度还没DFS高的东西)!Deep Coder用的程序生成算法是早就有的,奉献不在这。Deep Coder核心奉献很简单:与其写出程序,不如预测程序的属性。
Deep Coder的程序生成,其实是:
0:用挺简单的神经网络(见appendix C)预测一下要生成的程序会出现什么关键字(比如sort啊,add啊,filter啊)
1:用预测结果,限制现有的程序生成程序的搜索范围-既然将要生成的程序不包含zip,就不搜索zip好了
顶多加个2:由于预测关键字出来的结果是一个概率,对概率排序,先用前N个关键字搜索,搜不出来再加关键字,接着搜索(这就叫sort and add)
就这样,没什么很了不起的花招,但是就获得了多倍,极端情况下100多倍的提升。
估计你看到这,已经要开始说,‘但是这跟我有什么关系?’
对,剪枝了还是会有curse of dimensionality,对,需求还是要人来描述,对,法律责任纠纷,对,生成结果不确定所以还是要人看。。。
但是这不一定要用来独立生成程序啊
这只是一个程序预测器,预测一个程序的属性,用这些属性后接程序生成器可以,后接autocompleter一样可以。输入是什么?你写到一半的当前函数/文件,输出是你等下要用啥API,于是autocomplete智能度翻一翻,或者直接来个API reminder,看着你当前函数提醒你什么API要用上,就不需要额外打开google去查。或者预测更多点,预测下参数那些可能为null,那些可能会被修改那些不会,然后自动给你加annotation/property based test。啥?NLP很难?代码早就被parser parse好了,根本不需要NLP,就算是一个变量名,也被camelCase snake_case分好词,直接写个程序取出每个词就是了,顶多也是用下word embedding。
那有技术堡垒?3个隐藏层的神经网络,GB级别的数据(实在不行就MB级别,如果你项目MB级别的模块化都没做到,我表示别说机器,人类都理解不了),还是parsing?如果这样的东西明天出来,我也不奇怪。
如果要给5年以后开脑洞,估计是自动给你抓取相关的庫,并且列出跟你有关的API/Example Program让你选择,然后就差不多了,再上去就真的难了(但是这对于现在开发流程来说已经是革命了)。
2:为什么建议你理解下DL?
这些东西的确可能封装成黑盒,然后你还是该干啥干啥,但是如果你了解下,就算你不是全职做ML的,也有可能会给你带来先机。
0:NN是玄学,leaky abstraction问题大,知道某NN - autocompleter/API suggester的原理后可以更好的准备data,让ANN更推荐你的庫,框架的时候排名更前(就如同SEO),或者早期说不定还需要你去调参。
1:每个语言/IDE/Editor(甚至,一个大的项目)的annotation都不一样,这样如果你负责这些就要自己搞。
2:连写程序都能从DL收益,Domain Specific的业务能用到的可能性只会更大。知道下DL能应用在啥场景,怎么用(除了图像识别,大部分task都不是黑盒,或者说知道原理比不知道的效果天差地别),比遇到真需要的时候不知道需要,不知道怎么做,好多了。
鉴于大部分人都不讨论paper,只对关注的开评论,不服自己写回答啊~
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有