论文标题:Octopus: Embodied Vision-Language Programmer from Environmental Feedback 论文作者:Jingkang Yang, Yuhao Dong, Shuai Liu, Bo Li, Ziyue Wang, Chencheng Jiang, Haoran Tan, Jiamu Kang, Yuanhan Zhang, Kaiyang Zhou, Ziwei Liu 作者单位:NTU, THU, etc 论文原文:https://arxiv.org/abs/2310.08588 论文出处:Submitted to ICLR 2024 论文被引:9(02/02/2024) 项目主页:https://choiszt.github.io/Octopus/ 论文代码:https://github.com/dongyh20/Octopus,192 star

Abstract

大型视觉语言模型(VLM)在多模态感知和推理方面取得了重大进展。此外,如果将其无缝集成到具身智能体(Embodied Agent)中,则标志着在创建能够制定规划并精确执行命令的自主式上下文感知系统(context-aware systems)方面迈出了关键的一步。本文提出了名为 Octopus 的 VLM,旨在熟练解译Agent的视觉和文本任务目标,制定复杂的行动序列并生成可执行代码。我们的设计使Agent能够熟练地处理各种任务,从模拟器中的日常琐事到视频游戏中的复杂交互。Octopus 的训练方法是利用 GPT-4 控制一个探索型Agent,在实验环境 OctoVerse 中生成训练数据,即动作和相应的可执行代码。我们还收集了反馈信息,从而实现了环境反馈强化学习(RLEF)的增强型训练方案。通过一系列实验,我们阐明了Octopus的功能,并展示了令人信服的结果。

Introduction

随着大语言模型 (LLM) 的兴起,随后观察到视觉语言模型 (VLM) 激增。这种演变拓宽了机器的能力,例如准确的图像或视频描述,推理和对话。在具身人工智能领域,SayCan (Ahn et al., 2022),Palm-E (Driess et al., 2023) 和 RT-2 (Brohan et al., 2023) 等已经在机器人操作数据上进行训练,以便Agent处理视觉输入并传递精确的机器人电机控制命令。

与这种机器人操作方法并行,与环境交互的另一种方法是通过代码调用专注于任务执行。该范式反映了人类固有的 System-I 刺激,其特征是类似于预定义代码的本能动作。相反,涉及规划和推理的更温和的 System-II 过程可能更适合大型模型。例如,参考图 1,规划与宠物一起乘车可能需要一个潜意识的清单:getOutOf() the house, check() for the pet outside, approach() the pet, letFollow(), and then open() to moveIn() to the car。事实上,这种 “programmatic” 范式虽然不是在视觉方面,但由 ToolFormer (Schick et al., 2023),HuggingGPT (Shen et al., 2023),ViperGPT (Surıs et al., 2023) 和 VisProg (Gupta & Kembhavi, 2023) 等开创性工作利用。他们利用 LLM 来制作程序并触发相关的 API。Voyager (Wang et al., 2023) 和 Smallville (Park et al., 2023) 等以游戏为中心的模型同样采用 GPT 进行游戏引擎中的函数调用,尽管它们通常直接从他们的环境中解析数据。

在结合视觉感知的情况下,类似的范式尚未得到探索。像 TAPA (Wu et al., 2023)和 SayPlan (Rana et al., 2023) 这样的初级规划只能输出规划,它们分别将策略分别固定在初始环境状态或使用动态场景图作为LLM输入。尽管它们进行了创新,但仍无法将详细规划无缝转换为现实世界中的行动。另一个重大挑战是过度依赖预先训练好的视觉模型将视觉内容转换成语言,这偶尔会阻碍 LLM 的性能。虽然 EmbodiedGPT (Mu et al., 2023) 通过整合视觉语言建模进行规划,然后使用策略映射过渡到操作来解决这一问题,但具身视觉语言模型(Embodied Vision Language Model)设计可执行程序的能力在很大程度上仍是未知领域。

这一空白激发了我们的探索。本文介绍了一种具身视觉语言程序员 Octopus。图 1 展示了该模型如何将Agent的视觉视角与文本任务目标相结合,从而设计出精确的动作序列并生成可执行代码。

为了让 Octopus 具备以视觉为中心的编程能力,我们利用 GPT-4 在实验环境 OctoVerse 中收集训练数据。我们为 GPT-4 提供了复杂的系统信息,大量的环境线索和明确的目标。基于这些输入,GPT-4 制定了关键的行动策略及其相关代码。与此同时,在 OctoVerse 中运行的Agent捕捉其视觉视角。在收集到的数据的支持下,Octopus 可以生成将视觉,语言指令和行动代码完美融合在一起的代码。

在数据收集阶段,Agent在 GPT-4 的指导下,同时接收来自模拟器的反馈,了解所执行的每个代码步骤的有效性,从而分辨出成功的动作和不成功的动作。这促使我们将 环境反馈强化学习(RLEF)方法融入到 Pipeline 中。成功的步骤会获得奖励,然后用于训练奖励模型。利用这些见解,我们使用 (Schulman et al., 2017) 提出的近端策略优化(Proximal Policy Optimization,PPO)对Octopus进行了进一步微调。这种方法可作为牵引,提高模型的决策准确性。

从经验上看,Octopus 模型在大量测试场景中展示了其适应性和能力,不仅在常规任务上,而且在需要推理能力的任务上都取得了可喜的成果。与现有模型相比,Octopus 在任务规划,代码生成和任务执行方面都更胜一筹,其性能在集成 RLEF 后得到显著提升。总之,我们的主要贡献包括:

使用带环境反馈的强化学习(RLEF)训练出的具身视觉语言规划器和编程器。OctoVerse 框架内的两个不同的具身环境:

(i) OctoGibson,基于 OmniGibson (Li et al., 2023c) 开发(ii) OctoGTA,改编自 GTA-V (gta, 2014) 这些令人信服的结果证明了 Octopus 中集成 RLEF 方法的有效性,并为今后的可视化规划和编程研究提供了有益的启示。

2 RELATED WORK

2.1 EMBODIED AI WITH LARGE MODELS

最近的研究浪潮主要集中在将 LLM 与具身智能任务相结合。例如,

VoxPoser 通过无监督方法解决机器人操纵问题 (Huang et al., 2023)SayCan (Ahn et al., 2022),Palm-E (Driess et al., 2023),RT-2 (Brohan et al., 2023) 和EmbodiedGPT (Mu et al., 2023) 等项目有效地将视觉或语言线索与机器人操纵数据整合在一起。在机器人操作领域之外,Voyager (Wang et al., 2023) 和 Smallville (Park et al., 2023) 等项目利用 GPT 与游戏函数对接,依靠预设函数来管理复杂的操作。与此类似,VisProg (Gupta & Kembhavi, 2023) 利用 GPT-3 语言提示来编写 Python 程序。

虽然 Octopus 模型也能制定计划和代码,但其显著特点是将视觉输入无缝集成到程序和代码生成中。这也与 TAPA (Wu et al., 2023) 和 SayPlan (Rana et al., 2023) 等其他具身规划器形成鲜明对比,后者部署了单独的视觉模块,将视觉数据转化为 LLM 的语言输入。Octopus 作为一个 cohesive 的视觉语言模型,不仅能提供计划,还能提供可执行代码,表现出色。

2.2 VISION-LANGUAGE MODELS

GPTs ,LLaMA 和 Vicuna 等 LLMs 的最新进展提高了视觉语言模型的性能,如 Flamingo 和 BLIP-2 等视觉语言模型的性能,尤其是在零样本学习场景中的性能。为了提高视觉语言模型的对话和交互能力,研究人员已经开始了更多的探索。这些模型包括 Otter,InstructBLIP 和 LLaVA 等。这些模型专门用于促进复杂的人机交互,尤其适合用于多模态聊天机器人。从 Otter 延伸而来,我们提出了 Octopus,这是一种视觉语言编程模型,旨在促进人类-模型-Agent之间的交互。具体来说,Octopus 处理人类指令,生成动作代码,使Agent能够执行相应的操作。

2.3 FEEDBACK IN LARGE LANGUAGE MODELS

人类反馈强化学习(RLHF)是人工智能领域的一种现代方法,它将传统的强化学习与来自人类监督者的反馈相结合。(Sun et al., 2023) 是RLHF首次成功应用于视觉语言对齐。我们提出了环境反馈强化学习(Reinforcement Learning with Environmental Feedback,RLEF),它利用环境反馈来训练视觉语言模型。RLEF 中的反馈自然来自模拟器环境,而不是人类的直接监督。

3 THE OCTOVERSE ENVIRONMENT AND DATA COLLECTION

本节介绍为训练和评估Octopus模型而设计的模拟环境。然后,深入探讨在这些环境中使用的数据收集技术,并解释训练集和测试集中数据的详细信息。

3.1 OVERVIEW OF OCTOVERSE

为了训练Octopus模型,我们开发了两个模拟器环境,统一命名为 OctoVerse。我们的主要环境是 OctoGibson 模拟器,我们从中收集训练数据并进行主要分析。然后,我们在 OctoGTA 模拟器中评估模型的泛化能力。

OctoGibson

我们在模拟环境 OmniGibson (Li et al., 2023c) 的基础上构建了环境,该框架支持 50 个场景中的 1000 种日常活动,其中包括 5000 多个精心注释的物体。为了加强模型训练,我们加入了 16 个机器人可以执行的函数,如 walkTo()。在这个环境中,我们设计了 476 个任务。每个任务以初始状态开始,以确定的终止状态结束,从而可以直接评估任务的完成情况。其中,367 个任务是常规任务——简单而直接的动作,如:把杯子放到垃圾桶里。另外 109 个任务是需要深入理解的推理任务。例如,在买巧克力 任务中,Agent需要知道从货架上挑选一块巧克力,然后连同钱一起放在收银台上。为了让读者熟悉我们的环境,图 2(a-c)展示了任务分类和词云。

OctoGTA

仿真环境建立在 GTA-V 中,用于辅助实验,评估 Octopus 模型的泛化性。在这个环境中,我们整合了 11 个函数,并设计了 20 项任务。除了图 1 中的示例,此类任务的另一个示例是:帮助 NPC 将船开回岸边。

3.2 INSTRUCTIONS FROM EXPLORATION

启动Octopus模型的训练需要确保其运行能力,特别是处理视觉输入,解释当前和过去状态(如Agent持有的物体)以及生成结构化规划和可执行代码的能力。因此,组织训练数据的首要任务是形成简洁的配对:视觉输入 + 当前/历史状态 → 下一步规划 + 可执行代码。然而,收集这些配对很困难;通过人工手动对齐既费时又费力。为了规避这一挑战,我们利用了 GPT-4,它不仅能指导Agent执行任务,还能促进自动数据收集过程。GPT-4通过环境信息感知环境,并根据详细的系统信息产生预期的计划和代码。

Environment Info Collection

如图 3 和图 4(a)所示,我们在每个状态下都会收集一条环境信息,包括观察到的物体,观察到的关系,库存等属性。具体来说,模拟器可以提供每个状态下的精确场景图(Scene Graph),从而形成前两个部分的内容。库存信息(inventory info)可以在模拟器中轻松获取。任务(如图 3 中的烹饪培根)由 Task Goal 表示。

Automation with GPT-4

在准备好环境信息后,我们制作了一个结构化的系统信息,以确保机器人不仅能理解其输入,还能保持一致的输出格式。附录中详细介绍了这一提示信息。实验表明,一个表述清晰的提示可以让 GPT-4 有效地生成可执行代码。值得注意的是,系统信息和环境信息加在一起可能会非常长。因此,标准的 GPT-4 8K 模型可能难以生成有意义的输出结果,这就需要使用更强大的 GPT-4 32K 模型。如图 3 所示,当向 GPT-4 输送一致的系统和环境信息时,它会产生全面的输出,包括当前情景分析,规划和可执行代码。这些数据将支撑第 4.2 节中的训练。

GPT-4 是在指导Agent完成任务的主要任务下收集训练数据的。然而,GPT-4 并非万无一失。错误有多种表现形式,从语法错误到模拟器中的物理挑战。例如,如图 3 所示,在状态 #5 和 #6 之间,由于培根和平底锅之间的距离较远,Agent行动失败了。这种错误会将任务重置到之前的状态。如果一项任务在 10 个步骤后仍未完成,就会被视为不成功,出于预算考虑,我们会终止这项任务。无论任务的完成状态如何,所有数据对都是细化指令(refine instruction)的宝贵资源。

3.3 ENVIRONMENTAL FEEDBACK

在 GPT-4 引导Agent完成任务的同时,其不断试错的方法不仅仅是收集视觉-输出对(vision-output pairs)。这种反复解决问题的方法提供了丰富的反馈数据。反馈的自动注释包括两个方面,重点是步骤级(step-level)和任务级(task-level)判断。

步骤级判断评估执行后状态与其目标状态的一致性。例如,在图 3 中,绿色编码的步骤表示积极反馈。我们可以将完成任务的行动序列可视化为一棵树,其中每个节点表示一个步骤(子任务),包含一个行动代码。每个步骤都有一个表示成功或失败的二进制值,成功的分支优先于失败的分支。任务级判断衡量的是整个任务的成功执行情况。如果任务没有按预期完成,任务中的每个状态都会被标记为负值。这些经过整理的反馈数据可以支撑环境反馈强化学习(RLEF),将在 4.3 节详细讨论这一方法。

3.4 THE OCTOVERSE DATASET

根据第 3.2 和 3.3 节中的操作,我们在 OctoGibson 环境中创建了一个训练数据集。该训练数据集包含 416 个任务,并通过 GPT-4 探索进一步划分为 3776 个子任务。对于每个子任务,除了规划和可执行代码解决方案外,我们还捕捉了 10 帧代表Agent视角的图像:8 帧是第一视角的图像(每隔 45 度),2 帧是鸟瞰图(BEV)——近距离的和远距离的。为了进行评估,我们抽出了 60 个任务,其中 45 个是常规任务,15 个需要推理。此外,还有 15 个任务的场景在训练中没有出现过。

OctoGTA 环境旨在验证 Octopus 模型的泛化性。鉴于代码语法与 OctoGibson 不同,我们将 9 个任务纳入训练集,用于小样本适应(few-shot adaptation),而将其余 11 个任务保留用于评估。训练任务包括 34 个子任务,每个子任务配对 10 帧图像和人工策划的输出。

4 OCTOPUS: THE EMBODIED VISION-LANGUAGE PROGRAMMER

本节介绍视觉语言编程器 Octopus 的架构和训练方法。Octopus 基于 Otter,结合了专门的模块,以满足 OctoVerse 中的视觉语言编程任务。我们将阐明源于 Otter 模型的架构设计,详细介绍利用探索指令的监督微调方法,并探索通过环境反馈增强强化学习的整合。图 4 (b) 简要说明了 Octopus 训练管道。

4.1 ARCHITECTURE

Octopus 架构在很大程度上受 Otter 的启发。不过,我们对架构进行了专门修改,以适应 OctoVerse 中视觉语言编程任务的独特挑战。Octopus 的核心是两个关键组件的无缝集成:

MPT-7B 语言解码器 (MosaicML, 2023)CLIP VIT-L/14 视觉编码器 (Radford et al., 2021)

为了进一步加强视觉和语言组件之间的协同作用,我们采用了 Flamingo 架构的设计原则。这体现在我们对感知器重置模块的使用和交叉注意模块的编排上。最初,感知器重采样器模块输入一系列图像或视频特征,生成一组固定的视觉标记。随后,这些标记(tokens)通过交叉门控注意模块调节语言层,其中标记充当键和值,而上一层层的文本充当查询。

通过这种详细的架构,Octopus可以出色地完成需要对视觉和文本数据进行细致理解的任务。

4.2 SUPERVISED FINETUNING WITH INSTRUCTIONS FROM EXPLORATION

我们在从 OctoVerse DE = {(Xv , Ti, Tr )} 收集的数据集上训练Octopus模型,并采用标记级监督微调(token-level supervised fine-tuning,SFT)。在训练过程中,感知器重采样器会将图像 Xv 转换为视觉标记,并与语言模型层中的文本模态保持一致。这些视觉标记通过 Cross Gated Attention 模块为后续层提供条件。训练目标为下一个标记预测,类似于 GPT 系列模型,此外还结合了视觉和文本输入。目标响应 Tr 的可能性建模如下:

请注意,Ti 表示指令标记,Tr,

在 OctoVerse 中,视觉观测数据由 Xv = {x0F , … . , x7F , x0B , x1B} 表示,包括 8 帧第一人称视角(first-person view,FPV)图像和 2 帧鸟瞰(bird’s-eye view,BEV)图像组成。在训练过程中,多图像输入 Xv 被视为连续的视频帧序列。同时捕捉 FPV 和 BEV 的原因如下:

