论文阅读笔记

Embodied AI

集成了物理上的机械以及 ai(一般是常用的机器学习模型)的一种智能体, 这个词与 robotics(机器人学)的区别是, 后者较为关心硬件上的很多问题, 以及操作系统等偏底层的问题;而具身智能较为关注抽象层面的智能, 暂时屏蔽掉底层的一些细节

Semantic Mapping 语义地图

survey

前言

语义地图以结构化的方式捕获环境信息, 让代理能够利用这些信息进行推理
由于具身智能面对的现实问题复杂性, 它会需要很多种 ai 技术, 单单是抓取一件物品, 就需要包括视觉辨识, 自然语言的理解与推理, 导航, 操控机械臂的能力等等
在这一系列任务中, 辨识理解环境是第一步, 在认知科学中, 研究者发现人类和动物实际上也会将现实的空间抽象化为一种“认知地图”, 也就是说,对我们的大脑来说,一处地点在脑中的印象不只是一些有长宽高形状的障碍物,还有名称,物理性质,用途之类的“语义”,这一定程度上启发了研究者使用类似的机制让 ai 理解环境,也就是语义地图
为了方便, 将建立(语义)地图的过程简称为映射(mapping)
对于导航,寻物等任务,当前主流的流程可分为三步:

  1. 将当前的环境合理地建立数据模型
  2. 定位自己的当前位置
  3. 路径规划

智能机器人可以分为很多种, 我们只考虑不联网(用不了 gps), 没有复杂传感器的一类, 就叫 bot 吧, bot 想建立地图, 最直观的方法就是以自己为中心开始认知环境, 这就有点类似人类的认路, 对这种机器人来说,1. 2.其实可以视为一体, 因为在对当前环境建模的过程中可以自然地知道自己的位置, 主流的技术也是这么做的, 称为 simultaneous localization and mapping (SLAM)
总结一下, 接下来要讨论的 SLAM 是一种对环境的不断认知地同时进行地图制定及定位的一种技术
现在设想一个传统印象里的机器人, 它可能有光学或者声学的某些传感器, 这些传感器能很容易地捕捉到附近的障碍物, 这和初中生物讲的蝙蝠超声波定位也没什么本质区别, 但这些障碍物信息并不包括语义信息
附带语义的 slam 称为 semantic slam, 常见的做法是对传感器画面做特征提取, 例如可以提取成一系列词汇, 这称为 Bag of Visual Words, 得到这些词后, 查找词典匹配到一个具体物品;如果想要更好的效果, 则可以进行深度学习

名词介绍

如果我们想要真正能用的机器人, 就不得不想办法让它能理解概念性的东西, 例如自然语言里的上下文, 词义向量, 而在具身智能的问题场景中, 则需要带有语义的地图, 例如客厅和餐厅都摆着大桌子, 要区分这两种房间就需要很多上下文信息
以下开始介绍一些细节, 首先是地图的表示方法(结构), 考虑室内这个场景, 由于其最大高度是固定的, 因此可以比较方便地使用 2d 的拓扑图, 网格来表示, 除此之后也可以使用 3d 的点云或者其他混合结构
我们首先做的是物体辨识和分类问题, 在室内, 例如普通住房中, 房间、家具的种类都是有限且数量级很小的, 对于机器人, 用内置芯片的算力可能就能做出来, 在机器人探索的过程中, 得到的各个空间、物体关系可以不断存入语义地图中供之后调用, 例如让机器人找一个苹果, 它能发现苹果在冰箱里面, 拓扑关系上可能就是客厅-冰箱-苹果, 这样之后找苹果也可以跟着这条路径走

  • 开放词汇语义地图(Open-Vocabulary Semantic Maps): 系统能够识别和处理未在训练中见过的新对象或特征, 而不仅仅局限于预定义的类别;与其相反的情况就可以视为是一个分类问题
  • Embodied AI tasks: 大致可分为: 探索、导航、操纵, 更细粒度的划分可以使用目标的类型, 例如图像目标比定位上的目标需要更细的信息
  • End-to-end | Modular approaches: 前者直接用传感器信息生成行动, 优点是对中小型任务效果不错, 但复杂的 3d 空间, 长期路径规划等任务中表现不佳, 此外也无法复用;后者会将输入信息投入不同模块中处理例如编码器, 映射, 探索等, 最后生成行动, 优点是各个模块可以分开训练或者使用预训练模型
  • e2e 相关
    • intermediate map representation: 输入和输出之间的中间数据, 一般用于提取关键信息
    • egocentric map: 从个体的视角(通常是观察者或移动体的视角)表示环境的地图
  • 模块化相关
    • 一般包括: visual encodermapperexploration(决定去哪探索)、planner(决定机器采取什么动作), 以上提及的这些是顺序关系
    • 视觉编码器: 将观察转化为带有语义的编码, 一般使用预训练的模型, 最后可以将检测到的物体放入标好名字的 box
    • 映射器: 接受编码器的特征信息, 构建语义地图
    • 探索: 类似红警 2 的探图能产生信息优势, 由于知道越多的地图信息应该是越好的, 因此设置这个模块鼓励智能探索未知区域, 优先探索哪边可以选取合适的方法, 例如图文相关型, VLM 输出的最佳方向
    • 计划: 在地图建后, 需要指定导航路径, 这部分取决于机器的运动方式等细节
  • Active SLAM: 强调机器人自己能选择以某种方式主动收集地图信息用于映射, 比如自己走几步, 让摄像头拍到更多画面, 也就是相比 ALAM 增加了 planning 部分。

