AI自己写代码让智能体进化!OpenAI的大模型有“人类思想”那味了
金磊 梦晨 发自 凹非寺
量子位 | 公众号 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大幅提高,这将激发出一系列广泛的新应用和研究方向。
那么这项研究是否也对你产生了新的启发呢?
欢迎在评论区留言讨论~
本文文字及图片出自 量子位
你也许感兴趣的:
- 我受够了维护 AI 生成的代码
- 【外评】作为全栈开发人员如何跟上 AI/ML 的发展?
- 大模型集体失智!9.11和9.9哪个大,几乎全翻车了
- 【外评】为什么似乎没有人在意人工智能给出了错误的答案?
- 【程序员搞笑图片】AI 编程
- 【外评】黑客工具可提取 Windows 全新人工智能 Recall 功能收集到的所有数据
- 【外评】如果人工智能能胜任你的工作,也许它还能取代你的首席执行官
- 【外评】人工智能提供假冒的 Facebook 客户服务电话导致一男子陷入骗局
- 【外评】训练与聊天不同:ChatGPT 和其他 LLM 不会记住你说的每一句话
- 【外评】让Windows完全回忆(Recall)用户所做的一切是一个隐私雷区
你对本文的反应是: