刚刚,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。