当前位置:网站首页>AI自己写代码让智能体进化!OpenAI的大模型有“人类思想”那味了
AI自己写代码让智能体进化!OpenAI的大模型有“人类思想”那味了
2022-06-25 03:32:00 【QbitAl】
金磊 梦晨 发自 凹非寺
量子位 | 公众号 QbitAI
搞事情!
AI“看”了一眼GitHub上人类都是怎么提交更新(commit)的,然后就模仿人类程序员修改代码……
最终,这个AI还成功“调教”出了个智能体机器人:

没开玩笑,这种细思极恐的事情,在OpenAI最新发布的一项研究中,就真真的发生了……

原本呢,研究人员要解决的是一个遗传程序设计(GP)问题——让一个智能体机器人学会移动。
(GP是演化计算中的一个特殊领域,它主要针对自动构建程序去独立解决问题。)
但OpenAI剑走偏锋,把自家的大规模语言模型(LLM)放了进来,结果就是一个大大的“万万没想到”。
以前在智能体演进的过程中,人类研究员是需要参与进来做一些细节调整、确定演进方向等工作,让智能体往好的方向发展。
现在好了,这些活儿都让大模型给包揽了,自己学、自己写代码、自己去“调教”:

这事一经论文一作Joel Lehman在网络曝光,瞬间引发了网友们的大量关注:

一位程序员网友在看完后直呼“跟不上(技术)发展的步伐”了:

甚至OpenAI自己都在研究中说:
弥合了进化算法在人类思想水平运行的鸿沟。
那么这件“魔幻”的事情,AI到底是怎么办到的?
看一眼GitHub,AI自己动手敲代码
在虚拟环境中设计可移动的机器人,是遗传算法研究中很火的一个项目。
特别是Sodarace竞赛因为需要的计算量少,过程方便可视化很受欢迎。

规则很简单,由“关节”和“肌肉”组成的机器人在各种地形上赛跑。
OpenAI还特意把整个竞赛程序从专用的遗传编码改写成了Python版本,为了展示新方法对现代编程语言的通用性。
比如这样一段Python代码,就可以作为初始种子机器人。

定义好一个正方形的四个顶点关节、终点关节,相互之间都用“肌肉”连接好后,结果如下。

不过这样方方正正的结构一动都不能动,接下来就需要靠遗传算法对代码做修改。
研究团队认为,用传统遗传算法修改代码VS人类程序员自己动手,在效率上还有两点差距:
一个是软件越来越复杂,人类可以搞模块化的代码复用来应对,而目前最先进的遗传算法也无法在人类使用的编程语言上做到这一点。
另一个是几乎所有遗传算法靠的都是随机突变(mutation),而人类程序员每一次修改代码都带有目的,或者是增加功能、或者是改进效率、又或者是修复bug。
那么有没有办法让AI学习到人类是如何修改代码的呢?
还真有,所需的训练数据都存在GitHub上。
优秀的程序员每次提交代码都会写好commit描述,说清楚这一次提交修改了什么内容。

commit描述配合上提交前后代码对比的diff数据,就是AI绝佳的学习材料。

研究人员筛选出一些描述意图明确、修改的代码量不大的提交数据来训练一个GPT-3架构的AI模型。
相当于让AI向人类程序员学习了如何有目的的修改一段代码。
这篇论文所用的模型也不需要完全版GPT-3的1750亿参数那么大,最高7.5亿参数就足以。

由此得到了基础的AI模型,将在遗传算法中扮演变异算子的角色。
接下来让AI自己设计新机器人的流程总共分三步。

第一步,先用经典的MAP-Elites算法生成一组初始机器人。

这是一种QD(质量多样性)算法,可以保证机器人行为不同且质量都很高。

第二步,用第一步产生的初始数据做预训练,让AI先学会设计出训练数据分布内的机器人。
也就是开头处那张在网上惊艳了众人的动图,展示了AI如何一步步把无法移动的“方块”改造成双腿交替弹跳移动机器人。

第三步,再结合上强化学习算法做微调,让AI能根据不同地形条件生成能适应环境的机器人。