通过捕捉 FPV,我们希望Agent能模仿人类的处理方式,吸收其直接观察到的图像,就像人类解释其周围环境一样。之所以要整合 BEV,是因为Agent与人类不同,可以利用其他摄像头来源,如监控摄像头,从而对环境有更全面的了解。

为了获得 8 帧 FPV 图像,我们每隔 45 度捕捉1 帧图像,以确保获得 360 度的完整环境视角。

4.3 REINFORCEMENT LEARNING WITH ENVIRONMENTAL FEEDBACK (RLEF)

在 OctoVerse 中,如第 3.3 节和图 3 所述,我们将任务进程可视化为一棵树。树上的每个节点都象征着一个子任务,它带有一个二进制值({0,1}),表示该子任务是否成功。简单地说,如果一个节点(或子任务)的值为 1,那么它就朝着我们的最终目标迈出了正确的一步。

Tree-based Task Representation

我们将这些数据整理成环境奖励数据集:

其中 Ti r 和 Tj r 是树上具有相同父节点任务描述 T∗i 的两个响应,c 是可能导致最终完成给定任务的首选响应索引。这一步骤的主要目的是确保在面对源于同一父节点任务的两个子任务时,奖励机制倾向于成功执行的分支。需要注意的是,即使父节点没有多个响应,我们仍可根据第 3.3 节分配反馈。

Reward Model Configuration

我们对 DR 上的单模态 CodeLLaMA-7B 模型进行了微调,将附加的 value head 作为奖励模型 rφ。为了提高计算效率,奖励模型只接受文本模态,并输出标量奖励。这个基于文本的奖励模型的功能是评估状态转换(用 T∗i → Ti,j r 表示),以确定哪些转换能产生更高的奖励,从而帮助Agent执行和完成任务。

Policy Model Development

接下来,我们使用上述监督微调模型作为具有固定参数的初始策略模型 πINIT。然后,将模型的另一个副本初始化为 RL 微调模型 πRLθ,并使用近端策略优化(PPO)对其进行训练,以最大限度地提高响应奖励。损失函数公式化为:

5 EXPERIMENTS

我们首先建立了 OctoGibson 来评估 Octopus 和其他相关模型的性能。我们利用目标任务完成得分(goal task completion score)指标来检查任务是否在模拟器中实际完成,以及来自人类评估的计划得分。共有 60 个评估任务,其中 45 个来自可见环境,15 个在训练过程中未见。我们还有 45 个常规任务和 15 个需要推理的任务。请注意,像 Octopus 这样的模型不一定能准确识别模拟器中出现的特定物体名称(例如 189 号水瓶)。为了解决这个问题,我们对生成的代码进行了后处理,通过简单的字符串相似性匹配,将通用物体引用替换为模拟器中的准确名称。

5.1 COMPARISON METHODS

首先,我们将介绍几种基线方法来证明各种模型在执行规划和生成代码方面的能力。

Blind LLMs

对于 Blind LLMs,我们只将环境信息作为模型输入,训练出模仿 GPT-4 行为的模型,但将引导系统信息内化。具体来说,我们训练了两个模型:

LLaMA2-7B-Chat 3CodeLLaMA-7B 4

在测试时,它还会接收从模拟器解析出的包含物体(O)和关系(R)信息的环境信息,记为 GT (O+R)。

TAPA (Wu et al., 2023)

TAPA 模型利用开放词汇检测(OVD)技术(Zhou et al., 2022b) 来识别图像中的物体。识别后,这些物体将作为语言模型的输入,从而推导出规划。为了让 TAPA 适应 OctoGibson 任务,我们通过结合 CodeLLaMA 的训练来增强其编程能力,从而能够将文本物体列表翻译成连贯的规划和可执行代码。传统上,TAPA 只在开始时构建规划,在一个步骤中生成整个规划及其相关代码。在我们的实现中,我们保留了这种 任务级规划结构,但也引入了步骤级方法。这一新颖的附加功能使 TAPA 能够按顺序生成动作,从而在推理过程中灵活地进行即时调整,类似于Octopus模型。为了使实验过程更加精细,我们在训练和测试阶段都用真实的物体列表(表示为 GT (O))代替了 OVD 输入,从而增强了 TAPA 方法的有效性,并促进了对其能力的更丰富理解。

EmbodiedGPT (Mu et al., 2023)

