CMU 周衔:物理引擎 Genesis 的源启与未来丨具身先锋十人谈

360影视 2025-01-10 18:48 1

摘要:就在上个月,CMU 联合18个研究机构开源发布了一个生成式物理引擎——Genesis,引起了具身智能领域的广泛讨论与关注,在国内与海外呈现出霸榜的热度。Genesis 的核心团队为 12 位青年华人学者,其项目领导者为 CMU 机器人研究所刚毕业的博士生周衔。

仿真和真机需并行发展,但要先解决遗留问题更多的仿真。

作者丨赖文昕

编辑丨陈彩娴

不久前,我们发布《CMU 具身智能风云榜:从传统到全面》一文,介绍了来自 CMU 的一众具身智能华人人才。

就在上个月,CMU 联合18个研究机构开源发布了一个生成式物理引擎——Genesis,引起了具身智能领域的广泛讨论与关注,在国内与海外呈现出霸榜的热度。Genesis 的核心团队为 12 位青年华人学者,其项目领导者为 CMU 机器人研究所刚毕业的博士生周衔。

凭借从底层开始重新设计和构建的通用物理引擎,Genesis 将各种物理求解器及其耦合集成到一个统一的框架中,通过在更高层次上运行的生成式智能体框架得到进一步增强,旨在为机器人技术及其他领域实现全自动数据生成。

据项目页面介绍,与先前的模拟平台相比,Genesis 具备多个关键特点:

原生 Python,包括前端界面和后端物理引擎,全部用 Python 语法开发。底层由嵌套在 Python 内的 GPU 加速的 DSL taichi支持。

轻松安装,API 设计极其简单且用户友好。

并行模拟,速度空前:Genesis 是世界上最快的物理引擎,其模拟速度比现有的 GPU 加速机器人模拟器(Isaac Gym/Sim/Lab、Mujoco MJX 等)快一个多数量级,且并没有在模拟精度和保真度上为了优化速度做妥协。

一个支持各种最先进物理求解器的统一框架,可对大量材料和物理现象进行建模。

具有优化性能的逼真光线追踪渲染。

可微性:Genesis 旨在与可微模拟完全兼容。目前,我们的物质点法(MPM)求解器和工具求解器是可微的,其他求解器的可微性也将很快添加(从刚体模拟开始)。

物理精确且可微的触觉传感器。

原生支持生成式模拟,允许通过语言提示生成各种模态的数据:交互式场景、任务提议、奖励、资产、角色动作、策略、轨迹、相机运动、(物理精确的)视频等等(这个框架会内部的各模块会慢慢放出)。

项目页面:https://genesis-embodied-ai.github.io/

从速度来看,Genesis 在单台 RTX4090 设备上的数据量可以达到实时的 430000 倍,26 秒就能训练出可迁移至现实世界的机器人运动策略;从效果来看, Genesis 能生成 4D 物理世界,如机器人操作和运动策略、开放世界铰接式物体、角色运动、3D 和完全交互式场景等等。

不过,在 Genesis 纷纷被认可其实现大模型“创世纪”的可能性之际,也有一些质疑的声音对其精确度和速度表示怀疑。本周三,Genesis 团队更新了一份详细技术报告,测评了各种场景下和主流并行仿真器的速度对比,并且开源了所有测试代码。

主导项目的周衔本科就读于新加坡南洋理工大学的机械工程系,以最高荣誉毕业后在 2017 年来到 CMU 读博,成为导师 Katerina Fragkiadaki 组里首位研究机器人学习(Robot Learning)的PhD。

2022 年 5 月,周衔在师姐的牵线下来到 MIT-IBM Watson AI Lab 实习,与淦创展开合作。也是从这时起,周衔的研究重点确认为建立统一的神经策略和数据引擎。

从“天马行空”地尝试复杂的流体操作任务开始,周衔逐渐与更多志同道合的华人学者相识,就此开启了 Genesis 的故事。

对于 Genesis 正在面临的讨论,周衔十分自信且坦诚,“我们肯定会长期维护,要把它做成一个具身智能和物理AI最好用的仿真和数据平台,同时通过借助开源社区的力量把这个底层的平台维护好。”

以下是 AI 科技评论与周衔的对话。

1 从仿真器到数据引擎

