JIM FAN:你来得正是时候。这个标题幻灯片非常贴切:“两只小猫的故事”。我想分享一个在我攻读博士期间给我带来许多灵感的故事。1963年,两位科学家Held和Hein进行了一项巧妙的实验。

他们把两只刚出生的小猫放入一个类似旋转木马的装置中。这两只小猫尚未见过视觉世界,这仅仅是它们来到这个世界的最初时刻。发生的情况是:右侧那只主动的小猫可以自由移动,而被动小猫被限制在一个篮子里,运动通过连接两只小猫之间的一个小铰链传递过来。

区别在于:主动的小猫可以自由移动并观察世界,而被动小猫虽然也能看到世界,但它无法控制身体。它不能控制自己的运动。几天后,科学家测试了小猫的视觉系统。他们发现只有主动的小猫建立了健康的视动回路,而被动小猫无法对“视觉悬崖”或避开障碍物等事物做出反应。

请注意,两只小猫经历了完全相同的视觉序列。数据是相同且镜像的,唯一的区别在于小猫所采取的能动性(agency)。

如今,我们拥有一只非常强大的“被动小猫”,它的名字是ChatGPT。但对于人类来说,当婴儿出生时,我们不会去维基百科阅读互联网上数以万亿计的文字。我们与物体玩耍。触摸它们、品尝它们、弄坏它们。我们进行实验,我们会失败,然后再次尝试新事物。因此人们称婴儿为“摇篮里的科学家”。

具身性和主动能动性才是让我们成为人类的关键。因此,我相信未来属于具身智能(Embodied AI)。

今天,让我们谈谈英伟达在构建具身智能方面的宏大计划——Project GR00T。我是Jim Fan,我领导着GEAR团队(Generalists Embodied Agent Research,通用具身智能体研究)。今年三月——这是GTC的场景,英伟达最大的年度会议。舞台上站着10个人形机器人。

其中九个是电动或机械的。中间有一个生物人形机器人,他的名字是Jensen(黄仁勋)。这就是Project GR00T的发布现场,这是英伟达为人形机器人构建AI大脑的目标。你肯定会问一个很自然的问题:为什么我们要做人形机器人?

首先,因为我们知道这行得通。你和我现在所拥有的人体形态,正是产生所有具有经济价值的体力劳动的基础。其次,我们正进入一个人机协作的时代。对于人形机器人形态来说,它在社会上更容易被接受。

与那些极其不可预测的蜘蛛机器人相比,人类与人形机器人在一起工作时更容易相处。人们能更轻松地预测人形机器人的行为,从而更好地协同工作。

第三个原因则更为务实,因为我们生活的世界是为人形形态设计的。所有的公共设施如医院、餐厅、超市——以及我们拥有的所有工具和设备,都是为双手、双腿和每只手五个手指而设计的。因此,人形机器人使用这些工具并融入我们已经构建的世界要容易得多。

第二个问题是:为什么我们要现在做这件事?实际上,在2023年底到今年年初,我们看到了人形机器人尖端硬件的激增。仅举几例(这绝非详尽无遗):特斯拉的Optimus,波士顿动力的e-Atlas。这款机器人能做出一些疯狂的动作,比如360度关节旋转,这简直让人脑洞大开。

还有Figure 02。此外,我们还看到人形机器人的价格和成本呈现出趋向极低值的趋势。实际上,人形机器人已经存在一段时间了。2001年,NASA建造了一种名为Robonaut的机器,其制造成本超过150万美元。

就在几个月前,宇树科技(Unitree)发布了G1机器人,成本约为3万美元。这是一辆普通家庭都能负担得起的家用汽车的价格。巧合的是,成熟产品的制造成本往往趋向于原材料成本的规律在这里也适用。人形机器人所需的原材料仅占汽车所需材料的4%,因此成本呈指数级下降的趋势可能会进一步加剧。这使得现在进入这一领域是一个好时机。

Project GR00T——这是英伟达的登月计划——旨在为人形机器人构建AI大脑。我无法带你们去我们的实验室,那里位于圣克拉拉总部,车程约50分钟。但我可以带你们进行一次虚拟游览。这是我们在三月GTC期间位于总部Endeavor大楼的实验室,那里有来自合作伙伴公司的四种不同类型的人形机器人。

请注意,英伟达并不制造自己的机器人。我们依赖合作伙伴的硬件来开发我们的AI技术。在GTC期间,我们在实验室里有四种不同类型的人形机器人。当时,这里是地球上每平方米拥有最多样化人形机器人的地方。

如果你想知道Project GR00T这个名字的来源,它实际上代表“Generalist Robot 00 Technology”(通用机器人零号技术)。我们在这里使用两个零,是因为它看起来像《星球大战》。这是机器人的序列代码。

这里的关键词是“通用”(generalist)。这也是我们采取的策略。在人工智能领域,有一个成功的领域就是自然语言处理(NLP)领域。2019年之前,NLP已经存在很长时间了,有很多专家系统(specialist systems),如情感分析、推荐系统、摘要生成和信息检索。

