当前位置: 首页 > 科技观察

GoogleScientistsTalk:具身推理如何实现?让大模型“说”机器人的语言

时间:2023-03-11 23:50:43 科技观察

随着大规模语言模型的发展,能否利用其能力引导机器人理解复杂指令,完成更高级的任务?而在这个过程中,你会面临哪些挑战?近日,致远社区邀请到谷歌研究科学家夏飞博士做题为“LanguageandVision-BasedEmbodiedReasoning”的报告,详细介绍了团队在这一新兴领域的前沿工作。作者简介:夏飞目前在谷歌大脑机器人团队担任研究科学家。他的主要研究方向是机器人技术在非结构化复杂环境中的应用。代表作有GibsonEnv、iGibson、SayCan等,其研究曾被WIRED、华盛顿邮报、纽约时报等媒体报道。夏飞博士毕业于斯坦福大学,师从SilvioSavarese和LeonidasGuibas。在CVPR、CoRL、IROS、ICRA、Neurips、RA-L、NatureCommunications等会议和期刊发表多篇文章。他最近的研究方向是基础模型(FoundationModels)在智能体决策过程中的运用。他的团队最近提出了PaLM-SayCan模型。01背景机器人的机器学习近年来取得了长足的进步,但是仍然存在比较大的问题。机器学习需要大量的数据训练,但机器人产生的数据非常昂贵,机器人本身也会有损。人类通过童年时与物质世界的玩耍和互动来学习许多物理定律。受此启发,是否可以让机器人与环境进行交互,获取这些物理信息来完成各种任务呢?将机器学习应用于机器人技术在很大程度上依赖于模拟环境。对此,夏飞博士及其同事提出了GibsonEnv(环境)和iGibson等工作。前者侧重于视觉环境的重建,后者侧重于物理模拟。通过对现实世界进行三维扫描和重建,并通过神经网络渲染视觉信号,创建模拟环境,让各种机器人进行物理模拟,从时间传感器到驾驶员的学习控制等。在iGibson环境中,机器人可以学习与环境的更丰富的互动,例如学习使用洗碗机。夏飞博士认为,上述工作代表了互联网AI向具身AI的转变。以往AI训练主要基于ImageNet、MSCOCO等数据集,属于互联网任务。EmbodiedAI需要AI的感知和行动形成一个闭环——AI必须根据感知的结果来决定下一步的行动。夏飞的博士论文《大规模仿真嵌入式感知和机器人学习》是关于机器人仿真放大后的学习、感知和推理。近年来,基础模型在人工智能领域发展迅速。一些研究人员认为,与其依赖模拟环境,还可以从基本模型中提取信息来帮助机器人做出决策。夏飞博士将这个新方向称为“FoundationModelforDecisionMaking”,他和他的团队提出了PaLM-SayCan等工作。02PaLM-SayCan:让语言模型引导机器人1.为什么机器人难以处理复杂的远程任务?PaLM-SayCan团队共有45位作者。这是GoogleRobotics团队和EverydayRobots之间的合作项目。目的是探索利用机器学习改变机器人领域,让机器人提供数据,提高机器学习能力。该研究集中在两个问题上:非结构化的复杂环境,以及让机器人在日常生活中更有用。虽然人们已经有了像Siri或Alexa这样的个人助理,但机器人技术却没有。夏博士举了这样一个例子:当饮料洒了,我们想向机器人说明情况,请求它帮忙。或者如果你运动后累了,请它提供饮料和零食。研究希望机器人能够理解并执行这些任务。目前的难点在于,机器人做长期或长距离的任务还很困难,对于需要复杂规划、常识和推理的任务仍然无能为力。原因有两个方面。首先是机器人技术缺乏良好的用户界面。传统机器人在执行取放(Pick&Place)任务时,通常采用目标条件(targetconditioning)或单热条件(One-hotConditioning)方法。Goal-conditioning需要告诉机器人目标是什么,让机器人执行将初始条件改变为目标条件的任务。这需要先向机器人演示完成后的任务条件是什么。One-hotConditioning采用One-hot编码,用0~99对机器人可以完成的所有任务(比如100个任务)进行编号。每次需要执行时,给机器人一个编号,它就会知道要完成什么任务。但是one-hot条件的问题是用户需要记住每个任务对应的代码,而one-hot代码并没有获取每个任务之间的依赖信息(比如完成一个task对应的代码序列)目标)。这些都导致目前的机器人只能完成短距离的任务,通常是抓取和放置,而且机器人本身是静止的而不是移动的。此外,环境也仅限于实验室等场景,往往无人值守。2.机器人语言模型:如何让它“说”机器人的语言?为了解决这些问题,团队想到了使用基础模型。语言模型可以代替目标调节,通过语言清晰无歧义地描述任务。同时,该语言还包含任务步骤之间的依赖信息,例如菜谱上的第一步和第二步,以帮助机器人学习。此外,语言还可用于定义远程任务,解决模仿学习方法的局限性。在机器人上使用大型模型可能会带来一些挑战。最重要的是确定机器人输出的语言。大模型是基于人类自然语言训练出来的,它输出的任务可能是机器人无法完成的。而且语言模型没有根据机器人的数据进行训练,所以它不知道机器人的能力。二是接地问题。大模型没有亲身体验过物理世界,缺乏具身信息。三是机器人自身在大模型引导下的安全性和可解释性。语言模型的偏见可以通过它们与物理系统的连接而被放大,从而产生现实世界的后果。有一个可信度的例子:当人类用户与谷歌的LaMDA模型交流时,用户问模型“最喜欢的岛屿”,而模型回答希腊克里特岛,也能回答出一些理由。但是这个结果是不可信的,因为AI给出的结果应该是“我不知道我最喜欢哪个岛,因为我从来没有去过任何一个岛”。语言模型的问题在于它没有与现实世界进行交互,只是根据统计规律输出最有可能的下一句。如果在机器人上使用一种语言模型,不同的模型会给出不同的结果,其中一些对于驱动机器人执行任务没有用处。例如,如果用户要求机器人“清理打翻的饮料”,GPT-3可能会说“你可以使用真空吸尘器”。这个结果并不完全正确,因为真空吸尘器不清洁液体。如果是LaMDA车型,LaMDA可能会说“Doyouwantmetofindacleanerforyou?”延长对话的长度无助于完成任务。如果是FLAN模型,它会回复“对不起,我不是故意的”。并且不理解用户的意图:对话到底是什么?仍然需要解决问题?因此,在机器人上使用大型语言模型存在一系列问题。PaLM-SayCan致力于应对这些挑战。首先是让大模型说出机器人的语言,方法是Few-shotPrompting(少样本学习)。例如,构造“把咖啡拿到柜子里”、“给我一个橙子”等任务,并给出相应的步骤(如1-5和1-3)。然后,用户给模型一个指令:“把一个苹果放在桌子上”。在经过前面步骤的提示后,模型会自行寻找并组合合适的任务步骤,并生成一个计划来一步步完成任务。需要注意的是,大型模型的交互方式主要有两种,一种是GenerativeInterface,根据输入生成下一个Token;另一个是ScoringInterface,它计算给定Token自然函数的相似度。PaLM-SayCan采用打分的方式,语言模型会更稳定,容易输出想要的结果。在放置苹果的任务中,模型对各个步骤进行评分并选择合适的结果。3.Bridgingthegapbetweenthelanguagemodelandrealworld:lettherobotexploretheaffordancesofenvironment还有一个问题需要解决:语言模型在生成任务步骤时不知道机器人当前可以做什么。如果机器人面前没有苹果,机器人就无法完成放置苹果的任务。因此,这就需要语言模型知道机器人在当前环境和状态下可以完成哪些任务。这里需要引入一个新的概念,叫做RoboticAffordances,这也是本篇工作的核心。Affordances翻译成中文叫做affordability,这个概念是美国心理学家JamesJ.Gibson在1977年前后提出的,定义为agentinan环境,在当前状态下能做什么代表了它的可供性。Affordances可以通过监督学习获得,但这需要大量的数据和标注。对此,团队采用了强化学习的方法,利用Policy的价值函数来近似affordance。例如,训练机器人抓取环境中的各种东西。训练结束后,让机器人在房间里探索。当它看到面前有一个物品时,捡起这个物品的价值函数会变得很高,从而取代可用的物品。性别预测。结合可供性和语言模型,我们得到了PaLM-SayCan算法。如上图所示,左侧是语言模型,针对用户给出的指令,对机器人能够完成的任务进行打分,计算完成子任务有助于完成整体任务的概率。右边是价值函数,代表在当前状态下完成每项任务的概率。两者的乘积表示机器人成功完成对整体任务有贡献的子任务的概率。在苹果的例子中,当前状态下机器人面前没有苹果。要完成这个任务,首先要做的就是找到一个苹果,所以找到苹果的可负担性得分比较高,而抢苹果的得分较低。找到苹果后,抢苹果的可见性得分增加,执行抢苹果任务。重复这个过程,直到完成总任务。03更具体的智能工作:提高模型推理能力,利用环境反馈形成闭环1.ChainofThoughtPrompting:理解复杂的常识除了PaLM-SayCan,夏博士和他的同事们还完成了其他相关工作。在Prompt方面,团队提出了ChainofThoughtPrompting(可以理解为一种解题思路)的工作,目的是让语言模型拥有更多的推理能力。标准的Prompt模式是设计问题模板并给出答案。模型在推理时输出答案,但有时模型给出的答案是错误的。因此,ChainofThoughtPrompting的目标是在提供问题的同时为模型提供解释,这可以显着改善模型的结果,甚至在某些任务中超过人类水平。该模型在处理否定句时容易出错。例如,人类用户问“给我一个水果,但没有苹果”。模型倾向于提供苹果,因为问题和可执行选项中都有苹果。借助思维链提示,可以提供一些解释。例如,模型会输出“用户想要水果,但不是苹果。香蕉是水果,不是苹果。我可以给用户一根香蕉。”ChainofThoughtPrompting还可以解决更微妙的否定请求。例如,表示对咖啡因过敏的用户要求机器人喝一杯。过敏是另一种微妙的否定形式,机器人可能会以传统方式拿起含咖啡因的饮料(不理解过敏代表什么否定)。而ChainofThoughtPrompting可以解释过敏等,提高推理效果。2.内心独白:纠正错误,回到正确的执行轨道。结合大型模型进行机器人决策和环境交互也是一个重要的研究方向。团队提出了InnerMonologue的工作,目的是让语言模型根据环境的变化回忆过去的决定,并从错误的指令或环境造成的事故中恢复过来。例如,当人类回家时,他们发现所选的钥匙无法打开门。这时候人们就会选择换一个键试试,或者改变旋转的方向。这反映了基于环境反馈的错误修正和新动作的更新。内心独白就是这样运作的。比如在抢可乐的过程中,如果可乐掉了,后续的任务就无法完成,所以需要通过InnerMonologue等工作来检测任务是否成功完成,将反馈反馈到决策中过程,并根据反馈信息做出新的决策。决定。如图所示,InnerMonologue工作包括一个活动场景描述(ActiveSceneDescription)和一个任务成功检测器(SuccessDetector)。当人发出指令时,模型可以执行指令并激活场景描述来辅助机器人进行决策。训练过程仍然使用Few-shotPrompt方法,因此可以从一个实例中举一反三。例如,当机器人被指示去取饮料时,它会询问人类是去取可乐还是苏打水。另一个案例是语言模型对历史信息的推理。很多时候,人类会在下达命令后改变主意,或者在改变多条指令后要求机器人完成“刚才的任务”。这里并没有具体说明“刚才的任务”,这就需要模型回溯历史,看看之前的任务是什么。除了英文,InnerMonologue目前还有中文和其他语言版本。经过其他领域的实验,团队发现这种环境反馈的方式可以完成一些非常复杂的闭环规划任务。04Q&AQ:PaLM-SayCan的大语言模型是从头训练的吗?仍然只使用模型。A:大预言模型不需要微调,已经包含了大量的决策信息。比如1750亿参数的GPT-3,或者PaLM都可以,已经包含了足够多的任务规划和序列信息。Q:在InnerMonologue的作品中,Agent也会主动提问吗?这是怎么吸收的?A:我们使用语言模型和提示法。当机器人完成一项任务时,会出现“andask”和“andcontinue”两个选项。问还是继续取决于上下文语义是否有歧义。问:机器人如何知道物品在哪里(比如抽屉里的薯片)?如果未来机器人的能力逐渐增强,在探索过程中搜索空间会不会太大?A:机器人对物品存储位置的认知目前是硬编码的,不是自动过程。但是大语言模型也包含一定的语义知识,比如物品在哪里。这种语义知识可以减少搜索空间。同时,您还可以根据找到物品的概率进行探索。目前,夏飞团队发表了解决这一问题的新作品,其核心思想是构建自然语言索引场景表征。参考网站nlmap-saycan.github.io问:另外,近几年兴起的分层强化学习是否为复杂任务规划提供了一些启发?PaLM-SayCan类似于分层强化学习,有底层技能和上层任务规划。可以说是分层方法,但不是分层强化学习。个人比较看好这种分层的方式,因为在做任务规划的时候,没必要把每一个细节步骤都做一遍,那样会很浪费时间。任务规划可以使用海量互联网数据进行训练,但底层技能需要物理数据,因此需要与环境交互学习。Q:PaLM-SayCan真的是用来做机器人的。有没有什么根本性问题没有解决?如果作为日常保姆的替代品,需要多久才能实现?A:目前还有一些基础性问题没有解决,不是简单的工程问题。从原理上来说,机器人的底层运动控制和抓取是一个很大的挑战。我们一直没能做到100%成功抓取,这是个大问题。当然,已经可以为行动不便的人提供一些价值。但如果真的是商用产品,目前还不太可能。任务成功率90%左右,不符合商业要求。Q:机器人规划的成功率是否受限于训练数据集?A:机器人的规划能力受限于训练语料。在语料库中很容易找到一些说明,比如“扔掉垃圾”等等。但是语料库中几乎没有“将机器人的两指爪子向右移动10厘米”这样的语料库,因为人们不会在网上留下这样的信息。这就涉及到信息粒度的问题。目前,受限于语料库,机器人只能完成粗粒度的任务。另一方面,细粒度规划本身不应该由语言模型来完成,因为它包含了太多的物理信息,很可能无法用人类语言来描述。一种思路是可以通过模仿学习(参考BC-Z工作),或者代码生成(参考团队最新工作https://code-as-policies.github.io/)来实现细粒度操作.大模型更大的作用是作为用户的交互界面,解释人类给机器人的指令,分解成机器可以执行的步骤。再者,语言可以做高层的语义规划而不需要更多的物理规划。如果要实现细粒度的规划任务,还是要靠模仿学习或者强化学习。