AI科技评论:22年你到 MIT-IBM Watson AI Lab 实习,Genesis 的 idea 是怎么诞生的?

周衔:以前机器人做偏向于刚体的操作任务,22 年到 MIT 时我想做与流体相关的复杂操作任务,如咖啡拉花、与烟雾交互。但这些任务在现实中采集数据困难,因机器人置于水中易损坏,环境也杂乱,用强化学习或优化轨迹时,有水等液体的环境重置不易,所以自然就想到从仿真环境入手。

这也是我首次接触仿真。此前仿真器多是计算机图形学的学者在研究,当时想用仿真器,却发现没有特别合适的,像英伟达的 Flex 及基于它的 SoftGym,虽有基本的水和衣服模拟,但无法实现不同性质流体的交互,存在诸多问题。此外,我们希望仿真器可用,能借助其梯度信息搜寻策略。

正巧淦创老师组里之前有相关工作,还与发表“太极”编译器的胡渊鸣合作过,于是我们设计了许多与各类流体交互的任务,自己写了一个流体仿真的环境和测评基准“FluidLab”。

当时我结识了宋舒然老师的学生许臻佳和在 MIT 的王尊玄(Johnson),然后我们大家一起合作做了几个在不同领域但底层框架类似的项目,比如 Johnson 做软体机器人模拟,许振佳做切水果、切牛排等任务,然后我们分别为这些项目实现了底层的物理仿真,不过当时更多聚焦于软体、流体以及软体机器人本身,且都是项目特定的,无法让研究社区的使用者很容易的就安装体验。

我们觉得一个统一的物理仿真平台会对整个机器人领域有帮助,23 年初便决定将这些成果整合起来,打造一个对有软体仿真需求的人而言好用、易配置环境并训练策略的框架——这就是 Genesis 的前身,我们致力于打造一个大一统的仿真平台,重点在软体方面。后来我们觉得刚体很重要,但当时这个超出了我们的知识范围,于是就又找了马里兰大学的 PhD 乔怿凌,他做过一系列可微仿真的工作,加入后负责帮助我们实现整套刚体的仿真框架。

AI科技评论:那 Genesis 是如何从一个仿真器演进为数据引擎的?

周衔:起初,我们本只想做一个仿真器。但到了 2022 年末,ChatGPT 问世且效果出色。

在此之前,即便我们能做出比英伟达 Omniverse 更好的仿真环境,在仿真环境里收集数据仍需耗费大量人力。

具体来说,在现实中收集机器人的视觉校准数据,即给定任务描述后,机器人依据所见规划电机动作与周围环境交互来完成任务,一般采用人力采集的范式,不管是用 VR、AR 设备还是其他操控装置,本质上数据量与人力呈线性关系,要采集上百亿条数据极为困难。

在仿真环境中也不轻松,虽像人狗跑跳的演示是用强化学习在仿真中训练出来的,但在训练策略前,确定机器人学习的任务、学习环境、环境布置、物体交互方式以及奖励函数等环节都依赖人力。所以即便有了仿真环境,若要真正实现数据收集的规模化扩展,依旧艰难。

GPT 出现后,推理能力质的飞跃使其足以担当推理引擎。在机器人领域,很多人试图直接让 GPT 输出动作指令,但我们意识到此路不通。尽管 GPT 有推理能力和常识,可它缺乏对物理动力学、动作等模态信息的理解。比如让它关笔记本,它虽知道语言层面的操作步骤,却不懂实际手部动作的反馈、力度控制等物理细节。

经过反复讨论,我们在23年上半年有了新的思路:利用 GPT 等语言或视觉模型的正确方式,是提取其擅长的部分,比如确定机器人有意义的任务(如拿外卖、擦桌子等),以及每个任务适合的训练环境(如拿外卖对应客厅的布局、物体设置等),还有任务完成与否的判定标准,通过编写代码的方式生成奖励函数。

半年后,谷歌的“Language to Rewards for Robotic Skill Synthesis”和英伟达的“Eureka”接连发布,其思路与我们一致,即借助在代码里设置奖励函数的手段,构建起大语言模型在语言范畴对世界的认知以及在物理领域同世界的交互联系,待语义层面的静态信息完整生成后,就可以把它们交给强化学习,使其在物理引擎中对策略展开训练。

AI科技评论:团队很快就确认 Genesis 是一条行得通的路。

