大型语言模型与智能机器人集成的调查研究 原创
摘要:近年来,大型语言模型(LLMs)的集成已经彻底改变了机器人学领域,使机器人能够以类似人类的熟练程度进行交流、理解和推理。本文探讨了LLMs对机器人学多方面的影响,解决了利用这些模型在各个领域的关键挑战和机遇。通过将LLM应用归类并分析在机器人学的核心要素——通信、感知、规划和控制中,我们旨在为寻求将LLM集成到他们的机器人系统中的研究者提供可行的见解。我们的研究重点放在GPT-3.5之后开发的LLMs上,主要在基于文本的模态中,同时也考虑了用于感知和控制的多模态方法。我们为提示工程提供全面的指导方针和示例,以促进初学者接触基于LLM的机器人解决方案。通过教程级别的示例和结构化的提示构建,我们展示了如何将LLM引导的增强功能无缝集成到机器人应用中。本调查作为研究人员导航LLM驱动的机器人学不断发展的领域的路线图,提供了一个全面的概述和实用指南,以利用语言模型在机器人学开发中的力量。
1 引言
在过去的十年中,我们在应用语言模型(LMs)的机器人学领域见证了显著的进步。这一进展不仅包括类似人类的交流,还包括机器人的理解和推理能力,从而显著提高了它们在各种任务中的有效性,从家务到工业操作[52, 105]。在工作的早期阶段,成功源于统计模型分析和预测语言表达中的词汇。这些模型使机器人能够解释人类命令[110, 121],理解上下文[2, 4],代表世界[50],以及与人类互动[134],尽管理解的深度有限。然后,采用具有自注意力机制的Transformer架构[140],特别是像BERT这样的预训练LMs[26],提高了捕捉复杂模式的能力,同时为特定任务微调模型。然而,这些模型的性能常常取决于有限的数据集,限制了它们对更深层次上下文理解的把握和在多样化场景中的泛化能力。
随着大型语言模型(LLMs)的进步,基于语言的机器人学在各个领域引入了创新性的变化,如信息检索、推理任务、适应环境、持续学习和改进等[61, 64]。这些LLMs的特点是它们庞大的参数规模和在互联网规模数据集上的训练,为下游任务提供了零样本和少样本学习的能力,而无需额外的参数更新。
这些显著的进步来自于文献[147]中定义的“在小模型中不存在但在大模型中出现的”新兴能力。这些能力显著提高了机器人通过利用广泛的常识知识[8]来理解、推断和响应开放式指令的性能。此外,称为提示工程的提示创建技术,使LLMs能够通过自由形式的语言描述或交互式对话纳入更丰富的上下文信息,促进了泛化推理[148]。引入的上下文学习能力[8]使LLMs能够基于提示中提供的指令或演示生成预期格式的输出,如JSON、YAML或PDDL,甚至代码[42, 87]。最近的LLMs,如GPT-4,通过与外部机器人工具(如规划器或翻译器)[90]集成,进一步扩展了能力。
尽管LLMs具有多样化的能力,它们的使用面临着几个挑战[69]。首先,LLMs经常生成不准确或意外的响应。由于机器人执行的安全性是最重要的部署因素,基于LLM的机器人应用需要过滤和纠正机制以确保安全。其次,像上下文学习这样的新兴能力尚未可预测和一致[19]。即使是输入文本的微小变化也可能导致响应的不可预测变化。第三,精心设计的提示使机器人能够有效地利用LLMs的能力,但缺乏支持机器人系统关键组件的系统指导方针,阻碍了无缝集成[35, 54, 164]。因此,我们需要对机器人学中LLM的参与进行逐个组件的调查,以理解限制和安全性。
目前,各种调查已经开始探索大型语言模型(LLMs)和机器人学的交叉点[141, 164],主要关注基于LLM的机器人学的应用或交互维度。然而,在提供全面审查和将LLMs集成到机器人系统的关键要素——包括通信、感知、规划和控制——的可行见解方面,仍然存在差距。此外,研究人员探索了广泛的预训练大容量模型领域,这些模型被称为基础模型,寻求在多模态基于Transformer的模型中的泛化能力[35, 54]。然而,这个广泛的领域涵盖了机器人学的广泛范围和多样化的方法论,使得新兴研究人员错过了深入的审查和指导方针。
在本文中,如图1所示,我们的目标是分类并分析LLMs如何增强机器人系统的核心要素,以及我们如何指导新兴研究人员在每个领域内集成LLMs,包括通信、感知、规划和控制,以发展智能机器人。我们根据三个关键问题构建本文:
• Q1: LLMs在每个机器人学领域如何被利用?
• Q2: 研究人员如何克服LLMs集成的局限性?
• Q3: 产生每个领域中最小功能所需的基本提示结构是什么?
为了回答这些问题,我们专注于GPT-3.5引入后开发的LLMs[106]。我们主要考虑基于文本的模态,但也回顾了感知和控制领域的多模态性。然而,为了进行深入审查,我们将调查限制在LLMs上,而不是基础模型。
此外,我们为提示工程提供了全面的指导方针和示例,旨在使初学者能够接触基于LLM的机器人解决方案。我们的教程级示例说明了如何通过引入四种类型的示例提示来增强或替代机器人组件的基本功能:对话提示用于交互性基础,指令提示用于场景图生成,规划提示用于少样本规划,以及代码生成提示用于奖励生成。通过提供提示构建的规则和技巧,我们概述了生成设计良好的提示以产生所需格式的输出的过程。这些原则确保了在机器人应用中有效的LLM引导增强,而无需参数调整。
本文的其余部分组织如下。第2节概述了机器人学中LMs和LLMs的历史背景。第3节回顾了LLMs如何通过语言理解和生成使机器人能够进行通信。第4节调查了LLMs如何感知各种传感器模态并推进感知行为。第5节和第6节分别组织了基于LLM的规划和控制研究。在第7节,我们为提示工程提供了全面的指导方针,作为LLM集成到机器人学的起点。最后,第8节总结了这项调查。
2 初步
我们简要回顾语言模型,分为两个部分:LLM出现前后。与以往文献[164]中的概述不同,我们将LM(语言模型)的时期——即LLM(大型语言模型)出现之前,限定在神经语言模型开始被使用的时间段,这一时期从循环神经网络(RNNs)[33]的引入开始,直至诸如GPT-2[115]这样采用Transformer架构的模型问世。同时,我们也对LLMs进行了简要说明,并涉及到相关的术语和技术。
2.1 机器人学中的语言模型
基于LM的机器人学研究主要探索了神经语言模型,用于序列数据处理。在早期阶段,基于RNN的LM[23, 46]利用RNN的序列到序列建模能力,将语言命令转换为一系列动作[6, 100]或形式语言[40]。使用RNN作为语言编码器,LMs还将文本输入转换为语言特征,然后可以将其映射到视觉特征以进行指代表达对象识别[121, 125]。然而,RNN中的长期依赖问题限制了它们的应用范围。随后,Transformer架构[140]的引入克服了这些限制,使其能够应用于需要长期理解的任务,例如视觉-语言导航[14, 16]。先前的方法严重依赖训练数据集,降低了泛化能力。然而,基于Transformer的模型的可扩展性和自监督学习技术,如掩蔽语言建模,导致了互联网规模预训练模型的发展,如BERT[26]或GPT-2[115]。这些预训练模型展示了通用的语言理解能力。这一进步允许对这些模型进行特定任务的微调[74, 75, 124]。此外,使用预训练的多模态语言模型,如CLIP[116],有助于利用跨模态对齐的特征,如视觉和语言,丰富了在机器人研究中的应用[76, 126]。
2.2 机器人学中的大型语言模型
最近在LLMs方面的进展,如GPT-3[8]、GPT-4[107]、LLaMA[136]、Llama 2[137]和Gemini[39],在理解、上下文感知、泛化能力和知识丰富性方面取得了显著进步,超越了早期的语言模型。这些进步来自于它们在数十亿规模参数的庞大数据集上的训练,使它们能够捕捉到复杂的数据模式。此外,还开发了先进的学习策略,如从人类反馈中进行强化学习,以使LLMs的行为与人类价值观或偏好保持一致[108]。
另一方面,提示工程,利用上下文学习(ICL)[8],代表了另一个重大进展,允许LLMs在没有额外训练的情况下直接从提示中学习。提示工程的有效性取决于提示的设计和质量,包括详细的任务描述、少样本示例或更多模型可消化的格式(例如,###作为停止符号[167])。此外,思维链(CoT)提示方法[148]出现了,将中间推理步骤纳入提示中,导致复杂推理任务的显著增强。正在进行的研究努力进一步提高LLMs的推理能力,如思维树[160]或思维图[5]的发展。
另一方面,各种基于LLM的机器人学研究已经尝试直接训练LLMs[7, 170]。然而,完整的微调,即在特定任务数据上训练整个模型,不仅计算成本高昂,而且由于它们的大规模参数,获得足够的数据也很昂贵。为了解决这些问题,研究人员开发了参数高效的微调方法,如适配器——插入到LLM的每层中的小型、可训练网络,用于特定任务的调整[49],和LoRA[51],它对每层中更新的矩阵施加低秩约束。LLMs在这些方面的发展显著影响着机器人学,为在机器人系统内更深入地探索LLM应用奠定了基础。
3 通信
我们研究了LLMs的使用,以促进机器人学中类似人类的通信,使机器人能够有效地与人类和其他机器人代理进行交互[98]。我们将通信能力分为两个主要领域:(1)语言理解;(2)语言生成,如图1所示,该图显示了详细的分类以及相关研究,用绿色单元格引用。
图1:本调研中综合了LLMs的智能机器人学研究概览结构。最右侧的单元格展示了每个类别中代表性的名称(例如,方法、模型或作者名)。
3.1 语言理解
我们回顾了语言理解能力,探讨了LLMs如何通过解释和基础化处理语言输入的变异性和歧义性。
解释涉及将自然语言输入转换为机器人可操作的语义表示,范围从形式语言,如线性时序逻辑(LTL)[94, 159]和规划领域定义语言(PDDL)[18, 42, 90, 154],到编程语言,如Python[56, 76]。为了帮助解释自由形式的句子,研究人员利用LLMs的上下文学习(ICL)能力,在提示中提供指导和示例[56, 76, 90, 122]。尽管做出了努力,LLMs在将输入转换为形式语言时常常无法满足语法或捕获精确的语义。解决方案包括简化词汇或使用领域不可知数据微调LLMs[94, 159]。翻译系统,如Lang2LTL[92],展示了LLMs如何将导航命令中的地标引用表达式翻译成LTL符号。进一步的改进通常涉及使用人类反馈和语法检查器来纠正生成的形式语言翻译[18, 42]。例如,Guan等人[42]提出了一个循环中的人类翻译框架,人类领域专家反复审查PDDL描述并用自然语言提供反馈。
(注释:假设你有一个机器人助手,它能够理解人类的语言并执行任务。但是,为了让机器人能够理解并执行复杂的任务,你需要将人类说的话转换成机器人能够理解的“语言”。这种“语言”可以是一些特别的形式语言,比如线性时序逻辑(LTL)或者规划领域定义语言(PDDL),也可以是编程语言,比如Python。
为了让机器人助手更好地理解我们说的话,研究人员利用了一种叫做大型语言模型(LLMs)的技术。这些模型能够根据上下文来学习并理解语言,就像我们学习新词汇一样。研究人员会在提示中加入一些指导和例子,帮助这些模型更好地理解我们的话。
但是,即使有了这些帮助,机器人助手在把我们的话转换成它们能理解的形式语言时,有时候还是会出错,比如语法不对或者意思理解得不够准确。为了解决这个问题,研究人员想出了一些办法,比如简化我们使用的词汇,或者用一些特殊的数据来调整模型,让它更好地适应特定的领域。
还有一些专门的系统,比如Lang2LTL,它们能够把我们说的话中的一些特定表达转换成LTL符号,这样机器人就能更好地理解我们的导航命令。
为了让机器人助手更准确地理解我们的话,研究人员还会用到人类的反馈。比如,他们会请一些领域内的专家来检查机器人助手生成的代码,然后用自然语言提供反馈,帮助改进模型。
举个例子,Guan等人提出了一个系统,在这个系统中,人类专家会反复检查PDDL的描述,并用自然语言提供反馈,这样机器人助手就能不断学习和改进,更好地理解我们的话。)
基础化是将语言表达映射到机器人可识别的参照物,如行为或对象。早期研究通过最大化LLM输出的词嵌入与现实世界参照物之间的余弦相似度来找到映射[58, 76, 94, 117]。随后的研究结合了LLMs的常识知识,为物体的语言标签基础化提供上下文支持[41, 118]。例如,Guan等人[41]展示了LLMs如何根据我们知道的大小和重量假设,将“用作纸镇的东西”基础化到一个陶瓷花瓶上。然而,基础化的准确性取决于世界模型的细节和准确性。为了解决这个问题,研究人员通过多模态能力增强LLMs,直接将语言输入与感官感知相关联[31, 47, 114, 158],或使LLMs能够与环境[157, 168]或人类[61, 109, 120]进行交互以更好地收集上下文。例如,3D视觉基础化方法,LLM-Grounder[157],使用视觉工具,如LERF[72]和OpenScene[111],积极收集环境信息。
(注释:基础化就是教机器人理解我们说的话,并将这些话与它能够识别的事物或动作联系起来。比如,当我们说“拿起杯子”,机器人需要知道“杯子”是什么,以及“拿起”这个动作意味着什么。
在早期研究中,研究人员尝试通过比较机器人内部的词汇(词嵌入)与真实世界中的事物之间的相似度来教机器人理解语言。他们用一个叫做“余弦相似度”的方法来衡量这种相似性,就像我们用尺子量东西一样,看看机器人的理解和现实世界有多接近。
后来,研究人员发现,除了比较相似度,还可以利用机器人的**常识知识**来帮助理解语言。比如,我们知道纸镇通常不会太重,所以当我们说“用作纸镇的东西”,机器人可以推断出这可能是一个轻的、可以用来压纸的物品,比如一个陶瓷花瓶。
但是,机器人理解语言的准确性还取决于它对世界的了解有多深入。为了提高这种准确性,研究人员开始给机器人增加更多的能力,比如让它能够处理多种类型的信息(多模态能力),或者让它能够直接通过感官(比如视觉、听觉)来理解我们的话。
还有一些方法让机器人能够更好地与环境互动,或者与人类交流,从而收集更多的上下文信息,帮助它更好地理解我们的语言。
例如,有一个叫做LLM-Grounder的方法,它使用视觉工具来帮助机器人理解我们的话。这些工具可以像照相机一样捕捉周围环境的信息,帮助机器人更准确地理解我们提到的物体。)
3.2 语言生成
语言生成指的是产生反映交流意图的类似人类书面或口头语言[38]。我们根据它们的交流意图,将语言生成分类为任务依赖型和任务非依赖型,这与传统的自然语言生成(NLG)类别(文本到文本和数据到文本)[30]不同,因为我们关注的是研究的交流目的。
任务依赖型语言生成专注于产生具有特定功能目标的语言,无论是陈述性的还是命令性的。为了生成开放式的陈述性语句,研究人员经常向LLMs提供上下文信息[20, 62, 97]。然而,LLMs常常产生重复和事实不一致的输出,受限于依赖先前的对话和常识知识[20, 84]。因此,研究人员通过辅助知识源增强LLMs,以扩大可用信息的范围[3, 21, 156]。例如,Axelsson和Skantze[3]通过知识图谱增强了一个机器人博物馆导游。此外,研究人员指导LLMs通过生成请求人类协助的命令性指令来澄清歧义[25, 61]。为了改进推理步骤,引入了概率模型来评估情况的不确定性[109, 120]。例如,KnowNo[120]和CLARA[109]交互系统分别评估置信度和语义差异,仅当这些指标表明显著的不确定性时才触发生成。
(注释:任务依赖型语言生成就是让机器人或者计算机系统能够根据特定的目标来说出有用的话。这可以是简单的陈述,比如说出一些事实,也可以是发出命令,告诉别人要做什么。
研究人员为了让机器人能够生成开放式的陈述性语句,比如描述一个场景或者讲述一个故事,通常会给机器人一些背景信息,帮助它更好地理解和生成语言。
但是,机器人在生成语言的时候可能会遇到一些问题,比如它会重复说同样的话,或者说出一些与事实不符的内容。这主要是因为机器人生成语言的时候,往往依赖于它之前听到或者“记住”的对话,以及它所具备的一些常识。
为了解决这个问题,研究人员尝试通过给机器人提供额外的知识来源来帮助它。比如,他们可能会用到知识图谱,这是一种能够存储大量信息的工具,可以帮助机器人更好地理解上下文和生成语言。
研究人员还会教机器人在遇到不确定的情况时,向人类求助。比如,如果机器人不确定某个信息是否正确,它可以请求人类来帮助确认。
此外,为了提高机器人的推理能力,研究人员还会使用一些概率模型来评估情况的不确定性。这就像是给机器人一个“信心计”,帮助它判断自己生成的语言有多可靠。
例如,有两个交互系统叫做KnowNo和CLARA,它们可以通过评估置信度和语义差异来判断机器人生成的语言是否足够可靠。如果这些指标显示不确定性很大,那么机器人就会选择不生成语言,或者再次请求人类的帮助。)
任务非依赖型语言生成涉及制作具有社交情感目标的表达[11],通过在提示中嵌入非语言线索(例如,非语言声音、手势和面部表情)来增强参与度和同理心[73, 81]。例如,Khoo等人[73]开发了一个会话机器人,使用转录的音频和视觉线索生成同理心响应。然而,与LLMs的对话仍然表面化,因为知识和对话历史有限[65]。为了克服这一点,研究人员将记忆模块集成到LLMs中,使它们能够以结构化格式从对话中提取和存储信息[22, 63, 65, 162]。例如,Irfan等人[65]设计的一个伴侣机器人,根据与用户的互动不断更新机器人的记忆,以生成个性化的对话。
(注释:任务非依赖型语言生成是一种让机器人或计算机系统生成语言的技术,这种语言不是用来完成特定任务的,而是用来进行社交和表达情感的。就像我们和朋友聊天时那样,不是为了完成某项工作,而是为了增进彼此的感情和理解。
为了让机器人在对话中更加自然和有人情味,研究人员尝试在机器人的提示中加入一些非语言的线索,比如声音的语调变化、手势或者面部表情。这样做可以让机器人的交流更加生动,更有同理心,就像人类在交流时那样。
举个例子,Khoo等人开发了一个会话机器人,它可以通过听人说话的声音和看人的面部表情来做出更有同理心的回应。
但是,机器人和人的对话往往还是显得比较肤浅,因为机器人的知识有限,而且它记得的对话内容也不多。为了解决这个问题,研究人员开始在机器人的语言模型中加入记忆模块。这些记忆模块可以帮助机器人从对话中提取信息,并且像记笔记一样把它们存起来。
举个例子,Irfan等人设计了一个伴侣机器人,它会根据和用户的互动不断地更新自己的记忆,然后用这些记忆来生成更加个性化的对话,让对话更有深度,更贴近用户的真实感受。
总的来说,这段话讲的是如何让机器人在社交和情感表达方面做得更好,通过加入非语言线索和记忆模块,让机器人的对话更加自然和有人情味。)
4 感知
感知在使机器人能够做出决策、规划行动和导航真实世界中起着至关重要的作用[113]。在基于LLM的机器人感知领域,研究主要集中在两个方面:感知模态和行为。在本节中,我们介绍了基于LLM的机器人如何将语言与感知模态集成,以及代理如何通过被动和主动感知行为获取环境信息。图1展示了详细的分类以及相关研究,用粉色单元格引用。
4.1 感知模态
研究人员通过集成多模态语言模型显著提高了机器人的理解和泛化能力。我们将主要的感知模态分类为视觉、听觉和触觉模态,回顾了利用多模态LLMs进行感知任务的最新研究。
视觉感知任务涉及对图像或点云等视觉信息的解释。预训练的视觉-语言模型(VLMs),如CLIP[116]和InstructBLIP[83],允许基于LLM的机器人直接利用图像源。例如,最近的基于LLM的操作系统,如TidyBot[151]和RoCo[97],使用从CLIP和OWL-ViT[101]生成的图像推断对象标签或场景描述。此外,研究人员通过在下游任务上应用VLMs,如图像字幕[41]和视觉问答(VQA)[36, 79, 104],扩展了推理能力。这些下游任务使LLMs能够随后请求VLMs推断对象属性(例如,材料、易碎性)[36]或为抓取接地对象部分[104]。然而,图像通常难以获取空间几何信息。
(注释:研究人员正在让机器人变得更聪明,他们用“多模态语言模型”的技术来帮助机器人更好地理解和处理不同类型的信息。这些信息包括我们能看到的(视觉信息)、能听到的(听觉信息)和能触摸到的(触觉信息)。
视觉感知任务就是让机器人通过看东西来理解周围世界。比如,机器人可以通过看一张图片来知道图片里有什么,或者发生了什么。
研究人员用了一些特别训练的模型,比如CLIP和InstructBLIP,这些模型就像是机器人的“眼睛”,帮助它们理解图像。有了这些模型,机器人可以直接使用图像信息来做任务。
比如TidyBot和RoCo,它们可以用CLIP和另一个叫做OWL-ViT的模型来理解图像,然后告诉机器人图片里有哪些东西,或者描述图片里的场景。
研究人员还用这些视觉模型来做更复杂的任务,比如给图片配上文字(图像字幕),或者回答关于图片的问题(视觉问答,VQA)。这些任务让机器人能够更深入地理解图片,比如猜测一个物体是什么材料做的,或者判断它是否容易碎。
但是,这些模型也有局限性,比如它们很难从图片中得到物体的准确形状和空间位置信息,这就是所谓的“空间几何信息”。)
另外,Huang等人[56]将来自VLM(即,LSeg[82])的视觉-语言特征与三维(3D)点云关联起来,用于3D地图重建。进一步地,Jatavallabhula等人[66]通过引入来自VLMs的细粒度和像素对齐特征,改进了与RGB-D图像的关联机制。然而,与3D信息的关联往往是内存密集型的,限制了大型场景的可扩展性[56, 66, 157]。作为替代解决方案,研究人员经常将几何和语义特征与3D场景图关联起来[41]。
听觉感知涉及声音的解释。基于LLM的研究经常利用预训练的音频-语言模型(ALMs),如AudioCLIP[43]和Wav2CLIP[150],将它们与视觉数据集成以增强环境或上下文理解[55, 95, 123, 163]。例如,AVLMaps[55],一个具有交叉模态信息的3D空间地图构造器,将音频、视觉和语言信号集成到3D地图中,使代理能够使用多模态目标进行导航,例如“在冰箱的图像和打破玻璃的声音之间移动”。此外,REFLECT[95],一个用于总结机器人故障的框架,将多感官观察结果(如RGB-D图像、音频剪辑和机器人状态)转换为文本描述,以增强基于LLM的故障推理。
触觉感知涉及接触信息的解释。研究人员引入了多模态感知模块,这些模块交互式地结合了从预定义的高级描述[168]或基于CLIP的触觉图像特征[48]获得的触觉特征。例如,MultiPLY[48],一个多感官LLM,将触觉传感器读数转换为由CLIP编码的热图。然后,通过引入一个线性层的触觉投影器,该模型将热图信息映射到LLMs的特征空间。
4.2 感知行为
根据感知行为的类型,我们将本节分解为被动和主动感知。被动感知是指在不积极寻找的情况下收集感官信息的过程。尽管其有限,被动感知已在基于LLM的机器人研究中广泛用于各种任务:对象识别[36, 53, 151]、姿态估计[104, 155]、场景重建[41, 59, 122, 122]和对象接地[66, 143, 157]。例如,TidyBot[151]从俯视图中检测最近的物体,然后使用机器人相机捕获的更近的视图识别其对象类别。然而,感知的被动性质限制了在信息未观察或不可用时执行任务的能力(例如,看不见的区域、重量)。
另一方面,主动感知指的是通过采取额外的行动有意识地收集感官信息的过程。通过感官观察或请求用户反馈[79, 129]获取新信息,主动信息收集增强了对环境的理解。例如,LLM-Planner[129]生成寻找动作,如“打开冰箱”以定位不可见的物体。最近的研究还专注于收集感官数据,以更好地理解物体的物理属性[48, 168]。然而,LLMs经常生成不准确或虚构的信息,称为幻觉。为了解决这个问题,Dai等人[25]引入了一个个性化的会话代理,旨在询问用户不确定的信息。
5 规划
规划涉及组织行动以解决给定问题,通常通过生成一系列高级符号操作符(即任务规划)然后使用低级电机控制器执行它们[37, 85]。本节调查了基于LLM的规划研究如何通过将它们归类为三个关键研究领域来解决规划领域的局限性:(1)任务规划,(2)运动规划,和(3)任务和运动规划(TAMP)。图1展示了详细的分类以及相关的规划研究,用紫色单元格引用。
5.1 任务规划
基于LLM的任务规划器能够在没有严格符号定义的情况下生成计划[58],而传统的任务规划器需要预先定义操作符,这些操作符具有关于可用行动和约束的领域知识[34, 99]。在这一领域,大多数规划器采用静态规划策略,它采用不随环境变化而适应的固定描述[163]。然而,自适应规划的替代方法允许将环境反馈纳入输入提示中,根据观察到的条件调整行动。本节根据这两种策略:静态规划和自适应规划,审查基于LLM的规划器。
静态规划:静态规划方法是一般的零次或少次预测方法,其中零次方法仅基于输入命令生成计划,而少次方法利用从有限的类似示例中学习[9, 27, 70, 163]。然而,由于推理能力有限,LLMs在长期任务规划中的表现往往不佳[90, 139]。为了解决这一局限性,Huang等人[58]引入了一个规划器,该规划器迭代选择LLMs生成的可执行操作中最可能的行动。另外,基于LLM的代码生成器,如Code as Policies[87]或ProgPrompt[128],产生导致适应性行动的代码,以响应观察结果[56, 57]。Singh等人[128]证明,代码生成优于LLMs的基本任务规划,因为输出计划与执行环境紧密对齐。尽管它们有优势,但这些方法缺乏验证和重新规划过程。
为了验证计划,研究人员经常将LLMs与逻辑程序相结合,要么(1)检查结果计划是否违反逻辑约束,要么(2)使用外部逻辑规划器生成计划。例如,SayPlan[118],一个基于GPT4的规划器,通过场景图模拟器3DSG[1]验证抽象级别行动,而LLM+P[90]应用从LLMs翻译的PDDL问题到经典任务规划器,Fast Downward[45]。此外,Silver等人[127]证明,具有来自LLMs的初始计划的基于搜索的规划器通过探索较少的节点表现得更好。这些研究强调了将LLMs与逻辑程序集成以增加生成可行计划的成功率或性能的有效性。
自适应规划:自适应规划允许机器人根据反馈修改它们的计划或行动,要么根据环境观察生成新计划[20, 141, 151, 168, 169],要么通过检测失败并相应调整[61]。Chen等人[12]和Huang等人[60]引入了根据观察反馈生成新计划的适应策略,使机器人能够响应更广泛的场景。另一种适应策略是将失败检测作为反馈。例如,Inner Monologue[61]重试初始计划,直到成功。此外,其他研究提供有关过去失败的文本解释,以帮助避免反复出现的问题[88, 95, 117, 146]。LLM-Planner[129]和COWP[28]通过寻找利用观察上下文和LLMs常识知识的替代计划,提高了重新规划能力。这些适应新信息的灵活性增强了机器人在动态设置中的自主性。
5.2 任务和运动规划
我们概述了基于LLM的低级规划,将方法分类为运动规划和TAMP领域。
运动规划指的是在机器人的配置空间或任务空间内生成具有数值航点的目标轨迹。然而,直接的数值序列化是具有挑战性的,因为语言模型通过生成与连续空间无关的标记来学习。尽管如此,基于LLM的运动规划器直接为无人机编舞生成位置序列[68],因为它们的任务足够简单,可以展示LLMs的空间推理能力。对于更复杂的场景,采用间接方法,Huang等人[59]将LLMs与基于搜索的规划器相结合。在他们的框架中,VoxPoser,一个LLM,使用VLM生成潜在场的代码,然后基于搜索的规划器在生成的场内进行运动规划。
TAMP指的是将高级任务规划与低级运动规划相结合。各种工作使用LLMs本身作为TAMP规划器,利用它们的逻辑和物理推理能力[80, 97, 152]。研究人员指导LLMs生成高级子目标,然后使用它们进行低级轨迹生成[80, 97]。然而,它们的粗略表示限制了它们的方法到简单的任务,如取放。相反,Xia等人[152]使用运动学感知提示增强LLMs的运动学知识,用于复杂的操作,如关节对象操作。此外,各种研究增强了LLMs以补充它们的推理能力。研究人员经常集成一个逻辑增强的TAMP规划器,以检查任务计划的逻辑可行性[29]。同时,其他人使用物理增强的TAMP规划器来评估物理可行性[18, 44, 89]。例如,Text2Motion[89]允许一个LLM生成物理上可行的高级行动,并将它们与学习到的技能结合起来进行低级行动。
6 控制
早期研究主要集中在建立简单的语言命令和已知运动原语之间的映射上。随着深度学习的出现,研究人员在控制方面探索了两种主要方法:基于语言指令的控制值的直接建模[7, 119]和通过LLMs间接解释复杂指令以生成行动[153]。我们将这个领域的工作分为两组:(1)直接方法,意味着基于语言指令直接生成控制命令;(2)间接方法,代表通过语言指导间接指定控制命令。图1展示了详细的分类以及相关论文,用橙色单元格引用。
6.1 直接方法
直接方法涉及使用LLM来解释并产生可执行命令,要么通过选择运动原语[133],要么生成控制信号[145, 170]。早期工作生成行动标记以通过训练Transformer架构[140]产生控制策略,使用特定任务的专家演示数据[7, 119, 131]。研究人员将这些标记线性映射到离散化的末端执行器速度[119]或位移[7, 131]以进行连续运动。虽然这些方法在未见任务(如新对象或现实指令)上展示了一定程度的泛化,但它们通常需要大量的数据收集和训练时间。
为了减少收集工作,研究人员经常利用现有的网络规模视觉和语言数据集进行微调[142, 170]。例如,Zitkovich等人共同微调VLMs,如PaLI-X[17]和PaLM-E[31],目标是视觉语言任务和机器人控制任务。他们使用为VLMs设计的原始数据集以及机器人控制演示,在微调期间保持一般知识,如在RT-2[170]中演示的那样。此外,为了减少训练负担,Hu等人[51]使用低秩适应(LoRA)方法对LLM进行微调,用于控制任务[15],而不是微调整个模型。
LLMs常常难以生成连续的行动级命令,如关节位置和扭矩值,因为LLMs通常生成称为标记的原子元素[133]。因此,研究人员反而使用LLMs生成任务级输出[10, 102, 133]。例如,SayTap,一个基于LLM的步行控制器,使用LLM生成脚和地面之间的接触模式,而不是直接产生关节位置,以实现步行运动。其他研究通过将其框架为完成末端执行器姿态序列[102]或生成Python代码[10],类似于自然语言生成任务,来解决控制问题。最近,研究人员提示LLM通过提供归一化和离散化的控制值历史来产生动作空间输出,以保持控制的连续性[145],或通过提供机器人运动学信息来确定所需姿态的合理关节值[86]。
6.2 间接方法
LLMs也适用于基于自然语言指令生成控制命令的间接表示(例如,子目标或奖励函数)。研究人员利用目标描述,用自然语言解释所需的行为,以指导学习过程[32, 67, 78]。例如,ELLM[32],一个基于LLM的RL框架,使用LLM生成子目标描述作为RL策略的条件,并进一步使用当前观察结果和文本嵌入空间中的子目标描述之间的相似性来计算奖励。此外,Kumar等人[78]逐步使用LLM基于以前的人类指令生成目标描述。然而,由于LLM的输出是自然语言描述,这些方法需要一个额外的步骤来基础化或解释描述。
利用代码生成能力,研究人员生成代码级奖励函数。Yu等人[161]将自然语言目标转换为高级运动描述,然后生成相应的奖励函数。然而,这种生成需要固定的奖励函数格式。相反,最近的工作提示LLM从人类设计的例子中推断奖励函数格式[71, 144]。尽管如此,生成的奖励函数可能并不总是足够准确或最优,以直接用于训练[130]。
为了提高准确性,研究人员添加了一个细化循环来验证生成的奖励函数的语法[112]和语义[96, 130, 153, 165]。例如,Song等人[130]使用LLM根据训练过程的收敛和结果机器人运动重新设计奖励函数。此外,研究人员使用LLM评估机器人运动,直接生成奖励[24]。此外,最近的工作演示了LLM在通过根据错误状态调整控制参数[132]或从人类反馈中选择合适的运动目标[91]来完善运动中的使用。
7 提示指南
本章为进入机器人学研究领域的研究者提供关于如何设计提示的指南。提示是一种信息,旨在引导LLMs按照我们的指示处理并输出,如同预训练语言模型[93, 149]的操作一样。精心设计的提示应:
- 包含清晰、简洁且不含行业术语的具体陈述,
- 引入能够让模型预期处理流程的示例,
- 指定希望输出呈现的格式,
- 包含约束行动的指令。
这些提示使得模型能够在不更新参数的情况下,按照期望的格式和约束生成内容。我们为以下四个机器人学领域提供指南:(1) 交互式定位、(2) 场景图生成、(3) 少样本规划、以及 (4) 奖励函数生成。
7.1 对话提示:交互式定位
我们详细说明了一种对话提示设计,利用LLM作为定位代理,澄清如“给我拿点吃的”这样的命令,并通过逻辑推断解析“一些东西”之类的模糊目标。表1展示了设计细节,其中提示由三个关键组成部分构成:任务描述、任务流程和任务背景。我们接下来逐一详述。
表1:用于交互式接地的对话提示。通过提示中的“任务”,我们要求LLM通过对个人喜好的互动询问,将任务中提及的未具体说明的对象“某个东西”定位为“饼干”。该提示由任务描述、任务流程和任务情境三部分组成,指导LLM的行为及其对上下文的理解。粗体字表示与LLM响应(以蓝色高亮显示)进行交互的主题。
任务描述概述了LLM期望的行为和响应格式。在此例中,我们特别强调其作为对话代理的角色,通过“你应该”之类的指令引导与用户的动态互动。此外,“保持”所包含的命令性语句提供了任务约束或需求。我们还在末尾放置行为约束以抑制LLM的冗余输出。
任务流程随后定义了LLM遵循以达成任务目标的一系列推理步骤。此描述采用编号步骤指导LLM一步步执行动作。通过逻辑表示,我们也强制动作按逻辑顺序执行;使用“迭代地”表示“while循环”,以及“如果”或“当”表示条件。
任务背景描述了LLM进行定位所依据的上下文输入,如“世界模型”。任务描述和任务流程中术语的一致性对LLM操作至关重要。例如,“任务”和“世界模型”之类的通用表达使LLM能在提供的同一上下文中工作。此外,通过为世界模型中的对象使用明确的名称,我们使LLM能够对命名实体应用常识。请注意,尽管我们使用对象列表作为世界模型,但LLM接受多种形式的世界模型输入:文本描述、对象列表和场景图。
通过这些结构化的组件,提示触发了一个交互式的定位对话,以精确识别对象,如表1所示。此提示使用了ChatGPT 3.5 [106]。
7.2 指令提示:场景图生成
本节介绍利用多模态LLM(特别是GPT-4 [107])从场景图像构建场景图的指令提示设计。场景图由作为节点的对象及其作为边的关系组成。尽管多模态LLM取得了进展,但它们从二维图像中推断三维关系的能力仍有限制[13]。为了减少这一限制,我们将任务分解为两个步骤:利用多模态输入创建节点和利用文本信息创建边。我们在表2中提供了每个步骤的详细示例。
表2:生成场景图的指令提示。该表包含两个提示:节点创建和边创建。在给定场景中的图像条件下,多模态LLM感知物体并利用几何信息推断相关关系。粗体字表示LLM响应的输出主题(以蓝色高亮显示)。可视化内容既不是LLM的输入也不是输出。
节点创建的提示包括两部分:(1) 任务描述和(2) 任务背景。任务描述类似于7.1节,包括LLM的预期行为(即角色)和响应格式。例如,LLM的任务是在给定图像中识别作为节点的对象。然后,我们将输出格式指定为‘ObjectName(ID)’以确保一致性和简洁性。接着,任务背景展示了一系列独特的对象标识符及其对应的以对象为中心的图像。我们通过SAM [77],一个擅长在遮挡情况下识别物体的基础视觉模型,从场景中裁剪得到这些对象中心图像。
边的创建包括:(1) 任务描述、(2) 示例和(3) 任务背景。任务描述不仅指定了预期行为和输出格式,还阐释了如何利用示例来识别节点间的关系。我们特别解释了LLM如何使用三维对象坐标和单位测量值,从预定义集合(如‘左’、‘右’等)中推断空间关系。与节点创建不同,这允许生成额外的输出解释,以适应辨别空间关系的复杂性。
为了增强对输入格式及相应输出的理解,我们包含了展示边生成的示例。我们选择了一个在对象及其空间相互关系上与目标场景相似的示例,从而为边的识别提供更丰富的信息。
最后,任务背景提供了源节点和目标节点信息作为输入,并留下空白输出以从LLM获取响应。我们没有提供所有节点的全排列,而是指定所有节点组合的考虑,假设我们可以识别反向边作为相反的空间关系(例如,‘左’与‘右’相对)。
7.3 规划提示:少量样本规划
本节提出了一种规划提示设计,旨在预测完成既定目标所需的后续行动,同时融入上下文要素,如可执行动作和环境设置。该设计特别专注于少量样本规划,通过实例增强性能。设计包含四个组成部分:(1) 任务描述、(2) 示例、(3) 目标情境和(4) 额外互动,具体细节见表3。
表3:用于少量示例规划的规划指令提示。通过利用输入-输出示例对,LLM提高了生成完成任务目标计划的性能。该提示包括任务描述、示例以及任务上下文。粗体字表示与LLM交互的主体部分,LLM的响应以蓝色高亮显示。
任务描述包括任务目标、预期行为和响应格式,与传统提示相似。然而,与先前不同的是,此提示明确了机器人的约束条件,包括初始状态和动作限制——这是之前未被详述的约束。例如,表3中的“CANNOT”一词强调机器人每次行动只能操作一个物体的限制。此外,这些约束还扩展到规定“完成”动作的规则,标志着任务的完成。示例展示了引导LLM生成期望行动的输入输出对。示例将允许动作中的泛化“对象”参数(例如,“关闭(对象)”)调整为特定的物体名称,如“抽屉”或“纸张”,从而加强了在任务描述中写明的任务约束。例如,第二个示例在达成任务目标后返回“完成”信号,而非继续规划。
目标情境提供了当前场景,包括任务、允许的动作、可见物体、已执行计划以及下一个计划,与示例相同。我们允许LLM填充“下一个计划:”后的空白,直接提出下一步行动,不添加不必要的元素如换行符,以确保输出的精确性。
此外,当通过额外提示更新已执行计划时,LLM会基于这一更新后的上下文生成新计划,而无需重复整个目标情境,使规划过程动态且迭代,能适应变化并保持高效。
7.4 代码生成提示:奖励函数设计
我们引入了一种代码生成提示设计,用于从Gymnasium库中的MuJoCo基础Reacher任务[135]生成奖励函数。Reacher任务的目标是从任意起始配置移动机械臂的末端执行器接近指定的目标位置。该提示旨在将此任务目标转化为指定奖励的代码。表4展示了设计细节,包含四个关键元素:(1) 任务描述、(2) 可用API、(3) 目标与约束、以及(4) 生成规则。
表4:用于奖励函数生成的指令示例。该提示包括任务描述、可用API、目标与约束条件以及生成规则。LLM依据这些信息生成用于强化学习(RL)训练的Python代码形式的奖励函数。
任务描述为LLM定义了期望的机器人行为和任务条件,包括机器人的控制策略及具有两个关节的机械臂的动作空间。我们特别指定了使用Gymnasium库API的连续“Box”空间作为动作空间,假设LLM熟悉知名库函数的工作方式。然后,此描述引导LLM理解所定义动作的整体强化学习目标。
可用API列出了设计奖励函数所需的API,包括每个API的名称及输入输出规范。通过提供Python函数注解,我们让LLM能够推断输入输出类型,前提是它了解类似浮点数变量类型及API的工作原理。
目标与约束提供了指导奖励内容的任务目标和限制。我们明确界定了初始设定、目标分配和目标条件,旨在排除不必要的奖励成分,例如为了平滑运动而惩罚高速度。需要注意的是,尽管语言学意义上相似,我们推荐使用简洁一致的词汇,如任务描述中使用的“扭矩”而非“动力”。
最后,生成规则为生成可直接执行的代码建立了指南,以应对LLM产生不必要的或错误的变量或函数的趋势。这些规则限制了此类声明,正如表4中生成规则第二部分所述,鼓励使用知名的Python库来提高编程质量。此外,考虑到奖励函数的线性组合元素,我们引入了规则来调整奖励成分的尺度以保持平衡。
8 结论
在本调查中,我们从涉及智能机器人组件,包括通信、感知、规划和控制的大型语言模型在机器人学研究中的应用进行了考察。这种分组件的调查揭示了研究人员如何整合LLMs以克服在预LLM方法中存在的各种任务固有挑战,从而全面理解LLMs在该领域的影响。
在每个组件领域内,我们审视了为最大化利用LLMs能力并增强其响应完整性而提出的改进方法论。此外,我们的调查为每个组件领域提供了提示工程的指导原则,并辅以关键提示组件示例,为进入该领域的研究者提供实践洞察。本文的核心贡献在于突显了LLMs在机器人学中的变革性影响,使得在有限资源下开发多功能且智能的机器人成为可能。
Kim Y, Kim D, Choi J, et al. A Survey on Integration of Large Language Models with Intelligent Robots[J]. arXiv preprint arXiv:2404.09228, 2024.
本文转载自公众号AIRoobt ,作者:AIRoobt
原文链接:https://mp.weixin.qq.com/s/Dz2hBfT25odDM7OQJgQgPQ