大模型解决机器人专业技能学习问题?很难 | 数智来信

石亚琼·2023年08月11日 08:01
大模型能大幅提升机器人对世界理解与技能泛化能力?是的。
我要联系

文 | 珞石机器人CTO韩峰涛

编辑 | 石亚琼

文章经授权转载

封面来源|IC photo

**

震惊!这是前言!

随着大模型的研究方向愈加广泛,业内领先企业和研究机构也陆续发布了一系列的机器人/具身大模型,尤其最近RT-2的发布,又一次引起了业内媒体的震惊体爆发,仿佛距离机器人接管世界已为时不远。当然,媒体关注多对于行业来讲是个好事情,正好也趁着这个热点梳理下大模型落地机器人的路径有哪些,我们需要什么样的机器人/具身大模型。 

我们知道,基于Internet-Scale数据预训练的语言和图像大模型(LLMs&VLMs)具备强大的语义理解、内容推理、图像识别、文本/图像生成、代码生成等能力,这些能力对于需要在真实世界里执行多种任务的通用机器人来讲至关重要。但是LLMs和VLMs在机器人领域落地效果并不好,其主要原因是这些模型欠缺真实物理世界的知识,导致其推理输出很难落地到实际机器人场景中。还有一部分原因是由于现有大模型主要进行语义推理和文本提示,而机器人需要的是可用的机器人运动指令,譬如机械臂末端位置指令或者底盘移动位置指令等,二者无法直接匹配。 

为了解决这些落地问题,来自不同机构和企业的研究人员开展了一系列工作,有直接使用Transformer Model进行端到端训练的,也有利用机器人技能数据集对LLM直接微调的,有专注于解决机器人高层(High-Level)决策问题的,有用于解决三维空间轨迹规划问题的,也有把大模型用于机器人底层(Low-level)运动规划问题的,从而产出了一系列的具身大模型。 

本节将简要介绍近期发表的PaLM-E、RT-1、RT-2、RoboCat、VoxPoser所代表的几种主流Grounding方案,并探讨大模型与机器人结合的可能方向。 

还有其他很多与机器人相关的工作和项目譬如MOO、Gato、BC-Z、VC-1、R3M、VIMA、DIAL、AdA、CLIPort,Voltron等,篇幅限制在此不再赘述,感兴趣的可以去查看主页或者翻阅论文,有很多思路可以借鉴: 

PaLM-E:PaLM-E: An embodied multimodal language model;链接:https://ai.googleblog.com/2023/03/palm-e-embodied-multimodal-language.html

SayCan: Do As I Can, Not As I Say:Grounding Language in Robotic Affordances;链接:https://say-can.github.io/

RT-1: RT-1: Robotics Transformer for real-world control at scale;链接:https://ai.googleblog.com/2022/12/rt-1-robotics-transformer-for-real.html

RT-2: RT-2: New model translates vision and language into action;链接:https://www.deepmind.com/blog/rt-2-new-model-translates-vision-and-language-into-action

RoboCat: Stacking our way to more general robots;链接:https://www.deepmind.com/blog/stacking-our-way-to-more-general-robots

VoxPoser: VoxPoser: Composable 3D Value Maps for Robotic Manipulation with Language Models;链接:https://voxposer.github.io/

ChatGPT for Robotics: ChatGPT for Robotics: Design Principles and Model Abilities;链接:ChatGPT for Robotics (microsoft.com)

MOO: Open-World Object Manipulation using Pre-Trained Vision-Language Models;链接:Open-World Object Manipulation using Pre-Trained Vision-Language Models (robot-moo.github.io)

BC-Z: BC-Z: Zero-Shot Task Generalization with Robotic Imitation Learning;链接:https://sites.google.com/view/bc-z/home

CLIPort: CLIPort: What and Where Pathways for Robotic Manipulation;链接:CLIPort

VC-1: Where are we in the search for an Artificial Visual Cortex for Embodied Intelligence?;链接:Visual Cortex (VC-1) (eai-vc.github.io)

R3M: R3M: A Universal Visual Representation for Robot Manipulation;链接:https://sites.google.com/view/robot-r3m/?pli=1

VIMA:VIMA: General Robot Manipulation with Multimodal Prompts;链接:VIMA | General Robot Manipulation with Multimodal Prompts (vimalabs.github.io)

