当前位置: 首页 > article >正文

【论文阅读】Grounding Language with Visual Affordances over Unstructured Data

Abstract

最近的研究表明,大型语言模型(llms)可以应用于将自然语言应用于各种各样的机器人技能。然而,在实践中,学习多任务、语言条件机器人技能通常需要大规模的数据收集和频繁的人为干预来重置环境或帮助纠正当前的policies。在这项工作中,我们提出了一种新的方法,通过利用自我监督的视觉语言启示 visuo-lingual affordance模型,从现实世界中的非结构化、离线和无重置数据中有效地学习通用语言条件机器人技能,该模型只需要用语言注释总数据的1%。我们在模拟和现实世界的机器人任务中进行了广泛的实验,评估了我们的方法,在具有挑战性的calvin基准上实现了最先进的性能,并在现实世界中使用单个policy学习了25个不同的视觉运动操作任务。我们发现,当与llm结合使用,通过少镜头提示将抽象的自然语言指令分解为子目标时,我们的方法能够在现实世界中完成长时间、多层的任务,同时需要的数据比以前的方法少一个数量级。代码和视频可在http://hulc2.cs.uni-freiburg.de.        

I. INTRODUCTION

大规模语言建模的最新进展在将世界语义知识桥接到机器人指令跟随和规划[1]、[2]、[3]方面产生了有希望的结果。实际上,使用大型语言模型 (llm) 进行规划需要拥有大量不同的低级行为,这些行为可以无缝地组合在一起以智能地在现实世界中行动。学习这种感觉运动技能并以语言为基础通常需要大量大规模的数据收集工作[1],[2],[4],[5],频繁的人工干预,将技能限制为模板拾取和放置操作[6],[7],或在更简单的模拟环境[8],[9],[10]中部署policies。人类明显简单的任务,如将水倒入杯子中,很难教机器人做,也被称为moravec悖论[11]。这就提出了一个问题:我们如何以可扩展和数据高效的方式在现实世界中学习各种视觉运动技能,如下所示指令?

先前的研究表明,将机器人操作分解为语义和空间路径[12],[13],[6],提高了多模态信息的泛化、数据效率和理解。受这些路径架构的启发,我们提出了一种新颖的、样本高效的方法,通过利用自监督的视觉语言启示模型,从现实世界中的非结构化、离线和无重置数据中学习通用语言条件机器人技能。我们的主要观察结果是,我们可以用一个基于语义概念的高级流和一个基于3D空间交互知识的低级流来分层分解目标达成问题,而不是通过扩展数据收集来学习如何使用单个端到端模型从任何当前状态达到任何可实现的目标状态[14],如图1所示。

图1:当与大型语言模型配对时,hulc++能够从现实世界中的抽象自然语言指令中完成长期、多层任务,例如“整理工作空间”,而无需额外培训。我们利用视觉启示模型将机器人引导到语言所指的可操作区域附近。一旦进入这个区域,我们就会切换到一个7-dof语言条件视觉运动器policy,它是从离线、非结构化数据中训练出来的。

