电子游戏已经成为如今现实世界的模拟舞台,展现出无限可能。以游戏《侠盗猎车手》(GTA)为例,在 GTA 的世界里,玩家可以以第一人称视角,在洛圣都(游戏虚拟城市)当中经历丰富多彩的生活。然而,既然人类玩家能够在洛圣都里尽情遨游完成若干任务,我们是否也能有一个 AI 视觉模型,操控 GTA 中的角色,成为执行任务的 “玩家” 呢?GTA 的 AI 玩家又是否能够扮演一个五星好市民,遵守交通规则,帮助警方抓捕罪犯,甚至做个热心肠的路人,帮助流浪汉找到合适的住所?
目前的视觉 - 语言模型(VLMs)在多模态感知和推理方面取得了实质性的进步,但它们往往基于较为简单的视觉问答(VQA)或者视觉标注(Caption)任务。这些任务设定显然无法使 VLM 真正完成现实世界当中的任务。因为实际任务不仅需要对于视觉信息的理解,更需要模型具有规划推理以及根据实时更新的环境信息做出反馈的能力。同时生成的规划也需要能够操纵环境中的实体来真实地完成任务。
尽管已有的语言模型(LLMs)能够根据所提供的信息进行任务规划,但其无法理解视觉输入,极大的限制了语言模型在执行现实世界的具体任务时的应用范围,尤其是对于一些具身智能任务,基于文本的输入往往很难详尽或过于复杂,从而使得语言模型无法从中高效地提取信息从而完成任务。而当前的语言模型对于程序生成已经进行了若干探索,但是根据视觉输入来生成结构化,可执行,且稳健的代码的探索还尚未深入。
为了解决如何使大模型具身智能化的问题,创建能够准确制定计划并执行命令的自主和情境感知系统,来自新加坡南洋理工大学,清华大学等的学者提出了 Octopus。Octopus 是一种基于视觉的可编程智能体,它的目的是通过视觉输入学习,理解真实世界,并以生成可执行代码的方式完成各种实际任务。通过在大量视觉输入和可执行代码的数据对的训练,Octopus学会了如何操控电子游戏的角色完成游戏任务,或者完成复杂的家务活动。
论文地址:https://arxiv.org/abs/2310.08588
项目网页:https://choiszt.github.io/Octopus/
开源代码:https://github.com/dongyh20/Octopus
数据采集与训练
为了训练能够完成具身智能化任务的视觉 - 语言模型,研究者们还开发了 OctoVerse,其包含两个仿真系统用于为 Octopus 的训练提供训练数据以及测试环境。这两个仿真环境为 VLM 的具身智能化提供了可用 的训练以及测试场景,对模型的推理和任务规划能力都提出了更高的要求。具体如下:
1.OctoGibson:基于斯坦福大学开发的 OmniGibson 进行开发,一共包括了476个符合现实生活的家 务活动。整个仿真环境中包括16种不同类别的家庭场景,涵盖155个实际的家庭环境实例。模型可 以操作其中存在的大量可交互物体来完成最终的任务。
2.OctoGTA:基于《侠盗猎车手》(GTA)游戏进行开发,一共构建了20个任务并将其泛化到五个不 同的场景当中。通过预先设定好的程序将玩家设定在固定的位置,提供完成任务必须的物品和 NPC,以保证任务能够顺利进行。
下图展示了 OctoGibson 的任务分类以及 OctoGibson 和 OctoGTA 的一些统计结果。
为了在构建的两个仿真环境中高效的收集训练数据,研究者构建了一套完整的数据收集系统。通过引入 GPT-4作为任务的执行者,研究者们使用预先实现的函数将在仿真环境当中采集到的视觉输入处理为文本信息提供给 GPT-4,在 GPT-4返回当前一步的任务规划和可执行代码后,再在仿真环境当中执行代码,并 判断当前一步的任务是否完成。如果成功,则继续采集下一步的视觉输入;如果失败,则回到上一步的起始位置,重新采集数据。
上图以 OctoGibson 环境当中的 Cook a Bacon 任务为例,展示了收集数据的完整流程。需要指出的是,在收集数据的过程中,研究者不仅记录了任务执行过程中的视觉信息,GPT-4返回的可执行代码等,还记录了每一个子任务的成功情况,这些将作为后续引入强化学习来构建更高效的 VLM 的基础。GPT-4的功能虽然强大,但并非无懈可击。错误可以以多种方式显现,包括语法错误和模拟器中的物理挑战。例如,如图3所示,在状态 #5和 #6之间,由于 agent 拿着的培根与平底锅之间的距离过远,导致 “把培根放到平底锅” 的行动失败。此类挫折会将任务重置到之前的状态。如果一个任务在10步之后仍未完成,则被认定为不成功,我们会因预算问题而终止这个任务,而这个任务的所有子任务的数据对都会认为执行失败。
在收集一定规模的训练数据后,研究者利用这些数据训练出了一个具身智能化的视觉 - 语言模型 Octopus。上图展现了完整的数据采集和训练流程。在第一阶段,通过使用采集的数据进行监督式微调,研究者构建出了一个能够以视觉信息作为输入,遵从固定格式进行输出的 VLM 模型。在这一阶段, 模型能够完成视觉输入信息到任务计划以及可执行代码的映射。而在第二阶段,研究者引入了 RLEF
(Reinforcement Learning with Environmental Feedback),通过利用先前采集的子任务的成功情况作为奖励信号,采用强化学习的算法更进一步的提升 VLM 的任务规划能力,从而提高整体任务的成功率。
实验结果
研究者在构建的 OctoGibson 环境中,对于当前主流的 VLM 和 LLM 进行了测试,下表展示了主要实验结 果。对于不同的测试模型,Vision Model 列举了不同模型所使用的视觉模型,对于 LLM 来说,研究者将视觉信息处理为文本作为 LLM 的输入。其中 O 代表提供了场景中可交互物体的信息,R 代表提供了场景中 物体相对关系的信息,GT 代表使用真实准确的信息,而不引入额外的视觉模型来进行检测。
对于所有的测试任务,研究者报告了完整的测试集成功率,并进一步将其分为四个类别,分别记录在训 练集中存在的场景中完成新任务,在训练集中不存在的场景中完成新任务的泛化能力,以及对于简单的 跟随任务以及复杂的推理任务的泛化能力。对于每一种类别的统计,研究者报告了两种评价指标,其中 第一个为任务的完成率,以衡量模型完成具身智能任务的成功率;第二个为任务规划准确率,用于体现 模型进行任务规划的能力。
此外,研究者还展示了不同模型对于 OctoGibson 仿真环境中采集的视觉数据的响应实例。下图展示了TAPA+CodeLLaMA,Octopus 以及 GPT-4V 对于 OctoGibson 当中视觉输入生成的回复。可以看到,相较 于 TAPA+CodeLLaMA 以及只进行了监督式微调的 Octopus 模型,使用 RLEF 进行训练之后的 Octopus 模型 的任务规划更加合理,即使是对于较为模糊的任务指令(find a carboy)也能提供更加完善的计划。这些表现都更进一步说明了 RLEF 训练策略对于提升模型的任务规划能力以及推理能力的有效性。
总体来说,现有的模型在仿真环境中表现出的实际任务完成度和任务规划能力依旧有很大的提升空间。研究者们总结了一些较为关键的发现:
1.CodeLLaMA 能够提升模型的代码生成能力,但不能提升任务规划能力。
研究者指出,通过实验结果可以看出,CodeLLaMA 能够显著的提升模型的代码生成能力。与传统的 LLM 相比,使用 CodeLLaMA 能够获得更好的,可执行率更高的代码。然而,尽管一些模型使用了CodeLLaMA 进行代码生成,但整体任务的成功率依然会受到任务规划能力的限制。任务规划能力较弱的模型,及时生成的代码可执行率较高,最终的任务成功率依然较低;而反观 Octopus,尽管未使用 CodeLLaMA,代码的可执行率有所下降,但得益于其强大的任务规划能力,整体任务成功率依旧优于其他模型。
2.LLM 在面对大量的文本信息输入时,处理较为困难。
在实际的测试过程中,研究者通过对比 TAPA 和 CodeLLaMA 的实验结果得出了一个结论,即语言模型很难较好地处理长文本输入。研究者们遵从 TAPA 的方法,使用真实的物体信息来进行任务规划,而CodeLLaMA 使用物体和物体之间的相对位置关系,以期提供较为完整的信息。但在实验过程中,研究者 发现由于环境当中存在大量的冗余信息,因此当环境较为复杂时,文本输入显著增加,LLM 难以从大量 的冗余信息当中提取有价值的线索,从而降低了任务的成功率。这也体现了 LLM 的局限性,即如果使用 文本信息来表示复杂的场景,将会产生大量冗余且无价值的输入信息。
3.Octopus 表现出了较好的任务泛化能力。
通过实验结果可以得出,Octopus 具有较强的任务泛化能力。其在训练集当中未出现的新场景中完成任 务的成功率和任务规划的成功率均优于已有的模型。这也展现出了视觉 - 语言模型的一些内在优势,针对 同一类别的任务,其泛化性优于传统的 LLM。
4.RLEF 能够增强模型的任务规划能力。
在实验结果中,研究者们提供了只经过第一阶段监督式微调的模型以及经过 RLEF 训练之后模型的性能比 较。可以看出,在经过 RLEF 训练之后,模型在需要较强的推理能力和任务规划能力的任务上,整体成功 率和规划能力有了显著提升。与已有的 VLM 训练策略相比,RLEF 也更加的高效。上图所展示的示例也能够体现 RLEF 训练之后模型在任务规划能力上的提升。经过 RLEF 训练之后的模型能够懂得在面对较为复杂的任务时,如何在环境当中进行探索;此外,模型在任务规划上能够更加遵从仿真环境中的实际要求(如,模型需要先移动到要交互的物体,才能开始交互),从而降低任务规划的失败比率。
讨论
消融实验
在对模型的实际能力进行评估之后,研究者们更进一步探究了一些影响模型性能的可能因素。如下图所示,研究者从三个方面开展了实验。
1. 训练参数的比重
研究者对比了只训练视觉模型与语言模型的连接层,训练连接层和语言模型,以及完整训练的模型的性能。可以看出,随着训练参数的增加,模型的性能逐渐获得了提升。这说明,训练参数的多少对于模型是否能够在一些固定的场景当中完成任务至关重要。
2. 模型的大小
研究者们比较了较小的3B 参数模型与基线7B 模型在两个训练阶段的性能差异。通过比较可以看出,当模型整体参数量较大时,模型的性能也会得到明显的提升。如何选定合适的模型训练参数,使得模型能够 拥有完成对应任务的能力,同时也能够保证模型的轻量化和较快的推理速度,将是未来 VLM 领域研究中较为关键的一点。
3. 视觉输入的连续性
为了探究不同的视觉输入对于实际 VLM 性能的影响,研究者对视觉信息的输入顺序进行了实验。在测试 的过程中,模型会在仿真环境当中顺序转动,采集第一视角图像,并采集两张鸟瞰图,之后这些视觉图 像会按顺序输入 VLM 当中。而在实验中,当研究者随机打乱视觉图像顺序再输入 VLM 中时,VLM 产生了 较大的性能损失。这一方面说明了完整且结构化的视觉信息对于 VLM 的重要性,另一方面也从某种程度上反映了 VLM 在对视觉输入进行响应时需要依靠视觉图像的内在联系,而一旦这种视觉上的联系被破坏,将会极大的影响 VLM 的表现。
GPT-4
此外,研究者还对 GPT-4以及 GPT-4V 在仿真环境当中的性能进行了测试和统计。
1.GPT-4
针对 GPT-4,在测试过程中研究者提供与使用其采集训练数据时完全相同的文本信息作为输入。在测试任务上,GPT-4能够完成一半的任务,这一方面说明现有的 VLM 相对于 GPT-4这样的语言模型,从性能上还 有很大的提升空间;另一方面也说明,即使是 GPT-4这样性能较强的语言模型,在面对具身智能任务时, 其任务规划能力和任务执行能力依然需要更进一步的提升。
2.GPT-4V
由于 GPT-4V 刚刚发布可以直接调用的 API,研究者还没来得及尝试,但是研究者们之前也手动测试了一些实例来展现 GPT-4V 的性能。通过一些示例,研究者认为 GPT-4V 对于仿真环境当中的任务具有较强的零样本泛化能力,也能够根据视觉输入生成对应的可执行的代码,但其在一些任务规划上稍逊色于在仿真环境采集的数据上微调之后的模型。
总结
研究者们指出了目前工作的一些局限性:
1. 当前的 Octopus 模型在较为复杂的任务上性能并不令人满意。在面对复杂任务时,Octopus 往往会做出错误的规划,并且严重依赖于环境给出的反馈信息,最终往往难以完成整体的任务。
2.Octopus 模型仅在仿真环境当中进行训练,而如何将其迁移到真实世界当中将会面临一系列的问题。例如,真实环境当中模型将难以得到较为准确的物体相对位置信息,如何构建起物体对于场景 的理解将变得更加困难。
3.Octopus 目前的视觉输入为离散的静态图片,如何使其能够处理连续的视频将是未来的挑战。连续的视频可以更进一步提高模型完成任务的性能,但如何高效地处理和理解连续视觉输入将成为进一步提升 VLM 性能的关键。