EmbodiedGPT: EmbodiedGPT: Vision-Language Pre-Training via Embodied Chain of Thought;链接:EmbodiedGPT

Voltron: Language-Driven Representation Learning for Robotics;链接:https%3A//github.com/siddk/voltron-robotics

DIAL: Robotic Skill Acquisition via Instruction Augmentation with Vision-Language Models;链接:https://instructionaugmentation.github.io/

Gato A Generalist Agent;链接:https://www.deepmind.com/blog/a-generalist-agent

AdA:  Human-Timescale Adaptation in an Open-Ended Task Space;链接:https://sites.google.com/view/adaptive-agent/

几个典型的机器人大模型

PaLM-E: An embodied multimodal language model

为了更好的将图像语言大模型的能力和知识迁移到机器人领域,研究人员融合了Google当时最新的大型语言模型 PaLM 和最先进的视觉模型 ViT-22B ,使用文本和其他多模态数据(主要来自于机器人的传感器,比如图像、机器人状态、场景环境信息等)代替之前的纯文本作为输入,输出以文本形式表示的机器人运动指令,进行端到端的训练,从而得到了用于机器人任务的多模态大模型PaLM-E(Embodied)。 

PaLM-E总览 

 

下图简明展示了PaLM-E的机器人操作能力,例如,给机器人下达文字指令:“把抽屉里的薯片拿来给我”,模型会输出以下机器人的运动指令: 

  • 移动到抽屉旁边;

  • 打开抽屉;

  • 把薯片从抽屉里拿出来;

  • 把薯片带到用户旁边;

  • 放下薯片;

  • 任务结束;

PaLM-E具备拆解和执行长程任务(Long Horizon Task)的能力,以及较强的抗干扰能力(人为的移动或者打掉薯片) 

 

PaLM-E的任务推理频率为1Hz,机器人按照5Hz的控制频率执行Low-level运动 

 

关于机器人执行部分的内容,可以参考Robotics@Google的另一项工作 Talking to Robots in Real Time 。 

PaLM-E最大的贡献,是展示了将图像和语言大模型的知识迁移到机器人领域的路径之一,有了大模型的通识理解和推理能力,机器人可以将原有能力更好的泛化到新场景中。

SayCan:Do As I Can, Not As I Say

如上述PaLM-E章节所述,大模型可以把高层级的任务拆分成若干个在语义上符合逻辑的子任务,但是由于LLMs普遍缺乏真实物理世界的经验,无法判断其输出会对环境产生什么样的影响,也不知道真实环境和机器人的状态信息以及机器人是否具备执行这些子任务的能力,所以其生成的看似逻辑上合理的子任务指令不一定能在某个实际的场景中被机器人顺利执行。

譬如,对于任务“我把瓜子皮撒地上了,能不能帮忙清理一下?”,大模型输出“使用吸尘器清洁”是符合逻辑的,但实际上执行这项任务的机器人可能还不会使用吸尘器,甚至,家里根本就没有吸尘器。 

SayCan把大模型的任务拆解能力与机器人实际可执行的任务这二者结合起来进行机器人规划和控制 

 

因此,SayCan的设计逻辑很简单,将决定机器人应该如何执行任务的决策拆成两个部分,Say代表大模型LLM,用于输出可用的高层级运动指令,Can代表机器人在当前环境下能做的事情,二者通过值函数(Value Function)的方式结合起来,共同决定选择哪条指令用于实际执行。 

SayCan的决策流程示意图 

 

如上图所示,给机器人系统输入“你怎么把苹果放在桌子上?”,对于该任务而言,大模型(Say)最可能的运动输出顺序是 

  • 捡起苹果;

  • 放下苹果;

  • 找到苹果;

但是对于机器人(Can)来讲,通过传感器(摄像头)环视一圈发现周边并没有苹果可捡,大模型输出的第一条运动指令“捡起苹果”是无法被执行的,因此机器人机器人输出的运动顺序是 

  • 找到苹果;

  • 。。。

结合LLM输出与值函数(VF),SayCan系统最终输出的第一条指令是“先找到苹果”,避免了在周边没有苹果的时候去指挥机器人捡起苹果从而无法完成任务。 