具体环节:

  1. localization: 非常依赖于传感器, 由于本领域相对不关注底层细节, 一般假设每次采样都获得了最佳结果或者每次行动都实现了理想的位移
    1. 由于现实中不可能有理想情况, 我们有 Loop Closure 这样的算法来矫正误差, 该算法会利用再次访问之前访问过的地点时的数据矫正对行为位移的估计值
  2. feature extraction: 关键部分, 后文详细介绍
  3. projection: 存储 3 维地图是一件非常难的事,而且常识上高速轴上的物体关系较简单,因此我们常用 2 维地图,学习时将 3 维信息添加到 2 维地图上, 如果我们通过相机来获取空间信息, 那么过程就是, 根据相机的原理算出物体的世界坐标(X, Y, Z)将世界坐标投影到 2 维地图坐标(x, y),
  4. Accumulation: 上一步中可能遇到不同的物体堆到同一个二维点的情况, 为此有很多方法, 例如取最大, 取平均, 等, 其中可学习的方法可以有带有 LSTM 或者 GRU 的 RNN

此外还有一些权衡的地方:

  • Egocentric vs allocentric
  • Tracking visited areas
  • View point selection: 固定视角的摄像头或者全局摄像头
  • Online vs offline map building: 考虑到盲点等问题, 一般 online 是更好的
  • 现实世界的复杂性: 例如我们以上提到的 localization 假设与现实肯定不符的

总结一下常见的问题:

  • 计算量较大: 尤其对于本地模型来说, 更需要优秀的算法, 部分任务还会要求低延迟
  • 容量需求: 对复杂的场景, 传统地图已经很庞大了, 加上语义, 复杂度更高, 储存和更新都是个问题
  • 噪声: 现实世界的噪声很多, 还有各种随机因素, 学界目前没有很好的过滤方法
  • 动态的环境: 如果环境不断变化, 现有的方法可能无法有效地更新
  • 语义理解: 这部分较为依赖 cv
  • 可用性和可靠性: 事实上, 目前的 em-ai 都很难落地
  • 标准化: 目前的机器人或者 ai 社区使用不同的系统或者平台

地图结构

  1. Spatial map building

我们将地图做成一个(M×N×K)的网格, 其中(M, N)是空间上的维度, K 是语义上的 channel, 一般来说过程是这样的: 划分输入图片-> 把图片投影到自我为中心的地图 ego_map -> ego_map 注册进外部坐标系的 allo_map -> 降噪

  1. Topological map building

类似图论, 用(v, e)两个集合就可以表示一个图, 节点和边可以各自携带语义, agent 在更新中定位或者新建自己所处 node, 并可以根据一轮中学习的信息对整个图进行修改

  1. point cloud map

由于成本较大,这方面应用有限

下面对各个结构详细介绍

Spatial grid map

现在对室内具身智能的研究通常用 MP3D, HM3D 等数据集, 这些都是对现实空间的 3d 建模, 都小于 1000 平米, 一个 cell 表示 400-900 平方厘米的空间, 有时也会再拓展一个高度维
早期研究直接使用自我中心的映射, 并直接端到端训练, 这样的缺点是无法认知到全局的空间结构, 甚至还会忘掉过去的学习结果, 于是就需要得到外部坐标系的空间地图
但由于智能体只能观察到自己传感器的部分, 也就是其观察内容是自我中心的, 所以想要得到外部坐标系的空间模型, 就需要有一种办法通过一次次的观察结果一笔一笔“画”出全局的地图
我们将这种办法称为 registration 注册, 也就是将每次的自我中心观察提取到的图像特征一点点放进全局地图, 这其实和人类画地图的方向比较像
每一轮中, 将观察信息融入到一些特定的 grid cells, 如果有重叠, 则通过某种方法把两个值叠加为一个结果值, 这种叠加称为 aggregation(聚合)
有一种基于注册的方法叫做 MapNet, 即通过使用已知的相机内参和对深度的测算, 将 egocentric 图像特征投影到一个 2D 俯视网格上
它执行 注册 的方法是: 首先获取一系列旋转多次后的 egocentric 地图, 然后与之前 allocentric 地图进行 密集匹配, 以确定代理在地图上的当前位置

另一种方法是: 直接通过相机内置函数将图片像素转化为(相对于相机的)3d 坐标, 由于相机的 pose 我们是知道的, 所以可以直接将其转化为世界坐标, 并将其体素化, 投影到 2d 平面时, 我们可以把这些体素的 weight 也压上去
这样的缺点就是太依赖相机功能, 对于现实的噪声敏感, 需要额外的降噪步骤, 使用这种方法的 Semantic MapNetMOPA 都各自用了一些降噪算法, 前者还发现, 先对图像编码, 然后投影, 最后执行分割会减少噪声, 甚至可以不去降噪

