人工智能会造成大量失业吗使得程序员失业吗?

2022-12-09 22:50 来源: 付楷程
原标题:AI会使程序员失业吗?
人工智能(AI)在围棋、星际争霸等策略性游戏方面已经碾压人类选手,在绘画、蛋白质结构研究乃至数学问题求解方面也展现了惊人的应用前景。现在,两大人工智能系统Open AI 和DeepMind均可以产生有意义的代码行,但研究表明,软件工程师们还不用急着转行。
AI研究人员对AlphaCode的技能印象深刻,AlphaCode是一种人工智能系统,在解决简单的计算机科学问题方面通常可以与人类匹敌。谷歌姊妹公司DeepMind是一家总部位于伦敦的人工智能巨头,于2月发布了该工具,目前已在《科学》杂志上发表了其结果,显示AlphaCode在代码竞赛中击败了约一半的人类。
在过去一周左右的时间里,社交媒体用户被另一个聊天机器人ChatGPT的能力迷住了,该机器人可以应要求编写一些偶尔听起来有意义(有时甚至荒谬至极)的短文,包括简短的计算机程序。但这些最先进的AI只能执行相当有限的任务,研究人员表示,它们远不能取代人类程序员。
11月30日,加利福尼亚州旧金山的软件公司OpenAI发布了最新版本的自然语言系统ChatGPT。ChatGPT和AlphaCode都是“大型语言模型”——基于神经网络的系统,通过学习大量现有的人工生成文本来执行任务。事实上,宾夕法尼亚州匹兹堡卡内基梅隆大学的计算机科学家齐科·科尔特(Zico
Kolter)表示,这两个系统使用“几乎相同的架构”。“当然,虽然在训练和执行方面存在细微的差异,但主要的差异(如果有的话)是,他们只是根据不同的数据集进行训练,从而完成不同的任务。”
虽然ChatGPT是一个通用的对话引擎,但AlphaCode更为专业:它专门针对人类如何回答软件写作比赛中的问题进行训练。“AlphaCode是专门为竞争性编程而设计和训练的,而不是为软件工程而设计的,”DeepMind的研究工程师、《科学》论文的合著者大卫·崔(David Choi)在电子邮件中告诉《自然》杂志。
研究人员指出,大型软件工程项目的大部分工作——比如设计一个网络浏览器——都涉及到了解将要使用它的人的需求。这些很难用AI可以用来生成代码的简单、机器可读的规范来描述。
Kolter表示,目前还不清楚机器是否有可能从头开始生成大规模的软件系统。但“我最好的猜测是,像这样可以生成程序部分的工具很可能会成为程序员的‘第二直觉’工具”,他说。
Choi说:“我们希望进一步的研究将产生提高程序员生产力的工具,并使我们更接近解决问题的人工智能。”。
Kolter补充道,已经有一些足够好的人工智能工具可以让程序员的工作变得更容易,比如一种叫做Copilot的工具,这是代码库GitHub去年推出的一种基于OpenAI技术的代码自动完成服务。
来源:今日头条自然科学一周趣闻返回搜狐,查看更多
责任编辑:

