天天看点

程序员用AI来写AI代码,“卷死”其他程序员?

作者:品玩

用ai算法帮程序员写ai算法?或许不少程序员“你已经是一个成熟的ai了,该学会自己补全代码了”的心愿就要实现。

在今年6月份,github与open ai一同合作,推出了一款名为“github copilot”的ai工具,copilot可以根据上下文自动补全代码,包括文档字符串、注释、函数名称、代码,只要编程者给出一定提示,这款ai工具就可以补全出完整的函数。

程序员用AI来写AI代码,“卷死”其他程序员?

令人震惊的是copilot还在不断进化。在近日举行的github universe 2021开发者大会上,github官方表示copilot已开始支持java、c、c++和c#等语言的多行代码完成,并增加了neovim和jetbrains ide,包含开发者常用的intellij idea、pycharm等编辑器的支持。

程序员用AI来写AI代码,“卷死”其他程序员?

github表示,如今新写的30%代码都是在ai编程工具copilot的帮助下完成的,copilot真的如此强大吗?在社交网络中,已有不少早早拿到了copilot试用资格的博主分享了他们使用copilot的感受。

程序员用AI来写AI代码,“卷死”其他程序员?

当然,除了认真写copilot使用体验的博主,还有偷偷摸鱼被抓个现着的程序员……

程序员用AI来写AI代码,“卷死”其他程序员?

copilot虽然强大,但就和大部分人工智能工具一样,它仍是建立在openai codex算法的基础上,需要通过海量的代码来训练其智能程度。这对同样有着微软血统的openai以及github来说不是问题,微软在2018年斥资75亿美元收购了全球约有5000万用户的代码共享网站github,这意味着copilot所依托的codex算法接受了数十亿行公共代码的训练。

事实早在copilot诞生之前,openai就推出1750亿参数的ai模型gpt-3,gpt-3耗费了千万美元对人类的诗歌、小说、新闻等海量自然语言进行训练(主要是英语),也因此gpt-3对自然语言具备了一定程度的理解能力。神经网络之父geoffrey hinton在gpt-3出现后,曾这样感慨:“生命、宇宙和万物的答案,其实只是4.398万亿个参数而已。”

程序员用AI来写AI代码,“卷死”其他程序员?

codex就是基于gpt-3进行训练,openai 的联合创始人兼首席技术官greg brockman曾表示codex是 gpt-3 的后代。因此codex也具备了将部分指令清晰的英语翻译成代码的能力,甚至有部分媒体宣传codex已经让程序员门槛降低到了只要会英语就能写代码的地步。

程序员用AI来写AI代码,“卷死”其他程序员?

在官方示例的codex效果展示中,程序员只需要在编辑界面写下“make it be smallish”示例上图中的大型飞船就会如下图一般缩小,而在这个过程中程序员并不需要输入一行代码,codex会自动编写车程序。

程序员用AI来写AI代码,“卷死”其他程序员?

如今,codex经过无数代码与金钱训练出来的强大能力应用到了ai工具copilot上,这虽然造就了copilot神奇的代码补全、给出函数建议等功能,但同时也使得copilot陷入了系列舆论争议风波。

当copilot受到越来越多程序员的欢迎,github的ceo nat friedman兴奋地表示:“每天都有数百名github的开发者在使用copilot,如果预览版进展顺利的话,我们将计划在未来某个时候将其扩展为付费产品。”

nat friedman的这番话让copilot一下没那么香了,这意味着经过github和openai的一波神操作后,收费的copilot白嫖了全球最大的代码共享网站github5000万用户的知识成果用来商业化。<b>这其中引起争议的焦点就在于copilot的版权存在开源代码衍生品商业化gpl版权问题。</b>gpl(general public license)即通用公共许可证,是一系列自由软件许可证的统称,它可以用来保证用户运行、研究、共享和修改软件的自由。与此对应的是,任何复制、迁移gpl版权的衍生作品都必须遵循相同或等效的许可条款。

简单来说就是,我是开源软件、开源代码你随便用没问题,但你只要用了就也得支持开源,其它任何人也可以免费使用你的代码或软件。copilot引起github社区人们公愤的关键就是其把开源代码洗成商业产品,无视了早期促进程序语言世界丰富、开放的开源精神,已有不少程序员在社交媒体上公开表示未来将不再使用github来托管自己的代码。

程序员用AI来写AI代码,“卷死”其他程序员?

github官方则解释copilot“通常不会精确复制代码块”,也有人认为copilot通过海量代码ai训练最后得出来的结果就如同人类一样,人类前期也需要通过学习其他人的相关知识来内化成为自己的,很难把ai模型训练出来的代码简单的理解为复制粘贴。

然而已有不少人否定了这个说法,在通过copilot解决程序中的一些经典问题时,会发现copilot几乎一字不差的复制粘贴了github上的某段经典代码。这意味着在copilot成为商业产品后,使用copilot的用户在把其代码应用到自家产品时一不小心就会中招违反gpl协议,面临被人起诉的风险,因此,已有一些科技公司已明确要求禁止员工使用copilot。

copilot在实际应用中面临的问题不止如此,随着程序员们对copilot了解的逐步加深,他们发现copilot并不完美,仍然存在着不少缺陷。copilot背后的codex既经过大量文本语言训练,也吸收了网络世界中鱼龙混杂的海量代码,因此copilot输出的部分代码或许看出去没有那么美好,有着隐私泄露、安全风险等问题。b站大佬陈睿就躺枪了一次,虽然立刻有网友表示其中出生年月日信息有误。

程序员用AI来写AI代码,“卷死”其他程序员?

也有网友表示“copilot 一时爽,调试火葬场”,因为想要清楚、清晰的描述出目标函数想要实现的功能并不简单,同时在使用copilot的过程中,需要不断去回顾检查ai生成的代码是否正确,这反而容易干扰到编程时的原有思路。

目前,github copilot还处于未收取任何费用的申请试用阶段,互联网上关于它的争论也还在继续,随着ai工具日益强大,人类将来面对的类似问题只会越来越多。

继续阅读