所有这些都需要不同的训练管道、数据管道和评估方法,这是一个非常复杂的领域。然后2021年ChatGPT来了,它彻底颠覆了一切。它是一个通用模型——你可以提示它并告诉它你需要完成的任务。

一旦你拥有了这种“通用时刻”,你就可以通过提示、微调、蒸馏等方式将其专门化,转化为更小的模型,这些小型模型再次成为领域专家。我们称之为“专门的通用者”(specialized generalist)。

在历史趋势中,几乎总是这种情况:专门化的通用者比原始的专家系统强大得多,也更容易维护。这是NLP领域的一个成功故事。而在机器人学方面,我们目前似乎还停滞不前。如今的大多数机器人系统都是专家型的(specialists)。

它们需要特殊的硬件和专门的算法,这些算法甚至可能不是学习算法,也可能不涉及机器学习。每个用例都需要专门的数据管道。

我们做什么?我们从自然语言处理领域借鉴经验,希望 Project GR00T 能成为机器人领域的通用时刻——即基础模型时代。在此之后,我们通过提示、蒸馏和微调等技术,将其重新适配到特定的使用场景中。我们期望这种“专精的通用”机器人将比当今所有现有的机器人系统都要强大得多。

这是我们运作的指导原则,但如何将这一理念变为现实?今天我将分享一些蓝图和三大原则。如果你从今天的演讲中只带走三样东西,那就是:数据金字塔原则、矩阵(Matrix)原则和基础智能体(Foundation Agent)原则。我日常的工作以及我们团队的研究,都遵循我今天分享的这些原则。

首先是数据金字塔。你是否想过为什么机器人技术如此困难?为什么自然语言处理先被解决,而我们还没有通用机器人?这里有一个被称为“莫拉维克悖论”的现象,即对人类来说容易的事情对机器很难,反之亦然。但你思考过原因吗?

我认为罪魁祸首在于数据层面。因为你可以从互联网上下载太字节(TB)级的高质量文本,但你无法从网上下载电机控制信号。我希望可以,但它并不存在。因此,对于机器人领域,我们需要构建自己的数据集。那么数据流水线是什么样的呢?

它比单纯训练文本基础模型要复杂得多。让我们从顶层开始向下梳理,顶层显而易见是真实机器人数据。你只需在真实的机器人硬件上收集一些人类演示操作。不幸的是,你的采集量受限于一个基本的物理极限:每天每台机器人仅24小时。

尽管如此,这些数据仍然极具价值,是一座金矿,因为它们与真实的机器人硬件直接对齐。那么我们如何收集这些呢?我们如何让数据收集尽可能直观和简单?今年早些时候,苹果发布了 Apple Vision Pro。

这带来了一种赛博朋克式的时刻。这是我们的纽约地铁场景,有人只是在空气中随机打字,看起来非常怪异。但在如今,这已成为常态。我们看到 Apple Vision Pro 采用这种方式,于是我们思考:能否将其应用于机器人领域?

因此,我们构建了一个系统,用户佩戴 Apple Vision Pro 后,即可对仿真环境和物理世界中的机器人进行遥操作。这里展示的是来自人形机器人的实体机械手,理念非常简单:Vision Pro 追踪你的姿态和手部动作,并实时重映射到真实机器人上。此外,你也可以在仿真环境中操作机器人。

通过这种方式,你可以在任何地方进行遥操作。这是 NVIDIA 构建的 Omniverse Cloud(云服务平台)。在此云上,你可以连接任何 XR 设备并遥操作那里的虚拟机器人。结果是我们拥有了一个非常直观的数据采集界面,右侧画面显示用户通过 Apple Vision Pro 的第一人称摄像头看到的景象。

你可以将其想象成电影《阿凡达》,戴上它后,你实际上被传送到了另一种躯体中。你现在处于人形机器人的身体里。这也是使用人形机器人的另一个优势,因为它有五个手指,与你相同。你不需要太多训练。

任何人来到这里——只需10分钟,你就能为我们收集数据。这里有一些来自我们实验室的视频,展示了用户进行遥操作的过程,动作实时传输给人形机器人。我们还可以执行更复杂的任务,比如洗碗。实际上,限制在于人形机器人的硬件能力,即硬件能做什么。

这就是我们收集真实机器人数据的方式,但受限于每天24小时,这还不够。因为我们知道基础模型对数据的渴求极大。如今训练任何合理的 Transformer 模型需要万亿级的 token。那么我们如何扩展规模?如何获取更多数据?

第二部分是我认为最有趣的内容,这也引出了我即将讲述的第二个原则:仿真。为什么我们在 NVIDIA 做这件事?在成为 AI 公司之前,NVIDIA 是一家图形技术公司。GPU 代表图形处理单元(Graphics Processing Unit)。那么图形公司是做什么的呢?