周衔:没错,想通这个 pipeline 那晚的我们特别激动,因为突然意识到可以打通整个流程,从提出任务到获取解决任务的行动数据,理论上完全无需人力,能靠算力自动化生成机器人数据。这也是从大语言和视觉模型中提取其掌握范围内的信息,再通过物理仿真让机器人试错、迭代,最终掌握演示方法。

23 年初到年中,我们试验中发现这个全新框架虽各环节尚不成熟,但切实可行,从现有技术到最终实现,每个环节都有清晰的提升路径,不存在有一个环节在技术上还存在巨大鸿沟的情况,只需将各环节从四五十分提升到七八十分,就能打通流程获取数据。从数据驱动来看,若要使机器人策略模型达到 GPT、Sora 的水平,也需要海量数据,那么这条路便是更具扩展性的方法。

2 Genesis 的核心:易、快、准、开

AI科技评论:Genesis 最大的亮点是什么?它和其他仿真引擎相比,有何异同?

周衔:我认为有三大亮点,分别是易用性、速度与功能。

易用性方面,虽不和技术强相关,但是我个人最喜欢的部分。尽管还有很多满足各种需求的 API 还没有完全暴露给用户,但已完成的部分 API 设计简洁,学习和理解成本非常低,我还精心设计了整套可视化方式,从机器人状态呈现到颜色、缩进、emoji 运用等都花费很多没有意义但是我很enjoy的时间,希望可以优化特别是刚进入具身智能和机器人领域研究者的用户体验。

速度上,英伟达用 GPU 加速让仿真的速度大幅提高,而我们在此基础上又将速度提升一个数量级。不过,目前我们还需研究如何更好利用此速度优势,开发新的强化学习训练方案。

功能上,多数成熟仿真环境只能做刚体仿真,像 Omniverse 对软体和流体的仿真物理不准。我们在统一框架里集成各类物理求解器,如 MPM 等,支持多种物理性质物体求解,也实现了不同求解器间交互,虽处于早期但会持续迭代,且前端用户界面好用,后端用太极和 Python,语法透明,便于开发者贡献和维护。

AI科技评论:感觉你对开源很有热情。

周衔:这和我一个强烈的个人动机相关。以往仿真环境多由计算机图形学领域的人开发,该领域人才厉害但壁垒高,也很少开源工作,虽现在逐渐开源但祖传C++ 代码依旧难懂,其成果应用也比较难。

在机器人和具身智能领域,对仿真能力有依赖,但以往计算机图形学研究者不懂机器人研究需求,机器人研究者不懂仿真物理原理,并且双方都受英伟达闭源的 CUDA 生态制约。比如在仿真环境中制定策略部署到真机上,发现差异想回仿真环境调参却因不了解原理而无法操作,导致两个领域虽相互依赖却存在巨大割裂。

所以我认为当下亟需让计算机图形学领域的优秀人才和算法重焕光彩,让其为机器人领域所用。具身智能领域能够充分发挥计算机图形学从渲染到仿真的技术和人才价值。因此,我有很强的动力去打造一个完全透明、底层全开源、易于访问、理解和贡献的平台,无论是机器人领域人才还是其他相关人员都能轻松参与,这便是我愿意为此事投入大量时间的原因。

AI科技评论:可微分性的实现难度大、也容易和优化策略产生冲突,现有的大多数物理引擎都不支持,为什么 Genisis 会采取这个路径呢?

周衔:这里其实有个误区,大家以为我们的目标是做可微仿真,实则不然,这只是我们提供的一个会帮助这个领域发展的重要feature。

最初在做流体等精细操作任务时,我们意识到,单纯依靠纯强化学习通过大量采样轨迹来寻找最优路径,而若有梯度信息,就能引导策略朝着正确方向发展,这在当时极大地加速了训练过程。不过,利用可微仿真和梯度信息来加速强化学习的策略搜索,在学界至今仍处于研究阶段,尚未达成共识。

目前的框架不成熟也不好用,属于小众探索领域。此前的工具如 Google 的物理模拟引擎 Brax,学习曲线很高,功能也不完善物,而之前我们做的 FluidLab 这些工作,因为和底层的 taichi 绑定比较深,对于外部用户来说想要获取梯度也存在困难。

