食品工业 首页 > 解决方案 > 食品工业

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

随着大模型的研究方向愈加广泛,业内领先企业和研究机构也陆续发布了一系列的机器人/具身大模型,尤其...

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

发布时间:2024-01-06 10:24:39   来源:欧宝彩票

  随着大模型的研究方向愈加广泛,业内领先企业和研究机构也陆续发布了一系列的机器人/具身大模型,尤其最近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等,篇幅限制在此不再赘述,感兴趣的可以去查看主页或者翻阅论文,有很多思路可以借鉴:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  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的海量通识能力,大幅度的提高机器人的任务执行成功率和泛化能力。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  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的方向,详细内容参考上一篇关于机器人和大模型的文章“任务级交互”章节,在此不再赘述。

  本文由「石亚琼」原创出品, 转载或内容合作请点击转载说明;违规转载必究。

  推出供应链大模型产品「CubeAgent」,「壹沓科技」想构建“员工+AI Agent”的智能办公方式 新科技创业

  云鲸张峻彬:2024年扫地机市场或进入平稳竞争期,新公司入局机会不大 36氪专访

  一个智能锁创业者的复盘:创业十年刚刚成为一个60分的CEO 36氪专访

相关产品
  • 【48812】英特尔发布五项新技能开展:集成光电、神经拟态核算、量子核算、保密机器编程

    查看详情+
  • 盛通教育:AI时代编程在未来将要成为各行各业必备的基础

    查看详情+
13916152339