互联网资讯 / 人工智能 · 2023年12月18日

语音指挥AI自动编程能力的提升

近日,OpenAI又一次展示了其技术的飞跃。

通过简单的自然语言输入,AI竟然能够自动创建一个小游戏!

重点强调:你无需编写任何代码!

让我们来体验一下这种感觉。

第一步,创建一个“角色”,只需输入一句话,角色便能按照方向键的指令左右移动:

Now Make IT contRollable wITh the left and Right aRRow keys.

OpenAI直播大秀语音指挥AI自动编程,也就比老罗TNT强亿点点

AI理解需求后,自动生成代码,角色便可以真实地左右移动。

第二步,放入一个“石头”,并输入一句话,让它“从天而降”:

Now have IT FAll fRoM the sky, and wRap aRound.

OpenAI直播大秀语音指挥AI自动编程,也就比老罗TNT强亿点点

第三步,用自然语言设定一些简单规则,比如如果角色被石头砸中,则游戏结束。

Constantly check if the peRson and the bouldeR OVeRlap at all, and if so, you lose.

OpenAI直播大秀语音指挥AI自动编程,也就比老罗TNT强亿点点

最后,AI还生成了游戏结束的提示,其中包含一句鼓励的话。

AI选择的是“try AgAIn!”

当然,规则更复杂的小游戏(比如增加计分等功能)也能同样快速生成:

OpenAI直播大秀语音指挥AI自动编程,也就比老罗TNT强亿点点

这一切简直像魔法一样!现在开发小游戏只需“打字”?

观看直播的观众们也纷纷表示惊叹,看这满屏的弹幕:

OpenAI直播大秀语音指挥AI自动编程,也就比老罗TNT强亿点点

有网友甚至评论道:

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

OpenAI直播大秀语音指挥AI自动编程,也就比老罗TNT强亿点点

这就是OpenAI全新发布的产品——Codex,一个能够自行编程的AI。

AI编程并非新鲜事,像GitHub最近备受关注的Copilot就是一个例子。

但它背后的技术实际上源于OpenAI。

这一次,OpenAI对自身能力进行了升级,推出了新版本。

而且,创建一个小游戏只是Codex能力的冰山一角。

让我们一起来看看它更多令人惊讶的表现。

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

给AI输入需求“提需求”的过程,似乎稍显繁琐。

能否直接用语音下达命令呢?

答案是肯定的!

OpenAI与微软合作推出的Word插件,带来了这种语音控制的功能。

只需对着AI说“把每行开头的空格去掉”,AI通过微软的接口操作,成功完成:

OpenAI直播大秀语音指挥AI自动编程,也就比老罗TNT强亿点点

瞬间,全文就完美左对齐了。

而且AI准确理解了命令的含义,段落间的空行没有受到影响。

让我们再试试复杂一点的命令。

下达“每五行加粗”的指令,AI同样轻松应对:

OpenAI直播大秀语音指挥AI自动编程,也就比老罗TNT强亿点点

这种把任务交给AI完成的感觉,仿佛像是老员工在指导实习生。

总之,这比罗永浩几年前发布的TNT系统语音办公要强上许多。

除了官方演示,内测用户aniakubow也让AI展示了如何通过152字描述生成一个网页。

OpenAI直播大秀语音指挥AI自动编程,也就比老罗TNT强亿点点

可以看出,在这里Codex使用JavaScript操作document对象生成网页,可能由于训练集中缺乏直接的HTML代码。

此外,OpenAI还在ARxiv上发布了Codex的论文预印版。

论文中提到,Codex面临的挑战甚至包括刷IOI和ACM难度的竞赛题!

Codex通过为每道题生成1000种答案的方式,成功解决了测试集中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直播大秀语音指挥AI自动编程,也就比老罗TNT强亿点点

尽管这个成绩令人满意,但在实际应用中仍显不足。

不过,这并没有难倒OpenAI的研究团队。

他们很快就找到了“突破口”:

人类编程时常常会先生成一个版本,然后反复修改bug。

因此,让AI像人类一样进行反复修改,生成100个版本,总能从中挑出几个正确的。

通过这种“量”的堆积,Codex的最终成绩达到了:

77.5%!

强大,但仍有不足。

Codex令人惊艳的表现让网友们纷纷感慨:

要失业了要失业了!

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

不过,大家无需过于担心,因为在演示过程中,Codex也出现了错误。

当输入“Say Hello WoRld wITh eMpathy”时,Codex返回的结果竟然还是“Hello WoRld wITh eMpathy”。

这也侧面说明Codex尚未完美。

OpenAI表示,即便是参数达到120亿的Codex 12B,其能力可能也不如刚入门的编程学生。

尽管Codex学习了亿行代码,但它更多的是“记住”这些代码,并不真正理解编程语言。

同时,Codex对长字符串的理解能力也较弱。

随着字符数量的增加,Codex的表现也明显下降。

若非合作方微软Azure云购买了足够的碳排放限额,Codex可能还无法与我们见面(手动狗头)。

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

在某个示例中,120亿参数的Codex忘记对变量w进行减法,且未能返回所有数字的乘积。

这对初学编程的新手程序员来说,显得十分不友好。

而且,由于生成的代码的准确性和正确性尚未得到保障,因此在安全性方面也存在一定风险。

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

在社会层面上,OpenAI也提出Codex的出现可能会影响程序员的就业;若被滥用,还可能带来网络犯罪的隐患。

最后,还有环境问题。

作为一个大模型,其参数量的规模不容小觑。

若非微软Azure云购买了足够的碳排放限额,Codex可能还无法与我们见面(手动狗头)。