当前位置: 首页 > 科技观察

AI自己写代码,让智能体进化!OpenAI的大模型有种“人脑思维”

时间:2023-03-13 07:56:38 科技观察

做事的味道!AI“看”了人类如何在GitHub上提交更新(commit),然后模仿人类程序员修改代码……最后,这个AI也成功“调教”了一个智能机器人:不开玩笑,这种在OpenAI最近发布的一项研究表明,可怕的事情真的发生了……本来,研究人员想要解决的是一个遗传编程(GP)问题——让智能机器人学会移动。(GP是进化计算中的一个特殊领域,主要是为了自动构建程序,独立解决问题。)不过,OpenAI走了个弯,把自己的大规模语言模型(LLM)放进去了。结果是一个大大的“一万”。没想到。”以往,在智慧体的进化过程中,需要人类研究人员参与一些细节调整、确定进化方向等工作,才能让智慧体朝着好的方向发展。那么现在,这些工作都被大模型接手了,自己学习,自己写代码,自己“调优”:这件事是论文第一作者JoelLehman在网上曝光的,立即引起网友大量关注:a程序员和网友看完后直呼“跟不上(技术)发展的步伐”:就连OpenAI自己在研究中也表示,它弥合了进化算法的鸿沟AI是如何实现这个“神奇”的东西的呢?看看GitHub,AI自己敲代码在虚拟环境中设计移动机器人,是遗传算法研究中非常热门的项目。cular,Sodarace比赛很受欢迎,因为它需要较少的计算,而且过程很容易可视化。规则简单,由“关节”和“肌肉”组成的机器人在各种地形上竞速。OpenAI还特意将整个竞赛程序从专用遗传密码改写为Python版本,以展示新方法对现代编程语言的通用性。比如这样一段Python代码可以作为初始的种子机器人。定义了正方形的四个顶点关节和末端关节,并用“肌肉”连接后,结果如下。但是这样的正方形结构根本不能移动,然后需要通过遗传算法修改代码。研究团队认为,使用传统遗传算法修改代码与人类程序员自己修改代码相比,在效率上还有两点差距:一是软件越来越复杂,人类可以通过模块化代码复用来应对,而最先进的遗传算法无法在人类使用的编程语言上做到这一点。另一个是几乎所有的遗传算法都依赖于随机突变,而人类程序员每次修改代码都是有目的的,要么增加功能,要么提高效率,要么修复错误。那么有没有办法让AI学习人类如何修改代码呢?是的,所有需要的训练数据都在GitHub上。一个好的程序员在每次提交代码的时候都会写一份commitdescription,把这次commit修改了什么内容解释清楚。commit描述结合commit前后代码对比的diff数据,是一个很好的AI学习资料。研究人员筛选出一些提交的意图明确的数据和少量修改过的代码,用于训练GPT-3架构的AI模型。相当于让AI向人类程序员学习如何有目的地修改一段代码。本文使用的模型不需要像GPT-3完整版的1750亿个参数那么大,最多7.5亿个参数就够了。由此得到基本的人工智能模型,将在遗传算法中起到变异算子的作用。接下来,让AI自己设计新机器人的过程分为三个步骤。第一步,使用经典的MAP-Elites算法生成一组初始机器人。这是一种QD(质量多样性)算法,可以保证机器人的行为不同并且都是高质量的。第二步是利用第一步生成的初始数据进行预训练,让AI先学会在训练数据的分布范围内设计机器人。也就是开头那张让所有人都惊艳全网的动图,展现了AI是如何一步步将不动的“立方体”变成一个双腿交替弹跳的移动机器人。第三步,对强化学习算法进行微调,让AI根据不同的地形条件,生成能够适应环境的机器人。最终,研究人员选择了前三颗种子进化而来的机器人来展示效果。可以看出它们的结构和运动是完全不同的。网友惊呼“思路清晰,奇葩”。这项研究一经发布,可谓一石激起千层浪。很多网友惊叹于这种“大模型+进化算法”组合的新颖性:做过相关工作的研究人员也表示,他们从来没有想过大模型可以用来学习diffs形式的突变:除了除了研究形式和自己的讨论之外,还有网友还附上了这样一张图:Emmm……有点像。介绍这项研究的团队成员均来自OpenAI。该论文的第一作者是机器学习科学家JoelLehman。其重点领域包括人工智能安全、强化学习和开放搜索算法。与此同时,乔尔·雷曼此前基于他对人工智能发展的思考,合着了一本科学书籍《为什么伟大不能被计划出来:客观的秘密》:对于这项研究的下一步,乔尔·雷曼自己说:还有一个重要的问题,那就是,该模型可以应用于其他环境的程度。现在,ELM可以显着增强GP中突变的功效,这将激发广泛的新应用和研究方向。那么这项研究是否也启发了您?参考链接:[1]https://arxiv.org/abs/2206.08896[2]https://twitter.com/joelbot3000/status/1538770905119150080?s=21&t=l8AASYjgC6RAEEimcQaFog