所以,为了加速这一领域的研究,我们认为有必要打造一个如同 Pytorch 般好用的工具,方便获取梯度并与策略网络连接。这并非我们主要的优化方向,而是我们额外提供的工具和功能,旨在推动可微仿真研究的加速发展,以便让我们了解其对学习策略的提升作用。

3 “为爱发电”

AI科技评论:Genesis 历时两年,你觉得其中最大的困难是什么?又是如何克服的呢?

周衔:Genesis 如此庞大的系统,涉及诸多方面的开发,而个人的专业知识无法覆盖全面。一方面,我们要寻觅各领域的专业人士,比如做生成式模块时,得拓展人脉,拉更多合作者加入。就像我自己,两年前对仿真一窍不通,也是在这个过程中学习的。

我深感推进这样的大项目在学界极为困难,因为我们采用的是自下而上的合作方式。淦创老师虽为项目顾问,却并非传统意义上的导师,大家是平等的合作者,他帮忙联系一些人参与进来。

一般的学术合作,导师手握经费,学生为其工作,但这个项目由我来主导推进统筹规划,但却无法给予任何人经费上的激励,全靠大家“为爱发电”。这就导致合作形式松散,每个人都有各自的学业得完成,时常忙得不可开交。

我其实有点完美主义,常常想花很多的功夫想把事情打磨到极致,然而在这种模式下,当其他合作者不认同我提出的需求时,因为我们这种自下而上的合作方式,我很难以像PhD老板那样要求他们。比如另一位核心贡献者、马里兰大学博士乔怿凌负责刚体仿真框架的实现,最初的版本因为我们想统一各种材料的表示和全局的碰撞检测和求解,速度很慢,当时我希望可以在速度上至少可以达到 Isaac 和 MJX 的水平,但当时的团队认为可能很难实现。

于是我当时唯一的选择是自己把整套框架拿过来逐行拆解优化,尝试对每个 GPU Kernel 内的数据结构和循环层级进行优化。当时我连睡觉都想着如何给它提速,经过多轮不懈努力后,最终我们成功实现比 Issac Gym 快了很多。类似情况还有很多,当合作者缺乏达成目标的动力时,我有时需要自己接手重新优化和设计,并证明一个更好的状态是可行的。我们之间的信任就是在这样的过程中建立起来。

无论如何,我们还是坚持下来并完成了项目。若有一个高效的七八人工程师团队,或许七八个月就能完成,而我们作为缺乏工程经验的博士生,很多东西都是边摸索边做,把自己当工程师使,在探索中学习如何设计、搭建和整合各个模块。

AI科技评论:自学成为工程师是一种什么体验?

周衔:我觉得最有趣的是,过去大家常用的仿真环境代码极为复杂,作为初学者,会被其复杂程度吓到,还会揣测其背后是否真有不得不如此复杂的缘由,只是自己尚未理解。

但我个人倾向于精心打磨用户体验,期望每个功能都能通过一行代码调用,简单易用。而随着自己的钻研,我意识到大多代码能大幅简化。如今我简化后的成果,收到很多用户反馈,都说非常好用,对新手很友好。

这让我有了另一个感悟:很多时候,我们以为一些事情复杂背后定有隐情,但当自己亲自上手去做,就会发现完全可以将其做得更好。

AI科技评论:当时你有想过 Genesis 会耗时这么久吗?

周衔:2023年初我开始做 Genesis 时以为大半年就能写完,到2023年底时,感觉已经写得差不多了。但后来发现距离成熟框架还差很远,于是不断迭代、修改。

要是最初有人跟我说这得做两年,我可能都不会开始。我们有几套成熟软件框架,能直接在上面改,但大家都在抱怨现在的物理引擎难用,却没人去解决这个问题,我们就想着自己来试试。

从23年一月开始,最初我们只是想写个仿真框架,到了三月有了新想法,可以真正实现自动化,不仅有底层物理引擎,还能通过它自动生成数据,是能原生生成数据的引擎。这意味着这个工作上升到了一个新维度,特别令人兴奋,所以我们就一直做下去了。

4 回应质疑

AI科技评论:Genesis发布之后热度颇高,在收获赞扬的同时也有些对测试速度、精确度等方面的challenge,你怎么看待这些质疑的声音?