我们采用 EmbodiedGPT 作为基础架构,修改了其设计原则,以更好地适应 OctoVerse 数据集和相应任务。EmbodiedGPT 的原始应用主要针对机器人手臂运动的底层控制信号生成,与之不同的是,我们的任务需要基于代码和应用程序接口的控制机制。因此,我们省略了基线架构中的某些组件,如文本查询反馈和策略映射网络。我们修改后的设计在结构上与 InstructBLIP相似。最初的实验表明,在 EmbodiedGPT 架构中使用冻结的视觉编码器和语言解码器时,收敛性不足。为了解决这个问题,我们采用了完全可训练的方法,在训练过程中更新所有模型参数。

5.2 MAIN RESULTS

CodeLLaMA Improves Coding but not Planning.

表 2 的前两行强调了 Blind LLM 的任务完成率是次优的。CodeLLaMA 代码执行率显著提高,92% 的已写代码可以执行,而 LLaMA 只有 24%。但是,它在规划方面的能力仍然有限。相比之下,Octopus MPT-7B 模型在保持编码能力(72% 的已写代码可以执行)的同时,还显示出卓越的规划和任务完成指标。我们推测,OctoGibson 环境中的编码要求可能并不十分复杂,因此,像 CodeLLaMA 这样的高级编程语言模型虽然有益,但并不那么重要。虽然没有在表中显示,但我们用 CodeLLaMA 取代 MPT 模型的努力遇到了生成无意义输出的挑战,这表明要成功整合 Octopus-CodeLLaMA,可能需要更精细的代码或图像代码配对数据。

Blind LLMs Struggle with Extended Input Content.

我们的观察结果表明,步骤级的 TAPA 模型在获得真实物体列表后,规划能力明显增强。它与 Blind CodeLLaMA 之间的主要区别在于输入长度;后者处理的是冗长的成对关系内容,这使得语言模型从环境信息中提取关键数据的能力变得更加复杂。这种情况凸显了 Blind LLM 的固有局限性:仅仅依靠语言来传达全部环境数据,可能会导致输入不流畅,信息量较少。

Octopus Demonstrates Superior Task Generalization.

表 2 凸显了 Octopus 的性能,证明其在完成任务方面始终优于独立的语言模型。它在适应以前从未遇到过的环境方面的出色表现凸显了视觉语言模型的固有优势。下一节将提供更详细的消融分析。

RLEF Enhances Octopus’s Planning Strategy.

表 2 清楚地表明,经过 RLEF 微调后,Octopus的推理能力大大增强。图 5(b-c)就是一个很好的例子,经过 RLEF 微调后,Octopus 精确地导航到了装有玻璃瓶的橱柜,而不是试图直接从远处捕捉。从数量上看,Octopus对以前从未见过的推理任务表现出了更强的泛化性,从而增强了其解决逻辑任务的能力。在与其他策略(如 EmbodiedGPT 采用的具身查询)比较时,RLEF 显得更为有效。

5.3 ABLATION STUDY

7B v.s. 3B Model Size

我们开始了以模型大小为中心的实验,以确定总参数数对视觉语言模型效能的影响。如图 6 (a) 所示,缩小模型规模会导致性能明显下降。SFT 模型和 RLEF 模型的结果一致,这凸显了在构建视觉语言模型时适当的模型大小的重要性。

Examining Training Components

通过对训练组件的实验,我们旨在阐明微调视觉语言模型的最佳策略。图 6 (b) 显示,在 60 个任务中,仅调整连接器(connector)就能成功完成 4 个任务。相反,同时对连接器和语言解码器进行微调,成功率会略微提高,可完成 5 项任务。与完全优化的模型相比,这些结果凸显了训练参数的重要性。

Significance of Visual Inputs in Task Performance

在我们的标准配置中,视觉组件处理一系列图像输入,包括 8 帧环形捕获的第一人称视角(FPV)图像,以及 2 帧鸟瞰(BEV)图像。为了研究视觉输入对任务表现的影响,我们启动了一项消融研究。在改进的设置中,这些视觉输入的顺序被故意随机化,目的是削弱视觉信号的强度。如图 6 © 所示,这种有意破坏视觉输入一致性的做法导致任务表现明显下降。这一结果凸显了清晰而有条理的视觉输入在Octopus模型中发挥的关键作用,强调了Octopus模型在有效规划和执行任务时极大地利用了视觉线索。

5.4 PERFORMANCE OF GPT-4 AND GPT-4V