总结: 使用 grid 能比较方便地表示空间, 也能方便 agent 学习, 但固定的宽高对于变化环境不太方便, 而且内存占用较多

  • 密集匹配(dense matching) : 计算机视觉和图像处理中的一种技术, 用于在图像或视频序列中找到像素级别的对应关系。与稀疏匹配(只在特定特征点上进行匹配)不同, 密集匹配试图为图像中的每一个像素找到对应的像素。
  • pose: 物体在三维空间中的位置和方向
  • 体素(Voxel): 是“体积像素(volume pixel)”的缩写。它是三维空间中的最小单元, 具有位置、大小和属性(如颜色、密度等)
  • 体素化(voxelized): 将三维空间中的物体或场景表示为一组 体素(voxel) 的过程
Topological map

拓扑图更注重节点(地标)之间的关系, 这其实也是人类认路的一种方法, 符合常识, 但缺点是抽象层级较高
首先考虑怎么表示给出一个空间, 怎么画它的拓扑图, 什么是节点, 什么是边呢?符合直觉的想法是, 节点有较为重要的语义信息, 例如是一种房间的典型物体, 而边描述节点之间的连接性, 常见方法中节点通常存储图像特征或时间信息 (访问时间戳) 等信息, 而边缘可以存储一对节点之间的相对 pose
实际训练中, 可以让模型预先跑几遍结合这几次的轨迹画出一个 graph, 然后的规划过程寻找 graph 中最接近的节点, 这称为 Semi-Parametric Topological Memory (SPTM), 这种做法有很多缺点, 例如预探索可能有很多没走到的路, 不适合未知场景等
为了解决这种问题, 我们需要让 agent 能实时地感知到自己有哪边不了解, 应该先探索那边, 也就是 online 学习, 一种做法叫 Neural Topological SLAM (NTS), 它使用 Graph Update 模块更新 map, Global Policy 模块对 map 采样, Local Policy 模块输出离散的导航行动;其中图更新模块作用如下:

  1. 定位: 尝试将智能体在前一个时间戳的图中进行定位
  2. 对已存在节点:
    1. 如果智能体成功定位到一个现有节点, 便在该节点与上一个时间戳的节点之间添加一条边
    2. 存储两个节点之间的相对 pose
  3. 如果智能体无法定位, 则在图中添加一个新节点

这就产生了另一个问题, 什么情况下是在已有节点, 什么情况下要新增节点呢?这需要判断两个观察值是否相似, 可以视为一个分类(二分)问题, 用一个既有的分类器计算, 也可以用可达性估计或者一些预训练的无监督网络处理(附近拍的观察可以视为一类, 这样就不用手动标注)
与网格地图相比, 拓扑的空间占用少, 但也因此可能漏掉细粒度的信息

Point-cloud map

用过建模软件的都知道, 出于优化性能考虑, 复杂的模型经常用三角形 mesh 表示, 由于训练智能体大多是在虚拟环境中, 点云与 meshes 有不错的适配性
而对于语义信息, 可以直接为每个点赋予一定的寓意, 最后我们就得到了一个不那么传统的 map, 我们一般用一个神经网络来赋予每个(x, y, z)点一个语义向量,这个网络称为 neural field
这方面的应用暂时不算多,点云更多被用在场景理解或者分类上,这里暂且略过少数几个例子
光看简介就能看出来,点云的计算和存储成本都很高,并且对于稀疏的场景,提供的信息可能也不足,是一种有待探索的结构

Hybrid map

混合方法也是常见的思路,一些相关的应用有:

  • 拓扑更能捕捉空间之间的关系,而 grid 更有距离上的细节,两者结合称为 topometric map
    • 例如,先生成一个粗糙的拓扑图,根据拓扑图完善一个细粒度的 grid;实验发现,拓扑图能修正一些巨大的测量问题,也就是全局问题,而网格则能更好地解决局部问题
    • 另一篇文章中,为了处理紧凑的环境,作者将转角和走廊用拓扑表示,房间则用网格表示,由于一般来说我们只需要房间里有详细的信息,而对交通空间不关心具体情况
    • 以上两篇都比较古早,最近的一种基于 bert 的文章离线训练 hybrid maps,然后训练一个多模态模型进行语言指导式的空间推理
    • 还有结合三者的,网格存储 occupancy(障碍物)信息,拓扑图存储地标及其连通性,点云则存储详细的语义信息
  • 构建能够捕捉场景语义层次的地图可以实现不同层次的推理,例如不同的节点实际上在不同层级(坐标系)中而,边表示坐标系的转化关系;除了分层,还可以额外存储物体,agent 之间的时空关系,实验证明分层的场景表示对复杂的环境效果更好,这样的技术甚至可以用来对城市的交通系统进行建模