游戏引擎和仿真。巧合的是,仿真对机器人技术也超级有用。因此 NVIDIA 构建了一套工具,称为 Isaac Lab。它的作用是在 GPU 上并行运行物理仿真。基本上,一张显卡可以让你的仿真速度比实时快10,000倍。

通过这种方式,我们打破了每天24小时的物理限制。你不再仅仅受限于计算资源。举一个例子来说明这个数量级:这个角色通过单张 GPU 上仅两小时的计算时间,完成了相当于10年高强度训练的内容,从而掌握了令人印象深刻的武术技能。这非常像电影《黑客帝国》中的模拟训练室,你在现实世界中可能只花了几秒钟学习功夫,但感觉却像训练了许多年。

这是 Omniverse 平台。这里的赛车场景展示了仿真如何跨越“恐怖谷”,这得益于硬件加速的光线追踪技术。在这段视频中,没有一个是真实的像素。所有内容都是通过光线追踪实时渲染的。

由于我们可以用这些令人惊叹的细节水平渲染非常复杂的世界,这意味着我们也可以使用仿真来训练计算机视觉模型。这将更加准确,因为你可以查询仿真中每个对象、每个分割掩码的真实状态(Ground Truth)。我们可以利用这一点为机器人构建感知模型。

一旦我们拥有了仿真数据和真实机器人数据,我们仍然需要互联网上的所有数据。这就是常规的基础模型训练,例如 GPT-4o 和多模态基础模型的训练。你会从互联网上收集大量的文本和视频。机器人仍然需要从海量的在线视频中学习物理常识等知识。

这条线代表了最大量的数据——我指的是每天以艾字节(EB)计,可能还更多。但这同时也是噪声最大的数据源。而对于仿真,我们谈论的是每个 GPU 每天可能达到太字节(TB)级的数据量。它不仅包含像素,还包含动作信息。这引出了第二个原则:我们如何看待构建机器人技术。我将其称为“矩阵(Matrix)”原则。

还有两个问题。首先,我们是否生活在一个模拟世界中?有一个非常有趣的观点认为,我们现在都生活在“矩阵”——也就是一个模拟程序中。人类智能实际上是某个外星文明在其超级计算机上运行所涌现出的行为。他们的“英伟达”现在正在模拟在座的每一位,对吧?我不知道这是否为真,但有一件事我是确定的。

那就是机器人的未来将生活在模拟环境中。机器人将在模拟器中度过大部分生命时光。这也是我们打破每天24小时的限制,从而收集数以万亿计的高质量数据令牌(tokens)的唯一途径。那么,为什么模拟对训练机器人有效?这里只需记住一句话作为核心要点:

因为模拟一个问题比解决它更容易。让我重复一遍,模拟问题比解决问题更容易。以下是人工智能过去文献中一些极具说服力的例子。这是AlphaGo(阿尔法围棋)。

2016年,当AlphaGo在围棋比赛中击败李世石时——这是人工智能首次战胜人类冠军。整个围棋游戏可以用大约500行Python代码来模拟,这仅仅是围棋的规则。它极易模拟,却极难解决。

另一个我喜欢的例子是《我的世界》(Minecraft),这是一个非常简单的游戏。《我的世界》只是一个几百兆字节的可执行文件,但它包含了所有涌现的行为和你可以做的各种有趣事情。上网看看那些《我的世界》频道,你会发现一些绝对疯狂的事情。比如,人们在一砖一瓦地在游戏中建造整个霍格沃茨城堡。甚至有人在游戏中构建了一个功能正常的CPU电路,因为显然这个游戏是图灵完备的。

因此,你可以在《我的世界》中构建一个模拟中的模拟。如果你对这方面感兴趣的话,在我启动Project GR00T项目之前,我曾做过一个叫MineDojo的工作。这是一个在《我的世界》游戏中训练通用智能体的框架,我们提供模拟器作为人工智能的API接口。我们还提供了来自互联网的海量数据。如果你感兴趣,可以去查看MineDojo.org网站。

总之,模拟总是让我着迷。模拟一个世界比在其中做任何有趣的事情都要容易得多。那么给定这种模拟环境,我们能做什么呢?作为人工智能科学家,我们需要问:我们如何生成数据?我认为有两种方式:自我生成的数据和倍增的数据。这两种方式分别对应两种学习范式:强化学习和模仿学习。让我们看看如何利用模拟来实现这两者,并从强化学习开始。

什么是强化学习?你给人工智能一个奖励函数。基本上,这个奖励函数告诉你哪些行为是期望的,哪些不是。然后智能体会进行大量的试错以最大化该奖励。一个典型的例子是巴甫洛夫的狗。你给它一些条件刺激,一段时间后它会对奖励做出反应。因此,强化学习非常擅长训练那些我们甚至不知道自己是怎样完成的事情。