大脑以及二进制代码(图:Canva)
写代码已经成了许多工作的一项关键技能。一些国家和学校甚至认为,编程语言是一种可以接受的外语。而在各种熙熙攘攘之中,程序代码的性质也正在发生巨大的变化。
随着低代码和无代码平台迅猛增长,个人和组织都可以用相对较少的传统上称为编写代码的东西,来创建强大的生产应用程序。该趋势的下一步,就是人工智能生成代码,比如,最近的Open AI Codex和Github Autopilot就展示了这一步的实现。
那么,这些趋势意味着什么呢?编写代码会过时吗?
背景是什么?
在我们回答这个问题之前,要先把这些趋势置于背景之中,这是有帮助的。在编程代码的早期,使用汇编语言和机器语言是当时的常态。编写代码后来演变为高级语言,开发人员可以用一种与机器无关的语言描述高层次的意图,再用编译器在下面生成特定机器的代码。
这种趋势一直持续到现在,今天的主流语言(例如python)带有许多可多次使用的库。所以,要创建强大的应用程序也相对简单,只需要编写少量的新代码即可。
低代码/无代码是什么?
低码/无码是这种演变的下一步。开发人员无需去寻找和组装可重用的代码块。低码平台能够遵照高层次的指示及识别正确的可重用代码块并组装出必要的代码。开发人员则仍然要作出许多决定,例如构建什么样的应用以及软件应该如何运作等等。
那么低码是自己做一些决定或是什么都由开发者决定呢?答案是前者,而且根据平台的不同,自动化做决定的数量也不一样。之前的编译器其实也是这样。比如说开发者使用编译器编写一个循环,开发者很少会指定该循环应该如何用机器代码实现。编译器决定如何用机器代码实现该循环,用到的实现方法,可能是一系列启发式算法和由编译器设计者绞尽脑汁创建的算法。
人工智能可以写代码吗?
人工智能写代码是最近的发展,这是比低码更高大上的一种方法。低代码平台上的人类(即低代码平台设计者)可能已经组装了自动化逻辑,在用户提供了高层次的指示后,自动化逻辑得以触发并生成代码。人工智能在研究了大量的现有代码语料库后确立一些组装规则,进而可以生成代码。
对于用户而言,人工智能生成的代码可能看起来和低码平台生成的代码一样,但这些代码是人工智能创造的低码。这意味着现在可以更容易地用人工智能创建新的低码平台,而平台自动化模式则是基于人工智能。
这一类的平台可以做很多事情:
创建应用程序如今,业界的一些人工智能原型已经可以根据人类的日常语言指示编写简单的应用程序,这显示了人工智能在这领域的发展前景。这些人工智能用了许多用不同语言编写的程序例子进行训练,但从简单的层面上看就是个代码的自动更正。而从更复杂的层面上看,它实际上是一个引擎,这个引擎可以为开发者指定的任务编写代码。
调试代码现在,程序员用到的一些集成开发环境(IDE)已经可以识别代码中的简单语法问题。新的人工智能技术在这方面则更进了一步,它能通过分析代码库、错误修复和代码更新进行训练,达到检测常见错误模式并在新代码中找到这些错误。
编写人工智能代码现在已经可以将一个数据集交给自动化工具,使得自动化工具生成正确的代码类型,再从数据集中构建一个人工智能。这种类型的人工智能自动化已经可以用于一些特定的学习背景,例如在各种生产人工智能环境里用于生成后端代码,去教初中和高中学生如何利用人工智能编写代码。
图中显示的编译器、人类设计的自动化和人工智能设计的自动化逐步扩展了编程助手平台。新技术的出现扩展了编程助手的适应范围,编程助手也涵盖了更大范围的使用案例。(图:AIClub.World)
程序员该何去何从?
无疑,这些趋势将产生深远的影响。许多开发者担心这将使他们丢掉工作——但笔者不这样认为。
编译器并没有让开发者失业,而是大规模地增加了所需的开发者数量、代码的使用以及所创建的应用程序的规模和范围。笔者预计上述的趋势也是这样。但这将从根本上改变编写代码的性质(如果你是一个熟练的汇编语言开发人员,相关的工作有限)。这些趋势令人类成为设计者的角色,而不是实施者。未来的开发者将可以自由地专注于可用性、设计、特征功能等等,而无需担心如何使用特定的API等细节问题。
当然,该趋势的发展还有待观察。生产软件是一项复杂的工作,结合了设计、功能、实施、测试、修改和维护、DevOps等等。任何能实施自动化的东西都可以令开发者腾出手来处理其他事情。可以说,我们正在挺进一个新的领域,人类的任务在这个领域中将集中在功能、设计、道德等主题上,而低层次的实施将由人工智能和自动化来处理。
总结
回到标题的问题——人工智能“上位”会让程序员消失吗?
笔者认为不会。开发人员的工作是创造一个产品,产品需满足用户的需求,相应的解决方案需要特定运行的环境(如公司使用什么技术、现有的基础设施、团队技能、法律限制等)和许多其他因素。而人工智能生成的代码是对大多数这些事情的补充。不过笔者确实认为,人工智能正在从根本上改变编写代码的含义并将在未来持续改变编写代码的含义。关键是我们如何与我们编码教育以及行业编码实践保持同步。
企业或技术领导者务必确保你的团队了解这些发展以及如何利用这些发展,这一点很重要。低码已经在帮助开发人员提高生产力。人工智能生成代码是一个相对较新的现象,但我们可以预期,人工智能生成代码在未来几年内会变得更加普遍。即使是熟练的开发人员也可以受益于持续的教育和培训计划,达到保持对最新技术的了解的目的。如果现在还没有这样的计划的话,最好制定一个。
举报/反馈

我要回帖

更多关于 人工智能会造成大量失业吗 的文章