RoboFlamingo:把「看图说话」的 VLM 改造成「看图干活」的机器人策略
🎯 为什么重要:VLM 进机器人有「三条路」,RoboFlamingo 选了最便宜的一条
大模型时代,所有人都在想:「VLM 既然懂图、懂话,能不能直接当机器人脑?」但 VLM 是为「静态图文对」训练的,机器人要的是「连续视频 → 控制信号」。论文 Fig.1 把当时的方案分成三类,并给出第四条路:
💡 核心思想:VLM 当「眼睛 + 嘴」,policy head 当「手 + 记忆」
Flamingo 类 VLM 原本是为「单图 + 文本」设计的——给它一张图问「这是啥」,它答一句话。但机器人是时序的:要看连续视频,要记刚才做了啥。RoboFlamingo 的关键设计是「VLM 单帧化 + policy head 序列化」:
关键巧思:「时序」不在 VLM 里做,而在 policy head 里做。理由是 Flamingo 预训练只见过单图-单句,强行让它处理历史帧反而更差(论文 §5.4.1 的 MLP w hist 实验验证了这点)。把时序交给小 LSTM,既保留 VLM 的「理解力」,又给它配了「记性」。
🛠️ 怎么做:四步把 VLM 改成机器人策略
| 步骤 | 具体操作 | 为什么这么设计 |
|---|---|---|
| ① 选开源底座 | OpenFlamingo(Alayrac et al. 2022 的开源复刻):ViT 视觉编码 + Perceiver Resampler + 冻结 LLM(MPT/GPT-Neox/LLaMA)+ gated cross-attn | 避免 RT-2 那种「私有 + 55B」的不可复现;OpenFlamingo 已在 web 图文上预训练好对齐能力 |
| ② 单帧前向 | 每步把 $(I_t, G_t, l)$ 喂入 Flamingo,得到 VL 联合嵌入 $X_t^L$;只在 token 维 max-pool 成一个向量 | VLM 只见「一张图 + 一句话」,落在它预训练的舒适区 |
| ③ policy head 接管时序 | 三种 head 对比:MLP(无历史)/ GPT / LSTM(默认);输入当前 pooled 向量 + 上一步隐状态 $h_{t-1}$ | 把「记历史」这个 Flamingo 没学过的能力,下放到一个极小的可训模块 |
| ④ 部分参数微调 | 只训 resampler + gated cross-attn + policy head;冻结 ViT 和 LLM 主体 | 单 GPU 服务器可训;避免在小规模机器人数据上把 VLM 知识「灾难性遗忘」 |
训练目标极简:动作的 7-DoF 用 MSE 回归,夹爪开/关用 BCE 分类。
两个理由:(1) CALVIN 的语言指令只标注了全量数据的 1%(~24k 条轨迹),这点数据训不动 LLM 主体,只会把它原本的语言对齐能力「冲掉」;(2) 真正需要适配机器人的是「视觉如何对齐到语言」这一层——也就是 cross-attention,这部分可训就够。这正是 Flamingo 原文「gated cross-attn 是少样本适配关键」结论的延伸。
📊 关键结果:CALVIN 上「2×」SOTA,且开源可复现
评估在 CALVIN(长程序列基准,34 任务,5 步链式指令)上完成。指标是「连续完成 1/2/3/4/5 个任务的 Success Rate」与「平均链长 Avg Len」。
| 设置 | 方法 | S1 | S2 | S3 | S4 | S5 | Avg Len |
|---|---|---|---|---|---|---|---|
| ABCD→D (全数据训练) | MCIL | 0.373 | 0.027 | 0.002 | 0.000 | 0.000 | 0.40 |
| HULC(前 SOTA) | 0.889 | 0.733 | 0.587 | 0.475 | 0.383 | 3.06 | |
| RT-1 | 0.844 | 0.617 | 0.438 | 0.323 | 0.227 | 2.45 | |
| RoboFlamingo | 0.964 | 0.896 | 0.824 | 0.740 | 0.66 | 4.09 | |
| ABC→D (视觉 zero-shot) | HULC | 0.418 | 0.165 | 0.057 | 0.019 | 0.011 | 0.67 |
| RT-1 | 0.533 | 0.222 | 0.094 | 0.038 | 0.013 | 0.90 | |
| RoboFlamingo | 0.824 | 0.619 | 0.466 | 0.331 | 0.235 | 2.48 |
| 维度 | 结论(PDF 溯源) |
|---|---|
| 整体提升 | ABCD→D 上 Avg Len 4.09 vs HULC 3.06(+34%),相对 RT-1 提升 ~1.7×;论文摘要称之为「2× performance improvement」 |
| 视觉泛化 | ABC→D(未见环境)Avg Len 2.48 vs RT-1 0.90,约 2.7×——VLM 预训练带来的视觉理解红利 |
| 语言泛化 | 用 GPT-4 给每任务生成 50 条同义指令做评测;freeze embedding 后 Avg Len 2.12(Enriched D) |
| 数据效率 | 只用 10% 语言标注数据时,M-9B 的 Avg Len 0.83 远超 M-3B 的 0.05——模型越大越数据高效 |
| 部署灵活性 | 支持 open-loop:一次推理吐「stacked actions」省去逐帧 VLM 推理,但需用 jump-step 数据重训 |
| 局限 | 论文明确说「未上真机」,仅在 CALVIN 仿真验证 |
🌐 在领域中的位置
RoboFlamingo 是「开源界对 RT-2 的回应」——证明「VLM 进机器人」不必依赖 55B 私有模型和海量 co-fine-tune,解耦 + 部分微调就能在 CALVIN 上刷新 SOTA。它的「policy head 解时序」思路,被后续 TinyVLA 等「轻量 VLA」工作继承,推动了开源 VLA 生态。
❓ 常见误区
RoboFlamingo 是 RT-2 的复现吗?
不是。RT-2 把动作变成 token 让 VLM 「吐」出来,是端到端。RoboFlamingo 明确反对这种「重训 VLM」的路线——VLM 只输出 VL 嵌入,动作由独立的 policy head 回归。论文 Fig.1 把两者画成不同范式。
它做了真机实验吗?
没做。论文 §6 明确说「Due to the lack of real-robot data, this paper does not deploy on real-world robotics」。所有结果都在 CALVIN 仿真上。作者把真机留给「未来工作」。
VLM 主体都冻结了,怎么还能学到机器人策略?
关键在 gated cross-attention 这一层是可训的——它正是 Flamingo 论文里「适配下游任务」的开关。再加上 policy head 完全可训,加起来约 1B 可训参数(占总参数三分之一),对机器人数据来说已经足够。
既然 policy head 这么小,为什么不直接套在 ResNet 上?
论文 §5.4.2 做了「No VL Pre-train」消融:去掉 OpenFlamingo 的 cross-attn/resampler 预训练权重后性能大幅下降。说明预训练的视语对齐能力才是红利,policy head 只是个轻量适配器。