混用这些地图结构时需谨慎考虑各自的特点,例如拓扑和点云地图在大环境中比网格地图更具可扩展性,但点云需要更多存储空间,拓扑地图所需的存储空间最少

地图编码 map encoding

地图编码是指将信息通过某种方式存储在语义地图中,而这些信息可以分为隐式和显式的,显式指的是可以被直接解释或者理解的信息,例如像素的颜色,object 所属的类别等;隐式则指一些提取出来的特征,无法被直接地理解

显式编码

那么根据常识,至少障碍物信息,也就是 occupancy information 信息是很值得显式存储的,并且可以用一个 bool 就能表示是否占用的二元关系
此外,为了鼓励 agent 探索未去过的区域,Active Neural SLAM 方法会存储一个 bool 值表示是否已探索
而对于更复杂或者更长期的任务,例如针对语义目标的导航任务,就需要额外存储语义信息,例如 SemExp 会额外存储 agent 认知的语义类别标签,这些标签通过 MaskRCNN 产生,在 aggregate 时使用 element-wise max pooling(取各个子区域里的最大值),且保留最新的预测值
首先将图像分割再投影会造成 label splattering 现象,也就是一些噪声标签会散布到多个 grid cells,这是因为对深度的观察会受到环境噪声的影响;但首先投影编码后的特征再分割能实现一定的降噪效果(需要预探索)
此外,图像,文字,目标检测概率(对目标属于某个类别的置信度评分)等值也可以作为存储标签,近年一些图文,图图匹配也有不错的效果;存储音频信息(例如声音强度)的地图在视听导航任务中也有作用;
以上都是网格地图的应用,拓扑图中,可存储每次都会替换更新的访问时间戳,用来表示地点之间的时间相对关系

总结: 显式编码的优点是其可解释性,对于具体的任务,我们可以选择常识上有益的信息类型并编码存储,但是这较为依赖人类对问题的理解

隐式编码

大部分的早期工作使用预训练的基于封闭词汇表的视觉模型提取特征,例如 cnn, 近年来,更多使用预训练的基于开放词汇表的大型视觉-语言模型

封闭词汇表:

可以使用 cnn 或者流行的 vision model 例如 ResNet 除了图像以外,也可以根据可微分的映射器和 planner 进行非监督学习,通过计算微分,模型可以不断优化性能, 地图则可以通过 differentiable warp 不断集成

开放词汇表:

封闭词汇表最大的漏洞是: 无法编码不认识的特征,Large Vision-Language Model (LVLM)CLIP 可以缓解这个问题,这些模型有庞大的训练资料,对于不认识的物品,可以通过已有知识建立新的类别
CLIP 有强大的图文匹配能力,利用这点,可以在 2Dmap 中存储图文相似得分(value maps), 这在下游应用例如 zero-shot 的语言驱动的导航中表现良好,也有论文将其拓展到 3D。
尽管其匹配能力相比封闭词汇表十分强大,但仅限于图片和文本的匹配,依旧缺乏更详细的语义和空间信息,因此空间推理能力欠缺
为了增强推理能力,需要找到判断物体在图片中的位置,以及提取特征的方法,一个思路是对图片的所有像素嵌入一些特征, 根据摄像头的深度信息, 可以得知这些像素对应 3d 空间的坐标,随后投影(聚合)到 2d 网格上,在查询时,先从输入提取出物品名,再和这些像素匹配
这个方法的缺点是,并没有做到物体级别的语义,可能忽略了空间上的一些关系,此外很多像素可能就是空气,毫无语义信息,没有必要存储。24 年(OneMap)的一种方法使用分层的编码器缓解了这个问题
NLMap(grid): 如果想直接辨别图像里的物品,则可以使用 class-agnostic region proposal network 来划分出感兴趣的图像区域(region),对于这些 region,提取特征并将其存入 3d map(携带坐标和估计的大小信息),这样一来,对每次查询(会被先转化为物体名),只要查找匹配度最高的 region 就可以了
ConceptGraphs(topo): 使用无类别的 2d 分割算法划分出物体,这些物体可以直接作为拓扑图的节点并存储一些信息,除了特征信息外,例如对其的描述,Candidate Masks 的点云等也可以存储。接下来考虑边,在这种方法中,考察物体的点云是否有几何相似性或者重叠部分,如果一个物体的点云部分落在另一个物体的距离阈值内,则认为它们是空间相关的,从而建立边。边也可以额外存储信息,例如大模型对链接方关系的描述

开放词汇表映射编码的优点是它可以一次构建,然后复用到不同的下游任务。它可以有效地使用开放词汇表进行查询,并且具有较高的可解释性
缺点是,当前阶段大模型的训练开销和计算开销都极大

  • Zero-Shot Manner(零样本方式): 在机器学习和人工智能中,模型能够在没有针对特定任务或类别进行微调的情况下,直接执行任务的能力
  • class-agnostic region proposal network: 一种用于目标检测的网络架构,旨在生成图像中潜在目标的区域提议,而无需事先知道目标的具体类别,如 ViLD
  • Candidate Masks: 计算机视觉中的一种概念,通常用于目标检测和图像分割任务。它们代表了图像中可能包含目标的区域或对象的区域

