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

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

image.png

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

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

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

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

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

1.gif

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

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

2.gif

数十亿行代码训练!这个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最终获得了将英语翻译成代码的能力。

image.pngimage.gif

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

image.gifimage.png

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

无论是演示一个‘接球’游戏,还是一个‘飞船’游戏,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就会自动将相关代码写出来。

3.gif

那么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代码,还还生成了一个简单的网站,精确地实现了要求的功能:

image.png

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

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

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

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

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

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

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

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

image.png

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

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

4.gif4..gif

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

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

image.png

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

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

相关文章
用MASM32按Time Protocol(RFC868)协议编写网络对时程序中的一些有用的函数代码
用MASM32按Time Protocol(RFC868)协议编写网络对时程序中的一些有用的函数代码
|
3月前
|
机器学习/深度学习 存储 算法
回声状态网络(Echo State Networks,ESN)详细原理讲解及Python代码实现
本文详细介绍了回声状态网络(Echo State Networks, ESN)的基本概念、优点、缺点、储层计算范式,并提供了ESN的Python代码实现,包括不考虑和考虑超参数的两种ESN实现方式,以及使用ESN进行时间序列预测的示例。
160 4
回声状态网络(Echo State Networks,ESN)详细原理讲解及Python代码实现
|
1月前
|
机器学习/深度学习 网络架构 计算机视觉
目标检测笔记(一):不同模型的网络架构介绍和代码
这篇文章介绍了ShuffleNetV2网络架构及其代码实现,包括模型结构、代码细节和不同版本的模型。ShuffleNetV2是一个高效的卷积神经网络,适用于深度学习中的目标检测任务。
70 1
目标检测笔记(一):不同模型的网络架构介绍和代码
|
25天前
|
前端开发 开发者
大模型代码能力体验报告之贪吃蛇小游戏《二》:OpenAI-Canvas-4o篇 - 功能简洁的文本编辑器加一点提示词语法糖功能
ChatGPT 的Canvas是一款简洁的代码辅助工具,提供快速复制、版本管理、选取提问、实时编辑、代码审查、代码转写、修复错误、添加日志和注释等功能。相较于 Claude,Canvas 更加简单易用,但缺少预览功能,适合一般开发者使用。
|
2月前
|
安全 C#
某网络硬盘网站被植入传播Trojan.DL.Inject.xz等的代码
某网络硬盘网站被植入传播Trojan.DL.Inject.xz等的代码
|
3月前
|
安全 网络安全 开发者
探索Python中的装饰器:简化代码,增强功能网络安全与信息安全:从漏洞到防护
【8月更文挑战第30天】本文通过深入浅出的方式介绍了Python中装饰器的概念、用法和高级应用。我们将从基础的装饰器定义开始,逐步深入到如何利用装饰器来改进代码结构,最后探讨其在Web框架中的应用。适合有一定Python基础的开发者阅读,旨在帮助读者更好地理解并运用装饰器来优化他们的代码。
完成切换网络+修改网络连接图标提示的代码框架
完成切换网络+修改网络连接图标提示的代码框架
|
3月前
|
人工智能 API Python
Openai python调用gpt测试代码
这篇文章提供了使用OpenAI的Python库调用GPT-4模型进行聊天的测试代码示例,包括如何设置API密钥、发送消息并接收AI回复。
|
3月前
|
数据采集 量子技术 双11
【2023 年第十三届 MathorCup 高校数学建模挑战赛】C 题 电商物流网络包裹应急调运与结构优化问题 建模方案及代码实现
本文提供了2023年第十三届MathorCup高校数学建模挑战赛C题的详细建模方案及代码实现,针对电商物流网络中的包裹应急调运与结构优化问题,提出了包括时间序列分析在内的多种数学模型,并探讨了物流网络的鲁棒性。
64 2
【2023 年第十三届 MathorCup 高校数学建模挑战赛】C 题 电商物流网络包裹应急调运与结构优化问题 建模方案及代码实现
|
3月前
|
机器学习/深度学习 PyTorch 算法框架/工具
PyTorch代码实现神经网络
这段代码示例展示了如何在PyTorch中构建一个基础的卷积神经网络(CNN)。该网络包括两个卷积层,分别用于提取图像特征,每个卷积层后跟一个池化层以降低空间维度;之后是三个全连接层,用于分类输出。此结构适用于图像识别任务,并可根据具体应用调整参数与层数。