.hd-box .hd-fr

弹幕炸了:OpenAI 直播大秀语音指挥 AI 自动编程

2021-08-11 08:39量子位(金磊 梦晨 明敏)13评

刚刚,OpenAI 又玩出了一个新高度。

只输入自然语句,AI 就自动做了个小游戏!

划重点:不! 用! 你! 编! 程!

来,感受一下这个 feel。

第一步,“小人儿”搞里头,输入一句话就能让它按照方向键左右移动:

Now make it controllable with the left and right arrow keys.

AI 在理解了需求之后,自动编程,然后小人儿就真的可以左右移动了。

第二步,“石头”搞里头,同样输入一句话,让它“从天而降”:

Now have it fall from the sky, and wrap around.

第三步,用自然语言简单再制定些规则,若小人儿被石头砸中则终止游戏。

Constantly check if the person and the boulder overlap at all, and if so, you lose.

最后还让 AI 生成结束提示,其中要包括一句鼓励人的话。

AI 挑中的是“Try Again!”

当然,还有规则更复杂的小游戏(例如增加计分等功能),也可以用同样的方式,分分钟生成:

这是魔法吧!现在开发小游戏都靠“打字”了?!

围观直播的观众们,也是发出了同样的感慨,瞧瞧这满屏止不住的弹幕:

有网友甚至直呼道:

编程,已经变成 AI 自己的游戏了。

这就是 OpenAI 重磅发布的新品 ——Codex,一个能自己编程的 AI。

AI 编程这事并不新鲜了,像 GitHub 前不久闹得风风火火的 Copilot,就是其中一个。

但它背后的技术,其实还是来自于 OpenAI。

然而这一次,OpenAI 给自己的能力升了个级,来了个新版本。

不仅如此,搞一个小游戏,仅仅是 Codex 能力的冰山一角罢了。

一起感受一下它更多惊艳的表现吧。

不用打字,直接语音命令它!

给 AI 打字“提需求”,还是略显麻烦了一些。

能不能直接说话下达命令呢?

这个还真可以有!

OpenAI 这次与微软合作出了一个 Word 插件,便带了这种语音控制的功能。

直接对着 AI 下命令“把每行开头的空格去掉”,AI 通过微软给的接口一顿操作,成功执行:

啪的一下,全文就左对齐了有木有。

而且 AI 还精准地理解了命令的含义,那些段与段之间的空行并没有改动。

来再复杂一点的。

给 AI 下达“每数到五行就加粗”命令,也是能轻松 hold 得住:

这种把任务吩咐下去,就有“人”给你完成的感觉,是不是很像老员工指挥实习生?

总之呢,是比罗永浩前几年发布的 TNT 系统语音办公要强上那么“亿”点点了。

除了官方的演示,这次内测用户 aniakubow,还让 AI 表演了通过 152 字描述生成一个网页。

可以看出这里 Codex 是用 Javascript 操作 Document 对象来生成网页,可能是训练集里没有直接的 HTML 代码的缘故吧。

最后,除了现场演示外,OpenAI 还在 Arxiv 上发布了 Codex 的论文预印版。

论文中,Codex 要面对的挑战甚至有刷 IOI 和 ACM 难度的竞赛题!

Codex 用对每道题生成 1000 种答案这种暴力方法,能做出 600 多道竞赛题测试集中的 3.23%,并且通过全部的测试用例。

这个编程题目测试集是 UC 伯克利研究人员在 5 月份刚刚做好的。

当时测试的 GPT-2、GPT-3 和开源的 GPT-Neo 可是在竞赛难度上全军覆没,一道都没做出来。

没想到短短两个多月,专为代码而生的 Codex 就为前辈们洗刷了耻辱。

Codex 的“魔法”,是如何实现的?

这么炫酷的能力,莫非还是像 GPT-3 一样堆数据,大力出奇迹吗?

不全是,这次 Codex 最大的一个版本是 120 亿参数,比起 GPT-3 的 1750 亿还是小了很多。

要了解具体情况,还要从它的开发历程说起。

最早,OpenAI 研究人员拿 GPT-3 做各种试验,发现 GPT-3 能从 Python 注释中生成一些简单的代码。

