周末,特斯拉AI负责人Andrej Karpathy发文论述“软件2.0”的概念,他说,神经网络给编程工作带来了根本性的变革。
今天,跟他聊过这一概念的谷歌工程师Pete Warden也在自己的博客上发了一篇文章,题为“Deep Learning is Eating Software”,阐述了他对软件2.0时代的看法。他说,以后程序员的角色会变成软件的“老师”,10年内,大多数软件相关工作都将不再涉及编写程序本身。
以下内容翻译自Pete的博客。
几周前,我和Andrej Karpathy喝了几杯,聊起了我们认为未来几年里,机器学习会走上什么方向。Andrej抛出了“软件2.0”这个概念,我立刻感到羡慕嫉妒,因为这个词所捕捉到的,是我在几百个项目中所见到的日常。
他写了博客发出来之前,我都忍着没说话,不过现在,我想来讲讲我对这件事的看法。
我所看到的模式是这样的:有一个软件项目,用明确的编程逻辑来处理数据,然后负责维护它的团队发现,他们可以用基于深度学习的解决方案来替换它。
Alphabet有很多这样的例子,我只能举一些已经公开的,比如说搜索排序的升级、数据中心节能、语言翻译、下围棋,这些在Alphabet内部并不是特例。
我所看到的是,几乎每一个有意义的数据处理系统都可以用现代机器学习技术来大幅提高。
这样说可能显得没那么戏剧性,但是在我们如何构建软件这个问题上,这是一种剧变。不用再写一层一层错综复杂的逻辑,程序员的角色变成了一名老师、训练数据的管理者、结果的分析师。这和我在学校里所学的编程非常非常不一样,但最让我激动的是, 一旦工具完备了,它比传统的编程工作门槛更低。
这种新编程方式的核心是提供一大堆样例作为输入,以及你期望什么样的输出。这不要求程序员具备传统编程工作所需的技术能力,却需要对于问题领域的深入了解。这就意味着和以往不同,软件的积极用户会参与到它的构建之中,扮演一个更直接的角色。
本质上,是用户自己描述了用户故事,把它们喂到机器里,构建自己想要的软件。
Andrej的博客专注于语音识别等领域,但我想说的是,软件2.0带来的影响将遍布更多领域。经典文章Machine Learning: The High Interest Credit Card of Technical Debt(https://static.googleusercontent.com/media/research.google.com/zh-CN//pubs/archive/43146.pdf)描述了一种十分常见的模式:机器学习系统开始嵌入到软件的深层堆栈之中。
我所看到的是,因为越来越多的软件堆栈被单个深度学习模型整体替代,“技术债”的问题也开始得到解决。跟断裂点进行类比,这就像将你的所有债务都合并为一笔费用更低的贷款。与一组深度联通的模块相比,单个的模型更容易提高,维护起来也更容易。
对很多大型系统来说,反正都没人敢说自己清楚这些软件究竟在干什么,所以实际上在可调式性或者控制性方面也没有损失。
我知道这听起来就像是又一篇深度学习忽悠文,如果我不是每天都看见这样的历史进程正在发生,也会觉得这很难接受,但这是真的。
比尔·盖茨好像说过“大多数人都高估了他们一年内能做的事情,低估了10年内能完成的事情”,对于将传统软件替换成深度学习这件事来说,我正是这种感觉。随着知识在开发者圈子里的扩散,这将会是一个长长的缓慢上升过程,但我预测,10年之内,大多数软件工作都不会再涉及编程。
就像Andrej明确指出的:深度学习比你强!
— 完 —
加入社群
量子位AI社群11群开始招募啦,欢迎对AI感兴趣的同学,加小助手微信qbitbot4入群;
此外,量子位专业细分群(自动驾驶、CV、NLP、机器学习等)正在招募,面向正在从事相关领域的工程师及研究人员。
进群请加小助手微信号qbitbot4,并务必备注相应群的关键词~通过审核后我们将邀请进群。(专业群审核较严,敬请谅解)
诚挚招聘
量子位正在招募编辑/记者,工作地点在北京中关村。期待有才气、有热情的同学加入我们!相关细节,请在量子位公众号(QbitAI)对话界面,回复“招聘”两个字。
量子位 QbitAI · 头条号签约作者
վ'ᴗ' ի 追踪AI技术和产品新动态