这里有一个问题:构建一个小脑需要多少个神经网络参数?人类的存在依赖于大量的潜意识处理。当你坐在椅子上、保持平衡、站立或行走时,实际上需要大量的神经处理能力,而你并没有意识到这一点。对于人形机器人来说,这个问题被称为全身控制(whole body control)。如果使用强化学习进行训练,则称为神经全身控制。

那么,全身控制在哪些方面有用途呢?有很多方面。比如特斯拉Optimus机器人的行走。导航需要全身控制。这是在实验室中使用Apple Vision Pro拍摄的视频,进行桌面操作时,使用双手就需要全身控制。这是波士顿动力(Boston Dynamics)的最新视频,机器人在保持站立平衡的同时操作物体。我们称之为全身局部操纵(whole body local manipulation)。

这同样需要全身控制。所以,回答之前的问题:实际上,要构建一个小脑,我们需要150万个参数——不是十亿。是150万个参数。

因此,我们训练了一个名为HOVER的网络来控制人形机器人的身体。基本上,该模型捕捉的是人类所做的潜意识处理过程,使我们能够拥有一个单一模型来学习如何协调人形机器人的电机(如手臂和腿部),以支持 locomotion(移动)和操作。这里大致介绍了这个神经网络的工作原理,我会发送论文链接供感兴趣者查阅,因为论文中有更多细节。但今天我们要关注的是直觉理解。

这个神经网络能够支持不同的命令格式,例如运动学位置跟踪(如所有关节的位置);局部关节角度——比如手臂之间的夹角;以及根轨迹跟踪,即你需要移动到的目标速度。这些是我们用来控制机器人的不同方式。你可以将它们视为提示(prompts)。HOVER可以接受这些内容的任意组合进行提示,这使我们能够使用不同的设备来捕获这些命令并远程操控机器人。

举几个例子,对于你刚才看到的VR设备Apple Vision Pro,这基本上就是头部和手部姿态跟踪。如果你希望机器人在站立时保持平衡,你可以使用Apple Vision Pro追踪三个点,其余部分由HOVER来决定如何让机器人站稳。对于RGB摄像头,如果你有一个对着你的RGB相机,并使用一些计算机视觉模型识别人类姿态,那就是全身姿态跟踪。

如果你穿着外骨骼设备,这是一种更先进的追踪方式,精度极高,那就是全身关节跟踪。而如果你只有操纵杆或PS5游戏手柄,你仍然可以控制机器人,但只能指定根命令。因此,HOVER实现了非常通用的控制接口,用于远程操控机器人、收集数据以及一般的控制。

以下是我们训练该模型的过程,非常简单。我今天谈论的所有想法和论文都极其简单,你不需要是机器人专家也能理解。基本上我讨论了这些控制模式。在模拟环境中,你会传入所有这些信息,以及我们所谓的“特权信息”(privileged information)。这些是你在模拟器中可以查询、但在现实世界中无法直接获取的信息。

比如,你可以知道机器人每个关节、原子的确切位置和速度,但在真实机器人中并没有这些信息。这就是我们所说的特权信息(privileged information)。基于所有这些条件,训练强化学习以获得控制机器人的“先知策略”相对容易。但这个策略作弊了,因为它查询的是现实世界中不存在的信息。因此,我们简单地屏蔽不同的控制模式。

我们还移除了这些特权本体感觉信息(privileged proprioception information)。然后,我们使用监督学习将其蒸馏为学生策略。这种两阶段过程非常简单且非常有效,因为如果直接使用强化训练,RL 往往不稳定;所以你想用简单的方式先进行 RL 预训练,然后在更困难的问题上进行监督学习。这就是两阶段蒸馏。一旦完成这一步,通过屏蔽不同的信息,HOVER 就变得可提示(promptable),因为它可以接受任意组合的输入。

这里有一些例子,比如你可以进行头部追踪、全身追踪,或者仅仅追踪机器人的三个点;你也可以结合路线速度进行追踪,这样它既保持姿态又向前移动,就像僵尸一样。我希望在下一个版本中,我们会训练出更自然、更好的姿态,但目前这就是我们能得到的效果。你也可以改变地形,它不必是平坦的。你可以在 Isaac Lab(GPU 加速并行模拟器)中变化所有的地形和障碍物。

因此,你可以在这个环境中运行数万个类人机器人。这不仅限于一种类型的机器人。任何可以在 Isaac 中模拟的东西,都可以接入训练流程。最终输出的是全身控制策略,你可以让机器人在保持平衡的同时跟随特定姿态并行走。未来,我们计划将其部署到更多机器人上。

所以在这个视频中,这是来自 GTC 的内容。并非所有机器人都运行神经网络;有些只是经典控制算法。但 HOVER 是具身无关的(embodiment agnostic)。好的,这就是强化学习。模拟的第二种类型和第二用例是进行模仿学习(imitation learning)。再次说明,这是 Apple Vision Pro 以及我们收集人类演示的设置。虽然这很直观,但收集这些演示仍然非常缓慢。你可以看到这并不是那么容易。

