资料图:游戏公司程序员。中新社余青摄早上9:00上班,晚上9:00下班,每周工作6天。“996”工作制最近在互联网巨头掌门人的“协助”下成为热门话题,众说纷纭。但抛开法律、道德、价值观等方面的讨论,《996》所反映的现实是,社会正在全面进入信息化,程序员已经不堪重负。与此同时,谷歌大脑发表论文展示AI辅助人类编程,为疲惫不堪的“码农”带来新福音。Google的AI技术如何实现辅助编程?人工智能可以协助完成哪些编程任务?程序员的解放之路还有多远?带着这些问题,本报记者专访了法国原子能与替代能源委员会人工智能博士、速问智能创始人王伟。游走于“画家”与“画家”之间,硅谷创业之父PaulGraham在他的著作《黑客与画家》中将编程与绘画进行了形象的对比。格雷厄姆相信优秀的程序员既是画家又是创造者。不过,他也在书中指出,在分工越来越精细的产业链中,“(程序员)只是负责实现领导意志的技术工人,他的职责就是写代码“按照规范。都是一样的,从一端挖到另一端,仅此而已,都是机械工作。”两者之间的区别就像画家和画家一样。前者是个性的创造,后者是重复劳动。专业程序员的工作原本是一项智力密集型的科技创造,但随着互联网行业的高速发展,一些互联网公司的程序员和流水线工人几乎没有本质区别,编程逐渐成为一种劳动——密集的机械劳动。.然而,创新通常不是来自长时间的工作。程序员创造力的持续下降无疑与高强度的工作量有关,而人工智能或许能够改变这一现状。人工智能如何实现辅助编程为了快速看懂谷歌这篇技术性很强的论文,王伟向记者介绍了他参与的另一项研究:AI模仿大作家雨果的笔迹。该项目利用人工智能统计方法学习雨果的语言风格,包括其惯用的词语、表达方式和句型等,最终让法语写作水平一般的人也能用这位伟大作家的写作风格写出自己的故事。王伟说,人类的自然语言(比如法语)是由词和词组成的序列。通过统计模型分析,可以根据以上预测下面出现的概率,可以理解为更高级的联想输入法或Typingtips。面向机器的编程语言,一方面是由代码组成的序列,另一方面也有其内部的代码组织结构。通过对两者建模,在程序员输入代码的过程中,可以利用人工智能技术识别其意图并预测其可能输入的代码,从而辅助程序员简化新代码的工作量。此外,通过模式识别,当程序员修改部分代码时,AI可以在现有代码中识别出其他需要类似修改的相关代码模块,甚至可以直接提供代码更新方案的选项,从而大大减轻程序员的工作量。程序员修改代码。在AI术语中,预测上下文或代码属于序列学习和预测,递归神经网络是实现序列建模的解决方案。长短期记忆网络(LSTM)是一种流行的循环神经网络。谷歌在论文中使用LSTM对现有代码进行建模,从而识别和预测复杂和动态的代码编辑序列。哪些工作可以辅助程序员完成王伟介绍,目前程序员编程使用的开发工具IDE(IntegratedDevelopmentEnvironment)已经初步提供了一些简单的提示功能,比如参数的自动填充、构造函数的自动初始化等,在实际操作中一定程度上提高了程序员的效率。Google的研究面向更复杂的编辑序列模型,其方案对大规模代码编辑数据的适用性更强。如果研究能够产业化应用,对于一线程序员和科技公司来说无疑是一大福音。在AI预测和识别的辅助下,程序员将大大简化编写新代码和修改代码过程中高度重复的工作,而机器的加入将直接减少程序员的工作量和疲劳度。程序员的解放之路还有多远王伟表示,谷歌的研究还处于试验阶段,距离大规模产业化应用还有一定距离。此外,部分媒体报道存在一定炒作性,谷歌研究的定位仍局限于辅助编程。在可预见的未来,由机器编写程序仍然是科幻小说,编程只能由人类来完成。从技术角度来看,人工智能还不能完全理解人的复杂意图,也不能形成有效的创造力。目前还没有解决这个问题的技术路径。另外,编程的目的是形成产品,实现社会价值,存在责任界定问题。从社会的角度来看,人工智能不应该自己做决定。然而,技术总是在短期内被高估而在长期内被低估。从长远来看,在AI的帮助下,程序员繁重的机械劳动有望大大减少,但创新工作仍然需要人类的智慧来完成。“码农”将变身“园丁”,在AI的辅助下腾出更多时间,投入更多精力进行创作。“画家”枯燥的工作会变得更有趣,程序员的“996”工作制或许也会成为历史。