这可把他们高兴坏了,因为 GPT-3 根本没特意拿代码训练过,只是看过一些博客和帖子中零星的代码片段。

想想 GPT-3 在自然语言上的出色表现,要是专门训练一个代码版的 GPT-3,那肯定也能再次震惊业界。

于是,他们找到了 GitHub,这个拥有最多开源代码的“小伙伴”来合作。

一开始是拿到了 179G 的 Python 代码,但其中不乏存在一些篇幅太长的,以及明显是自动生成的那种。

在剔除掉这些“不达标”的代码后,最后留下的代码大小为 159G。

接下来当然是做预训练,把这些代码都喂给 AI (Codex)。

不过这里有一个问题:

GitHub 上的开源代码难免会有 Bug,AI 学了一堆有问题的代码可咋办?

其实这倒也好说,预训练之后不是还要微调嘛。

微调的时候,全用编程竞赛里的正确答案,以及 PyPI 里的靠谱开源代码就可以了。

最后,120 亿参数版的 Codex,能对 28.81% 的问题给出正确答案。

这个准确率超过之前的开源代码预训练模型 GPT-Neo 和 GPT-J,还有基于 GPT-2 的代码补全工具 TabNine。

这个成绩虽然不错,不过离能实际应用还是有点远了。

不过,这也难不住 OpenAI 的研究团队。

他们很快便想到了“突破口”:

人类编程的时候,不也经常先出一个版本,然后反复修改 bug 嘛~

那就让 AI 像人一样反复修改,改出 100 个版本来,从中总能挑出几个正确的来。

用上这种拿“量”堆出来的方法,Codex 的最终成绩是:

77.5%!

强,但不完全强

Codex 令人惊艳的表现,一度让网友们大呼:

要失业了要失业了!

有人直接在公屏上打出:再见了,计算机专业的学子们。

不过大家也不必如此担心,因为在演示过程中,其实就出现了翻车的情况。

在输入“Say Hello World with empathy”后,Codex 给出的结果居然还是“Hello World with empathy”。

这也侧面说明了 Codex 现在还不是完美的。

OpenAI 就表示:

即便是参数达到 120 亿的 Codex 12B,它的能力可能也还不如一位编程刚刚入门的学生。

虽然 Codex 学习上亿行代码,但它更大程度是“记住了”这些代码,并不是真正意义上的懂编程语言。

而且 Codex 对长字符串的理解也比较困难。

并且随着字符数量的增加,Codex 的性能表现下降得非常明显。

在这种情况下,Codex 就不能很好地理解用户的意图,结果可想而知,给出的代码可能就是完全错误的了。

此外,在理解变量和运算较多的注释时,Codex 也会犯错:

在这个例子中,120 亿参数版的 Codex,忘记了对变量 w 做减法,也没有返回所有数字的乘积。

这些对于还在学习编程的新手程序员而言,非常不友好。

而且由于生成的代码准确性和正确性都还不能保证,因此在安全问题上也存在一定风险。

不仅如此,OpenAI 还表示,Codex 会生成带有种族歧视的内容。

在社会层面上,OpenAI 还提出 Codex 的出现或许会冲击程序员的就业;如果被滥用,还有网络犯罪方面的隐患。

最后还有一点,就是环境方面的问题。

毕竟它作为大模型,参数量的规模不容小觑。

要不是合作方微软 Azure 云买了足够多的碳排放限度,Codex 可能还不能和我们见面呢(手动狗头)。

如果想要试玩的话,OpenAI 还准备了一个 Python 编程大赛,在这场比赛中 Codex 会作为你的搭档和你一同解题。

比赛将于北京时间 8 月 13 日凌晨一点开始,就是这时间对国内不太友好。

大赛报名地址:

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

广告声明:文内含有的对外跳转链接(包括不限于超链接、二维码、口令等形式),用于传递更多信息,节省甄选时间,结果仅供参考,IT之家所有文章均包含本声明。

下载IT之家APP,分享赚金币换豪礼
相关文章
大家都在买广告
热门评论
查看更多评论