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

共 3467字,需浏览 7分钟

 ·

2021-09-27 08:23

大数据文摘出品


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输入了四句话。



  1. 下载数据集
  2. 用Pytorch实现一个前馈神经网络
  3. 训练模型
  4. 测试模型

然后,提交‘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



点「在看」的人都变好看了哦!
浏览 24
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报