本文中部分模型仅仅作简要介绍而不会详细研究。一些经典的模型可能会单独写文章介绍。
VLA
《A Survey on Vision-Language-Action Models for Embodied AI》
VLA被定义为能够处理来自视觉和语言的多模态输入以产生机器人动作从而完成具身任务的模型
论文主要为综述论文,分为三个主要介绍方向
- VLAs的各个组件(视觉编码器,动力学模型,世界模型)
- 预测低级动作的控制策略(语言指令+视觉感知➡️低级动作)
- 高级任务规划器(将复杂任务分块处理)
(此外,文中还提供了广泛资源总结,VLAs面临的挑战与未来前景)
引言部分
VLAs需要处理视觉,语言,环境,动作模态的信息,去控制物理实体(机器人等)与环境进行交互。
VLAs的成功,从早期单模态模型的发展,循环神经网络,Transformer的主流,强化学习的发展,这些奠定的基础,一步步到现在的VLAs等多模态模型。
传统的机器人,使用强化学习,通常只处理单一环境的任务。现在需求增长,发展能在不同环境进行不同任务的策略变得重要。此外,语言指令也被要求融入策略中,产生了更复杂的策略问题。
文中提出,VLA通过视觉编码器捕捉环境状态,同时通过LLM的功能将语言指令编码,将这两者用各种策略进行对齐。然后喂给它机器人环境的数据进行微调,用LLM作为解码器来预测动作。
背景
具体的,机器人学习通常被构建为强化学习问题,表示为s ss,a aa,r rr组成的马尔可夫决策过程。(这里可以参考我的另一篇随笔这里)
当在奖励预测困难时,也可以用模仿学习(及不含奖励)对预测动作建模。
此外,语言指令p pp也加入了决策过程。
组件:
强化学习:
RL,深度Q网络,在一定程度上为VLA的发展奠定了基础。
RL的序列轨迹天然与序列建模问题相符合(同时也符合“人”在真实世界中的思考和行动),十分适合Transformer架构(与LLM同一),在此还发展了不同的类型(决策Transformer,轨迹Transformer)
Gato又将此拓展为可处理多模态的模型。
LLM与RL之间的协同效应,通过RLHF可以让LLM对齐偏好,通过LLM的语言反馈可以指导RL进行权重更新和指导奖励函数的设计。
视觉编码器:
这是重要的部分,它的功效直接影响VLA的性能。
这里有许多方法
CLIP,识别正确的图像文本对。
R3M,时间对比学习,拉近相关性强的时间帧的距离,拉远无关时间帧之间的距离。视频-语言对齐,判断视频是否对应于语言指令。
MVP,将视觉掩码自编码器应用于机器人数据集,重建破坏的图像块。
Voltron,结合语言条件化和语言生成,采用编码器-解码器Transformer结构,预训练在语言条件下的掩码图像重建和掩码图像语言生成。
VC-1,一种结合先前PVR的增强PVR模型。
DINOv2,使用教师网络和学生网络,学生网络接收局部视图,教师网络接收全局视图,训练学生网络去匹配正确的表示。其中教师网络通过学生网络进行指数移动平均更新。
I-JEPA,使用掩码图像块,预测原始世界中目标概念。
Theia,融合了各种基础视觉模型,在更小数据与尺寸下展现更优能力。
视频表示
视频表示可以分解为图像连续,用PVR进行表示。此外还有时间对比学习等方法可以使用。
F3RM,3D-LLM等技术,将视频中的3D信息提取供机器人学习。
3D高斯泼贱方法,用3D高斯椭圆体泼贱一个3D场景,其附带的各种物理性质使得3D场景变得更具有交互性质。
还有视觉和语言之外的信息,例如听觉,也可以提供重要线索。
动力学学习
动力学学习有两个部分:
s ^ t + 1 ← f f w d ( s t , a t ) \hat{s}_{t+1} \leftarrow f_{fwd}(s_t,a_t)s^t+1←ffwd(st,at):正向动力学,给定当前状态和动作,预测后续状态。
a ^ t ← f i n v ( s t , s t + 1 ) \hat{a}_{t} \leftarrow f_{inv}(s_t,s_{t+1})a^t←finv(st,st+1):逆向动力学,给定已知状态和后续状态,预测所需动作。
一些方法:
Vi-PRoM,区分不同视频,恢复打乱的视频帧,进行图像分类。
MIDAS,从观测中预测动作,进行逆向动力学学习。
SMART,在前向、逆向动力学预测基础上,增加了随机掩码的事后控制,将整个控制序列进行随机掩码覆盖动作,模型恢复。
MaskDP,状态和动作被掩码标记,模型学习恢复,直接使用到下游任务(即直接在任务数据集中)。
PACT,一个正向动力学模型。
VPT,先使用一个逆向动力学预测模型,用少量有动作标签视频训练。然后大量无动作标签视频被喂给这个预测模型,产生大量有动作标签的训练集。这训练集可以喂给VPT进行动作克隆训练。
GR-1,专为GPT风格的视频预测预训练,预测未来帧。
世界模型:
这里主要描述与前向动力学模型的区别。
前向动力学主要针对当下进行机器人任务服务,仅为一个辅助(可以想象为人的视觉预测)。世界模型构建一个内部世界,自主进行想象探索(可以想象为人的大脑),作为一个独立主模块。
(😯或许这两者可以通过某种方法进行互相弥补,比如通过前向动力学模型的信息来优化世界模型的预测之类的,类似图像生成中用DDIM反演过程中的生成去矫正SDEdit的生成过程)
Dreamer系列,可以参考我的这篇文章💪
DayDreamer在此基础上将模型运用于现实机器人任务。IRIS,可以理解为使用Transformer的世界模型。
LLM诱导世界模型
LLM的功能可以用来改进VLA。
DECKARD,提示LLM以生成有向无环图表示的抽象世界模型,去指导Minecraft中的物品制造工作。
LLM-DM,作为PDDL构建的世界与现实逻辑之间的桥梁,通过它可以往返修改构建的世界使其符合逻辑和现实。
RAP,结合蒙特卡洛树搜索,让LLM介入搜索方向中预测下一步的动作,由世界模型预测奖励回报。
LLM-MCTS,在RAP的基础上,用LLM介入预测回报,通过其常识和经验,减少搜索空间。
(既然提到搜索,那结合A*算法,也许可以进一步进行搜索空间优化🤔)
视觉世界模型
即生成未来状态的视觉图像,视频或3D场景——主要与物理世界对齐。
Genie,生成式交互模型,通过将视频帧压缩为连续token,预测token之间潜在动作,在自回归动力学预测中,可以生成一个可交互的世界。
3D-VLA,一种目标生成的3D世界模型,通过对视觉输入(图像,深度图,点云),然后通过扩散模型响应询问,生成目标状态。
UniSim,学习大量现实交互视频,能够在给定环境与动作时,生成动态过程。生成的视频可用来训练。此外还有将已有模拟器作为世界模型,通过MCTS来收集经验。
推理
通过语言推理来优化决策过程。
推理与高层任务规划天然契合。ThinkBot,ReAct,RAT,Tree-Planner等方法,通过推理进行规划,优化决策,处理异常。
另外,推理也可以赋予低级控制策略一定程度能力。针对计划,子任务,运动,视觉特征进行思维链推理。可以缓和模型仅靠“肌肉记忆”,也一定程度上提高不同任务泛化能力。
优势与局限
像素级的信息对于高精度操作的机器人来说更有用。
正向动力学预测比逆向更困难。
世界模型和思维链用于高级和低级任务控制规划不同。世界模型主要用于策略交互(低级策略一个接一个),思维链的推理更适合规划。
底层控制策略
即a ^ t ∼ π θ ( a ^ t ∣ p , s ≤ t , a < t ) . \hat{a}_t \sim \pi_\theta(\hat{a}_t \mid p, s_{\leq t}, a_{<t}).a^t∼πθ(a^t∣p,s≤t,a<t).
设计底层控制策略有多种方法:
非Transformer控制策略
CLIPort,通过CLIP捕获图像与文本关系,使用Transporter提取空间信息,其中语义流特征通过各种方式来引导空间流特,生成目标动作。
BC-Z,通过语言指令和视频演示指令(即任务指令),然后任务指令嵌入与图像嵌入(即操作环境)通过FiLM融合,指导目标动作生成。据说可以泛化无样本任务。
MCIL,通过多场景训练,一小部分图像语言配对数据来训练关联能力,对大部分无标签数据进行理解执行。
HULC,分为两步。1,通过高层离散潜在计划,将任务分解为多个子任务。2,通过多模态Transformer分解子任务为低级局部策略。其中引入了基于对比学习的视觉-语言对齐损失。HULC++在此基础上将模型聚焦于需要交互的环境中。
UniPi,通过文本指令生成视频,再用这个视频给逆动力学预测模型生成动作,变为策略,提高了泛化能力和知识迁移能力。
基于Transformer的控制策略
Interactive Language提出一种机器人系统,其中底层控制策略可以由人类语言传达进行引导,从而完成长视野任务。主要由一个庞大的语言指令数据集训练。
Hiveformer,采用多视角场景观测。其中保留了完整的语言观测历史。
Gato,构建了一种多模态,多任务,多具身的模型,在多种不同任务上可以表现。(将输入和输出进行协调而完成)
RoboCat,提出一种”对于不同任务,先学习,再生成“,即先给几个样本让它学习微调自身,之后就自我生成数据。这个在Gato基础上用了一个叫VQ-GAN的图像编码器,使得可以预测未来观测结果。
RT-1,基于BC-Z,但有区别。采用了基于EfficientNet的视觉编码器,却不采用视屏为任务指令嵌入。(即之前提到的Gato,而这个不采用视屏作为此,也许这使得任务指令更加简洁,和它采用更高效的视觉编码器也有关)而且用Transformer替换了MLP。
Q-Transformer,用Q学习(即可以从失败中学习),而不是行为克隆。同时引入了一个正则化项。(这更加提高了在复杂环境中的能力)
RT- Trajectory,主要用草图轨迹。即通过训练,让模型精准跟随轨迹草图(即机器的操纵曲线等)。这种方法有更强的泛化能力。
ACT,主要核心是使用了预测动作分块而不是一小个动作。并且使用不同动作分块在时间重合部分的平均作为最终动作。RoboAgent在此基础上用一种语义增强方法增强演示数据。
RoboFlamingo,把一个策略头加到了已有的VLM上。
多模态控制策略
例如通过演示,点击,指向等内容,这要求模型能处理不同类型的输入。
VIMA,可构建更复杂的任务。引入了几种主要类型任务:物体操作,视觉目标达成,新概念落地,单样本视频模仿,视觉约束满足,视觉推理。其中,放置,组合,新物体,新任务作为四个泛化指标。
MOO,利用RT-1的主干网络,结合OWL-ViT来处理图像嵌入。(使得可以通过指向等方法)通过此方法得到的新物体,额外提示图像来拓展数据集。
3D视觉控制策略
这里主要表现形式有点云和体素(Voxel)两种。
VER重点将体素化为3D单元格,PerAct则主要观察体素在观察空间和动作空间中。RoboUniView则用一种新的视觉编码器处理3D视图以提高性能。
Act3D则通过引入自适应分辨率减少了体素化的计算成本。RVT,RVT-2则提出使用点云构造的虚拟视图渲染的图像作为输入而不是原始3D图像。
基于扩散的控制策略
扩散模型,原本是用来生成图像的。但其原理为从带有随机噪声的图像中逐步去噪得到一个有“秩序”的图像,这种思想也可以用于生成策略。(类似从生成的带有高随机的策略中“去噪”变为合理操作序列策略?🤔)
文中写到了需要应用多种技术,但其效果在多模态动作,高维动作空间和训练稳定性上不错。
SUDD,通过各种组件(例如LLM,机器人程序,图像渲染)生成海量数据,然后给扩散模型学习。
Octo,在Transformer上的扩散策略(🤔),特点是开放框架,任务编码器,观测编码器,动作编码器都可以和Transformer对接。
MDT,引入了一种基于Transformer的扩散策略(DiT),接在动作预测头中。它还有两个辅助目标,总之这个展现的能力比基于U-Net展现的更好。(😂)
RDT-1B,一个基于扩散的双手操作基础模型,也用了DiT。其不同是引入了统一动作格式,这使得不同机器人的数据可以用于同一训练。
结合3D视觉的基于扩散的控制策略
就是将3D视觉,用扩散的方法来处理。DP3,3D Diffuser Actor,3D-MoE等在这方面代表。
运动规划的控制策略
将运动路径分解为合理的子部分。
Language costs,用人介入的语言指令纠正机器人。(学习生成过程中)
VoxPoser,LLM+VLM。LLM翻译语言指令,VLM捕获物体。得到的信息创建两个affordance和constraint的3D体素地图。(实在不知道怎么翻译好懂了😭)然后它自己在生成预测轨迹。这是一个不需要训练的方法。
RoboTAP,将动作标记为多个活动点,追踪物体从原位到目标位的移动。这个路径可以被视觉服务系统用来控制机器人移动。这减少了单纯的模仿。
我发现我不能这样读综述论文,这样效率有点低:
- 单纯对每个提到的方法都进行查询有点太耗费时间了
- 对于各种方法之间判断能力下降,有点不清晰
我现在考虑换一个方式
基于点动作的控制策略
用VLM选择动作“点”,然后让底层模型进行操作。
PIVOT利用VLM进行视觉反复问答确定最佳策略。
Robopoint利用VLM选点,从2D图像对应到3D图像中进行操作。
Rekep将点约束通过模型(VLM等)转化为数值约束,进行问题求解。
大型VLA
(为什么放到这里?)
(看起来是因为这只是简单介绍部分与控制策略有关的核心方法,但仍然困惑😖)
RT-2引用了联合微调,同时适应互联网规模的视觉问答数据和机器人数据。
RT-H在语言指令和低级动作之间增加了一层预测用来共享数据,方便改进。
RT-X用了开源大数据集来训练。
OpenVLA主要是微调方法方面(LoRA和模型量化)。其OFT由更高效率和性能。TraceVLA利用OpenVLA进行微调增强了感知能力。
π 0 \pi_0π0提出了一种流匹配架构将VLM转化为VLA,还有额外动作专家。
RoboMamba用更高效的线性Mamba模型取代Transfomer。
SpatialVLA引入3D信息和自适应动作网络。
LAPA先提取潜在动作,然后训练模型以预测潜在动作,再用机器人数据微调。
这里还提到了将大型VLA与扩散模型结合,基本上都是在策略动作方面上进行结合。
其中,采用VAR(视觉自回归建模)有更好的性能。将多模态在自回归范式下统一。例如将VLA与世界模型整合,搞出一个可生成文本,动作,图片的世界模型。
LLM则通过生成可以调用API的代码来使用工具,使其可以执行机器人任务。
优势与局限
架构
交叉注意力机制在小量级可提供优越性能,但大量级用V+L拼接更简单且结果相当。
多模态可以统一到共享词表,整合到一整个世界模型。
LLM通过API方法可以用于机器人任务。动作类型及训练目标
抽象掉低级动作后更精细的动作有好有坏(泛化能力——灵活性)。
行为克隆变体,有连续动作,离散动作,和SE(2)动作三种L \mathcal{L}L的计算
扩散策略也有自己的L \mathcal{L}L计算
各种方法都有自己擅长和不擅长的领域。RT系列
Transformer容量超过RNN
多模态,轨迹草图,Q学习,ViT,开源数据集,中间预测数据共享等一个个新能力出现