

Paper Reading: Embodied AI 2
从零开始的Embodied AI研究生活。
前言#
RL菜鸡开始进军Embodied AI,慢慢积累,提升自己。
LLARVA#
OpenVLA-like 的 VLA,使用 2D轨迹 预测去引导动作生成。
LLARVA 是一种 OpenVLA-like 的 VLA,使用 Instruction Tuning 进行微调,并通过输出 2D Visual Trace 去引导 Action 生成。
LLARVA 的输入指令被规范化为 Prompt,详细见图。
LLM 的主干为 LLaMA2 7B,并使用 LoRA 进行微调。
先预测 2D Visual Trace 再生成 Action Chunk,本质上是基于 CoT 的思想。
ATM#
使用 Label-free 的视频去训练以当前观察 Obs 和指令 Instruction 为 Condition 的 Points-Tracker,并使用 Points-Track 去引导 Action 生成。
ATM 的亮点在于仅可以使用 Action-free 的数据去训练机器人操作策略。
ATM 是一种 Pipeline 方法,分为任意点轨迹建模与轨迹引导策略学习两个部分。
在任意点轨迹建模部分,ATM 利用了大量 Label-free 的视频训练了一个 Points-Tracker,输入是当前观察 Obs、任务 Instruction 以及初始 Points,输出是未来的 Points-Trajectory。
在轨迹引导策略学习部分,策略网络以上个步骤预测的 Points-Trajectory 以及当前 Obs 为输入,输出机器人的 Action。
任意点轨迹建模: 在数据处理部分,ATM 使用了离线的 Points-Tracker 模型去得出的 Label。 同时,过滤掉了大部分静止的 Points,只保留了 32 个高频活动的 Points。 对于当前 Obs,使用 ViT 将图像切分为 Patches,并随机 Mask 掉 50% 的 Patches,得出 Image Token。 对于任务 Instruction,使用 BERT 进行信息提取 Language Token。 对于初始 Points,在文中是有32个,编码为 Track Token。 以 Obs 以及 Instruction 为 Base 的 Points-Tracker 被定义为一个 Transformer,输入为 Image Token、Language Token 以及 Track Token,输出为未来的 Points-Trajectory。 按照题主的理解,输出的 Points-Trajectory 其实就是任务导向的 Vision-Language Fusion。
轨迹引导策略学习:
首先,使用了 BERT-like 的 Transformer 对 Image Token 以及 Track Token 进行 Fusion,得出特征 [CLS]。
然后,策略网络设定为 MLP,以 [CLS] 以及 Track Token 为输入,输出机器人的 Action。
在策略学习的过程中,并没有引入 Instruction 的信息,因为在轨迹建模阶段已经引入了。
同时,对 Track Token 进行了两次 Fusion,这样会有更好的效果,详细见原文。
Track2Act#
使用 Points-Trajectory 去生成动作,并使用残差策略修正动作。
Track2Act 本质上和 ATM 是一样的,都是以 Points-Trajectory 去引导动作的生成。 Track2Act 主要分为三个阶段:Points-Trajectory 预测、Open-loop 动作求解以及 Residual Policy 闭环修正。
在 Points-Trajectory 预测阶段,Track2Act 使用了 DiT 生成模型。
DiT 的 Condition 被设置为初始图像 以及目标图像 的表征,给定随机采样的查询点集 ,生成 Points-Trajectory。
在 Open-loop 动作求解阶段,Track2Act 使用了一个确定性的算法进行刚性动作的求解,不涉及神经网络训练。 这个算法的输入是 Points-Trajectory,输出一系列的刚性变换 。 具体求解算法见原文,这里不详细展开。 最后,基于刚性变换,可以求解出机器人的 Open-loop 动作序列 。
在 Residual Policy 闭环修正阶段,Track2Act 使用一个 Residual Policy 去修正 Open-loop 动作。其实就是使用一个 Transformer-Encoder 去预测误差,最后加在一起。
最后简单瑞萍一下,其实博主觉得后面两个阶段完成可以使用神经网络进行表征,有点多余,虽然残差修正动作这个思想是好的。
ECoT#
具有 Embodied 性质的 CoT。
ECoT 这篇工作指出 LLM 那边的 CoT 是无法直接迁移到 Embodied 任务环境中的。
若只是简单的语义推理,那么就会出现大量不符合实际物理环境的幻觉。
因此,ECoT 在 CoT 的基础上添加了智能体对环境的感知,从而使得 CoT 具有 Embodied 性质。
ECoT 的具体设置见上图,和 CoT 类似,只是加入了 Embodied 的感知。
ECoT 使用的模型基座是 OpenVLA,使用 ECoT 后效果得到了很好的改善。
ECoT 还提出了一套使用机器人数据产生 CoT 训练数据的 Pipeline。
具体就不多说了,图里面说的很清楚。
这种推理过程是显式的,具有一定的解释性,缺点就是这样会降低推理的速度,文中也给了一些解决方案。
VoxPoser#
使用 LLM 生成 Python 代码去调用 VLM 的 API 计算 3D Value Map,并作为价值引导进行 MPC。
VoxPoser 是一种 Code for Robotic 的方法。 简单的来说,VoxPoser 使用 LLM 去生成 Python 代码,这里的代码会调用 VLM 的 API 生成 3D Value Map,然后进行 MPC。
首先,VoxPoser 会告诉 LLM 任务的文本描述以及一些 VLM 具有的 API函数,让它去产生能够基于 RGB-D 图像计算 3D Value Map 的 Python 代码。
然后,使用 Python 执行器去执行代码,过程中会调用 VLM 的 API,其实就是 OWL-ViT 获取边框还有 SAM 获取 Mask,然后重建 3D Points Cloud,计算得出 3D Value Map。
最后,有了 3D Value Map 作为价值引导,就可以使用 MPC 的方法合成轨迹,进行规划。
在文中,提供了在线训练 MPC 以及 启发式 MPC 两种方式,前者需要环境交互,后者则无需训练。
PIVOT#
将低级 Action 投影到图像中,并采用 VQA 的任务形式去让 VLM 选择 Action。
PIVOT 的思想很简单,就是把机器人的低级 Action 投影到图像中,并采用 VQA 的形式让 VLM 去选择 Action 集合。
PIVOT 维护一个 Action 的分布,初始化为均匀分布,有点像 MPC 中的交叉熵方法。
PIVOT 使用的是 Zero-Shot 的迭代算法,不断去优化 Action 的分布,直到收敛。
首先,PIVOT 从分布中采样一系列的 Action,然后将 Action 投影到 2D 图像上,详细见图,每个 Action 都对应了序号。
然后,给定任务描述文本以及 2D 图像,编写合适的 Prompt 让 VLM 去选择最优 Action 集合。
接着,根据选取的 Action 集合去维护 Action 分布,类似于 MPC 中的交叉熵方法。
经过不断迭代,可以得出较好的 Action 候选集合。
PIVOT 的思路很有启发性,但缺陷也是明显的。比如,3D 歧义理解、细粒度控制以及 VLM 的幻觉问题。
Code As Policies#
让 LLM 输出 Python 代码,并进行完成机器人任务。
CaP 核心思想不是训练策略网络,而是通过 Prompt 让 LLM 去调用机器人 API,从而完成任务。
首先,CaP 进行了 LMP 形式化,其实就是让策略利用 Python 语言的一些特性。
然后,为了处理复杂任务代码过长或者逻辑复杂的问题,CaP 使用了层次化代码生成的方法,其实就是自下而上分而治之的思想。
最后,CaP 进行了感知与动作的对齐。
LLM 会基于 Prompt 得出一些预定义的感知 API 以及 控制 API。
LLM 可以通过感知 API 去获取视觉信息的变量。
LLM 会计算控制 API 的参数,并执行。
CaP 的工作虽然简单,但它将高层规划和底层执行联系在了一起。
RoboPoint#
使用 VLM 获取 Point Grounding,用于引导下游任务。
RoboPoint 通过构建一套程序化合成数据生成流水线,将通用视觉语言模型(VLM)微调为能根据自然语言指令预测精确 2D 空间操作点(Spatial Affordance)的模型,从而实现了无需真实世界数据训练的机器人零样本(Zero-shot)操控与导航。
在数据生成阶段,RoboPoint 利用程序化生成技术构建多样化的 3D 仿真场景,通过利用模拟器中的精确几何信息自动计算物体间的空间关系,并创造性地采用“移除目标物体再采样”的策略来自动标注自由空间(Free Space),从而低成本地生成了海量包含“图像-指令-像素坐标点”的高质量合成训练数据。
在指令微调阶段,RoboPoint 套用 LLaVA 的架构,冻住视觉层只练语言模型,把“找坐标”直接转化成“文本生成”任务,让模型直接输出坐标数字 同时,为了防止了 VLM 的遗忘,加入了 VQA 数据进行 Co-Training。
在真实执行阶段,先使用 RoboPoint 计算出 RGB 图像上的 2D 坐标,然后结合深度图转换为 3D 坐标,最后直接套用一个预设好的抓取姿态,把目标传给传统的运动规划算法去解算路径,机械臂照做就行了。
RoboPoint 其实也是一种高层决策的规划,也是一种 System 2 的方法。
GR-1#
在视频数据上进行预训练,然后在机器人数据上微调,从而建立 World Model。
GR-1 证明了视频生成是策略学习的高效代理任务,它通过大规模视频生成式预训练迫使 GPT 模型内化环境动态与物理先验,从而在下游机器人任务中实现了卓越的小样本学习与零样本泛化能力。
GR-1 采用 GPT-style Causal Transformer 架构处理多模态交织序列,先通过大规模视频生成预训练学习环境动态,再经由动作与未来帧联合预测任务进行微调,实现端到端的自回归策略学习。
在预训练阶段,GR-1 利用大规模人类第一视角视频数据集(Ego4D)执行语言条件下的视频预测任务,旨在无需动作标注即可习得通用物理动态。
模型架构上冻结了 CLIP 文本编码器与 MAE-ViT 视觉编码器(辅以 Perceiver Resampler 压缩特征),将语言指令、历史图像帧与可学习的 [OBS] Token 交织输入至 GPT 主干网络。
训练过程中,模型屏蔽 [ACT] Token,仅通过因果掩码注意力机制利用 [OBS] Token 驱动视觉解码器(Vision Decoder)重建未来帧像素,从而迫使模型内化视觉演变规律与视语对齐关系,为下游机器人操作任务提供具备强泛化能力的 World Model 初始化权重。
在微调阶段,GR-1 加载预训练权重并扩展输入序列,将机器人本体状态(Proprioceptive State)与语言、图像交织输入,引入 [ACT] Token 用于回归 7-DoF 机械臂动作与夹爪状态。 训练采用多任务联合优化策略,在执行行为克隆(Behavior Cloning)学习策略分布的同时,保留未来帧预测(Video Prediction)作为辅助任务,通过联合最小化动作回归损失与图像重建损失,迫使策略在决策时显式利用预训练阶段习得的物理世界动态(World Model),从而实现感知到动作的高效迁移与对齐。
GR-1 的 Limitation 也是明显的。 因为要处理高维图像,所以导致推理延迟较高。 同时预训练的人类视频与机械臂控制之间存在形态鸿沟(Embodiment Gap),目前仅依靠微调隐式对齐而缺乏显式的动作重定向机制。
HPT#
对齐到 Cross-Embodied 的预训练 Transformer。
HPT 使用一种模块化 Token 对齐机制将异构机器人的 Proprioception 与 Vision 映射到共享潜空间到通用策略架构,并在大规模 Cross-Embodied 数据上验证了机器人策略学习的 Scaling Laws 以及迁移能力。
HPT 采用了一种高度模块化的 Stem-Trunk-Head 设计范式来解决 Cross-Embodied 难题。
在 Stem 模块中,利用 Cross-Attention 将异构的 Proprioception 与 Vision 对齐到统一的 Embodied 潜在表征。首先,机器人的 Vision 信息被编码成 Cross-Attention 中的 K 与 V,并与一组可学习的 Q 进行聚合得出 Vision Token。同样,机器人的 Proprioception 也经过相同的操作,得出 Proprio. Token。不同的 Embodied 对应了不同 Stem,是分别进行学习的。
在 Trunk 模块中,所有 Embodied 任务共享一个 Transformer,负责将 Stem 对齐后的多模态 Token 进行深度融合和推理。最终,经过池化后得出最终 Latent。
在 Head 模块中,负责将 Trunk 得出 Latent 进行解码,这里的解码器可以是 MLP、DP 以及 ACT,得出机器人的 Action。请注意,异构的机器人分别对应了不同的 Head。
在训练数据上,HPT 使用 OXE、Simulation 以及 Human Videos 等。 HPT 使用了最暴力的 BC 方法,证明了其 Scaling Law 的存在。