Press "Enter" to skip to content

OpenAI数十亿代码训出Codex:能将英语翻译成代码,给四句话就能写个神经网络

 

 

大数据文摘出品

 

OpenAI准备抢程序员的饭碗了。

 

编程从某种意义来说,是人类是将想法变为计算机可以理解和执行的指令的过程,这一过程需要程序员融入自己的算法思路,并且用固定的语法将程序写出来。

 

这一过程并不容易,门槛也并不低。但是OpenAI正在用AI简化这一过程,最近,OpenAI发布的一种AI工具Codex的升级版本,它可以将英语翻译成代码,甚至支持语音录入。

 

这意味着,你只要说出来你想要的效果,Codex可以直接帮你完成整个编程的过程。

 

比如下面这个示例,一个经典的‘接球’小游戏,就是Codex根据语言描述自己编程制作出来的,这个过程中人类没有输入一行代码。

 

 

这只是一个小项目,Codex究竟可以做到什幺程度呢?文摘菌也很好奇,于是查询了一番,发现已经有人开始验证Codex的极限了——用Codex制作一个AI!

 

嗯,用自动编程AI创造AI,有点那味了!

 

 

数十亿行代码训练!这个AI将解放程序员双手

 

在这里文摘菌还是先要唠叨一下Codex的简单情况,熟悉的小伙伴可以直接跳过。

 

正如OpenAI的CTO和联合创始人Greg Brockman所说,编程包括两步:

 

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

 

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

 

Codex的出现就是为了解决第二步,解放程序员的双手,让他们在第一部分上花费更多时间。

 

要让AI完成第二步,也需要两步,一是让AI能够理解程序员的想法,二是让AI能够将理解到的需求转化为可执行的代码。

 

这两点对OpenAI来说都不陌生,他们开发的GPT-3已经大获成功,在自然语言理解和生成上都有很强的技术积累,在创作方面,从完整的博客文章到歌曲、食谱,GPT-3都不在话下。

 

因此,只要有足够的语料库数据,就可以运用类似的原理训练出可以自动写代码的Codex(事实上Codex就是GPT-3的后代),显然,存放了无数优秀代码的GitHub就是一个现成的语料库。

 

7月,OpenAI和GitHub合作开发了GitHub Copilot,这个功能可帮助程序员自动改进或更新软件,在这个基础上,借助GitHub上数十亿行代码,Codex最终获得了将英语翻译成代码的能力。

 

 

在对不同语言模型的编码挑战能力的专门测试APPS中,120亿参数版的Codex取得了远超GPT-Neo和GPT-J的能力,能够对28.81%的问题给出正确答案。

 

 

测试很完美,实用性也不错,缺点也存在

 

无论是演示一个‘接球’游戏,还是一个‘飞船’游戏,Codex都能完成很好。

 

比如官方演示的‘飞船’游戏,在调整火箭速度时,演示人员告诉Codex:

 

‘when the rocket is clicked, temporarily display some text saying ‘fire thruster! ‘ in white on the current location——and temporarily speed up by 4x for 0.25 second’

 

(“当火箭被点击,暂时显示一些白色文字说“火焰推进器!”,并暂时加速4倍,持续0.25秒”)

 

Codex就会自动将相关代码写出来。

 

 

那幺Codex对于一些现实任务的解决能力如何呢?Thomas Smith在Codex推出一周后应邀进行了Beta测试,他测试了一些现实任务。

 

比如一个在加州非常接地气的项目:根据邮编获取空气质量指数(Air Quality Index),判断是否存在山火。

 

他给Codex的任务描述是:

 

#Use the airnow API to to find and print the current AQI for zip code 94549

 

Codex给出的代码是:

 

import urllib2
import json
api_key = "E722A2CA-9D39–4CDD-943B-8BAD9A298E0B"
url ="http://www.airnowapi.org/aq/observation/zipCode/current/?format=application/json&zipCode=94549&distance=25&API_KEY="+ api_key
request = urllib2.Request(url)
response = urllib2.urlopen(request)
data = json.load(response)
print data[0]['AQI']

 

完成地非常好!Codex根据文本描述中提到的Airnow API,找出了API的URL,还提供了必要的参数,以获得输出。并且,还正确地判断出了 AQI 的含义,并编写了一个URL字符串,接受邮编94595作为输入,查找该邮编的当前情况,并返回AQI。

 

Thomas Smith还测试了另一个例子,指示 Codex 获取当前的比特币价格,然后格式化输出,任务描述是:

 

Get the current price of Bitcoin using Coindesk’sAPI and display it as giant red letters in the middle of a webpage.

 

Codex生成了相应的JavaScript代码,还还生成了一个简单的网站,精确地实现了要求的功能:

 

 

除此之外,Codex还能完成代码翻译、编写代码文档等其他枯燥但重要的编码工作,这些可以在将来帮助程序员做很多繁琐的事项。

 

那程序员是否需要担心Codex会抢走他们的工作呢?目前来看,这样的担忧是没有必要的,Thomas表示,Codex目前还不完美。

 

第一,根据 OpenAI 的说法,当前版本的Codex第一次就能编写完美代码的成功;率只有37%。要让该系统真正起作用,依然需要人类程序员去审查代码,评测其输出是否正常工作,并进行 Codex 做不到的微调和更新。

 

第二,编写代码只是编程工作中的一小部分,程序员最重要的工作是理解问题,并将其转换成计算机能理解的格式。定义问题、归约到最基本的组成部分,再将这些组成部分翻译成指令,这些工作占据了经验丰富的程序员的大部分时间。

 

另外,OpenAI也指出Codex存在过度依赖生成的输出的问题,并且大规模参数量还会产生大量碳足迹。

 

用Codex自动写一个AI,效果如何?

 

最后,看看大佬用Codex怎幺套娃吧!

 

YouTube博主@Edan Meyer用Codex创造了一个手写数字分类器,整个过程只是给Codex输入了四句话。

 

 

 

下载数据集

 

用Pytorch实现一个前馈神经网络

 

训练模型

 

测试模型

 

 

然后,提交‘Submit’,Codex就自动完成了所有代码的编写。

 

 

效果还不错,看来,AI套娃完全是可行的嘛!

 

那幺Codex的下一步是什幺呢?看看网友的评论:

 

 

“编写一个排列良好的AI架构,可以扩展到超级智能AGI”。

 

哈哈哈,看起来Codex还有很长的路要走。

 

相关报道:

 

https://www.youtube.com/watch?v=Zm9B-DvwOgw&t=248s

 

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

 

https://www.youtube.com/watch?v=6yJWMuUWcxY

 

https://www.youtube.com/watch?v=FC962DmVfSU

 

https://www.pcgamer.com/this-ai-tries-to-code-whatever-you-tell-it-to-even-videogames/

 

https://betterprogramming.pub/i-beta-tested-openais-codex-and-the-results-are-spooky-good-e282a1874c79

 

Be First to Comment

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注