地图评估 Map Evaluation

很明显,对智能效果最直接的评价标准就是 agent 执行任务的效果,因此目前对 map 的评估较少,本文讨论如何从准确性,完整性,一致性,健壮性以及实用性的角度评价地图对于下游任务的功效

  • Utility 实用性: 大部分工作将语义地图作为一个中间步骤,planner 使用它来规划路径,产生动作指令,如果我们只用地图做这一件事,那么直接看任务完成地怎么样就是最好的评价标准了;但对一些和地图有关的任务,例如导航、勘探,则也可以用覆盖率,导航准确性等作为指标
  • Accuracy 准确性: 地图准确度是指与现实地形进行比较时,地图捕获语义信息的准确度,问题在于,很多时候现实的地理信息较难获取。如果只论语义的比对,则可以使用一些语义分割上的指标,与智能的语义划分进行比对;还有一个问题是,这种比较对常常种类有限的显式特征较为方便,但对隐式的特征则无从下手,对此只能再用一个分割器将隐式转化为显式,又或者人工评估
  • Completeness 完整性: 地图是否完整地表示环境,这包括了几何和语义层面。这点很大程度上取决于机器人在下游任务中探索环境的彻底程度,并且与 “停止标准 stopping criteria” 密切相关, 一般来说,会在任务完成或者达到时间限制时停止;而语义上的完整则很难测算,几乎没有成熟的方法
  • Consistency 一致性: 几何一致性指的是地图的空间结构能反映环境物理布局的准确性,不严谨的说可以视为地图局部细节(距离,角度,物体相对位置)的准确性, 模拟环境下不存在传感器噪声,因此几乎可以不考虑,但实际情况中,由于各种因素影响,代理可能错估自己走过的距离,相对位置等,从而破坏一致性;语义一致性则指随着机器人运动,语义信息和物理位置能否对齐。由于当前还处于理论阶段,这方面的研究尚且不足
  • Robustness 健壮性: 在不可预测或动态环境中的可靠性,由于现在大量使用预训练模型,可以用预测的置信度来评估;此外也可以使用模型预测的方差来评估, 但由于能落地的应用有限,这方面的研究也比较缺乏

展望未来与结语

当前的趋势为创建灵活、通用、开放词汇和可查询的地图,以支持多种任务;为了提高空间推理能力,密集,可扩展和内存高效也是一种方向

  • General-purpose maps: 由于机器人任务多样化,通用的模型明显有着重要意义,更有通用能力的开放词汇表也可能是趋势,这需要对计算成本和内存消耗的平衡
  • Dense yet efficient maps: 为了更好的空间推理能力,需要高密度的地图,但又为了计算效率,需要其尽可能节省内存和算力,常用方法中拓扑图过于稀疏难以捕捉细粒度信息,grid 难以处理多层面信息,点云则过于密集,性能消耗大,可能需要一个更好的结构
  • Dynamic maps: 当前的地图技术基本都是基于静态环境,对动态环境如室外的交通,则很难有高效地建模方法
  • Hybrid map structure: 上文已经提到过混合结构的优点,但如何融合或者切换也是值得研究的方面
  • Devising evaluation metrics: 与下游任务中代理表现的评估相比,语义地图的评估在具身 AI 研究中受到的关注较少。为了推动该领域的发展,需要强调使用准确性、完整性、一致性和健壮性等指标对地图进行评估。

Vision-Language-Action Models

Large VLM-based Vision-Language-Action Models for Robotic Manipulation: A Survey

前言

机器操控,作为机器人学和具身智能的关键领域,需要精确的动力控制以及内置的视觉和语义信息有理解能力的智能,其传统做法一般局限于使用预定义的动作以及严格的控制策略,泛用性较为有限
近年来随着算力和研究方法的进步,基于大量图像文本数据上预训练的大型视听语言模型(vlm)以及基于 vlm 增加了动作能力的 vla,可以称为一种新的技术趋向
所谓的 VLA 其实是一件很有野心的事,它不但有对画面、文本这两种信息量最大的载体的理解能力,还要有做出合适行动的动力,可以说人类的智能也不过如此,加上这几乎涉及了 cv, nlp, em-ai 等大领域,理论也相当庞杂
vla 具体可以定义为:

  1. 使用 VLM 理解视觉观察和自然语言指令
  2. 进行推理并直接或间接地帮助动作指令的生成

