数十亿行代码训练!OpenAI升级Codex,将书面语言转为计算机代码

来源:Open AI

编辑:小匀 Priscilla

【新智元导读】刚刚,OpenAI 发布Codex的改进版本,将把API以私有测试版的形式发布。Codex是可以将自然语言转换为代码的AI系统,也就是那个为 GitHub Copilot提供「马达」的模型。口头命令令AI生成代码的时代到来了。

OpenAI再次惊艳这个圈儿!

只要你对这个AI发号施令,它就会将英语翻译成代码。

比如:

add this image of a rocketship

随后,你的双手离开键盘,AI会自动编程,这张火箭照片就被添加进来了:

数十亿行代码训练!OpenAI升级Codex,将书面语言转为计算机代码

给它点难度:当火箭被点击时,它的速度会x4

数十亿行代码训练!OpenAI升级Codex,将书面语言转为计算机代码

这就是OpenAI发布的一种新机器学习工具——Codex,可以将英语翻译成代码。

哦对了,Codex也正是为GitHub Copilot提供动力的模型。

刚刚,OpenAI发布了Codex的改进版本,API以私有测试版的形式发布出来,可以将自然语言转换为代码的AI系统。

数十亿行代码训练!OpenAI升级Codex,将书面语言转为计算机代码

从GPT-3到DALL·E,不久前大热的Copilot(背后也依赖Open AI的技术),OpenAI这是要彻底「砸了」程序员的饭碗吗?

然而,OpenAI的CTO和联合创始人Greg Brockman则表示:「它消除了程序员繁琐的工作。」

看看它还有哪些惊人功能?

开发小游戏,准确率高达72%!

Codex不仅能够收到指令后自行编程,还能够开发个小游戏。

数十亿行代码训练!OpenAI升级Codex,将书面语言转为计算机代码

除了打字输入指令,Codex还能接受语音指令。

复制的文字有很多空格,手动删除太费时间怎么办?

问题不大,Open AI和微软合作出了一个Word插件。

一声令下,AI就能完成任务。

数十亿行代码训练!OpenAI升级Codex,将书面语言转为计算机代码

「啪,每行开头的空格消失了!」

执行力不错,那准确率呢?

研究人员用APPS数据集来测量不同语言模型的编码挑战能力。

APPS含有5000次训练和5000次代码问题的测试。

测试结果显示,120亿参数版的Codex能够对28.81%的问题给出正确答案。

准确率远远超过「前浪」GPT-Neo和GPT-J。

数十亿行代码训练!OpenAI升级Codex,将书面语言转为计算机代码

经过不断修正,最终Codex-12B的准确率提升到了72.31%!

Greg Brockman表示,编程有两个部分:

一、认真思考一个问题并试图理解它

二、将这些小片段映射到现有的代码中,不管它是一个库、一个函数还是一个API。

Codex的目的是让编码员在第一部分上花费更多时间,而不是第二部分。

毕竟,大量的代码都是在重复或直接抄袭别人之前所做的事情。

当然,它可以是创造性的,但没有人会在做基本的事情时发挥他们的想象力,比如部署一个网络服务器来测试一点代码。

比如部署 Web 服务器来测试一些代码。布罗克曼用一条简单的线做到了这一点——「创建一个说明这一点的网页」。

利用Codex,一秒钟后,就有十几行JavaScript以完全标准的方式做了这件事。

数十亿行代码训练!OpenAI升级Codex,将书面语言转为计算机代码

优点很多,局限性也不少

上面说了Codex不少优点,可以帮助用户使用新的代码库,减少上下文切换。

还可以让非程序员编写规范的代码。

但Open AI也承认,Codex还有许多不足之处。

首先,Codex的训练样本效率不高。

它的训练集上有数十亿行代码,包括来自GitHub的Python代码。

数十亿行代码。

多有经验的开发人员也不会遇到这么多代码啊!

但就算有这么多行代码的训练,计算机科学的学生可能比Codex-12B更能解决问题。

比如Codex演示人员下了一个指令:Say Hello World with empathy

数十亿行代码训练!OpenAI升级Codex,将书面语言转为计算机代码

「读书。」「书。」

出来的结果把演示人员都给整笑了。

除此之外,Open AI很实诚地在论文的预印本中指出Codex的其它缺点:

过度依赖生成的输出。

生成一些乍一看正确但其实是错误的代码。

因为互联网上的训练集或多或少带有种族歧视,经过训练后的Codex也会带有偏见。

Codex的出现会对程序员的就业市场产生冲击。

大规模参数量还会产生大量碳足迹。

目前Open AI Codex还处于私测阶段,后续会继续扩大规模。

希望Codex的到来能够让编程变得更加高效。

参考资料:

https://www.twitch.tv/videos/1114111652

https://arxiv.org/abs/2107.03374

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