共计 2217 个字符,预计需要花费 6 分钟才能阅读完成。

这并非玩笑,这种令人深思的情形,确实在 OpenAI 最近发表的一项研究中实现了……

最初,研究人员的目标是解决一个遗传程序设计(GP)问题——让一个智能机器人学会移动。(GP 是演化计算的一个特殊领域,主要用于自动生成程序以解决问题。)但 OpenAI 采取了不同寻常的方式,将自家的大型语言模型(LLM)引入,结果产生了意想不到的效果。以往在智能体的演进过程中,人类研究者必须参与细节调整、方向设定等工作,以确保智能体朝着理想的方向发展。如今,这些任务都由大模型接管,智能体可以自主学习、自我编程,并进行“自我训练”:

当这一研究成果由论文第一作者 Joel Lehman 在网络上公布,立刻引发了网友的广泛关注:

一位程序员网友在阅读后直言“跟不上(技术)发展的速度”了:

甚至 OpenAI 在研究中也提到:缩小了进化算法与人类思维之间的差距。那么,这项“奇妙”的成就,AI 究竟是如何实现的呢?借助 GitHub,AI 自主编写代码 在虚拟环境中设计可移动的机器人,是遗传算法研究中的一个热门项目。特别是 Sodarace 比赛,因为计算量较小且过程易于可视化,深受欢迎。

比赛规则简单,机器人由“关节”和“肌肉”构成,在不同地形上进行竞赛。OpenAI 还特别将整个竞赛程序从专用的遗传编码转化为 Python 版本,以证明新方法在现代编程语言中的适用性。例如,以下这段 Python 代码可以作为初始的种子机器人。

在定义四个正方形的顶点关节和终点关节后,相互通过“肌肉”连接,结果如下所示。

然而,这样的正方形结构并不能移动,接下来需要依赖遗传算法对代码进行调整。研究团队认为,传统遗传算法进行代码修改与人类程序员的手动修改之间在效率上存在两方面的差距:第一,软件日益复杂,人类能够利用模块化的代码复用来解决问题,而当前最先进的遗传算法无法在使用的编程语言上做到这一点。第二,几乎所有的遗传算法依靠随机突变(mutation),而人类程序员在每次代码修改时都有明确目的,可能是为了增加功能、提升效率或修复 bug。那么,是否有可能让 AI 学习人类是如何进行代码修改的呢?答案是肯定的,所需的训练数据均可在 GitHub 上获取。优秀程序员每次提交代码时都会写下 commit 描述,详细说明此次修改的内容。

将 commit 描述与前后代码对比的 diff 数据结合起来,就是 AI 非常优质的学习材料。

研究人员筛选出一些意图明确且修改量适中的提交数据,训练了一个基于 GPT- 3 架构的 AI 模型。这相当于让 AI 向人类程序员学习如何有目的地进行代码修改。这篇论文中使用的模型并不需要完整的 GPT- 3 的 1750 亿参数,最高 7.5 亿参数便足够了。

因此,基础的 AI 模型得以生成,并将在遗传算法中担任变异算子的角色。接下来,AI 自主设计新机器人的流程分为三个步骤。

创新机器人设计:AI 与演化算法的完美结合 首先,通过经典的 MAP-Elites 算法生成一系列初步的机器人。

这种质量多样性(QD)算法确保了生成的机器人在行为上各具特色,同时也具备较高的性能。

接下来,利用第一步所获得的数据进行预训练,帮助 AI 掌握如何设计出符合训练数据分布的机器人。这就是最初在网上引发热议的动图,展示了 AI 如何逐步将静态的“方块”转变为能够交替弹跳的双足机器人。

最后,结合强化学习算法进行微调,使得 AI 能够针对不同地形生成适应性强的机器人。


最终,研究者们展示了从三种初始机器人中演化而来的成果。可以明显看出,这些机器人的结构与运动方式各不相同。

网友纷纷赞叹“思路独特”该项研究刚一发布,便引起了广泛关注。不少网友对这种将“大模型”与演化算法结合的创新方法感到惊奇:

曾参与相关研究的专家也表示,从未想到可以通过大模型以变异的方式进行学习:

此外,除了对研究形式进行讨论之外,一些网友还配上了这样的图片:

Emmm……确实有点那个意思。团队成员介绍 参与这项研究的团队均来自 OpenAI。论文的第一作者是 Joel Lehman,他是一位专注于机器学习的科学家,研究领域涵盖人工智能安全、强化学习及开放式搜索算法。

同时,Joel Lehman 曾就人工智能发展进行了深入思考,并合著了一本书《伟大无法被计划:客观的秘密》:

关于这项研究的后续进展,Joel Lehman 表示:一个关键问题是模型能在多大程度上迁移到其他环境中。通过 ELM 可以显著增强 GP 中的突变效果,这将开启一系列新的应用和研究方向。那么,这项研究是否也为你带来了新的启示呢?欢迎在评论区分享你的看法~参考链接:[1]https://arxiv.org/abs/2206.08896[2]https://twitter.com/joelbot3000/status/1538770905119150080?s=21&t=l8AASYjgC6RAEEimcQaFog


这种自我学习的方式太酷了,感觉未来的编程会变得更有趣。