又可以分为:

  1. Monolithic Models: 单片模型,也就是集成度高的模型
    1. Single-system models: 将环境理解,视觉感知,语言理解,机器状态认知,动作生成都统一到一个模型
    2. dual-system models: 将认知环境和动作生成分为两个任务,分别让 VLM 和一个 action expert 去做,这是因为相比前者,后者时效性更强
  2. Hierarchical Models: 分层模型, 耦合度低的模型,一般有结构,中间输出,例如计划模块产生 keypoint detections, affordance maps, trajectory proposals 可解释的中间产物,交给策略模块来产生动作; 这样的解耦让不同模块可以并行训练,使用不同的 loss 和优化方式
  • Keypoint Detection : 计算机视觉中的一种技术,旨在识别图像中具有显著特征的点
  • Affordance Maps : 一种表示对象与环境之间交互可能性的图像或图形
  • Backbone : 一个神经网络结构的基础部分,主要用于特征提取。Backbone 是整个模型的核心组件,负责从输入数据(如图像)中提取重要的特征信息
  • Internet-scale : 能够处理、存储和分析大规模数据的系统、服务或应用

背景知识

得益于用于跨领域和多模态能力的 VLM 的出现,现代的 vlm 模型能执行对能力需求更加多样的任务例如自动驾驶,图形用户界面交互等
这些模型往往由一个视觉编码器,一个用于将视觉特征嵌入到文本的投影器(projector),以及一个大语言模型组成;这其中,最为重要的是 模型为其带来的泛化能力,如 GPT4 这种 LLM 能提供极强的过滤输入,降噪,处理模糊指令的能力,从而为 VLA 定下基础,也就是说,VLA 相当重视泛化、通用性质的能力

V、L、A 可以视为三种不同的任务,早期的模型往往会将三者分开,这样的好处是可以并行训练,但缺点是可能降低一些理解和推理能力;最近的模型一般会加强集成度,例如除了传统的大规模(Internet-scale)训练资料外,把机器人的动作也转化为文本标记并放入训练语料库中,这能让 action 作为语言任务被语言模块理解,增强整个模型的理解能力, 其他一些使用动作资料的模型也取得了较好的效果

接下来从单片/多片的角度讨论两种模式的发展趋势

MONOLITHIC MODELS 单片模型

Single-system Models

其经典范式为 Autoregressive Decoding, 将机器人的连续动作空间离散化为 token 序列,模型能够序列化地生产动作 token,再由一个 de-tokenizer.转化为具体动作。较为知名的模型有 RT series , OpenVLA

Model Performance Enhancement
  1. 认知模式(Perception Modalities):
    1. 3d 感知(perception): 一般能从传感器得到的数据就是 2d 图片,为了构建三 d 的地图模型,可以模拟环境并根据图片画出点云; 或者根据图片及其深度信息,画出自我中心的地图
    2. 4d 感知: 多出来的 d 指的是轨迹,也就是时空序列信息,例如将动作或者轨迹信息添加到图像中,从而增强模型的时空推理能力
    3. 触觉和听觉(Tactile and auditory)感知: 触觉信息可以使用视觉编码器,听觉信息可以使用专用的编码器,且两者都需要专用的数据集,这两种能力均可以与语言模块对齐,然后得到接受听觉触觉指令的能力
  2. 推理能力: 以下简单介绍一些相关工作
    1. ECoT: 生成一个推理链,将高层任务规划与视觉特征相结合,输出最终行动
    2. CoT-VLA: 引入视觉链式推理,通过预测代表计划状态的子目标观察,增强推理能力
    3. LoHoVLA: 采用“层次闭环控制 Hierarchical Closed-Loop Control ”机制,解决规划错误、行动失败和外部干扰等问题,适用于长周期任务
    4. ReFineVLA: 通过“选择性迁移微调 Selective Transfer Fine-Tuning ”策略,仅微调上层,增强多模态理解
  3. 泛化能力: 也就是处理各种场景需求的能力
    1. UniAct: 定义一个 Universal Action Codebook, 将所有机器人行动抽象到有限的类别中,增强泛化能力
    2. ReVLA: 使用可逆的训练策略,缓解遗忘问题
    3. HybridVLA: 使用一个 Collaborative Action Ensemble 机制,融合 diffusion and autoregressive decoding, 针对任务选取不同策略
    4. VOTE: 使用一种 Ensemble Voting 机制,将过去的动作预测根据与当前预测的相似性进行分组,并对大多数集进行平均处理,从而生成更稳健的动作输出
    5. 也有一些模型在物理规律层面进行学习
Inference Efficiency Optimization

Inference Efficiency Optimization 推理效率优化 : 机器人对及时性(控制频率)往往有一定要求,因此模型的推理效率优化也是一个重要的方向

  1. Architectural Optimization 体系优化: 一些常用的方法用,跳过层级,早停止等,进阶的有一些方法会动态计算哪些层级是关键的,从而激活关键层完成推理;此外也有方法会逐步减少视觉 token, 也就是修建掉那些与指令生成无关的 token, 再加上注意力机制,这甚至能同时提高指令准确性
  2. Parameter Optimization 参数优化: 也就是压缩模型的大小, 通过蒸馏的模型提高效率;或者使用 tokenizer 将高维动作指令转化为 token 的序列从而减少模型复杂度
  3. Inference Acceleration 推理加速: 即加速动作解码,可以使用专门优化过的 action head, 一次生成一个动作序列;通过某种方式实现并行运算等;也可以单纯地(但有选择地)放开限制,接受一些“不完善”的推理结果
  • Distillation-Aware Training: 一种优化训练方法,旨在通过知识蒸馏(knowledge distillation)技术提高模型的性能和效率。这一过程通常涉及将一个大型、复杂的“教师”模型的知识转移到一个较小的“学生”模型中,以便在保持性能的同时减少计算资源和加速推理
  • action head: 用于将模型的输出转换为具体的动作或决策的组件