具体来说,我们提出了分层通用语言条件策略 Hierarchical Universal Language Conditioned Policies 2.0(hulc++),这是一个分层语言条件agent,它将hulc[10]的任务无关控制与vapo[13]的以对象为中心的语义理解相结合。hulc是一个state-of-the-art语言条件模仿学习agent,它学习7-dof目标,端到端达到policies。然而,为了共同学习语言、视觉和控制,它需要大量的机器人交互数据,类似于其他端到端agents[4]、[9]、[15]。vapo提取了非结构化数据的自监督视觉启示模型,不仅加速了学习,而且还被证明可以提高下游控制policies的泛化能力。我们证明,通过扩展vapo来学习语言条件启示,并将其与基于hulc的7-dof低级policy相结合,我们的方法能够直接从图像中连续跟踪多个长期操作任务,同时需要的数据比以前的方法少一个数量级。与之前的工作不同,之前的工作依赖于昂贵的专家演示和完全注释的数据集来学习现实世界中的语言条件agents,我们的方法利用了一种更具可扩展性的数据收集方案:非结构化、无重置且可能次优的远程操作游戏数据[16]。此外,我们的方法只需要用语言注释总数据的1%。大量实验表明,当与将抽象自然语言指令翻译成一系列子目标的llm配对时,hulc++可以在现实世界中完成长时间、多阶段的自然语言指令。最后,我们表明,我们的模型在具有挑战性的calvin基准[8]上设定了一个新的技术水平,通过7自由度控制,从高维感知观察中连续跟踪多个长期操纵任务,并通过自然语言指定。据我们所知,我们的方法是第一个明确旨在从现实世界中纯粹离线、无重置和非结构化数据中解决语言条件的longhorizon、多层任务的方法,同时只需要1%的语言注释。

II. RELATED WORK

在基础语言和视觉的进步推动下,机器人社区对构建语言驱动的机器人系统的兴趣日益浓厚[17],[19]。早期的工作侧重于定位引用表达式[20]、[21]、[22]、[23]、[24]中提到的对象,并使用预定义的运动基元遵循拾取和放置指令[25]、[6]、[26]。最近,端到端学习已被用于研究融合感知、语言和控制的挑战性问题[4]、[27]、[28]、[1]、[10]、[9]、[15]、[5]。由于其灵活性,从像素进行端到端学习是建模通用agents的一个有吸引力的选择,因为它对对象和任务的假设最少。然而,这种像素到动作模型通常具有较差的采样效率。在机器人操作领域,光谱的两个极端是cliport[6],另一方面是agents,如gato[5]和bc-z[4],其范围从需要几百个专家演示如何通过运动规划拾取和放置物体,到需要几个月的专家演示数据收集来学习视觉运动操作技能以实现连续控制。相比之下,我们取消了收集专家演示的要求以及手动重置场景的相应需求,以从非结构化、无重置、远程操作的播放数据中学习[16]。另一个正交工作线通过使用预训练的图像表示[29]、[6]、[30]来引导下游任务学习,解决了数据效率低下的问题,我们在这项工作中也利用了这一点。

我们提出了一种新的分层方法,结合了两种范式的优势,从高维相机观察中学习语言条件、任务无关、长视野policies。受将机器人操纵分解为语义和空间路径的工作思路的启发[12],[13],[6],我们提出利用非结构化数据的自我监督启示模型,将机器人引导到语言指令中提到的可操作区域附近。一旦进入这个区域,我们就会切换到一个单一的多任务7-dof语言条件视觉运动器policy,它也是从离线、非结构化数据中训练出来的。
 

III. METHOD

我们将方法分解为三个主要步骤。首先,我们从非结构化、远程操作的数据中训练一个语言条件启示模型,以预测提供输入语言指令的对象的3d位置(第iii-a节)。其次,我们利用基于模型的规划向预测位置移动,并切换到本地语言条件的、基于学习的policy与场景交互(第iii-c节)。第三,我们展示了如何将hulc++与大型语言模型(llm)结合使用,将抽象语言指令分解为一系列可行的、可执行的子任务(第iii-d节)。

从形式上讲,我们的最终机器人policy被定义为混合物:

具体而言,我们使用投影的末端执行器位置和来自启示模型的预测像素之间的像素距离来选择使用哪个policy。如果距离大于阈值,则预测区域远离机器人当前位置,我们使用基于模型的policy移动到预测位置。否则,末端执行器已经接近预测位置,我们继续使用基于学习的policy。因此,我们将α定义为:

由于启示预测以语言为条件,每次agent收到新指令时,我们的agent都会根据α(s,l)决定使用哪个policy。将无模型policy活动的区域限制在提供人机交互的区域附近具有使其更具采样效率的优点,因为它只需要学习局部行为。

A. Extracting Human Affordances from Unstructured Data