PaLM 540B vs FLAN 137B,PaLM-SayCan的所有分项测试结果均好于FLAN-SayCan

此外,在SayCan的实验过程中,研究人员得出了类似的结论,即模型能力的增长会导致整个机器人系统能力的进步。

RT-1:Robot Transform - 1

RT-1是由Robotics@Google和Everyday Robots的研究人员于2022年开发的机器人End-to-End控制模型,主要特征有: 

基于Transformer的模型,包含一个FiLM-conditioned EfficientNet用于处理图像和文字输入得到vision-language tokens,接着一个TokenLearner用于压缩输入给Transformer模型的Token数量以提升模型推理速度,以及一个Transformer模型;

采用模仿学习的方式进行训练,输入自然语言和图像,输出机器人运动指令(底盘位置和机械臂末端位置); 

RT-1使用自然语言和图像作为输入,输出离散的机械臂和底盘动作(位置和姿态) 

 

RT-1研究两个事情,第一通过Transformer Model学习得到机器人的技能,第二如何使用自然语言控制机器人的运动。

RT-1的研究团队阐述了一个很有意义的观点: 

When it comes to robotics, usefulness is determined not just bywhat robots can do, but also how we tell them to do it — for example, how we instruct a helper robot to clean up a cup of spilled coffee. That’s where natural language understanding comes into play. 

尤其是上面“How we tell robot to do it”,阐述了人机交互(Human Robot Interface)的重要性。一个机器人技能再多再厉害,如果使用的难度很高很难部署,我们也很难说这个机器人是很有用的。 

RT-1不是传统意义上的大模型,只是主体使用了Transformer架构,总体参数量只有35M,Transformer部分的参数量只有19M,是面向机器人操作单独训练的一个多任务机器人控制模型。 

此外,RT-1很重要的一个工作成果是为期17个月的机器人操作训练数据收集,作者团队使用了fleet of robots的描述,其实只有13台机器人,整个数据收集过程使用了人工遥操作演示示教的方式进行。最后得到了一个包含700多种任务,130000多个执行片段的数据集。这个数据集后来也被应用到多个具身大模型的训练中。

前面讲的SayCan用大模型做任务理解和任务拆分(谷歌这帮人称之为High-Level),把一个任务拆解为若干个子任务(Sub-task)或者技能(Skill),RT-2用大模型做技能学习(Skill,Low-level),学习到的技能用于支持SayCan的任务执行。 

RT-2:Robot Transform - 2

发布RT-1之后,团队发现这货泛化能力不行啊,遇到没见过(Unseen)的任务(包括物体和环境)就傻眼,但是如果靠人工示范继续去搞更多的数据集去接着训练RT-1的模型,又是个费时费力效率很低的事,那有没有更好的办法让机器人能更快的获得更好的常识性任务的泛化能力呢? 

用大模型啊! 

于是: 

We study how vision-language models trained on Internet-scale data can be incorporated directly into end-to-end robotic control to boost generalization and enable emergent semantic reasoning. 

RT-2的目的是为了研究将使用互联网规模数据(Internet-scale data)训练得到的VLM大模型直接用于端到端的机器人控制,提升机器人操作的泛化能力和语义推理能力。

RT-2抛弃了从头训练Transformer模型的方式,而是直接采用已有的VLM模型作为主模型,再使用更适合机器人任务的fine-tuning方法对其进行微调。简单来讲,RT-2是使用机器人数据集进行fine-tuning且其输出的text被设计成了机器人位置指令形式的VLM(PaLM-E、PaLI-X)。

此外,为了更符合机器人的应用,RT-2主要研究的是利用大模型的优势直接生成Low-level的机器人运动指令的内容。 

使用Web数据和机器人数据集co-fine-tuing已有的VLM大模型,并将模型的Output设计成机器人目标位置的格式 

 

当然为了防止原有VLM模型性能退化,在fine-tuning环节同时使用了原有的Web数据和机器人操作数据集进行训练,作者称之为co-fine-tuning(这一点个人认为不是特别关键的点,相对容易想到和实施)。 

RT-2证明了使用机器人技能数据集对已有的LLMs或者VLMs进行微调,可以快速的利用VLM的海量通识能力,大幅提升机器人的任务执行成功率和泛化能力。