这需要大量精力。假设给定一个人类演示,这成本很高——比如你可能需要花几分钟才能收集到一个演示。在一个小时内,你只能收集到 20 个演示。这是非常、非常少的数据。如何将这种数据量成倍增加?这就是模拟的第二个用途。为了理解我们如何做到这一点,首先我们需要看看机器人仿真中包含什么。我认为主要有三件事:由艺术家创建的手工物体、手工制作的场景以及手动设计的任务。如果这样做,你就会得到这样的结果。

这是一个非常简单的场景。如果你想要更复杂的东西,就需要艺术家来创建这些资产。但如果我们让 AI 模型帮助我们自动化其中一些过程呢?比如对于手工物体,现在有一些文本到 3D(text-to-3D)模型非常优秀。那么我们可以让 AI 为我们生成大量资产吗?

我们将它们实例化在仿真中。对于手工制作的场景,最终它是 USD 格式(通用场景描述语言),USD 格式包含两部分:纹理和指定场景布局的代码。对于纹理,我们直接使用 Stable Diffusion。我们调用 AI,它可以合理地替换掉我们希望的所有纹理。不需要艺术家参与。

然后因为 USD 只是一些代码,NVIDIA 有一个名为 ChatUSD 的工具,基本上是对 LLM(大语言模型)进行微调以生成 USD。你可以为仿真生成所有不同的布局。对于任务,它是一堆 Python 代码。所以只需提示 GPT-4、Claude 3.5 或你喜欢的任何 LLM,让它生成代码。

我们在仿真中得到了多样化的任务集,包括煮咖啡和一些日常任务。将所有这些结合起来,我们推出了 RoboCasa,这是一个生成式仿真框架,其中的每个部分(或尽可能多的部分)都由不同的 AI 模型生成,从物体到任务,再到厨房的所有纹理和布局。在矩阵中,我们可以拥有 100,000 个不同的厨房。只要投入足够的计算资源,仿真并不在意这一点。

这就是 RoboCasa,一个生成式仿真框架。有了 RoboCasa,我们从现实世界中获取一个人类演示,然后可以重放它并将其倍增为 n 个不同的演示。以下是论文中的一些结果,我们仅使用现实世界数据训练了一个策略。这是重要的部分,也是核心结论:如果你将 RoboCasa 增强的仿真数据(包含所有这些变化)混合进来,视觉模型以及所有的变体,你将获得更好的开箱即用性能。

这只是初步结果。我们希望大规模扩展这一点,以便真正利用你在现实世界中负担不起的 10,000 个不同厨房。如果我们将此应用于类人机器人,这就是它在 Omniverse 渲染中的样子。类人机器人在执行一个动作,但它可以在 100,000 个不同的地方执行。这有助于我们训练非常强大的感知模型。

所以这是第一步:RoboCasa——它做的是某种视觉增强。然而,你看动作本身……收集起来仍然非常困难。你如何不仅增强视觉效果,还增强运动轨迹?这里有一个我们构建的系统来解决这个问题。

在左侧是人在仿真中收集的内容。基本上,任务只是将这两块拼在一起。仅此而已。这是一个人类演示。我们可以通过改变这些物体的位置以及机械手相对于这些物体的姿态来编辑这个人类演示。

因此,一旦你重放这个演示,它仍然会成功,但它将是一个机器生成的演示。为什么要让人类遥控并演示 1,000 种不同的配置,而你可以使用机器来生成这些呢?让机器教机器。我们构建的这个系统以及我们的设置算法被称为 MimicGen(模仿生成)。MimicGen 是一个非常通用的框架,因此可以应用于许多不同的任务。

他们在煮咖啡,插入方块、三层堆叠。MimicGen 会改变所有物体配置并生成成功的新运动轨迹,因此你可以免费获得这些数据,无需一遍又一遍地演示。如果机械臂和机器人硬件足够接近,你甚至可以将能力泛化到你没有的机器人上。我们都曾做过贫穷的博士生,我们只有一个机械臂。该怎么办?

你调用 MimicGen,就能获得其他买不起的机器人手臂的数据。它也适用于长视距任务,即多步骤的任务,比如准备咖啡。你需要从抽屉里取出胶囊,然后将其放入咖啡机中,以及整理厨房杂物和分类垃圾桶。这里有大量的变化。如果你希望人类一直进行遥操作,那么你需要数千条轨迹才能学习到一个好的模型。

但你可以使用 MimicGen 为其生成数据。你甚至可以完成非常精确的任务,比如这个需要轻微晃动以确保所有钉子和孔对齐良好的任务,以及需要将齿轮安装到位的精密工厂任务。使用 MimicGen,你可以为其生成大量数据。它在现实世界中也能工作。我们希望所有数据在现实世界中也同样有用。

这张图展示了 MimicGen 生成数据的规模以及训练出的策略的性能。很明显趋势是上升的,但也存在某种收益递减的情况:如果你使用一千个 MimicGen 生成的演示样本,然后将其扩展到五千个,并不会带来太多提升。因为第一,任务相对简单;第二,系统中存在一些限制,限制了其多样性的上限。