我们的目标是学习一个启示模型 affordance model ,该模型可以在给定自然语言指令时预测世界位置。与之前需要手动绘制分割掩码的启示学习方法不同[31],我们自动从非结构化、人类远程操作的游戏数据中提取启示[16]。利用游戏数据有几个优点:它收集起来既便宜又可扩展,包含一般行为,而且不是随机的,而是由人类的启示知识构建的。具体来说,游戏数据由一个长的未分段数据集D组成,该数据集D包含用户在没有特定任务的情况下远程操作机器人提供的语义上有意义的行为。全状态动作流被重新标记,以将前面的状态和动作视为达到访问状态的最佳行为[16]。此外,我们假设少数随机序列(不到数据集的1%)用描述序列中正在完成的任务的语言指令进行注释。

为了从非结构化数据中提取视觉启示,我们使用抓取器动作作为启发式方法来发现与任务完成相关的场景元素。考虑以下场景:一个随机序列τ=,其中k表示窗口大小,用语言指令注释。如果序列中的任何状态si,动作ai包含一个抓取器关闭信号,我们假设在末端执行器的位置有一个执行任务l所需的对象。为了学习视觉-语言启示模型,我们将endeffector世界位置投影到相机图像上以获得像素点,并用所述像素和语言指令l注释前面的帧,如图2所示。直观地说,这允许启示模型学习预测与完成任务l所需的对象相对应的像素。

图2:从人类远程操作的非结构化、自由形式的交互数据中提取语言条件视觉启示的过程的可视化。我们在遥操作期间利用夹具打开/关闭信号将末端执行器投影到相机图像中,以检测无向数据中的启示

在测试期间,给定预测的像素位置,假设现有的相机校准,需要深度信息来计算基于模型的policy应该移动到的3d位置。我们的模型不是依赖于感官深度观测,而是通过使用夹具闭合过程中端部执行器的位置作为监督来训练,以产生估计的深度。我们公式的一个关键优势是,通过从视觉语言特征预测深度,我们的模型可以更好地适应场景中可能发生的部分遮挡

B. Language-Conditioned Visual Affordances

我们的视觉语言启示模型,见图3,由一个带有两个解码器头的编码器-解码器架构组成。第一个头预测图像上的分布,表示每个像素成为提供点 afforded point 的可能性。第二个头预测高斯分布,从该分布中采样相应的预测深度。两个头共享相同的编码器,并以输入语言指令为条件。从形式上讲,给定一个由视觉观察I和语言指令l组成的输入,启示模型Fa产生一个输出o,即(1)逐像素热图,指示提供命令任务的区域,以及(2)相应的深度估计d。我们将这个映射表示为。 

图3:系统架构概述。hulc++首先处理语言指令和来自静态相机的图像,以预测提供的区域并将机器人引导到附近。一旦进入这个区域,我们就会切换到语言条件模仿学习agent,它从夹具和静态相机接收rgb观察结果,并学习端到端达到policies的7-dof目标。这两个模块都从相同的自由形式、非结构化数据集中学习,只需要1%的语言注释。

1) Visual Module:

视觉预测模块在给定输入的情况下生成热图A。为了训练它,我们在A的所有像素上应用softmax函数。这导致图像上的分布V,其中所有像素值的总和等于1。

同样,通过将所有值初始化为零,目标T的形状与V相同。然后,我们使用与当前状态输入对应的投影位置的像素生成一个二进制one-hot像素图。最后,我们利用交叉熵损失优化了视觉预测模块:

其中。该优化方案[32]允许视觉模块学习图像上的多模态置信度,其中具有最高值的像素表示给定输入的最可能的图像位置。在推理过程中,我们使用密集像素输出预测A来选择像素位置

启示性预测遵循U-Net[33]架构,在该架构中,我们从LingUNet[34]中汲取灵感,在瓶颈后对三个解码器层反复应用语言条件。

2) Depth Module:

如前所述,我们可以通过将感兴趣像素pt变换到相机帧来计算深度模块的目标,以获得,其中该点的z坐标对应于真实深度。虽然我们计算了真实值,但典型的深度传感器存在测量误差。因此,为了设计一个对深度误差进行建模的系统,我们使用地面真值深度信息通过最大化对数似然来训练高斯分布

如图3所示,深度模块由一组线性层组成,这些层将编码的视觉语言特征作为输入。在这里,语言调节是通过将自然语言编码连接到多层感知器的前两层来完成的。网络的输出是高斯分布d∼的参数,在推理过程中对其进行采样以获得深度预测d。用于训练完整启示模型的总损失函数被定义为启示模块和深度预测模块损失的加权组合

C. Low-Level Language-Conditioned Policy

为了与对象交互,我们学习了一个目标条件policy,它在环境动力学下,以当前状态和自由形式语言指令为条件,输出在的动作。我们注意到agent无法访问环境的真实状态,而是可以进行视觉观察。我们使用基于hulc[10]的通用目标达成policy对低级policy进行建模,并使用多上下文模仿学习[9]进行训练。我们利用了用户提供的语义上有意义的行为的长非结构化数据集d,这些数据集d是我们之前在第iii-a节中用来学习启示的。为了学习任务无关的控制,我们利用目标重新标记[35],将这些短期目标图像条件演示输入到一个简单的最大似然目标条件模仿目标中:

然而,当学习语言条件策略时,不可能将任何访问状态重新标记为自然语言目标,因为目标空间不再等同于观测空间。lynch等人[9]表明,将少量随机窗口与事后语言指令配对,可以学习一个单一的语言条件视觉运动器policy,该运动器可以执行各种各样的机器人操纵任务。这里的关键见解是,求解目标图像或语言目标的单个模仿学习policy,可以主要从未标记的游戏数据中进行学习控制,并将语言注释的负担降低到总数据的1%以下。具体来说,给定多个上下文模仿数据集,具有不同的任务描述方式,多上下文模仿学习在所有数据集上同时训练单个潜在目标条件的policy

D. Decomposing Instructions with LLMs

使用启示模型将机器人引导到语言指令提供的区域,然后利用低级policy执行任务,原则上可以将多个语言指令链接成一行。虽然自然语言为任务规范提供了一种直观和可扩展的方式,但要连续输入低级语言指令可能不切实际,例如“打开抽屉”、“现在拿起粉红色块并将其放在抽屉里”、“然后拿起黄色块并将它放在抽屉内”来执行整理任务。理想情况下,我们希望给机器人一个抽象的高级指令,比如“整理工作空间并关闭所有灯”。与zeng等人[7]类似,我们使用标准的预训练llm,将抽象语言指令分解为一系列可行的子任务,方法是用自然语言命令(格式为注释)的几个输入示例与相应的机器人代码(通过少量提示)配对。我们利用llm的代码编写能力[36],[3]生成可执行的python机器人代码,这些代码可以翻译成语言表达的操作技能。例如,api调用push_button('green')所表达的技能被翻译为“打开绿灯”,然后用于执行policy的推理。我们唯一的假设是,输入提示的场景描述与环境状态相匹配。我们在图4中显示了一个示例提示。

图4:将抽象指令分解为子任务序列的示例提示。提示上下文为灰色,输入任务命令为洋红色,生成的输出突出显示。

IV. EXPERIMENTS

我们的实验旨在回答以下问题:

1)与使用端到端模型相比,集成所提出的视觉语言启示模型是否可以提高以下语言指令的性能和数据效率?

2) 所提出的方法是否适用于现实世界?

3) 当与llm配对时,agent能否通过遵循llm提出的子目标来推广新的行为? 

A. Simulation Experiments

Evaluation Protocol.