其他的所谓VLA中的Action,更多是发文章层面的创新点,原因之一是直接生成机器人的Action并不是RT-2专属,RT-1也是Action-Generation Model,其模型输出形式也是机器人的位置指令(The RT-1 Robotics Transformer is a simple and scalable action-generation model for real-world robotics tasks.);其次RT-2生成的Action只有机械臂末端的期望位置(Position)和姿态(Orientation),在传统机器人控制中,这最多是应用指令级别的API,甚至都不算是典型的Low-Level API范畴(详细说明参考本文第三节关于High-Level和Low-Level的内容)。 

此外,因为RT-2的Backbone模型是PaLM-E 540B,所以无法运行在机器人的硬件上,只能部署在云端,而RT-1可以直接运行在机器人上。 

RoboCat:机器猫?

当前训练机器人大模型/具身大模型面临的最主要的挑战之一是高质量训练数据非常欠缺,前面提到的RT-1、RT-2以及PaLM-E中所使用的机器人数据集绝大部分数据是通过人工示范与人工遥操作的方式收集的,费时费力,效率很低。如果可以通过某种方式自动生成机器人的训练数据,无疑可以节约大量时间和人工成本。 

RoboCat基于DeepMind最新的多模态通用大模型 Gato (西班牙语中“猫”的意思)创建,除了能实现与前面所讲的其他机器人大模型/具身大模型类似的场景识别、任务推理拆解、机器人控制功能之外,一个比较重要的创新是在之前需要大量人工远程操作演示的方式来提供机器人数据集的基础上,RoboCat可以通过自己生成机器人训练数据集的方式来更快完善其能力。

整个过程首先通过一系列的机器人数据集对于Gato模型进行第一轮的训练,之后便进入作者称之为自改进(self-improvement)的训练环节,该环节包括一系列之前机器人没有见过的任务,整个学习过程包括5步: 

对于每个新任务或者新机械臂,通过人工控制机械臂,收集100-1000个演示过程;

针对该新任务/机器人,对RoboCat进行微调,生成一个新的分支;

新生成的分支自己在新任务/机械臂上练习10000次,产生更多的训练数据; 

把人工示教和机器人自己生成的数据并入到RoboCat已有的数据集中;

使用最新的数据集训练新版本的RoboCat; 

使用最新的数据集训练新版本的RoboCat;

首先通过人工示教数百次建立新任务基础能力,然后通过机器人自己生成的训练数据,加快其技能学习速度。 

在长达50页的论文中,RoboCat团队研究了如何在单一模型里支持多个机器人,多任务间技能迁移的效果如何,跨机器人的技能迁移效果如何,虚实迁移(sim-to-real)的效果如何,模型架构和参数缩放如何影响模型性能等多项内容,有时间的话推荐认真读一下。 

这种通过机器人自动生成大批量训练数据的方式,倒是跟哆啦A梦从异次元口袋里掏出很多宝贝有些相似。 

VoxPoser:Composable 3D Value Maps for Robotic Manipulation with Language Models

Google系的几个机器人大模型,总体思路都是侧重于任务理解、拆分和逻辑推理,对于机器人运动控制本身尤其规划问题涉及较少,只是用端到端训练的方式生成了简单且离散分布的机械臂末端位置和底盘移动指令,未考虑连续路径和轨迹规划等更偏机器人领域的内容。 

VoxPoser与前几个方法较大的不同点是,没有将LLM和VLM用于常见的输入文本+图像输出机器人运动的端到端控制方法,而是使用VLM和VLM的能力来将机器人的观测空间(一般为三维空间和待操作的对象)转换为一个3D值图,然后就可以使用成熟的路径搜索算法(VoxPoser使用了概率路线图Probabilistic RoadMap)在3D值图上搜索生成可用的机器人运动路径。有了可用路径,接下来做轨迹规划和控制机器人运动就是当前机器人领域解决的比较好的问题了(当然VoxPoser中并未涉及更多高性能轨迹规划的讨论)。 

VoxPoser总览图 

 

如上图所示,给定工作环境的RGB-D信息和语言指令,利用LLM的代码生成能力与VLM进行交互,生成一系列的机器人观测空间的3D affordance maps and constraint maps(统称为值图),组合而成的值图接下来被用于机器人的路径规划,整个过程并未引入任何额外的训练。 