这是我们将 MimicGen 应用于单个机械臂的原始工作。接下来显而易见的事情是将其应用到双手上。对于这项任务,同样由 MimicGen 运行。这是一种双臂任务,我们称之为并行子任务,因为这两个手臂可以并行执行抓取动作,而在最后阶段则需要稍微顺序地操作。

这是第一种类型的并行子任务。接下来称为协调子任务,你需要双手精确配合以同时抬起托盘、同时取出盖子并将其放入盒子中。这需要正确地将变换应用到手上,这样一旦播放轨迹,一切仍然正确无误。此外还有顺序任务,其中包含前置任务和后置任务,下一个任务必须在前置任务条件满足后才能发生。

这里人形机器人正在将球倒入碗中,然后将其放置在绿色积木上。同样,如果你想使用 Apple Vision Pro 来遥操作这些变化,那将花费永远的时间完成所有变体,但你本不应如此。你也可以混合搭配:先进行并行生成,然后进行双臂协调操作。

我们可以将这种双手双工系统应用到一组不同的载体上,比如双夹爪设置、双手设置。包括托盘提升、抽屉操作、清理工作,当然还有作为人形机器人的场景,其中人形机器人能够煮咖啡、分类罐头、进行倾倒操作,我们可以从中生成大量数据。

稍微拉远视角看,这是 DexMimicGen,它是 MimicGen 工作的后续版本,专注于灵巧操作。一旦我们拥有这些数据,我们就可以训练策略。我们也可以研究不同神经网络架构之间的差异,既然我们现在有了更大的数据集。我们发现扩散策略(diffusion policy)的特定类型在所有这些方面表现最佳。

由于任务更加困难,随着运行 MimicGen 流水线,我们也展示了更好的扩展性。如果你从人类收集的一百个演示样本开始,成功率并不理想。但你可以使用人工智能:你可以使用 MimicGen 生成五十倍更多的数据。然后神奇地,任务开始起作用了。

我们还可以将 DexMimicGen 转移到现实世界。这就是我们要做的。所以我们让人进行遥操作,然后我们拥有这个 Real2Sim 流水线,其中真实轨迹在仿真中重放。我们在现实世界的数字孪生体中捕捉它。

然后我们运行 DexMimicGen 生成一个巨大的数据集,再将其应用回现实世界。所以这是一个 Real2Sim2Real(实到仿再到实)的流水线。你在现实中收集数据,在仿真中重放它,进行倍增操作。你可以在仿真中进行任何你想要的操作,然后将其转移回现实并提高现实性能。

这是使用仿真在环的一种方式。总结一下:我们有一个 RoboCasa,它将一个演示样本倍增为 n 个。然后你有 MimicGen 为你提供 n 乘以 n 更多的轨迹。我保证,这是我们要做的最复杂的数学运算了。在 Omniverse 上对人形机器人运行它。这就是我们看到的:我们有非常好的渲染质量,以及生成的高质量运动轨迹。

我想展示的是——这是 Elon 在 Tesla Optimus 上展示的片段,其中有一大群人类通过遥操作机器人来侍奉他们的机器人主宰。这有点反乌托邦色彩,人们一遍又一遍地做同样的任务。实际上,对于其中一项电池打包任务,人类可能需要数千个演示样本才能收集到足够的数据来训练一个有效的模型。

如果我们能运行仿真来倍增数据,我们就可以让所有这些人类免于这种命运。接下来,也是我想谈到的最后一个原则是基础智能体原则(foundation agent principle)。这也是我们构建 GR00T 基础模型的方式。

大多数机器人学研究都可以映射到这三个轴上:它能掌握多少种载体,能执行多少技能,以及能在多少现实环境中工作。这就是我所说的“载体”。在《星球大战》中,有如此多种不同类型的机器人。

我的问题是:我们能否拥有一个单一的神经网络来控制所有这些载体,这样我们就无需为每个机器人开发单独的流水线?大约两年前,我们有一项名为 MetaMorph 的概念验证工作,其中训练了一个可以控制数千种不同机器人的单一神经网络。

在这里,所有这些机器人都是程序化生成的。它们相当简单,所以这是一个概念验证,但你可以使用一套神经网络权重来控制它们。这里的想法也很简单:你取每个机器人,它们基本上是由关节组成的图。我们称之为运动学树(kinematic tree)。

你对机器人的身体进行深度优先搜索、深度优先遍历。你将能够将其展平为一系列令牌序列,其中每个令牌都附有一些物理属性。那么这看起来是什么样的呢?

这看起来像是一套用新语法写成的句子,其中该语法描述了机器人的形态。如果你拥有大量的机器人,就可以将它们转换为许多句子,且每个句子的长度可能各不相同。接着对这些句子进行分词处理,这就是所谓的“尖叫Transformer”(Screaming Transformers)序列模型。

