当OpenAI首次发表一篇关于他们的新语言一代人工智能的论文时,GPT-3在美国,这种炒作是缓慢建立起来的。这篇论文指出,GPT-3是迄今为止最大的自然语言人工智能模型,它是先进的,但它只有几个输出的书面例子。然后OpenAI提供了GPT-3测试版的访问权限,看看开发者会用它做什么,结果大家都懵了。

使用GPT-3的开发人员在推特上走红举例说明它的能力:短篇小说、新闻稿、关于它自己的文章,一个搜索引擎。也许最令人惊讶的是发现GPT-3可以编写简单的计算机代码。当网页开发者沙里夫·沙米姆(Sharif Shameem)将其修改为HTML而不是自然语言时,该程序会根据“一个看起来像西瓜的按钮”之类的提示生成网页布局代码。

“我曾经说过,人工智能研究似乎对编程工作的自动化有一个奇怪的盲点,我怀疑这是一种潜意识的自我保护偏见。”在推特上John Carmack,传奇的电脑游戏开发者和Oculus VR的首席技术官。“最近发现GPT-3可以编写代码,这几乎是偶然的,确实让人有点不寒而栗。”

虽然发现GPT-3的编码技能可能是偶然的,但事实上,有一个完整的领域致力于开发可以编码的机器学习算法。这项研究一直在取得进展,一种新的算法最近又迈出了一步。

该算法被称为机器推断代码相似性(MISIM),是英特尔、乔治亚理工学院、宾夕法尼亚大学和麻省理工学院研究人员的智慧产物。MISIM通过对网络上已经公开的大量代码进行训练,可以知道一个程序应该做什么。然后,在找到其他类似的程序并与之进行比较之后,MISIM可以提供使程序更快或更有效的方法。

这并不是第一个给出建议或比较相似度的机器学习算法,但据研究人员在一项新的研究中表示预印本上的MISIM在美国,当它与几个最先进的竞争对手正面交锋时,它的准确率要高出40倍。

短期内,人工智能可能会成为当今程序员的得力助手。在更远的地方,这个领域可以向任何人开放编程,任何人都可以用日常语言描述他们想要创建的东西,或者带来编写和维护自己代码的机器。

机器编程的梦想

对能编程的计算机的追求几乎和现代计算机科学一样古老。虽然编程自动化已经取得了进展,但最近机器学习的爆炸式发展正在加速一个被称为机器编程的领域的进展。

在一个2018年领域论文英特尔(Intel)和麻省理工学院(MIT)的一组研究人员写道:“机器编程的总体目标是,从人类程序员身上卸下编写正确、高效代码的负担,取而代之的是把它放到机器上。”

研究人员正在研究一种系统,这种系统可以自动地将人的意图(也就是他们想让软件做的事情)转化为一个可行的程序。他们还致力于随着时间的推移自动维护软件,例如,发现并修复bug,保持程序兼容,或更新代码以跟上硬件升级。

当然,说起来容易做起来难。编写软件既是一门科学,也是一门艺术。把人类的意图翻译成机器的语言需要大量的经验和创造力。

但正如GPT-3所显示的那样,语言实际上是一种机器学习正在迅速掌握的技能,而编程语言与英语、汉语或斯瓦希里语并没有太大的区别。这就是为什么GPT-3通过自然语言训练获得了一些编程技能是值得注意的。

虽然像GPT-3这样的机器学习算法的进步是机器编程成功的关键,但如果没有良好的训练数据,它们将毫无用处。幸运的是,像这样的网站上有大量的公开代码GitHub-网站上到处都是修订历史和注释,还有代码片段和评论,比如堆栈溢出。即使是拥有可访问网页和代码的互联网,也为人工智能提供了丰富的学习材料来源。

从理论上讲,正如GPT-3要学习如何编写数百万篇示例文章一样,机器编程人工智能也可以使用数百万个程序来学习编码。但如何使其在实践中发挥作用仍是一个悬而未决的问题。这就是MISIM的作用所在。

一个能写出超棒代码的机器人助手

MISIM使机器编程进步了一步通过准确识别代码片段应该做什么。一旦对代码进行分类,它就会将其与数据库中的数百万其他代码片段进行比较,找出最相似的代码片段,并根据其他示例对代码片段提出改进建议。

因为MISIM在高层次上对代码的用途进行了分类,所以它可以找到做相同事情但编写方式不同的代码片段(解决相同问题的方法不止一种),甚至可以找到用其他编程语言编写的代码片段。简单地说,这有点像某人在读a《纽约客》文章,确定其主题,然后找到关于该主题的所有其他文章——不管它们是否在《明镜周刊》新华社

在更高级别的分类中工作的另一个好处是程序不需要编译代码。也就是说,它不需要把它翻译成由计算机执行的机器码。由于MISIM不需要编译器,它可以在编写代码时分析代码片段,并提供类似的更快或更有效的代码片段。这有点像电子邮件的自动完成功能,完成你的句子。

为此,英特尔计划向内部开发者提供MISIM。我们希望它将被证明是一个有用的助手,使代码编写过程更快、更容易和更有效。但它还有更多潜在的功能。例如,计算机语言之间的翻译,也可能是一个有价值的应用。它或许可以帮助编码员将用古老语言编写的政府软件更新为更现代的语言。

但英特尔(Intel)的机器编程总监贾斯汀•戈特施里奇(Justin Gottschlich)有一个更宏伟的愿景:编码的完全民主化。

将MISIM(或类似的东西)与自然语言人工智能结合起来,未来的程序员可以简单地写下他们想要一个软件做什么,计算机就能迅速写出代码。这将向任何熟练掌握本国语言并渴望创造出酷东西的人开放编程。

正如Gottschlich告诉麻省理工学院技术评论,“我希望看到80亿人以最自然的方式创建软件。”

图片来源:马库斯Spiske/Unsplash

杰森是奇点中心的执行编辑。188金宝搏app1.1.94在进入科技领域之前,他做过有关金融和经济的研究和写作。他对几乎所有的事情都很好奇,遗憾的是他只知道其中的一小部分。