• AI自己写代码让智能体进化!OpenAI的大模型有“人类思想”那味了


    金磊 梦晨 发自 凹非寺
    量子位 | 公众号 QbitAI

    搞事情!

    AI“看”了一眼GitHub上人类都是怎么提交更新(commit)的,然后就模仿人类程序员修改代码……

    最终,这个AI还成功“调教”出了个智能体机器人:

    dab0ea7d50271cd9ba4c646ad8447459.png

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

    f43b395855a898dbf6bc460ed9f603a1.png

    原本呢,研究人员要解决的是一个遗传程序设计(GP)问题——让一个智能体机器人学会移动。

    (GP是演化计算中的一个特殊领域,它主要针对自动构建程序去独立解决问题。)

    但OpenAI剑走偏锋,把自家的大规模语言模型(LLM)放了进来,结果就是一个大大的“万万没想到”。

    以前在智能体演进的过程中,人类研究员是需要参与进来做一些细节调整、确定演进方向等工作,让智能体往好的方向发展。

    现在好了,这些活儿都让大模型给包揽了,自己学自己写代码自己去“调教”

    04f8ab90b38991156ff18f6af578eaec.gif

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

    d038751740f5bf23d7e73a0c97a63ddc.png

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

    b595627e3a3c2e4e287d5ea4b32150c3.png

    甚至OpenAI自己都在研究中说:

    弥合了进化算法在人类思想水平运行的鸿沟。

    那么这件“魔幻”的事情,AI到底是怎么办到的?

    看一眼GitHub,AI自己动手敲代码

    在虚拟环境中设计可移动的机器人,是遗传算法研究中很火的一个项目。

    特别是Sodarace竞赛因为需要的计算量少,过程方便可视化很受欢迎。

    0dcda0e1a406aa216f00aef4b797dcca.png

    规则很简单,由“关节”和“肌肉”组成的机器人在各种地形上赛跑。

    OpenAI还特意把整个竞赛程序从专用的遗传编码改写成了Python版本,为了展示新方法对现代编程语言的通用性。

    比如这样一段Python代码,就可以作为初始种子机器人。

    9156c103ee1ad68383bf44effd985214.png

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

    27c96b59787b452e55f766d6c91db3a3.png

    不过这样方方正正的结构一动都不能动,接下来就需要靠遗传算法对代码做修改。

    研究团队认为,用传统遗传算法修改代码VS人类程序员自己动手,在效率上还有两点差距:

    一个是软件越来越复杂,人类可以搞模块化的代码复用来应对,而目前最先进的遗传算法也无法在人类使用的编程语言上做到这一点。

    另一个是几乎所有遗传算法靠的都是随机突变(mutation),而人类程序员每一次修改代码都带有目的,或者是增加功能、或者是改进效率、又或者是修复bug。

    那么有没有办法让AI学习到人类是如何修改代码的呢?

    还真有,所需的训练数据都存在GitHub上。

    优秀的程序员每次提交代码都会写好commit描述,说清楚这一次提交修改了什么内容。

    ae2ed197fdd593bf35990d6de437e8d7.png

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

    9b85a877da0b74a6b58b56b3bc3c7b72.png

    研究人员筛选出一些描述意图明确、修改的代码量不大的提交数据来训练一个GPT-3架构的AI模型。

    相当于让AI向人类程序员学习了如何有目的的修改一段代码。

    这篇论文所用的模型也不需要完全版GPT-3的1750亿参数那么大,最高7.5亿参数就足以。

    deafac057c590d14f9e486c6262a5449.png

    由此得到了基础的AI模型,将在遗传算法中扮演变异算子的角色。

    接下来让AI自己设计新机器人的流程总共分三步。

    eecd3cdbf43d7decd67bb41baa71706d.png

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

    16406f19440c3317b03a91e21e6b197d.png

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

    0f25df3877f0d2b1c579eadb3650a66a.gif

    第二步,用第一步产生的初始数据做预训练,让AI先学会设计出训练数据分布内的机器人。

    也就是开头处那张在网上惊艳了众人的动图,展示了AI如何一步步把无法移动的“方块”改造成双腿交替弹跳移动机器人。

    1484eac0bbc226c8e9349520b6f4e0d8.gif

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

    9dc6e18a51d16f91c9157a7f3b53756d.png

    15b4212281ef8c5789efa53e962faa47.png

    最终,研究人员选取了从最初的三个种子进化而来的机器人做效果展示。

    可以看出它们的结构和移动方式都完全不同。

    65a9fc73f4e35206132b24dd6229a211.gif

    网友惊呼“思路清奇”

    这项研究一经公布,可谓是一石激起千层浪。

    许多网友都惊叹于这种“大模型+演进算法”结合的新奇方式:

    212616f7a1d88aed7e44043f04c4b0f6.png

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

    d51371ea69ea79d68907c21e8418c158.png

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

    3ff0aa607e88f304577aab48ec341d40.png

    Emmm……是有点那种味了。

    团队介绍

    这项研究的团队成员均来自OpenAI。

    论文一作是Joel Lehman,是一位机器学习科学家。其聚焦的领域包括人工智能安全、强化学习和开放式搜索算法。

    1c16d951e902ed792f0776115c8db7cf.png

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

    38d318f843b29eb5f28199a5217473a8.png

    而对于这项研究的下一步,Joel Lehman本人表示:

    还有一个重要问题,就是模型能够多大程度上应用到其它环境中。

    GP中的突变功效现在可以通过ELM大幅提高,这将激发出一系列广泛的新应用和研究方向。

    那么这项研究是否也对你产生了新的启发呢?

    欢迎在评论区留言讨论~

    参考链接:

    [1]https://arxiv.org/abs/2206.08896
    [2]https://twitter.com/joelbot3000/status/1538770905119150080?s=21&t=l8AASYjgC6RAEEimcQaFog

    —  —

    「量子位·视点」直播报名

    随着生物识别技术的发展,数字时代的增强身份认证如何打造?既有安全又有隐私的电子证照如何实现?而人工智能的本质和真正价值将会如何在产业数字化中体现?

    6月23日周四,参与直播,为你解答~

    eee40d11e6373ebbe4ea1c855183472d.png

    点这里👇关注我,记得标星哦~

  • 相关阅读:
    Docker consul
    HMS Core Discovery第13期回顾长文——构建手游中的真实世界
    评价聚类的方法
    java毕业设计在线航班订票系统Mybatis+系统+数据库+调试部署
    Python easyOCR图像文本提取 初识
    GoogLeNet 08
    C++提高编程
    【AI】Datasets
    从char到string
    【数据结构】我家三岁表弟都明白的栈和队列,你不会不了解吧?
  • 原文地址:https://blog.csdn.net/QbitAI/article/details/125401127