周衔:网传的一份质疑我们速度的报告赚足了很多眼球,一开始我们担心确实是我们的疏漏导致早期的测试结果与实际不符,所以最初的两天压力非常大,于是这几天一直在做各种测试,测试的结果是 Genesis 确实在速度上有很大的优势。

那份质疑里有很多存在的问题,有些我们觉得不是作者的主观意图,比如没有用相同的机器人模型,同时因为我们内部一个碰撞检测的环节对于方块的支撑函数实现中有个bug,导致那份测试报告的某个场景在打开自碰撞之后掉速严重,这个我们已经修复了。其他地方我们发现有很多是事实性的错误和有误导性的设置,比如因为不知名原因改掉了官方使用的求解器选择,对于一些基本概念的错误理解等等,这些我们在和作者的沟通过程中对面也承认了,并且承诺会更改这些错误。

另外有关对 Genesis 精确度方面的质疑,认为我们的物理引擎不如 PhysX,需要更多计算资源才能达到其精确度,但事实却相反。学界公认 Mujoco 的物理引擎和英伟达的 PhysX 相比是更加符合解析解的 formulation,后者是比较接近 PBD(基于位置的动力学)的相对简化的物理模型。我们构造约束系统时遵循了 Mujoco 的约束,然后额外实现了 GPU 加速的碰撞检测,在控制变量的情况下行为能和 Mujoco 完全保持一致的,像方块掉落旋转再回转,行为和时间点都能精准匹配。

另外可能需要注意的是,抓取的稳定性有时候和物理的准确性并不完全对应,因为在现实世界中很多时候的抓取也会存在不稳定性,我们现在的这个模块可以完全匹配Mujoco的求解结果。而我们下一个大版本的更新会支持 GPU 加速的 ABD(Affine Body Dynamics,仿射体动力学)和 IPC(Incremental Potential Contact,增量式潜在接触),可以更加精确的建模现实世界的接触模型,这也是其他主流刚体仿真器不支持的。

AI科技评论:目前的机器人操作领域,大家的共识集中在真机而非仿真,为什么你会选择非共识?你怎么看待仿真与真机数据呢?

周衔:我并非认为只有仿真才能行得通而真机不行,我们更多的是觉得,所有有价值的路线都值得探索,而且需要推动到极致。

仿真陷入瓶颈,一方面是生态不透明,无法在其基础上迭代和贡献;另一方面,当下众多优秀模型如 GPT 等的发展,离不开算力提升。

但完全依赖真机采集数据无法利用这一点,难以指数级扩展数据规模,人力成本又高。而仿真有很大优势,虽真机在缩小与真实世界的差距以及处理复杂物理现象上有优势,但仿真能提供大量数据,让机器人建立与物理世界交互的基本认知,即便不精准,也可通过真机的精准数据提升其局限性。

我认为两者应结合,仿真占比绝大多数,因为其可通过算力无限扩展,虽质量有欠缺,但能提供广泛数据。

真机存在的问题是,如人形机器人通过强化学习行走等炫酷演示,只是数据驱动的结果,并非真机有本质科学突破,只是大家意识到数据重要性而暴力采集真机数据,这就像“吸鸦片”,一旦真机数据带来的 demo 效果达到饱和,便难以为继。

总之,我认为仿真和真机两条路都要走,真机也有价值,做仿真不是认定只有它行,而是其存在很多遗留的问题需要解决,所以我们希望可以把这条路继续向前推进。

AI科技评论:那接下来 Genesis 还会有更新吗?后续会有更多对 manipulation 的支持吗?

周衔:我们肯定会持续更新,目标是将其打造成对机器人最友好的平台,让大家共同维护好这个开源社区。之后会组建一个成熟的工程师团队长期运维,今年年初开始做整体的路线规划及团队搭建。

关于 manipulation 方面,之前有一些声音称 Genesis 更支持移动(locomotion),操作精度有仿真精度的问题,但实际上并非如此,我们不存在不支持操作的情况。而对于机器人领域有意义的功能、特性以及需要修复的漏洞等,我们都会以高效方式及时添加和解决。我们做这个平台的初心就是可以有一个完全透明,所有人都可以贡献,而且功能强大的框架,作为一个平台把计算机图形学,物理仿真,渲染,以及具身智能的学者可以团结起来,一起来创造物理 AI。

来源:AI科技评论

相关推荐