我们使用calvin基准[8]的环境d设计我们的实验,该环境由6小时的远程操作无定向游戏数据组成,这些数据可能包含次优行为。为了模拟现实世界的场景,只有1%的数据包含众包语言注释。calvin中agent的目标是使用机载传感,通过自然语言指示5个不同的子任务,解决多达1000个独特的序列链。在推理过程中,只有当agent成功完成当前子任务时,它才会接收链中的下一个子任务。

Results and Ablations.

我们比较了我们将机器人控制学习划分为基于语义概念的高级流和基于3d空间交互知识的低级流的方法,hulc是一个state-of-the-art端到端模型,它从游戏数据中学习基于语言的一般技能。为了进行公平的比较,我们重新训练了原始的hulc agent,以微调语言编码器,因为这将平均序列长度从2.64提高到2.69。我们在表i中观察到,当与我们的启示模型结合时,性能增加到平均序列长度2.93。通过将控制解耦为层次结构,我们表明性能显著提高。此外,当使用预训练权重r3m[29]初始化我们的启示模型时,hulc++的平均序列长度为3.30,这是一项旨在学习用于学习机器人技能的可重用表示的工作。 

 为了研究我们提出的方法的数据效率,我们还将我们的模型与包含50%和25%总游戏数据的较小数据分割进行了比较。我们的结果表明,我们的方法比基线的样本效率高出50%。由于可能很难判断每个模块对整体样本效率提高的贡献程度,我们研究了将我们在25%数据上训练的启示模型与在完整数据集上训练的低级policy配对的效果。我们报告的差异很小,平均序列长度为2.92。

B. Real-Robot Experiments

System Setup.

我们在受模拟CALVIN环境启发的3D桌面环境中使用Franka Emika Panda机器人手臂验证了我们的结果。该环境由一张带抽屉的桌子组成,抽屉可以打开和关闭,木制底座上还有一个滑动门,这样末端执行器就可以触及手柄。此外,该环境还包含三个彩色灯开关和彩色块。我们使用来自并发工作的离线数据集[37],由9小时的非结构化数据组成,这些数据是通过要求参与者在不执行任何特定任务的情况下远程操作机器人而收集的。此外,我们通过要求人类注释者描述交互数据集中随机采样窗口的行为,用语言注释不到总数据的1%,具体为3605个窗口。该数据集包含超过25种不同的操作技能。我们注意到,在现实世界中学习如此广泛的各种技能,从非结构化、无重置和可能次优的数据中学习,再加上不到1%的数据被语言注释,是极具挑战性的。此外,此设置包含的数据比相关方法少一个数量级[4]。

Baselines.

为了研究我们的分层架构的有效性,我们以两个语言条件基线为基准:hulc[10]和bc-z[4]。第一条基线用于评估利用启示模型对控制回路进行分层分解的影响,因为低级policy是针对从非结构化数据中学习任务无关控制而定制的。另一方面,bc-z基线仅在包含语言注释的数据上进行训练,并包括拟议的辅助损失,该损失从视觉中预测语言嵌入,以更好地对齐视觉语言技能嵌入[4]。为了进行公平的比较,所有模型都有相同的观察和动作空间,并且它们的静态相机视觉编码器都用预训练的resnet-18 r3m特征初始化[29]。对于hulc++,这需要用于启示模型的视觉编码器和用于低级policy静态相机的视觉编码器。夹具相机的编码器是从头开始训练的。 

Evaluation

我们首先评估受语言制约的个人技能的成功率。在使用离线游戏数据集训练模型后,我们使用中性起始位置为每个任务执行了10次展开,以避免在机器人的初始姿势中偏置policies。这种中性初始化打破了初始状态和任务之间的相关性,迫使agent完全依赖语言来推断和解决任务。我们将每个模型的成功率记录在表2中。我们观察到,由于演示不足,bc-z基线在大多数任务中的性能接近于零。hulc的能力更强,因为它利用了完整的数据集,在10次推出中平均有42.4%,但在长期规划方面遇到了困难,大多数用模仿学习训练的端到端agents也是如此。总体而言,hulc++的能力更强,在25个不同的操作任务中平均成功率为65.2%,证明了在将控制解耦为层次结构之前结合语义-视觉-语言启示的有效性。 