Performance of GPT-4

提供给 GPT-4 的输入与数据收集阶段的输入一致,都是纯文本输入。在这种条件下,在总共 60 个测试任务中,GPT-4 在 31 个任务中取得了令人称道的成功率。这一结果表明,当前的模型仍有相当大的提升空间。即使是 GPT-4 也没有达到最佳表现,这表明该领域还有很大的改进空间。

Performance of GPT-4V

虽然由于应用程序接口的限制,我们无法对 GPT-4V 进行广泛的测试,但我们的示例案例表明,当提供基于图像的环境信息时,GPT-4V 能够生成与 Octopus 相当的代码。然而,在当前环境下训练的 Octopus 能熟练地执行 "打开柜子 "等任务,而 GPT-4V 的操作(如图 5 (e) 所示)虽然看似准确,但在特定任务(如定位目标物体——汽水罐)上却有所欠缺。考虑到 GPT-4V 的零样本击学习方法和对环境的不熟悉,以及模拟器可能存在的差异,其结果仍然值得称赞。

5.5 TRANSFERABILITY ON GTA TASKS

为了检验 Octopus 在新环境中的适应能力,我们将最初在 OctoGibson 上训练的模型过渡到 GTA 框架内的任务。我们观察到,即使在小样本的情况下,Octopus也能表现出值得称赞的性能,并能完成 11 项测试任务中的 4 项。

6 CONCLUSION

视觉语言程序员 Octopus 巧妙地将视觉和语言结合起来,生成精确的规划和可执行命令。Octopus 利用 OctoVerse 中的 GPT-4 并结合环境反馈强化学习 (RLEF),不断改进其理解和执行能力,在各种测试场景中表现出令人印象深刻的适应性和能力。

Limitations

尽管 Octopus 功能强大,但它也有明显的局限性。在目前的版本中,它只能生成简洁的代码。在面对复杂的任务时,它经常会出现失误,做出错误的尝试,并严重依赖环境反馈来纠正方向——最终往往无法取得成功。未来可以解决这些缺陷,方法是让 Octopus 适应更具挑战性的环境和任务,或者将其与擅长编写复杂,结构良好的代码的最先进 LLM 相结合。

此外,现有的 Octopus 仅在仿真环境运行。过渡到有形世界可能会带来大量复杂问题。例如,现实世界中的场景可能无法像 OctoGibson 中的场景一样提供随时可用的场景图,这就使得利用场景图模型 (Yang et al., 2022; 2023) 来表征环境的细微差别变得更加复杂。目前对静态图像输入的依赖也使人们对视频输入在提高任务性能方面的功效产生了疑问。考虑到这些尚未解决的难题,我们会开放代码,让更广泛的研究团体来推动这一新兴的具身人工智能领域的发展。

Ethical Statement

在开发和应用 Octopus 的过程中,我们坚持严格的道德标准。我们特别关注数据隐私和安全,确保敏感信息不被泄露。整个开发环境基于开源模拟器或公开发布,经过审核的视频游戏。所收集的数据集和模型的设计是为了在各种应用中符合道德规范,不会自动执行会引起道德问题的操作。特别是,我们精心设计了与 GTA 相关的友好任务,确保排除任何不恰当或暴力的行为。据我们所知,目前这项研究没有涉及任何已知的伦理问题。

A SIMULATOR DETAILS

A.1 OCTOGIBSON

Illustration and Statistic Results of OctoGibson

视觉语言编程任务的数据集是基于 OctoGibson 模拟环境收集的。该环境支持 476 项任务,可与 16 个场景中的 78,138 个物体进行交互。每个物体的可操作属性由 8 种一元状态(如可打开和可加热)以及 12 种二元关系(如在旁边和在上面)来描述,以说明其与其他物体的空间关系。这些细节对于定义Agent的环境设置至关重要。在数据集中,来自 155 个房间任务的 37,760 个视觉输入被整理成 16 种布局类型。布局又分为 3 类: 室内场景,室外场景和公共场景。

A.2 OCTOGIBSON DATASET

Statistic results of OctoGibson Training Dataset

OctoGibson 训练数据集包括 476 个任务,再细分为 3776 个指令子任务(instructional subtasks)。与这些子任务相对应,收集了 37,760 帧图像用于训练,形成了图像-指令数据对,从而增强了视觉语言模型的能力。