我们正是这样做的,训练MetaMorph Transformer直接将序列映射为动作。虽然输入是可变长度的序列,但它们就像英语句子一样;我们将它们映射到不同长度动作上。我们在平坦地形行走、复杂地形或避障等不同任务中训练这些机器人,并展示仅使用一套神经网络权重结合强化学习和加速仿真,就能训练出一个统领全局的单一网络。

在GTC大会上,黄仁勋展示了各种不同的人形机器人身体结构,这也是MetaMorph 2.0的目标。我们希望打造一个能够控制所有人形机器人身体的单一模型,尽管它们彼此间存在细微差异。第二个维度是智能体所能掌握的技能数量。

我们展示了MimicGen是让机器人精通更多技能的一种方式,但能否自动化这一过程?这就是Eureka工作的突破点。我们训练了一个智能体,使其达到超人级别的机器人灵巧度——也许并非针对所有人,但肯定比我强,因为我从未像那样转笔过。

我从小就已放弃这项技能,现在我的AI可以为我糟糕的技术报仇了,毕竟我只是个平庸的人类。学习这里的技巧其实非常复杂,甚至难以明确如何为其指定奖励函数。

我们发现奖励函数本质上就是一堆Python代码。在Isaac Lab仿真器中,所有机器人仿真都是用这些Python API编写的。因此我们可以要求ChatGPT替我们完成艰苦的工作,给大语言模型(LLM)一个提示:“请找到一个能让影子手转笔的奖励函数”,并传入上下文,即Isaac Lab仿真器的API代码。

令我们惊讶的是,GPT-4或其他前沿模型大多时候都能正确实现奖励函数。这非常令人惊讶,因为编写这些奖励函数通常需要训练有素的机器人专家,需要极其熟悉物理仿真器。但像GPT这样的模型学习了世界上所有的文本,可能也阅读过我之前写的论文,因此能够胜任。

我们将生成的奖励函数传递给在一块GPU上并行运行的10,000个副本。通过在奖励函数上进行强化学习循环,我们能在约15分钟内快速获得结果并完成一个闭环。我们会采样奖励函数,调用大规模并行加速器进行训练,然后将结果反馈给GPT。

这些前沿模型在自我反思方面非常出色,它们可以调试并发现自身问题。有时它们会向你道歉然后写出更好的函数,我们只需重复此循环,使其编写的奖励函数越来越好。这里展示了GPT进行的一些奖励函数编辑示例,其复杂性不容小觑。

有时只是简单地更改超参数,但有时LLM会完全改变奖励函数的功能形式。偶尔,它会添加全新的组件来追踪角速度或对不同的关节角度施加惩罚。这里的操作非常复杂,但所有代码均由LLM迭代编辑而成。

经过几次迭代后,我们发现Eureka在专家编写的奖励函数方面逐渐变得超越人类水平。这是一个非常通用的框架,任何技能都可以提示Eureka去执行。事实上,针对不同轴向的转笔需要不同的奖励函数,而LLM毫无困难地解决了这个问题。

对于某些任务——例如对抗重力旋转笔——它也能写出解决该问题的奖励函数,这就是Eureka。在进行Eureka研究时,工作纯粹是在仿真中完成的。因此下一个问题是:如何从仿真转移到现实世界?

这引出了第三个维度,即“现实轴”,这里的现实指的是仿真加上真实世界。我们在这里看到了HOVER工作,因为对于HOVER,我们需要将策略转移到真正的人形机器人上。但HOVER是手工调优的,能否自动化它?因此我们引入了DrEureka。

要理解DrEureka,首先需要了解DR(域随机化)。这是一种非常简单的技术:在仿真中变化物理参数,如重力、摩擦系数、重量和尺寸等。因为在仿真中,物理效果永远无法像现实世界那样逼真;无论仿真正多么好,都不可能是完全真实的。仿真中总会存在一些不完美之处。

因此,与其创建绝对最精确的仿真,不如用计算资源来换取多样性。你运行许多种不同的现实情况,其中重力不同、摩擦系数也不同。关键在于:如果一个AI模型能掌握10,000种不同的物理参数,那么它很有可能泛化到第10,001种现实情况,即我们生活的物理世界。这就是域随机化的对称性原理,一个简单却极其有效的想法。

再次回到Eureka循环中,我们让GPT生成奖励函数。那么如何进行域随机化呢?通常人们依赖自身经验和过往论文来实现参数设置,但我们很懒,所以直接让GPT替我们完成,因为域随机化参数归根结底仍是Python代码。

令我们惊讶的是,LLM知道该怎么做,并且还能迭代改进它。一旦建立这个循环,我们就可以将其转移到现实世界。左侧是仿真环境,右侧是真实部署场景。我们训练机器狗行走,让DrEureka编写一些参数,然后在现实中无需微调即可零样本迁移。

这是Allegro手操纵立方体的场景,同样实现了向真实手的零样本迁移。