Dual-system Models

双系统主要是为了解决动作生成速度与推理速度要求不同的问题,引入了一个动作专家模块来对系统解耦,而其与分层模型不同的是,不会产生可解释的中间输出

Cascade-based Methods

串联的方法中,负责推理部分(称为高级 high-level )的系统一般使用 VLM 处理多模态的输入,提取语义并产生动作 计划 输出,这些会被编码为某种中间形态,然后由低级(low-level)系统解码为具体的动作指令
由于在双系统中,认知和行为是解耦的,行动可以使用一个不同的模型,例如 diffusion transformerBehavioral Cloning transformer
此外,还有很多种改进方法:

  • 再加入一个视频生成模块来预测未来的帧,并使用 diffusion action expert
  • 从人类演示中提取场景喂给 LLM 来生成可解释的行为树,并转化为底层行为
  • 将VLM与扩散策略模型整合,VLM会发射一个TOKEN控制动作生成的允许或拒绝
  • 使用预训练的卷积残差网络增加性能
  • 将action expert集成到VLA主干中,两者可以复用一些组件,协调工作
  • Cartesian Actions: 机器人学和控制系统中使用的一个概念,指的是以笛卡尔坐标系为基础的运动或操作。这种动作通常涉及到机器人的末端执行器(如机械手臂的抓手)在三维空间中移动或执行任务
  • convolutional residual: 卷积神经网络(CNN)中使用的架构设计,最著名的实现是 ResNet(Residual Network)。这一设计理念旨在解决深层网络训练中的退化问题,即随着网络层数增加,模型的性能反而下降;引入残差连接(residual connections),模型可以学习到输入与输出之间的“残差”而不是直接学习目标输出
Parallel-based Methods

上图中展示了一种共享注意力的架构,它受到mix-of-experts (MoE)启发,在注意力层中,VLM与动作模块进行token上的交互,过程中,输入的视觉文本信息,噪声,机器人特定的输入在共享的注意力层中交互,从而提高了任务效果
由于这种架构的低耦合性,它可以实现字面意义上的MoE,也就是对每个子任务都让一个“专家”去做,其中一个典例称为π0,其主干网络是VLM,为了处理机器人特定的输入输出,它使用一个独立的权重集合和一个流匹配(Flow Matching(FM))的动作模块
π0有一些变种,例如增加显式推理,基于最近推理生成动作两种模式,可以根据需求切换;降低信息力度;防止动作模块的梯度流入VLM以保持VLM的知识优势;增加动作token化方法从而自回归训练等;其他的变种也一般是增加某个维度的输入或者通过复用注意力信息提高性能等常规优化

  • Normalizing Flows(NFs): 通过一系列概率密度函数的变量变换,将复杂的概率分布转换为简单的概率分布,并通过逆变换生成新的数据样本
  • Continuous Normalizing Flows(CNFs)Normalizing Flows的扩展,它使用常微分方程(ODE)来表示连续的变换过程,用于建模概率分布
  • Flow Matching(FM)是一种训练Continuous Normalizing Flows的方法,它通过学习与概率路径相关的向量场(Vector Field)来训练模型,并使用ODE求解器来生成新样本

HIERARCHICAL MODELS

对于很大规模的任务,由于算力,存储空间等方面的要求都较高,更低耦合的架构如分层模型较为常用,例如长期推理,空间抽象,动作分解等
这些模型一般由高等级的planner,低等级的policy等组成,计划期接受指令和观察,转化为中间产物,policy接受中间产物,产生动作序列或底层指令
相比单片模型,它能实现更复杂的组合,甚至可以只有计划器;相比其单片双系统,它的中间产物是显式(可解释)的

Planner-Only

可分为:

  • Program-based Methods: 计划器生成中间程序,即直接可执行的程序或者辅助程序,辅助程序一般用于辅助对任务策略的制定
  • Keypoint-based Methods: 标记出一些关键点,例如机器臂的可抓取点,导航任务的路线节点等,这些提取出来的点可以视为对问题的一种抽象,从而输入给通用模型如处理,也可以用作轨迹生成
  • Subtask-based Methods: 一般用于较大的VLM,接受一个抽象的隐式指令,并输出详细的文字命令,实际部署中可能还会需要一个控制策略。由于该种方法抽象程度较高,可以使用一些通用模型进行任务分解或者规划
Planner+Policy

其分类上和前一类较为类似

