一句话定位

把「模仿单次示范 / 跟随语言指令 / 到达视觉目标」这些原本互不兼容的机器人任务规范,统一成图文交错的多模态 prompt → 序列建模一个问题;配套开源 VIMA-Bench(17 个任务模板、6 大类、650K 专家轨迹、4 级零样本泛化协议)与对应智能体 VIMA(object-centric token + T5 编码 + cross-attention 条件化的 encoder-decoder),成为「prompt-conditioned 操作策略」标准化评测的奠基工作(ICML 2023)。

背景与定位

论文的核心观察:机器人任务规范(task specification)历来「一任务一套架构、目标函数、数据管线」,导致系统割裂、无法组合复用。作者主张多种任务规范范式都能实例化为多模态 prompt——一个长度 $l$ 的有序序列 $P:=[x_1,\dots,x_l]$,每个 $x_i\in{\text{text},\text{image}}$:Rearrangement(视觉目标)写成「rearrange objects to match this {scene image}」;少样本模仿把视频帧塞进 prompt「follow this motion: {frame1}…{frame4}」;新概念用图片当场定义(“this is a blicket”)再立即使用;视觉约束写成「sweep … without exceeding {image}」。

这条思路是 NLP 里 prompt-based learning(GPT-3、T5 的 text-to-text 统一)向机器人操作的迁移,精神上最接近 Gato(Reed 2022,decoder-only 多域通才),但 VIMA 专注于「给通才机器人一个直观的多模态 prompt 接口」。基座沿用 rt-1/peract 同期的「大 transformer + behavior cloning」路线,但引入 object-centric 表征与 cross-attention 条件化两处关键设计差异。仿真环境基于 Ravens(Zeng 2020,同 peract 的 CLIPort 系)扩展。范式命名:multimodal-prompted robot learning

模型架构

VIMA = VisuoMotor Attention agent,学习策略 $\pi(a_t\mid P, H)$,$H=[o_1,a_1,\dots,o_t]$ 为交互历史。整体是 NLP 里验证过的 encoder-decoder transformer(T5 式):冻结的预训练 LM 编码 prompt,decoder 逐步自回归解码机器人 waypoint 指令。

Object-centric tokenization(关键设计 1)。 不吃原始像素,而是把 prompt 和 observation 里的所有图像解析成物体 token:

  • 全景图 → 领域微调的 Mask R-CNNmask_rcnn_R_50_FPN_3x)抠出每个物体,表示为 bounding box + 裁剪图。bbox 格式 $(x_{center}, y_{center}, h, w)$ 归一化到 $[0,1]$,过 bbox-encoder MLP(hidden 768, depth 2);裁剪图 padding 成方形后 resize,过一个从头训练的 ViT(输入 32×32、patch 16、width 768、4 层、24 头)。两路特征拼接映射到 embedding。
  • 单物体图同法,用 dummy bbox。文本走 t5-base tokenizer + 词嵌入(维度 768)。
  • 交错的图文 token 序列经 t5-base encoder(Frozen-LM 式,Tsimpoukelli 2021),只微调最后 2 层 + layer-wise lr decay,其余冻结防灾难性遗忘;非文本 token 前插 adapter MLP(depth 2);用 learned absolute 位置编码。

Cross-attention 条件化(关键设计 2)。 decoder(robot controller)是因果 transformer,交替 $L$ 次 cross-attention(history token 作 query,prompt token 作 key/value,$\text{softmax}(Q_HK_P^\top/\sqrt d)V_P$)+ 因果 self-attention。作者列三点好处:更强的 prompt 连接、prompt token 深层信息流不被稀释、计算更高效。观测编码:两视角(frontal + top-down)物体 token 按 [frontal, top-down] 排序 + EE 状态 one-hot,拼成 observation token;历史动作过两层 MLP(hidden 256)成 action token;obs/action 交错进 decoder。

Action decoding。 动作空间 = 两个 SE(2) 位姿(pick-place 时是 pick pose + place pose;push 时是起止 pose)。每个 pose 用 6 个独立离散头(2 个 xy 坐标 + 4 个四元数旋转),离散动作再经仿射变换映回连续。离散 bin:X 轴 50、Y 轴 100、旋转 50。两 pose 独立建模(早期消融显示与自回归解码等效)。action head:hidden 512、depth 2、ReLU。

规模谱系。 训 7 个机器人控制器:2M / 4M / 9M / 20M / 43M / 92M / 200M(log 均匀),改 embedding dim(256→768)与 block 数(1→11)。T5-Base encoder(111M)在所有方法里固定且不计入参数。Transformer 内部用 GEGLU 激活。

数据