最后,我们通过利用gpt-3为抽象语言输入生成子目标序列,例如“整理工作区并关灯”,来评估每种方法在现实世界中可以连续执行多少任务。我们报告说,我们的方法平均执行了6.4个子目标,而基线在完成2到3个子目标后往往会失败。请参阅补充视频,了解定性结果,这些结果展示了任务的多样性和不同方法的longhorizon能力。总体而言,我们的结果证明了我们的方法通过利用视觉语言启示从非结构化数据中学习样本高效、语言条件化的policies的有效性。

V. CONCLUSION AND LIMITATIONS

在这篇论文中,我们介绍了一种新的方法,可以从包含低至1%语言注释的非结构化、离线和免重置数据中有效地学习通用、语言条件机器人技能。关键思想是从不同的人类远程操作数据中提取语言条件启示,以学习在自然语言指令下,交互应该在环境中的何处发生的语义先验。我们将这些知识提炼为基于模型和无模型的policies之间的相互作用,允许对机器人控制学习进行样本高效的划分,大大超过了具有挑战性的语言条件机器人操纵calvin基准的最新技术。我们表明,当与llm结合将抽象的自然语言指令翻译成子目标序列时,hulc++能够完成现实世界中的长期、多层任务,同时需要的数据比以前的方法少一个数量级。虽然实验结果很有希望,但我们的方法有几个局限性。首先,在现实世界中对技能进行排序时,一个悬而未决的问题是跟踪任务进度,以便知道何时进入下一个任务。在这项工作中,我们以固定的时间范围对现实世界中的任务进行排序,隐含地假设所有任务都需要大约相同的时间步才能完成。其次,将抽象语言输入转换为子目标序列的代码生成模块假设提示的场景描述与环境状态相匹配,这可以通过集成感知系统来自动化[2]。最后,未来工作的一个令人兴奋的领域可能是,不仅要用语言模型为行动奠定基础,还要通过结合现实世界的机器人数据来探索改进语言模型本身[38]。


http://www.kler.cn/news/312061.html

相关文章:

  • 【vue3】vue3.3新特性真香
  • 兔子检测系统源码分享
  • AtCoder Beginner Contest 371
  • 在SpringCloud中实现服务熔断与降级,保障系统稳定性
  • vue2中字符串动态拼接字段给到接口
  • 机器学习(西瓜书)第 14 章 概率图模型
  • 程序员的养生
  • NET WPF使用组件库HandyControl
  • Github 2024-09-14 Rust开源项目日报Top10
  • 傅里叶变换
  • vim 操作一列数字
  • 【天怡AI-注册安全分析报告-无验证方式导致安全隐患】
  • javascript 浏览器打印不同页面设置方向,横向纵向打印
  • CPLEX+Yalmip+MATLAB2022a配置
  • 【贪心算法】贪心算法一
  • vue前端调起电脑应用并且检测有没有调用成功
  • 人工智能将来好就业吗?
  • LINUX的PHY抽象层——PAL
  • Qt/C++ 了解NTFS文件系统,解析盘符引导扇区数据获取MFT(Master File Table)主文件表偏移地址
  • 服务发现和代理实例的自动更新
  • Linux 基本使用和 web 程序部署 ( 8000 字 Linux 入门 )
  • 【python】后台程序初始化全流程
  • electron-vue安装与打包问题解决
  • js中箭头函数与普通函数的区别
  • 删除视频最后几帧 剪切视频
  • Vue3:el-table实现日期的格式化
  • 安卓 uniapp跨端开发
  • JVM 内存模型:堆、栈、方法区讲解
  • 如何使用Postman搞定带有token认证的接口实战!
  • VSCode C++ Tasks.json中的变量