可分为:

  • Keypoint-based Methods: 一般用LVLM产生一些关键点,或者关键路径,但这些信息将会交给低级策略模块,用于生成指令;例如在导航任务中,对 生成的关键点进行排序,并将这个有序路径用于之后的指引;此外也可以用LLM为关键点赋予cost,用于确定最佳路径;也有方法会将关键点赋予互动性上的标注,用于生成控制指令。总的来说,一般关键点会被赋予帮助决策的一些信息,用于最后产生指令
  • Subtask-based Methods: 这种方法主要的工作在于如何划分子任务,而对具体的子任务执行者则有很高的灵活性。例如对模糊的文字指令,将其转化为一系列原子命令;也有模型分出空间感知任务,使用点云增强空间感知;或者让高级模型划分任务,低级扩散策略模型具体实现,且这样的划分可以继续拓展,例如再加一个中间的skill层辨识一些可重复使用的行动控制底层的执行者;划分后的子任务也可以一步流水线执行从而增加效率;这方面有非常多的类似变种
  • Embodiment-Agnostic Affordance Representation: Affordance 前文介绍过,是对可交互性的标识,而Embodiment-Agnostic 指的是不依赖于机器人形态或者物理特性,可以理解为通用的可互动性

Monolithic vs Hierarchical:

  1. 两者的输入输出是一致的,主要区别为统一化/模块化的内部结构,其优缺点和这两种常见的结构是类似的
  2. 另一个关键区别是中间产物的可解释性,整体模型的中建五不可解释,但更方便机器学习一些人类可能无法理解的特征;分层模型输出可解释的中间数据,这对需要兼容性,可解释性的操控领域可能更好

其他前沿领域

  • RL: 与LLM,VLM不同的是,VLA 的问题更加长周期,其最大的问题在于难于产生基于规则奖励函数,可能人类也不知道怎么做是更好的,这方面没有特别好的解决方法,一般将学习过程作为密集奖励或者通过比较视觉上的近似成功率作为奖励;
    • 此外,由于模拟环境现状,在线学习效率有限,一些方法会把在线,离线方法混合起来,例如离线用q学习,在线用Soft Actor-Critic提高效率又或者之间引入人类监督
    • 部分方法会只把RL用作数据引擎来增强泛化能力,例如先用HIL-SERL训练,然后通过sft将训练成果提取融入给主要模型
  • Training-Free Methods: 通常利用模块化和可扩展的设计来改进现有的VLA架构,而无需训练,例如改变触发机制,行为和视觉都稳定时不需要完全解码,可以选择性重用之前的visual tkoens;其他的类似方法也是对于简单,复用性强的任务使用低成本的方式计算,或者通过一些变换方式压缩动作序列等负担较大的数据提高效率
  • Learning from Human Videos: 也就是将人类行为与机器行为对齐,从而提高机器人行为的表现
  • World Model-based VLA: 世界模型(模拟环境),允许一定程度上对未来状态的预测,从而让agent能根据预测修正自己的策略,并且世界模型也可以同步改进
  • Robotic Process Reward Model (RPRM): 一种用于强化学习和机器人控制的框架,为机器人在执行特定任务时的行为提供奖励信号,进而不断优化其行为模式
  • HIL-ConRFT(Hardware-in-the-Loop Control with Reinforcement Feedback Training): 结合了硬件在环(HIL)测试和RL的控制方法,旨在优化复杂系统的控制策略,HIL 测试允许在真实硬件上进行控制算法的验证和优化,通过将模拟环境与实际硬件连接,确保控制系统在真实条件下的有效性,结合强化学习的反馈机制,HIL-ConRFT 可以根据系统的表现持续优化控制策略。通过从环境中获取奖励信号,系统能够学习最佳操作策略
  • HIL-SERL(Hardware-in-the-Loop Sample-Efficient Reinforcement Learning): 是一种结合了硬件在环(HIL)测试和样本高效强化学习(Sample-Efficient Reinforcement Learning)的框架,旨在优化机器人和自动化系统的控制策略
  • SFT(Supervised Fine-Tuning): 通常用于在预训练模型的基础上进行进一步的监督学习,模型首先在大规模数据集上进行预训练,以学习通用的特征和表示。然后,在特定任务的数据集上进行微调,使模型能够针对特定任务进行优化

VLA的特点

  1. 多模态:
    1. Shared Embedding Space: 视觉,文字信息会被一起嵌入一个共享的语义对齐空间,这个共享的语义空间能减少转码过程的损失,提供更好的推理能力,理解能力
    2. Multimodal Token-Level Integration: 通过transformer可以将连续的视觉文字等信息转化为离散序列,提供了对这些不同类型的信息的综合性理解能力,减少语义转化损失
    3. Comprehensive Modal Compatibility: 得益于强大的VLM,VLA天生有着与具体模态无关的语义对齐能力,新的传感器信息,例如声音,点云等信息都可以在不影响主干网络的情况下加入
  2. Instruction Following
    1. Semantic Instruction Grounding
    2. Task Decomposition and Collaboration
    3. Explicit Reasoning via Chain-of-Thought
  3. Multi-Dimensional Generalization
    1. Cross-Task Generalization
    2. Cross-Domain Data Generalization
    3. Cross-Embodiment and Sim-to-Real Generalization

数据集和基准测试

总结和展望