VIMA-Bench 任务套件(17 模板 / 6 类), 基于 Ravens 扩展,PyBullet 后端渲染,demo 用 NVISII 光追增强画质;物体来自 Ravens + Google Scanned Objects(bowl/pan):

  • Simple Object Manipulation(3):Visual Manipulation、Scene Understanding、Rotate(30/60/90/120/150°)
  • Visual Goal Reaching(2):Rearrange、Rearrange then Restore
  • Novel Concept Grounding(4):Novel Adjective、Novel Noun、Novel Adjective and Noun、Twist(默认新形容词集 {daxer, blicker, modier, kobar}、新名词集 {dax, blicket, wug, zup}
  • One-shot Video Imitation(2):Follow Motion、Follow Order
  • Visual Constraint Satisfaction(2):Sweep without Exceeding、Sweep without Touching
  • Visual Reasoning(4):Same Texture、Same Shape、Manipulate Old Neighbor、Pick in Order then Restore

每个模板可用纹理 × 桌面物体组合程序化实例化出上千个实例。观测空间:frontal + top-down 双视角 RGB + 分割 + EE 类型指示 one-hot $\in{$suction cup, spatula$}$(约束/擦除任务用铲子 push,其余用吸盘 pick-place)。

模仿数据集。 用脚本化 oracle(访问 privileged 仿真状态,如物体精确位置、多模态指令真值解释)生成专家轨迹:每任务 50K、全集 650K+ 成功轨迹(4/17 任务留作 L4 novel-task 测试,故训练覆盖 13 任务 × 50K = 650K)。留出一部分物体和纹理专供评测。Mask R-CNN 微调用每任务 100 条轨迹的子集,共 22,741 张图 / 61,822 标注(lr 5e-4、10 epoch,选模型偏好高 recall)。数据集单独发布于 HF VIMA/VIMA-Data(CC BY 4.0),每条轨迹含 rgb_front/rgb_top + obs.pkl/action.pkl/trajectory.pkl。

4 级零样本泛化协议(严格递进,每级更偏离训练分布):

  • L1 Placement:prompt 训练时逐字见过,仅测试时随机化桌面物体摆放
  • L2 Combinatorial:纹理与物体都见过,但测试时出现新组合
  • L3 Novel Object:测试 prompt 与工作区含新纹理、新物体
  • L4 Novel Task:全新任务、全新 prompt 模板

partition 常量 ['placement_generalization','combinatorial_generalization','novel_object_generalization','novel_task_generalization']。每任务二值成功判据(无部分奖励),测试时在仿真里跑多 episode 算成功率百分比,全任务平均为最终指标。

训练方法

纯离线行为克隆(behavior cloning)。 最小化预测动作的负对数似然:对 $T$ 步轨迹 $\min_\theta\sum_{t=1}^T -\log\pi_\theta(a_t\mid P,H)$,全程无仿真器访问。训练后按 held-out 验证集聚合精度选 checkpoint(此步需与物理仿真交互)。

Object augmentation(鲁棒性关键)。 为抵抗 Mask R-CNN 的检测不准/漏检,随机注入 false-positive 物体 token:每步采样增广物体数 $n\sim\text{Cat}(K,p)$,实验设 $p={0{:}0.95,\ 1{:}0.05}$、$K=2$,每个增广物体随机采 bbox + 裁剪图。这让 Mask R-CNN 版本相对 oracle bbox 只掉极少性能。

训练超参(Table 7): AdamW;lr 1e-4;warmup 7K 步;cosine annealing 17K 步;weight decay 0;dropout 0.1;grad clip 1.0。

Prompt-encoding 消融: T5 三档 small(30M)/base(111M)/large(368M),decision 部分固定 200M,各版本只微调最后两层——三者无显著差异,故默认 base。

数据缩放实验的公平化: 直接学像素的基线(VIMA-Gato/Flamingo/GPT)用 MVP 预训练 ViT-B 初始化并 MAE 微调(用与 Mask R-CNN 同源的域内数据、每任务 100 轨迹),保证各法「内建信息量」相当。

Infra(训练 / 推理工程)

  • 训练硬件: 集群节点,每节点 8× NVIDIA V100最大实验约 1 天;用 DDP(distributed data parallel)加速。GPU-hours 总量未披露。
  • 精度 / 并行细节: 除 DDP 外未披露混合精度等信息(未披露)。
  • 推理 / 控制频率: 论文未给 FPS / 控制 Hz / 延迟 / 边缘硬件数字(未披露);策略输出 waypoint 级离散动作、由仿真原语(pick-place / push)执行,非高频闭环控制。
  • 代码 MIT、数据 CC BY 4.0;开源 7 档预训练 checkpoint(2M–200M)+ mask_rcnn.pth,托管 HF VIMA/VIMA

评测 benchmark

全部结果为 VIMA-Bench 自评(无外部 leaderboard)。基线均为作者「尽力改造」的代表性 transformer 智能体(因无现成方法吃多模态 prompt):VIMA-Gato(decoder-only,图像切 patch 过 ViT,因果 self-attn,无 cross-attn)、VIMA-Flamingo(Perceiver Resampler 把图压成定长 token + cross-attn,换动作头)、VIMA-GPT(decoder-only,一图编成单个 state token,无 cross-attn)。

模型缩放数值(Table 10,成功率 %,robot controller 参数量):

Level方法2M20M92M200M
L1VIMA / Gato76.5 / 37.677.1 / 46.179.3 / 57.081.5 / 58.0
L2VIMA / Gato77.1 / 35.977.6 / 44.180.1 / 53.981.5 / 53.1
L3VIMA / Gato77.3 / 29.077.3 / 40.281.9 / 45.678.7 / 46.0
L4VIMA / Gato25.7 / 13.348.8 / 12.349.6 / 13.548.6 / 16.8

关键结论:VIMA 在全部 4 级、全部 7 档模型上都超基线,小模型区间优势尤为夸张——最难的 L4、20M 尺寸相对最强基线 VIMA-Gato 高达 2.9× 成功率(论文口径:取性能差 / Gato 性能,保留一位小数)。VIMA 几乎不随模型变小而崩(L4 从 200M 的 48.6 到 2M 仍有 25.7),基线则在 12–17% 徘徊。

数据缩放(Table 11,92M 固定): VIMA 极度样本高效——1% 数据即可媲美基线用 10× 数据(L1/L2);10% 数据的 VIMA(L4 46%)已超 VIMA-Gato 全量数据(L4 12.2%),即 2.7×。作者归因于 object-centric 表征在低数据区不易过拟合(呼应 Sax 2018 的 mid-level vision 更泛化)。

渐进泛化退化(Fig.5): L1→L2、L1→L3 几乎无回退;L4 全员大掉,但 VIMA 的跌幅只有基线一半。

消融:

  1. 视觉 tokenizer(Fig.6,200M): object token 逼近 oracle bbox(object augmentation 之功);一切从像素学的(Image Perceiver / patches / single-image)都明显更差;即便同用 bbox,把变长物体序列降采样成定长(Object Perceiver)也显著变差——直接把变长物体序列喂控制器很关键
  2. prompt 条件化(Fig.7): cross-attn(xattn)vs 纯 gpt-decoder,大模型接近、但小参数区与最难 L4 上 cross-attn 主导。
  3. prompt 编码: T5 small/base/large 无显著差异 → 默认 base。
  4. 策略鲁棒性(Table 14): 每任务多加 1 个 distractor,200M VIMA 性能仅微降;对不完整 prompt(<UNK> 掩词)几无退化、对损坏 prompt(换词,可能改变语义)仅小降——归功于高质量预训练 T5 backbone。

创新点与影响

  • 多模态 prompt 形式化: 把目标条件、视频示范、语言指令、新概念定义、视觉约束统一成图文交错序列建模,给通才机器人一个 GPT 式直观任务接口——这是后续 prompt-conditioned / instruction-following 操作策略的概念地基。
  • VIMA-Bench 作为标准评测: 首个支持多模态 prompt 任务的机器人学习 benchmark(17 任务、程序化实例化、650K 轨迹),并标准化了 4 级递进零样本泛化协议,把「泛化能力」从模糊口号变成可分级、可复现的量化探针,成为该子领域反复被引的评测基座。
  • 两处方法论沉淀被后续吸收: object-centric token(抗低数据过拟合、逼近 oracle 检测)与 cross-attention prompt 条件化(小模型/难泛化更稳)。
  • 全面开源: 仿真环境、650K 数据、算法代码、7 档 checkpoint 全放出(MIT + CC BY 4.0),复现门槛低。
  • 作者自陈局限: ① 动作原语受限——沿用 Ravens 的 pick-place / push 高层原语(两 SE(2) 位姿),非细粒度低层连续控制,难覆盖需要精细力控/长程接触的任务;② 纯仿真、纯离线 BC,无真机实验、无在线 RL;③ 依赖 privileged oracle 生成数据与(训练用)真值分割/bbox;④ L4 novel-task 绝对成功率仍不足 50%,跨任务泛化远未解决。

原始链接

一手源存档(sources/)

  • vima-bench—vima-github-readme — VIMA 模型仓库 README(架构综述、7 档 checkpoint 链接、基线、MIT)
  • vima-bench—vimabench-github-readme — VIMA-Bench 仓库 README(17 任务名单、Gym 接口、观测/动作空间、4 partition、650K 数据、许可证表)
  • arXiv 原文 PDF(arXiv:2210.03094v2,不入 git):见上方 PDF 链接