最后,我们决定做一件疯狂的事。我们要让机器狗在瑜伽球上行走。但问题是瑜伽球是弹性的,极难模拟。事实上,极少数的模拟器能正确做到这一点。在这里,我们只有一个刚性球体。

这个球甚至没有弹性。在模拟中它是刚性的,因此物理效果完全不对。现在我们运行 DrEureka,然后要求它转移到现实世界,这就是我们得到的结果:我们的学生带着机器狗在街上悠闲地走在瑜伽球上。当我把这个分享给公众时,我收到了一条评论。

有人实际上——在看到这项工作后——尝试在他们的真狗身上做这件事。他们的狗无法在瑜伽球上行走。我不会称之为超人类水平,但我认为这可能是某种“超级犬”级别智能的体现。这就是 DrEureka 的效果。退一步说,Eureka 的工作原理是你拥有一个大型语言模型(LLM),然后让它编写 Isaac API 代码来生成奖励函数。

这是一个循环,该循环涉及一个巨大的基础模型。给定这个奖励函数后,你拥有第二个循环进行强化学习,以产生一个小型神经网络,该网络基本上模拟了狗、机械手等。因此,Eureka 是一个双循环系统:外环进行推理,内环进行模型控制。而 DrEureka 则更进一步。

除了编写奖励函数外,它还为其编写 Sim2Real(仿真到现实)的配置。我的问题是,在未来对于 Eureka++ 版本中,为什么我们不能让它做更多事情?为什么不能要求 LLMs 承担更多工作?能否让它在不知道如何发明的情况下编写新任务、全新的模拟,甚至新的训练算法,并仅仅保持循环运行?

我的梦想是有一天,如果我们正确实现了 Eureka++,我所有的团队成员都将休假一周。当我们回来时,黄仁勋甚至都不会注意到,因为我们仍在向他汇报更新进度。这就是我们的目标。一旦你拥有所有这些维度并将它们推向右上角,那就是我们希望达到的状态:拥有一个单一的基础智能体,能够掌握各种不同身体结构并自动化执行多种技能。

同时它还能在不同模拟之间泛化,并最终应用于现实世界。人们就是这样训练 ChatGPT 的。它是一个序列模型,你输入文本,然后输出文本,无论是编写 Python、诗歌创作、摘要还是推理——这都不重要。ChatGPT 是通过在海量互联网文本数据上进行扩展训练来实现这一点的。

我相信这就是 GR00T 模型在形态上的样子:它接收一个表示你正在控制什么的身体规格说明作为输入,以及自然语言指令,然后输出动作。通过在海量的现实数据上进行扩展训练来训练 GR00T。我们如何做到这一点?我们需要一个计算平台来完成这项工作。这就是黄仁勋提出的 NVIDIA 的“三计算机”问题。

第一台计算机称为 OVX,基本上就是图形计算计算机。它的作用是生成令牌(tokens)。如果你使用 Transformer 术语来说,它会生成令牌;RoboCasa、MimicGen、Eureka——我在前面提到的所有这些仿真工作都在第一台计算机上运行。第二台计算机是 DGX 系统,也就是世界上那些 H100、H800。它们负责学习令牌。

它们接收生成的令牌,压缩并学习这些令牌以形成 Transformer 模型,这些都是基础智能体模型。最后,我们部署令牌。那就是 AGX 系统、Jetson [听不清]系列芯片,这些将运行在人形机器人上。因此,这些是从所有这些智能中部署令牌的计算机。

然后你可以在矩阵中的数字孪生体内再次验证其性能,从而完成三计算机问题。还有一个名为 OSMO 的软件编排框架,我们用它来调度所有异构计算工作负载。如果你刚才睡着了,别担心。这是你今天需要带回家的唯一一张幻灯片。

我们讨论了三个原则、数据金字塔以及为训练基础智能体提供数据的矩阵。然后我们谈到了作为计算平台的三台计算机,使得所有这些研究得以发生:三个原则和三台计算机。我认为解决机器人问题需要一段时间。这也许是最后一个 AI 难题,也是最难的 AI 难题。

在解决 GR00T 基础智能体的过程中,我们希望构建所有工具和研究成果来激励社区、提升社区水平,降低获取我们已建立的所有进步的门槛。我相信人形机器人将成为一个万亿美元的市场。我认为这并不具有争议性,因为我们讨论的是一旦拥有这些通用机器人大基础模型,整个劳动力市场将被自动化。

但用黄仁勋的话说,目前它是一个零万亿美元的市场,因为事情行不通。但正因为它是从零到万亿,今天为零而明天为万,所以我们需要立即开始为此工作。我相信没有具身智能就无法实现 AGI(通用人工智能)。

希望有一天,很快我们就能在硅基中构建出我们的“活跃小猫”。具身智能是我们的北极星。我相信 GR00T 掌握着通往这一未来的钥匙。请加入我们要登月的旅程。谢谢。