OpenAI 已经对 Codex 进行了一些重大更改,Codex 是该公司上个月宣布的人工智能编码助手。该系统现在接受简单英语的命令并输出实时、可工作的代码,让人们无需命名变量即可构建游戏或网络应用程序。一些幸运的编码员(以及,有人认为,非编码员)将能够在免费的私人测试版中试用这个新的 Codex API。

Codex 最好被认为是 OpenAI 的多功能语言引擎 GPT-3,但仅接受代码而不是普通书面材料的训练。这让它可以执行完整的代码行或整个部分之类的事情,但当它被宣布时,它并不是非编码人员能够轻松交互的东西。

这个新的 API 改变了这种情况,它解释普通的日常请求,例如“让球从屏幕两侧弹起”或“使用公共 API 下载数据并按日期排序”,并在其中之一中提供工作代码十几种语言。

我观看了现场演示,其中 OpenAI 联合创始人 Greg Brockman(首席技术官)和 Wojciech Zaremba(Codex 负责人)从头开始构建了一个简单的游戏,并解释了幕后发生的事情。

“编程就是要有一个愿景并将其分成几块,然后实际为这些块编写代码,”布罗克曼解释道。 Codex 的目的是让编码人员在第一部分上花费比第二部分更多的时间。毕竟,大量的代码是在重复或彻底抄袭其他人以前做过的事情——当然,这可能是有创意的,但没有人会在做一些基本的事情上发挥想象力,比如部署一个 Web 服务器来测试一些东西。代码。布罗克曼用一句简单的话做到了这一点——“创建一个网页来说明这一点”之类的。

一秒钟后,就有十几行 JavaScript 代码以完全标准的方式完成了这项工作。

“这是编程中最糟糕的部分,”布罗克曼说。 “我可能已经编写过这种代码几十次了,但我总是忘记它到底是如何工作的。我不知道这些 API,也没有必要知道。您可以更轻松地完成同样的事情,只需更少的击键或交互。”

由于 Codex 基本上接受了 GitHub 以及其他存储库上所有公共代码的培训,因此它了解所有标准实践,50 或 100 次有人在其代码中包含 Web 服务器、键盘控件或对象操作和动画。由于自然语言方面具有 GPT-3 的所有通常理解,因此当您说“使其变小并裁剪它”,然后“通过左右箭头键控制其水平位置”时,您指的是同样的“它”。

它还会记住自己的工作,即自己的数千字节的编码上下文,因此它知道必须遵守的命名约定、现有的边界和请求,以及用户输入所暗示的其他信息。

它还了解代码语料库中嵌入的通用性。例如,当布罗克曼告诉它“让巨石从天上掉下来”时,系统并没有询问“天空”是什么,尽管它还没有在基本上空白的画布上定义。它不仅让巨石从屏幕顶部落下,而且下落速度像正常物体一样加速——因为它从其他用途和上下文中最好地猜测了“下落”和“天空”的含义。

“我们认为它提供了一种与现有软件交互的新方式,”扎伦巴 (Zaremba) 说。他几年前为自己的博士论文构建了该软件的有限版本,当时他们正在演示 Microsoft Word 的 Codex 插件。当然,文字处理程序中的许多任务都存在自动化,但如果您遇到奇怪的格式问题并且想要修复 100 个不同的实例,该怎么办?输入“使所有文本具有相同的大小和字体,并使双空格成为单一的”,它就会做到这一点,剪掉杂散的样式并选择最有可能被认为是“正常”的大小和字体。然后输入“将所有标题设置为 24 号字体并加粗”,然后它会进行缩放,依此类推。

这里值得注意的是,这种事情对许多人来说很方便,但对于那些由于残疾等原因而缺乏能力做这些事情的人来说至关重要。如果您使用语音命令或操纵杆操作文字处理器,那么能够执行上述复杂任务将非常有帮助。盲人编码员和其他人一样,可以拼凑出一个标准的公共测试服务器,但是浏览 Stack Overflow、抓取最佳片段、检查语法、更改相关变量等等的过程几乎肯定会更长。

对于那些在自上而下的语法和约定范围内工作的人来说,可以通过将模型公开给文档来轻松地使 Codex 反映这些内容。 Codex 还可以将代码从一种语言转换并移植到另一种语言 - 与翻译引擎将西班牙语转换为法语的方式非常相似。

Brockman 表示,与 GPT-3 一样,他们只是触及了可能性的表面,并希望对开发人员的想法感到惊讶(毕竟 OpenAI 并没有预测 AI Dungeon)。该测试版将是私有的,就像 GPT-3 的测试版一样,但开发人员可以申请并描述他们的项目,Codex 团队将对其进行审查以将其包含在内。最终该 API 将成为付费公共 API,但时间和定价仍有待确定。