如今,写代码已经成为各行各业的必备技能。学习写代码可以让电脑代替我们做一些重复性的工作,大大提高工作效率。 但真正可以为您编写代码的AI程序有多远? 5月5日,IBM向极少数媒体和学术界发布ProjectCodeNet,当时并未引起太大关注。 CodeNet完美继承了ImageNet的思想。ImageNet是一个大规模图像及其描述数据集,为CV的模型开发和标准化提供了极大的帮助,也是深度学习计算机视觉进步的核心,图像免费用于非商业用途。 CodeNet的目标是为人工智能编写代码提供一个标准数据库,其中包含超过1400万个代码样本,涵盖50种编程语言,可以解决4000个编码问题。该数据集还包括很多额外的数据,例如软件运行需要的内存量和运行代码的日志输出。 IBM表示,ProjectCodeNet是同类数据集中最大、最多样化的数据集,解决了当今编码中的三个主要用例:代码搜索(自动将一种类型的代码翻译成另一种类型的代码,包括此类遗留语言);代码相似性(识别不同代码之间的重叠和相似性);和代码约束(根据开发人员的特定需求和参数定制约束)。 不过,一些安全研究人员认为,CodeNet和类似项目最重要的影响不是优化代码,而是增加自然语言编码(NaturalLanguageCoding,NLC)的可能性。 近年来,像OpenAI和谷歌这样的公司一直在迅速改进自然语言处理(NLP)技术。这些是机器学习驱动的程序,旨在更好地理解和模仿自然人类语言并在语言之间进行翻译。训练机器学习系统需要访问包含以所需人类语言编写的文本的大型数据集。 但是编码是一项很难学习的技能,更不用说掌握了,有经验的编码员应该精通多种编程语言。相比之下,NLC利用NLP技术和大型数据库(如CodeNet)来支持使用英语并最终使用任何其他自然语言进行编码。 可以让设计网站之类的工作像打一句话一样简单,就会有一个符合要求的网站,这就要求生成的代码是可运行的。 例如,“用飞机图像做一个红色背景,中间是公司标志,下面是一个联系我的按钮。” 显然,这样一个科幻的想法,除了IBM之外,还有很多人在做这件事。 GPT-3是OpenAI的NLP模型。它在许多文本生成任务中遥遥领先。它也被用于生成代码。输入是预期网站或应用程序的自然语言描述,输出是可运行的代码。. 然而,就在IBM的消息传出后不久,微软就宣布获得了GPT-3的独家授权。 除了GPT-3,微软还在2018年收购了互联网上最大的开源代码集合GitHub。并且还开发了人工智能代码助手GitHubCopilot,可以辅助VScode等IDE的开发,可以简化开发流程,但是是收费的。 虽然Copilot离NLC的目标还很远,但已经是向前迈进了一大步。 但根据后续测试,Copilot除了抄袭开源代码和评论外,无法创建代码,还会传播其他用户的易受攻击代码。 Copilot是向NLC迈出的一大步,但距离能够为AI编写代码还差得很远。 虽然NLC还不是完全可行的,但当前的研究方向正迅速朝着编程不需要长时间训练的未来发展,其影响是巨大的。 首先,更多的研究和开发产生更多的结果。有人认为,潜在创新者的数量越多,创新率就越高。 如果人人都会写代码,编程的创新潜力会更大。 此外,计算物理学和统计社会学等学科越来越依赖定制的计算机程序来处理数据,并简化了编写此类方法所需的技能要求,从而提高了做出新发现的能力。 但NLC所需的人工智能开发和部署资源相当昂贵,小公司根本无法支撑此类应用的开发和运营,因此很有可能被微软、谷歌或微软等主流巨头垄断最后是IBM。该服务可以收费提供,也可以像大多数社交媒体服务一样免费提供。 而我们有理由相信,这些技术将由平台公司主导,因为机器学习需要大数据的支持。从理论上讲,像Copilot这样的程序在引入新数据时会变得更好——也就是说,使用它的用户越多越好——这一特性也让新的竞争对手更难进入,即使他们有更强大或更良心的产品. 除非采取强有力的反垄断措施,否则大型资本主义企业集团似乎将成为下一次编码革命的看门人。