最终,研究人员选取了从最初的三个种子进化而来的机器人做效果展示。
可以看出它们的结构和移动方式都完全不同。

网友惊呼“思路清奇”
这项研究一经公布,可谓是一石激起千层浪。
许多网友都惊叹于这种“大模型+演进算法”结合的新奇方式:

做过与之相关工作的研究人员也表示,从未想过能用大模型以diffs的形式来学习突变:

而除了对研究形式和本身的讨论之外,也有网友配上了这样图:

Emmm……是有点那种味了。
团队介绍
这项研究的团队成员均来自OpenAI。
论文一作是Joel Lehman,是一位机器学习科学家。其聚焦的领域包括人工智能安全、强化学习和开放式搜索算法。

与此同时,Joel Lehman此前基于对人工智能发展的思考合写过一本科学读物《为什么伟大不能被计划出来:客观的秘密》:

而对于这项研究的下一步,Joel Lehman本人表示:
还有一个重要问题,就是模型能够多大程度上应用到其它环境中。
GP中的突变功效现在可以通过ELM大幅提高,这将激发出一系列广泛的新应用和研究方向。
那么这项研究是否也对你产生了新的启发呢?
欢迎在评论区留言讨论~
参考链接:
[1]https://arxiv.org/abs/2206.08896
[2]https://twitter.com/joelbot3000/status/1538770905119150080?s=21&t=l8AASYjgC6RAEEimcQaFog
— 完 —
「量子位·视点」直播报名
随着生物识别技术的发展,数字时代的增强身份认证如何打造?既有安全又有隐私的电子证照如何实现?而人工智能的本质和真正价值将会如何在产业数字化中体现?
6月23日周四,参与直播,为你解答~

点这里关注我,记得标星哦~
边栏推荐
- ACM. HJ75 公共子串计算 ●●
- 同花顺证券开户是安全的吗?
- Before the age of 36, Amazon transgender hackers were sentenced to 20 years' imprisonment for stealing data from more than 100million people!
- 同花顺证券开户安全吗
- AOSP ~ default attribute value
- Go synchronization waiting group
- How to click DOM to automatically locate the corresponding code line in vscode
- Advanced usage of groovy
- Is it safe to open an account with flush securities?
- 20年ICPC澳门站L - Random Permutation
猜你喜欢

MATLAB主窗口与编辑器窗口分开为两个界面的解决办法

MySQL modifies and deletes tables in batches according to the table prefix

Refresh mechanism of vie

Seata四大模式之TCC模式详解及代码实现

用向量表示两个坐标系的变换

Performance rendering of dSPACE

多睡觉,能减肥,芝加哥大学最新研究:每天多睡1小时,等于少吃一根炸鸡腿...

How transformers Roberta adds tokens

20 years ICPC Macau station L - random permutation

服乔布斯不服库克,苹果传奇设计团队解散内幕曝光
随机推荐
Solution of separating matlab main window and editor window into two interfaces
Tell you about mvcc sequel
AI自己写代码让智能体进化!OpenAI的大模型有“人类思想”那味了
Is it safe to open an account in the way of winning 100% of the new bonds
How to choose a securities company when opening an account with a compass? Which is safer
Rebeco:使用机器学习预测股票崩盘风险
Insurance can also be bought together? Four risks that individuals can pool enough people to buy Medical Insurance in groups
How transformers Roberta adds tokens
服乔布斯不服库克,苹果传奇设计团队解散内幕曝光
MySQL modifies and deletes tables in batches according to the table prefix
在Microsoft Exchange Server 2007中安装SSL证书的教程
Is flush a regular platform? Is it safe for flush to open an account
Insurance app aging service evaluation analysis 2022 issue 06
C # realizes crystal report binding data and printing
MySQL根据表前缀批量修改、删除表
给你讲懂 MVCC 续篇
XML modeling
Enlightenment of using shadergraph to make edge fusion particle shader
Tutoriel d'installation MySQL
How to click DOM to automatically locate the corresponding code line in vscode