总体上,VoxPoser的方法与传统机器人界的思路更为贴近,即给定可用的工作与构型空间,使用较为成熟、可控的基于随机采样的路径规划方法进行规划,而不是把几乎所有的工作都交给大模型来做。 

这种组合各种技术的优势的方案我认为是目前相对较好的研究方向,应该也是最适合、最可能落地的方向。 

机器人大模型到底有多机器人?

本节我们讨论目前的具身大模型/机器人大模型里,到底有多机器人? 

全都是在抓取?

目前大模型在机器人领域的现状可以概况为: 

理解看到是什么东西、大小、形状、冷热、颜色,以及针对这些物体的基本操作如捡起/扔掉/移动(不考虑精度和性能指标),会简单的数学和逻辑推理用于推进任务。

虽然论文上都归为Manipulation,但实际上还非常初级,距离常规理解的操作(从拧螺丝钉到组装宜家家具)还有较大差距;譬如,在RT-2中展示了一些失败的案例,移动笔的时候未考虑圆形的笔会滚动&控制周期太慢无法快速响应笔的运动;移动香蕉的时候未考虑长条形状物体的重心,机器人推动香蕉时无法得到期望的运动; 

RT-2未能成功的两个案例,主要原因是在操作过程中缺乏对物理信息的考虑 

 

归纳起来,大模型在以下场景的性能表现非常的Poor: 

通过特定部位抓取物体,例如门把手,这里通用Grasping的问题,  @李淼robot  是专家;

机器人数据集里没有见过的新动作,或者学会如何使用新工具,涉及泛化和Zero-shot问题;

需要灵巧性和精确性的场景,绝大部分技能型动作都属于此类; 

需要多层间接推理的场景,此处受限于大模型的能力;

对于第三个问题,很重要的一个因素是,只靠给机器人输入文字和图像是无法让机器人学会很多很专业技能的,包括从简单的二维平面写毛笔字、雕刻,到需要复杂动作和力交互的场景。 

正好最近在学游泳,为了更好的理解动作,在跟着教练上课之余,也会在B站上观看教学视频,因此深刻体会到了如果不自己下水刻苦训练,即使看遍世界上所有的游泳教材和游泳视频,你也学不会游泳这个道理。只有自己下水去实际练习,体会教练说的“感受水与肢体的交流”,增强水性,才能慢慢的学会。 

而如果有教练在关键的点给予专业的纠偏和指导(专家系统&RLHF),则可以大幅缩短学成的时间。 

机器人也是一样,它可以通过文字、图片、视频学会雕刻的动作,但是无法通过图片把自己练成雕刻大师,这里面有大量的与物理交互相关的经验知识无法通过文字和图片表达。 

High-Level与Low-Level

很多大模型论文里说的Low-Level控制接口与传统机器人控制中所说的Low-Level接口概念有较大区别,为了避免混淆,这里做一个简要说明。 

关于机器人控制层级有很多种分法,为方便理解大模型论文和机器人的结合点,在本文中将控制层级分为5级: 

任务级Task Level:我咖啡洒了,你能帮忙吗;

技能级Skill Level:找到抹布、捡起抹布、移动抹布、放下抹布;

动作级Motion Level:直线运动、圆弧运动、样条曲线运动、手抓开合;

基元级Primitive Level:根据动作和机器人物理限制进行轨迹规划完毕之后插值生成的控制指令,包括目标位置、姿态、速度前馈、力矩前馈,一般周期要做到至少500Hz,常见的控制周期现在已经做到1000Hz以上。如果是力控制,这周期一般回到2000~4000hz;

伺服级Servo Level:运行在伺服驱动器里的位置速度电流三环控制; 

主流机器人大模型的控制层级 

 

谷歌系的一系列文章中提到的High-Level指的是任务级,Low-Level指的是技能级。而传统机器人控制领域对于Low-level的定义一般是在动作级,多数在基元级。

