最近看了记录短片《斯坦福AI六十年》。从1962年到2022年,机器人或者具身智能的研究从第一天起就贯穿了人工智能的发展。2023年,这六十年中提出的大多数问题,从象棋,视觉,语音识别都获得了解决——除了机器人。而如何创造通用机器人便是我日思夜想的问题。做科研自然是令人疲乏的,然而思考这个问题却是令人兴奋的。
23年可谓是具身智能在中文圈被知晓的元年。这种爆红是我不必再和每个VC解释我们的究极理想并不是制造一个机械躯壳,而是未来能彻底解放人类劳动力的“人”。纵观历史,每一件新兴事物的爆红都伴随着机遇和泡沫。作为麻省理工具身智能实验室的一名博士生学者,我希望通过这篇随笔让世界各地的从业者更好更理性地了解具身智能的机遇与挑战,为领域带来可持续性的发展。
以ChatGPT为代表的大模型让我们瞥见了未来的一隅。机器人大模型在过去一年里出现在了几乎每一个机器人公司的PPT里。PaLM-E,RT1,RT2等论文也抛砖引玉式的向大家展现了可以让大模型直接输出控制信号这个愿景。那么大语言模型的思路会给我们带通用机器人么?要解答这个问题,我愿意把“大模型”这个词展开为“大模型与大数据”。大语言模型不光需要十亿级别的神经网络参数,还需要在大量的网络数据上进行预训练。例如Llama3这样的开源大语言模型光预训练就使用了15万亿个token。相比之下,机器人的数据采集就难得多。人们每天都在网络上拍照片,发文字,自然而然地产生着这两个模态的数据。你会拿着排队买到的网红奶茶拍照发朋友圈,但是永远不会在配字里写上“我的大拇指关节分别转动了30度,20度,45度来抓住这杯奶茶”。我认为只要有足够多的高质量机器人数据,机器人大模型绝对能带来接近通用的泛化性,但是机器人的动作数据哪里来是一个不容乐观的问题——这些直接输出动作模态的大模型的泛化性也因此非常有限。这个问题即便是在文字-图像这样较为成熟的多模态模型里仍然存在——我在Google Deepmind实习期间的论文SpatialVLM发现最好的多模态大模型都常常左右不分,因此可以推测目前很多有动作模态输出的“机器人大模型”之所以能操纵机械手正确地往左往右,很可能只是在有限的动作数据上过拟合了而已,并不是魔法般地因为结合了文字-图像基础模型而泛化。[水印,原文出自https://boyuan.space/]
好消息是工业界和学术界大家都在着手解决机器人数据缺乏的问题。我与很多学者愿意将其中的努力概括为两个维度,灵巧性(dexterity) 与泛化性(generalization)。灵巧性主要反映在在单一场景和任务比较固定情况下能让机器人做成多难的任务,例如在同一张桌子上用同一台卷笔刀削放在差不多同一个位置的同一支铅笔。泛化性则研究让机器人能去新的场景下执行新的任务,哪怕这些任务看起来很简单很蠢,例如在任何房间的任何桌子上能用手把任何指定的铅笔推到指定的地方。让机器人兼具灵巧性与泛化性是具身智能的终极目标。
目前在灵巧性维度上最火的方向是模仿学习中的行为克隆——依靠人工采集关节动作数据,再用监督学习的方法训练机器人。在硬件层面,ALOHA式的关节到关节mapping,VR眼镜的手部动作捕捉,特斯拉的动捕手套,RT-X数据集都是学术界和工业界进行更高效数据采集的尝试。这些方法中的大多数需要给每个数据采集员配一台昂贵的机器人,但特斯拉擎天柱,figure AI到斯坦福炒虾机器人已经让我们看到了行为克隆的潜力。行为克隆让一些特别惊艳泛化需求有限的任务能用简单的算法完成。但与此同时,因为人工采集动作数据的效率低,所有demo中展现的泛化性都是极其有限的——如果把香蕉换成橙子并移动个半米,换一张花纹不一样的桌子,这些视频里的机器人用他们发布时在有限数据上训练的模型就无能为力了,更不用提跨任务了。当然,你也可以收集多任务的数据,例如香蕉和橙子的数据混起来,并采集很多不同初始位置的demo,但是除非你的任务数量多到大语言模型那种程度,剥香蕉和剥橙子上训练的动作模型还是不能解决剥芒果的问题。很多通用人形机器人公司也采用了行为克隆作为切入点,因为它最容易出好看的视频——没人能把你视频里的场景换成从没见过的任务来测试你模型的泛化性。公众也更喜欢看机器人做日常家务的视频而不是在实验室桌子上推方块——哪怕做家务的视频背后需要雇一个人在背后手动操作。对此我的看法是,目前行为克隆路线解决的主要是灵巧性而不是泛化性问题,难以带来通用机器人但也很重要。目前很多流水线上的任务就符合模仿学习的适用条件,且具有极高商业价值,从业者并不一定要刻意追求通用机器人。[水印,原文出自https://boyuan.space/]
如果算一笔账,通用机器人公司投入大量金钱去用模仿学习的思路采集机器人大模型的数据,确实用上一段落提到的方法有可能采集到指令微调所需要的数据规模的一部分 (Llama3的指令微调用了一千万条人工标注的数据,这里类比为一千万个不同任务的机器人数据),但也千万别忽略了用于预训练的数据可能是指令微调的千千万万倍。
因此也有很多学者认为行为克隆本身无法带来通用机器人,并以泛化性为核心进行研究。当我在谈论机器人缺乏数据的时候,我指代的是我们缺乏包含动作模态的数据。然而我们可以退而求其次通过大量其他模态的数据去获得动作。举个例子,虽然SORA这样的视频模型不直接输出手指头每个关节转了多少度这样的信息,但它生成的视频仍然包含了大量人类动作的信息,可以被人体姿态估计提取。如果你进入到一个新的场景中去,假设视频预测模型足够好,它就能根据新场景的图片和文字的任务描述去生成带有技能的视频,例如MIT和Google的UniPi。不光如此,当视频模型与文字模型结合的时候,我们就拥有了一个(不严谨意义上的)世界模型,可以和大语言模型一样用搜索(search)产生数据自我提升自我学习,而不只是单步策略policy。世界模型甚至可以与基于模型的强化学习(model based reinforcement learning) 结合。正是因为视频数据取之不竭,我作为一个具身智能学者在过去一年里也短暂地放下硬件把自己的科研方向转移到对视频的探索上,让视频模型不光能生成好看的艺术视频还能在机器人需要的物理规律和任务上有好的表现。
除了视频世界模型,大规模强化学习也是有可能带来泛化性的路线。作为曾经的强化学习研究者,我曾经很长一段时间都对强化学习的两大问题感到绝望——需要人工设计的场景模拟和需要人工设计的奖励函数。如果要让机器人在一个房间里学会一个任务,我就需要手动给这个房间建模输入到模拟器里,并且设计一个好的奖励函数告诉机器人它在某一次尝试中做的有多好。这两者曾经都需要极其大量的人工参与,根本不能大规模铺开到泛化所需要的场景和任务数量。但是生成式人工智能改变了这一切——我们现在可以很容易地生成大量3D物体,也逐步能够生成大量场景。多模态模型虽然还很孱弱,但是在一些任务上已经标记任务的成功与否,或者把大任务拆分成小任务让智能体学习动作,甚至和我之前论文里那样标注更加细节的设计到距离等的非稀疏奖励函数。GenSim已经展示了生成简单的机器人任务,而当3D场景生成成熟时,VLM足够便宜时,我们将看到真正让人惊艳的大规模强化学习。模仿学习也很容易与强化学习增强其效果。
在此之外,传统的机器人动作规划(motion planning)对解决通用机器人的数据问题也至关重要。虽然很很多灵巧任务必须通过人产生的数据(关节到关节演示或视频)学习,这些灵巧任务中很大一部分子任务确实花在非常基础的接近物体(reach), 接触物体(contact),移动物体和躲避障碍上。这些子任务的数据完全可以靠动作规划生成进行预训练,节约人工的时间。例如,波士顿动力的spot机器狗可以非常可靠地自动捡起放在不同环境里的奇形怪状的物体,且不会撞到障碍物,这种泛化性如果要用行为克隆达到会需要极其夸张的人工数据采集。上一段讲大规模强化学习时已经提到了未来生成式AI生成场景的潜力,而有了这些场景之后把强化学习替换为动作规划可能会达起到更高的效率。记得在我申请PhD时,一位教授曾在面试中问我怎么看待end2end(端到端)的方法在机器人中的应用。我给出的解答是,数据足够的情况下端到端会做的很好,然而我们需要先花数十年用模块化的方法去分析实践形成足够好的数据闭环。这个思路在特斯拉的自动驾驶中获得了很好的验证——在数据不够的时候,规划算法视觉网络模块化地结合可以先让车跑起来,在一定时间后用产生的数据与用户数据混合在一起训练端到端自动驾驶,孕育了FSD12。我相信在通用机器人中动作规划也会在前期起到相同重要的作用。
我可以负责任地告诉大家具身智能一定是下一个一百年最令人激动的技术,并且我们在有生之年很有希望见证通用机器人的诞生。但也正因为我太热爱这个领域了,我也更愿意看到社会细水长流地投入通用机器人的发展——看科研工作者如我导师Russ所说的那样,“可以以结果为导向的科研,但不可以网红视频为导向”;看到政府和投资人在长线看好具身智能的同时,不因为硬件公司的融资需要而盲目相信机器人大模型;看到创业者勇往直前,用细分领域的成功为真正的通用机器人铺路。而我自己也愿意用自己的一生给世界带来真正的通用机器人。
2024/06/16
陈博远
记于前往西雅图的航班上