当前位置: 首页 > 科技观察

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

时间:2023-03-15 09:58:55 科技观察

本文经AI新媒体量子位授权转载(公众号ID:QbitAI),转载请联系转载来源。就在刚才,OpenAI又上了一个新台阶。只需输入自然句,AI就会自动制作小游戏!开门见山:不!使用!你!化妆品!程序!来,体验一下这种感觉。第一步,“小人”在里面,输入一句:Nowmakeitcontrollablewiththeleftandrightarrowkeys就可以让它根据方向键左右移动。AI明白需求后,会自动编程,然后小人就真的可以左右活动了。第二步,把“石头”放进去,同样输入一句让它“从天而降”:Nowhaveitfromthesky,andwraparound。第三步是使用自然语言制定一些简单的规则。被石头击中将结束游戏。不断检查人和巨石是否完全重叠,如果是,你就输了。最后让AI生成结束提示,里面应该有一句鼓励的话。AI选择的是“再试一次!”当然,也有规则更复杂的小游戏(比如加入计分等功能),同样可以分分钟生成:这就是魔法!现在开发小游戏还要靠“打字”?!观看直播的观众也表达了同样的感慨。看看满屏的弹幕势不可挡:甚至有网友直呼:编程成了AI自己的游戏。这是OpenAI发布的新产品——Codex,一个可以自我编程的AI。AI编程并不新鲜,比如前不久在GitHub上风起云涌的Copilot就是其中之一。但它背后的技术其实来自OpenAI。然而,这一次,OpenAI将其能力升级到了一个新版本。不仅如此,制作小游戏只是Codex能力的冰山一角。让我们一起来体验它更惊人的性能。无需打字,直接语音命令吧!给AI打“需求”还是有点麻烦。能直接说话下达命令吗?这真的有可能!OpenAI此次与微软合作,出品了一款Word插件,带来了这一语音控制功能。直接向AI发出“去掉每行开头的空格”命令,AI通过微软提供的接口成功执行:点击一下,全文左对齐。而且,AI也准确理解了命令的意思,段落之间的空白行没有变化。让我们让它更复杂一点。给AI的“每五行加粗”命令也很容易把握:这种任务会由“人”帮你完成,是不是很像老员工指挥实习生?总之,比罗永浩几年前发布的TNT系统语音办公要“亿”一点点。除了官方演示,内测用户aniakubow还让AI进行了152个字符的描述生成网页。可以看出Codex使用Javascript操作Document对象生成网页,这可能是因为训练集中没有直接的HTML代码。最后,除了现场演示,OpenAI还在Arxiv上发布了Codex论文的预印本。在论文中,Codex要面对的挑战甚至包括IOI和ACM难度赛题!Codex采用每道题生成1000个答案的暴力方式,能够做出600多道竞赛题测试集的3.23%,并通过所有测试用例。这个编程主题测试集刚刚由加州大学伯克利分校的研究人员在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学会了一堆有问题的代码怎么办?其实说起来容易,预训练后不是必须要fine-tune吗。微调的时候,就用编程竞赛的正确答案和PyPI中靠谱的开源代码。最后,拥有120亿个参数的Codex可以对28.81%的问题给出正确答案。这个准确率超过了之前开源的代码预训练模型GPT-Neo和GPT-J,以及基于GPT-2的代码补全工具TabNine。虽然这个结果不错,但离实际应用还有点距离。然而,这对OpenAI研究团队来说也很困难。他们很快想到了“突破口”:人类编程的时候,不是经常先发布一个版本,然后反复修改bug~然后让AI像人一样反复修改,一共修改100个版本,他们从中总是可以选择。想出几个正确的。使用这种堆叠“数量”的方法,Codex的最终得分是:77.5%!强,但不完全强。Codex的惊人表现一度让网友大呼:我要失业了,我要失业了!有人直接在公共屏幕上打字:再见,计算机专业的同学们。不过大家不用那么担心,因为在演示的时候,确实发生了翻车的情况。输入“SayHelloWorldwithempathy”后,Codex给出的结果其实是“HelloWorldwithempathy”。这也说明Codex还不完善。OpenAI说:即使是Codex12B有120亿个参数,也可能还不如一个刚开始编程的学生。Codex虽然学习了数亿行代码,但更大程度上是“记住”了这些代码,并不是真正理解了编程语言。而且Codex也很难理解长字符串。随着字符数量的增加,Codex的性能会显着下降。如果合作伙伴微软Azure云没有买足够的碳排放限额,Codex可能还不能满足我们(手动狗头)。另外,Codex在理解注释的变量和操作多的时候也会出错:在这个例子中,120亿参数版本的Codex忘记减去变量w,没有返回所有数字的乘积。这些对于还在学习编程的新手程序员来说是非常不友好的。而且,由于无法保证生成代码的准确性和正确性,在安全问题上存在一定的风险。不仅如此,OpenAI还表示Codex会产生种族歧视内容。在社会层面,OpenAI也提出Codex的出现可能会影响程序员的就业;如果被滥用,则存在网络犯罪隐患。最后,还有一点,就是环境问题。毕竟作为一个大模型,参数的规模不容小觑。如果合作伙伴微软Azure云没有买足够的碳排放限额,Codex可能还不能满足我们(手动狗头)。如果你想尝试一下,OpenAI还准备了一场Python编程大赛,Codex将作为你的伙伴与你一起解决问题。比赛将于北京时间8月13日凌晨1点开始,这对中国来说并不是很友好。