大模型不适合做偏底层的精确运动控制,实际上因为有成熟的Model based的方法可用,也没有迫切需求引入新方法。此外,从实际发表的成果来看也可以知道大模型不适合做精确的运动控制,目前几乎所有的具身大模型输出的都是离散的目标位置点,未考虑连续运动的轨迹平顺性、时间最优、功耗等额外因素,虽然VoxPoser考虑了路径生成的概念,但是对于后续的轨迹规划并未探讨太多(轨迹部分可以更换底层接口更完善、运动性能更好的机器人来解决),如果原速看这些模型生成的控制轨迹会发现机器人是断续运动,颇有当年玩网络游戏被lag卡疯的既视感。 

我卡卡卡 

 

实时性Real-time

另一个存在差异的点是关于Real-time实时性的定义。 

RT-1和RT-2所谓的实时性(Real-time)其实只能做到1~5Hz的推理和控制指令生成速率,这里的Real-time更适合对应是机器人在线规划的Online概念,即根据反馈在线生成新的控制指令。 

而机器人控制中的Real-time跟频率和控制周期无关,实时系统严格的定义指“能够在指定或者确定的时间内完成系统功能,对外部或内部、同步或异步事件做出响应的系统”,系统的正确性不仅依赖系统计算的逻辑结果, 还依赖于产生这个结果的时间,所谓“Later answer is wrong answer”。所以运动控制领域的实时性是个时间范围内确定性高的概念,不是频率高的概念。 

当然从控制精度和平顺性的要求出发,机器人底层实时控制的控制频率也确实很高,一般位置控制频率要大于500Hz,力控制更高一般超过2000Hz。 

上帝的归上帝,凯撒的归凯撒

从目前的研究内容中我们可以观察到一个很有意思的现象,即AI背景的工程师和机器人背景的工程师在用大模型时的区别:AI背景的试图打造一个具备超强泛化能力的通用机器人AI系统,完成机器人所需的从感知-决策-规划-控制的全流程任务;而机器人背景的则更多把大模型当做工具,期望使用具备一定通用智能的大模型系统让机器人快速学会某些特定技能。 

大模型能大幅提升机器人对世界理解与技能泛化能力?是的。

大模型能解决主流机器人专业技能学习问题?很难。

从具体的机器人技能学习角度来看,基于数学模型或者针对特定应用专门训练一个小模型(一定要引入人工示范和主动干预),大概率是比预训练大模型+微调更合适、效率更高、效果更好的方式。 

譬如,根据图像生成机器人运动在机器人领域最常见的方向就是视觉伺服Visual Servoing,相比前面介绍的大模型生成的帕金森一样的运动能力,基于传统AI和Model-base方法可以用相比大模型少的多的计算量实现远比现在更加平滑、可用的运动控制效果: 

因此,大模型在机器人的作用仍然是在决策、任务拆解、常识理解上。大模型不具备、也不适合做具备实时性和精确性要求的机器人规划和控制任务。大模型负责常识、决策、推理,模型控制+专家知识负责专业技能,二者各自负责各自擅长的,结合使用是目前看到相对较快的落地方式。 

此外,大模型非常适合处理Corner Case,因为靠建模和针对场景训练的小模型无法穷举涵盖全场景,这部分工作可以由大模型的通识理解与强泛化、推理能力处理。 

从机器人应用角度来看,大模型是加速器和工具,不是目的。 

现在大模型+机器人还处在内卷升级,群魔乱舞的阶段,加一个新的方法或者把旧的方法用到新的场景,就会获得非常不错的效果,发一篇有影响力的论文,但是我们还是要回归本源,回归到大模型对于机器人最重要的作用:大模型负责常识能力,传统机器人控制方法负责专业技能,这也是大模型在机器人领域应用最为Promising的方向,详细内容参考上一篇关于机器人和大模型的文章“任务级交互”章节,在此不再赘述。 

 

 

本文来自微信公众号

 

+1
84

好文章,需要你的鼓励

参与评论
评论千万条,友善第一条
后参与讨论
提交评论0/1000

报道的项目

珞石机器人
我要联系
工业机器人控制系统与轻型工业机器人供应商

下一篇

如果爆发一场全面的“经济战”,对各方来说都是一场必输无疑的游戏。

2023-08-11

36氪APP让一部分人先看到未来
36氪
鲸准
氪空间

推送和解读前沿、有料的科技创投资讯

一级市场金融信息和系统服务提供商

聚焦全球优秀创业者,项目融资率接近97%,领跑行业