新浪科技

支持文字和语音指令,AI实时自动编程,OpenAI升级版Codex终于面世了

机器之心Pro

关注

来源:机器之心

前段时间,OpenAI与GitHub联合发布的AI代码补全工具GitHub Copilot吸引了广大程序员的关注,其背后的技术支撑OpenAI Codex也浮出了水面。今日,OpenAI正式发布了基于自身API的改进版Codex,不仅可以根据用户输入的文字指令执行相应任务,更能够输入语音命令。

6 月 30 日,OpenAI 和 GitHub 联合发布了新的 AI 代码补全工具 GitHub Copilot,并展示了技术预览版。该工具可以在 VS Code 编辑器中自动完成代码片段,也是 OpenAI 接受微软 10 亿美元投资以来的首个重大成果。

从技术角度来看,GitHub Copilot 由 OpenAI 开发的全新 AI 系统 OpenAI Codex 提供支持,该系统可以将自然语言转换成代码。OpenAI 的联合创始人兼首席技术官 Greg Brockman 表示:「Codex 是 GPT-3 的后代。」由于 Codex 系统是在包含大量公开源代码的数据集上训练的,因此在代码生成领域显著优于 GPT-3。

不过当时,Codex 的具体细节并没有过多透露,也没有太多的效果展示。今日OpenAI 终于推出了改进版本的 Codex,并发布了基于自身 API 的私测版。OpenAI 表示在初期会免费提供 Codex,并希望更多的企业和开发者可以通过它的 API 在 Codex 上构建自己的应用。

相较之前的版本,改进版 Codex 更为先进和灵活,不仅可以补全代码,更能够创建代码。

Codex 不仅可以解读简单的自然语言命令,而且能够按照用户的指令执行这些命令,从而有可能为现有应用程序构建自然语言接口。比如,在 OpenAI 创建的太空游戏(space game)中,用户输入自然语言命令「Make it be smallish」,Codex 系统会自动编程,这样图中飞船的尺寸就变小了。

又比如,输入「Crop it circularly」,图中方形的飞船变成了圆形。

再比如,输入「Make it be vertically centered; put on the left side of the page」,图中的飞船就跑到了页面的左中方位。

目前,Codex 最擅长 Python 语言,并且精通 JavaScript、Go、Perl、PHP、Ruby、Swift 、TypeScript 和 Shell 等其他十数种编程语言。作为一种通用编程模型,Codex 可以应用于任何编程任务。OpenAI 已经成功地将其用于翻译、解释代码和重构代码等多个任务,但这些只是牛刀初试。

就数据源来说,作为 GPT-3 的一种变体,Codex 的训练数据包含自然语言和来自公共数据源中的数十亿行源代码,其中包括 GitHub 库中的公开代码。Codex 拥有 14KB 的 Python 代码内存,而 GPT-3 只有 4KB,这就使得它在执行任务的过程中可以涵盖三倍于 GPT-3 的上下文信息。

根据 OpenAI 发表在 arXiv 上的 Codex 论文信息,当前 Codex 的最大版本拥有 120 亿参数。

论文地址:https://arxiv.org/pdf/2107.03374.pdf

此外,为了进一步在开发者中推广 Codex,OpenAI 还组织了一项 Codex 挑战赛,旨在测试在 Codex 的帮助下解决一系列 Python 编程难题。

挑战赛网址:https://challenge.openai.com/

Codex 的更多效果展示

OpenAI 的联合创始人兼 CTO Greg Brockman 和 Codex 负责人 Wojciech Zaremba 在线演示了 Codex 的更多用途,揭开了它神秘的面纱。

Codex当前的界面如下图所示,简约但功能强大。

在演示中,Brockman 创建了一个游戏。首先 Brockman 在谷歌图片上找到了一个人形剪影,然后输入命令: 「add this image of a person from the page」等命令,即在游戏界面中添加该人形剪影图像。然后人形剪影就出现在了界面中。

然后 Brockman 修改了它的大小并输入「使用左右箭头键控制它」的命令,然后人形剪影就能够左右移动了,行动自如:

我们来看一下这部分Codex根据自然语言生成的代码,如下图右侧边栏所示:

除了左右,还能上下移动:

然后他们又在界面中添加了一个石头的图像,并通过输入自然语言命令让操纵人形和石头图像,例如当石头从上向下掉落时,人可以躲避开:

演示过程中他们遇到一个问题:当人形剪影移出屏幕边缘时,它就会消失,这显然是不符合常规游戏逻辑的。为了阻止这种情况,Brockman 给了计算机一条额外的指令:「不断检查这个人是否离开了界面,如果是,就把它放回界面上。」,这就阻止了它的移出:

另一位演示者好奇这些指令需要多么精确才能让 Codex 自动生成代码并成功执行。因此他们尝试不同的输入指令:「确保此人无法退出界面」,演示结果表明这也有效。不过 Brockman 表示:「有时 Codex 也并不完全能够理解人们在说什么」。

因此,Codex 目前仍然存在一些局限性,它不是一个可以读懂你的大脑、将每个命令变成完美代码的魔法精灵——OpenAI 也并没有声称它是。相反,它需要「深思熟虑」和一些反复试验才能使用。Codex 不会在一夜之间将非编码人员变成专家程序员,但它肯定比任何其他编程语言更容易使用。

此外,Codex 的内测用户 Ania Kubów 用 152 个口语命令就搭建了一个完整的网站,她在社交媒体上展示了创建过程:

Codex发展潜力巨大,但也饱受抱怨

Codex 建立在 OpenAI 的语言生成模型 GPT-3 之上,该模型在大规模的数据上进行训练,可以用来解析和生成文本等功能。GPT-3 的一个应用是生成代码,但是 Codex 改进了代码生成能力,它可以对从网上搜集的开源代码库进行训练。

但正是由于 Codex 训练数据来自开源代码库,这引来了许多程序员的抱怨,认为 OpenAI 从他们的工作中获利。例如,这项研究的整个知识基础最终都来自于开源工作,而这种开源工作是分享给个人的,而不是让公司获利。尽管 OpenAI 表示,其对这些数据的使用受到了法律保护,是在合理使用范围之内的。

当被问及程序员的抱怨时,Brockman 解释说:「新技术即将到来,我们确实需要这场辩论,我们会做一些对社区来说有很大意见的事情,但我们会接受反馈并以不同的方式做事。」不过,Brockman 认为,编程社区最终将受益于 OpenAI 的工作。「这会对生态系统有很大的价值,归根结底,这些技术可以重塑我们的经济,为所有人创造一个更美好的世界。」Brockman 解释道。

Codex 也肯定会为 OpenAI 及其投资者创造价值。尽管该公司在 2015 年开始作为一个非盈利实验室运营,但为了吸引外部资金,它在 2019 年转向了有限利润(capped-profit)模式,Codex 最初是作为免费 API 发布的,但 OpenAI 将在未来开始对访问收费。

OpenAI 看好 Codex 在改变编程和计算方面的潜力。Brockman 认为,这有助于解决美国程序员短缺的问题,而 Zaremba 认为这是编码历史演变的下一步。

在计算早期,编程是通过创建物理穿孔卡片来完成的,这些卡片必须被输入机器,然后人们发明了第一种编程语言,并开始改进这些语言。这些编程语言开始变得类似英语,出现了 print 或 exit 之类的词汇。目前,Codex 可以编程十几种语言。

Codex 还可以控制其他程序。在一个演示中,Brockman 展示了如何使用该软件为 MicrosoftWord 创建语音界面。因为 Word 有自己的 API,Codex 可以用用户的口头命令创建的代码向其提供指令。Brockman 将一首诗复制到 Word 文档中,然后告诉 Word(通过 Codex)首先删除所有缩进,然后对行进行编号,然后计算某些单词的频率,依此类推,展示效果非常流畅。

如果成功,Codex 不仅可以帮助程序员,还可能成为用户和计算机之间的新界面。OpenAI 表示,他们测试了 Codex 不仅能控制 Word ,还能控制 SpotifyGoogle Calendar 等其他程序。Brockman 说,虽然 Word 演示只是概念验证,但微软显然已经对探索该软件的可能性产生了兴趣。

参考链接:

https://openai.com/blog/openai-codex/#py2rb

https://www.theverge.com/2021/8/10/22618128/openai-codex-natural-language-into-code-api-beta-access

https://www.youtube.com/watch?v=SGUCcjHTmGY

加载中...