A.3 GTA-V

A.3.1 EXPERIMENTAL ENVIRONMENT

Objective and Construction of the OctoGTA Environment

利用这一环境的主要目的是评估模型在复杂,可定制的环境中对不同任务的适应性和有效性。我们希望该模型能在 GTA 环境中学习并设计出有效的策略来解决多种定制任务,从而展示其在现实世界场景中的泛化能力和实用性。OctoGTA 环境建立在 GTA V 之上,使用了 SHVDN(Script Hook V .NET),这是一个通用的开源脚本插件,可以对游戏中的元素进行深度定制和控制,将 GTA V 从一个游戏平台转变为一个灵活的研究沙盒。

Detailed Description of the GTA Environment

利用 SHVDN,可以使用.NET 语言(特别是 C#)制作游戏脚本,并方便操作游戏环境,创建自定义任务和控制游戏实体。这种适应性使我们能够广泛地定制游戏,以满足我们的研究要求。在这个环境中,模型会面临无数的任务场景和挑战,包括行走,游泳,攀爬以及与环境物体进行各种交互。

Support and Convenience for Model Training

GTA 环境提供了广泛的自定义选项和一系列实验条件,如天气条件,实验场景和交互物体,有助于全面评估模型的性能和适应性。该环境中大量的注释物体使模型能够更精确地解释其视觉输入,从而提高学习效率,并有助于取得预期成果,这些成果有望为解决现实世界中的问题提供见解和进展,并为相关领域的未来研究提供支持。

A.3.2 EXPERIMENT PROCEDURE

Data Preparation

在实验之前,我们首先准备了相关的数据集,包括各种场景,任务和交互函数,确保模型能够在不同条件下学习和适应。

我们设定了 4 类不同的任务,包括让玩家把宠物狗送上车,引导流浪汉前往特定地点,协助驾驶船只驶向海岸,以及在行人之间发生冲突时进行干预。对于每一类任务,我们都将其设置在五个不同的场景中,共计 20 个任务。每个任务创建后,都会将玩家和必要的物体及 NPC 载入指定地点,以完成任务。

First and Third-Person View Acquisition

Script Hook V 主要为 GTA V 单人模式中的本地函数调用提供支持,使脚本开发人员能够轻松访问和设置游戏属性,坐标以及与角色,可交互物品,摄像头和其他游戏元素相关的其他参数。更具体地说,我们采用了 CAM 部分的 SET GAMEPLAY CAM RELATIVE HEADING 和 ENTITY 部分的 SET ENTITY HEADING 来自动旋转摄像头,并结合 RGB-D 图像采集来自动收集环境信息。

BEV Image Capture Using MOD

Script Cam Tool mod 可使摄像机与玩家角色解耦,从而实现更多用途的全景和广角拍摄。在全景图像捕捉过程中,我们使用该 mod 为摄像机设置监控视角。

Task System

通过 ScriptHookVDotNet 库,可以使用 C# 在 GTA-V 中调用本地函数,创建游戏内任务(如行人之间的争吵),以及读取或设置游戏状态(改变角色健康状况,修改或检索角色位置)。在此基础上,我们将这些函数结合起来,以方便创建自定义复杂任务和监控任务进度。

我们使用 ScriptHookVDotNet 开发了一系列动作控制函数。除了允许玩家执行行走,跑步,游泳,攀爬和跳跃等基本动作外,它们还能与场景中的物体或非玩家角色(NPC)进行交互,例如进入和驾驶车辆,为 NPC 分配任务以及让他们跟随或保持不动。有了这些功能,模型就可以通过调用这些函数来控制场景中的玩家和物体,从而完成我们设定的任务。

为了训练模型,我们编写了 20 个脚本,这些脚本可以通过调用动作函数顺利完成任务。在每个脚本中,我们将目标任务分解为多个子任务,并依次执行。在每个子任务的开始和结束时,我们都会捕捉玩家周围环境的图像,并提供文字描述。这些收集到的信息就是我们的训练数据。

B PROMPT

介绍 system message,GPT-4 请求示例和 GPT-4 输出示例。红色箭头表示同一行文本中的换行符。

B.1 SYSTEM MESSAGE

B.2 ENVIRONMENTAL MESSAGE

B.3 GPT-4 RESPONSE EXAMPLE

推荐阅读

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。