这种AI可以带给我们可以编写自己的软件的计算机

作者:admin  来源:本站  发布时间:2021-05-12  访问量:1328

1-210512111R4159.jpg

当OpenAI首次发表有关新一代AI(GPT-3)的论文时,这种宣传的建立很慢。该论文指出,GPT-3是迄今为止最大的自然语言AI模型,已经得到了改进,但仅提供了一些书面示例。然后,OpenAI允许选择访问GPT-3的Beta版,以查看开发人员将如何使用它,并为此大吃一惊。

使用GPT-3的开发人员将其功能示例带到Twitter:短篇小说,新闻稿,有关其自身的文章以及搜索引擎。也许最令人惊讶的发现是GPT-3可以编写简单的计算机代码。当网络开发人员Sharif Shameem对其进行修改以吐出HTML而不是自然语言时,该程序会从“看起来像西瓜的按钮”之类的提示中生成网页布局代码。

“我以前说过AI研究似乎对编程工作的自动化有一个奇怪的盲点,我怀疑是一种潜意识的自我保护偏见,”传奇的计算机游戏开发商兼Oculus VR首席技术官John Carmack发推文说。“最近(几乎是偶然的)发现GPT-3可以写代码确实引起了轻微的颤抖。”

尽管发现GPT-3的编码技能可能有些偶然,但实际上,存在着一个致力于开发可以编码的机器学习算法的整个领域。研究一直在取得进展,最近新的算法又迈出了一步。

该算法称为机器推断代码相似性(MISIM),是英特尔,乔治亚州理工学院,宾夕法尼亚大学和麻省理工学院的研究人员的结晶。经过对网络上已经公开可用的大量代码的培训,MISIM可以弄清楚程序应该做什么。然后,在找到其他类似程序并将其与它们进行比较之后,MISIM可以提供使该程序更快或更高效的方法。

它不是第一个提出建议或比较相似性的机器学习算法,但是根据研究人员在MISIM上的新预印本中,它与多项任务并驾齐驱时,其任务的准确度提高了40倍。最先进的竞争对手。

从短期来看,对于当今的程序员来说,AI可能是一个有用的伙伴。更进一步,该领域可以向任何可以以日常语言描述他们想要创建的内容或携带编写和维护自己的代码的机器的人开放编程。

机器编程的梦想

对可编码计算机的追求几乎与现代计算机科学本身一样古老。尽管编程自动化取得了进步,但最近机器学习的迅猛发展正在加速称为机器编程的领域的发展。

在2018年有关该领域的论文中,一组英特尔和麻省理工学院的研究人员写道:“机器编程的总体目标是减轻人类程序员编写正确而高效的代码的负担,并将其放置在机器上。”

研究人员正在寻求一种系统,该系统可以自动执行将一个人的意图(即他们想要一件软件执行的工作)转换为工作程序所需的步骤。他们还旨在随着时间的推移自动进行软件维护,例如查找和修复错误,保持程序兼容或更新代码以跟上硬件升级的步伐。

当然,说起来容易做起来难。编写软件既是艺术,又是科学。将人的意图转化为机器语言需要大量的经验和创造力。

但是正如GPT-3所示,语言实际上是机器学习正在迅速掌握的一项技能,并且编程语言与英语,中文或斯瓦希里语没有太大区别。这就是为什么GPT-3在自然语言训练中获得一些编码技能的重要原因。

尽管机器学习的算法进步(例如GPT-3)是机器编程成功的关键,但如果没有良好的训练数据,它们将毫无用处。幸运的是,在GitHub之类的网站上有大量可公开获得的代码—充满了修订历史和注释—以及Stack Overflow之类的网站上的代码段和注释线程。即使是拥有可访问的网页和代码的整个互联网,也为AI提供了丰富的学习材料资源。

从理论上讲,正如GPT-3摄取数百万个示例文章来学习如何编写一样,机器编程AI也可能消耗数百万个程序并学习编码。但是,如何在实践中使这项工作成为一个悬而未决的问题。MISIM进来了。

机器人辅助踢来编写踢屁股的代码

MISIM能够准确识别一段代码应该执行的操作,从而使机器编程前进了一步。对代码进行分类后,会将其与数据库中的数百万个其他代码段进行比较,显示最相似的代码段,并根据其他示例提出对代码段的改进建议。

由于MISIM从高层次上对代码的用途进行了分类,因此它可以找到功能相同但编写方式不同的代码段-解决同一问题的方法不止一种-甚至是其他编程语言中的代码段。简而言之,这有点像某人阅读《纽约客》的文章,确定其主题,然后查找有关该主题的所有其他文章-无论是在明镜还是新华社。

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

英特尔计划为此目的向内部开发人员提供MISIM。希望它将证明是一个有用的助手,从而使代码编写过程更快,更轻松,更有效。但是,它还有可能做更多的事情。例如,计算机语言之间的翻译也可能是有价值的应用程序。它也许可以帮助编码人员将用古语言编写的政府软件更新为更现代的版本。

但是,英特尔机器编程总监Justin Gottschlich拥有更宏伟的愿景:完全实现代码的民主化。

将MISIM(或类似的东西)与自然语言AI结合使用,将来的程序员可以简单地写下他们想要的软件功能,然后计算机就可以编写代码。这将使任何对母语有体面命令并且渴望做点酷事的人都可以进行编程。

正如Gottschlich告诉MIT Technology Review的那样,“我希望80亿人以最自然的方式开发软件。”