一句话定位

CogACT 把 VLA 拆成”认知”与”动作”两个组件:冻结不了的 Prismatic-7B VLM(DINOv2+SigLIP 视觉 + Llama-2 语言)只负责输出一个”认知 token”特征,真正生成动作的是一个专门的扩散 Transformer(DiT)动作模块,条件化在该认知特征上;配合作者提出的自适应动作集成(Adaptive Action Ensemble),在 Open X-Embodiment 上预训练后,SIMPLER 仿真与 Realman/Franka 真实机器人上均以 7.6B 参数大幅超过同规模的 openvla(7B)与更大的 RT-2-X(55B)。

背景与定位

范式:组件化 VLA + 扩散动作 Transformer,是继”自回归离散动作 token”(rt-2openvla)与”小型扩散头”(octo 的 3M 参数 diffusion head)之后的第三条路线。作者的核心论点:VLM 的认知能力(视觉-语言理解、语义泛化)与动作预测所需的能力(连续、多模态、时序相关、需要高精度)本质上不同,不应该像 RT-2/OpenVLA 那样直接把动作硬塞进 VLM 的 next-token 预测框架,也不该像 Octo 那样只用一个参数量很小的 diffusion head “拼接”到冻结的视觉/语言编码器上。CogACT 的做法是保留强 VLM 作为”认知”来源,但给动作单独配一个可扩展、可独立研究扩展规律的专用模块(论文类比人脑视觉皮层/语言皮层与运动皮层的分工)。

CogACT 的视觉-语言底座与 openvla 同源(都基于 Prismatic-7B:DINOv2+SigLIP 视觉编码器 + Llama-2 7B),训练时直接从 OpenVLA 发布的 openvla-7b-prismatic 权重初始化以提升效率——因此可以看作是”把 OpenVLA 的离散动作头换成扩散 Transformer 动作模块”的直接对照实验。评测都在 simpler-env 仿真环境和真实 Realman / Franka 机械臂上进行,对比对象覆盖 RT-1、RT-1-X、RT-2-X、octoopenvla。与同期”大动作模型”路线(如把扩散 Transformer 独立训练到 1B 而不接 VLM 的工作)相比,CogACT 强调必须保留 VLM 的 Internet 规模预训练才能获得泛化能力。

模型架构

三段式组件化架构(vision module → language module → diffusion action module):

  • 视觉模块DINOv2 + SigLIP 两个预训练 ViT 并行编码当前帧图像,特征沿 channel 维拼接后过线性投影,序列化为 256 个视觉感知 token(默认长度)。
  • 语言模块Llama-2 作为骨干,把语言指令 token、视觉 token 与一个额外可学习的认知 token(cognition token) c 拼接,用因果注意力处理;取出认知 token 对应的输出特征 f_t^c 作为下游动作模块的条件——这是整个架构与 OpenVLA/RT-2(直接用末尾 token 位置回归/离散化动作)最本质的区别:VLM 只需产出一个浓缩的条件向量,不直接吐动作。
  • 动作模块 = 扩散 Transformer(DiT):以认知特征 f_t^c 为条件,配合带时间步 i(正弦位置编码,加到认知特征上)的噪声动作序列作为输入 token,通过多步去噪预测未来动作序列。预测当前 + 未来 15 步N=15,默认),动作模块的 context 长度为 N+2=17。DiT 有三档规模:DiT-Small(13M)、DiT-Base(89M,默认)、DiT-Large(308M),论文特别强调 300M 相对 7B VLM 是”小”的,但相对 7 维动作空间而言已经是”大”的动作模型。
  • 动作空间:7 自由度末端执行器增量 [Δx, Δy, Δz, Δφ, Δθ, Δψ, g]g 为夹爪开合二值),单臂、单第三人称相机视角。
  • 模型总参数:Prismatic VLM ~7.5B + DiT-Base 89M ≈ 7.6B(论文原文口径,用于与 55B 的 RT-2-X 对比)。
  • 推理侧超参:默认 classifier-free guidance(CFG)scale = 1.5(1.0–3.0 均可用,1.5 为默认取舍点),DDIM 采样 10 步
  • Adaptive Action Ensemble(AAE):推理时用最近 K 步历史观测对当前时刻的动作预测做加权融合,权重 w_k^ada = exp(α · <a_t|o_t, a_t|o_{t-k}>) 由预测间余弦相似度决定(α=0.1),从而避免像 ACT 的 Temporal Ensemble 那样对不同”动作模态”的历史预测做无差别平均。K 依机器人运动速度/观测频率的动作标准差反比设定:Google Robot(RT-1 数据)K=2,WidowX(BridgeDataV2)K=7

数据

  • 预训练规模25 个 Open X-Embodiment(OXE)子数据集,合计 0.4M 条机器人轨迹、22.5M 帧(与 octoopenvla 使用同一子集口径)。
  • 筛选:只保留单臂末端执行器控制 + 至少一个第三人称相机视角的数据集(沿用 Octo/OpenVLA 筛选标准),且不使用 Language Table 与 droid(理由是二者与其余数据分布差异过大)——这一点与 OpenVLA(曾以 10% 权重尝试并入 DROID、训练后期又移除)不同,CogACT 从一开始就排除。
  • 数据混合配比(Table I,节选,按占比降序):Fractal 27.1%、Bridge 15.3%、Kuka 14.7%、BC-Z 8.6%、Stanford Hydra 5.1%、Taco Play 3.4%、Roboturk 2.7%、UTAustin Mutex 2.6%、Austin Sailor 2.5%、FMB 2.4%、Toto 2.3%、Furniture Bench 2.8%、Austin Sirius 2.0%、DobbE 1.6%、Berkeley Autolab UR5 1.4%、IAMLab CMU Pickup Insert 1.0%、NYU Franka Play 1.0%、Berkeley Fanuc 0.9%、Viola 1.1%、Jaco Play 0.6%、Berkeley Cable Routing 0.3%、Austin Buds/CMU Stretch 各 0.2%、UCSD Kitchen/DLR EDAN 各 <0.1%。
  • 真机微调数据:Realman 机械臂——“Pick”(48 条)、“Stack”(67 条)、“Place”(79 条)+ 其他任务 197 条,合计 391 条演示(其中部分评测任务如”把香蕉放黄色盘子”仅有 2 条同款演示,考验小样本泛化)。Franka 机械臂——4 个任务各采集 100 条,合计 400 条
  • 采集方式:Meta Quest 2 触控手柄遥操作,Realman 记录 30Hz,Franka 记录 5~6Hz;图像裁剪缩放到 224×224,旋转量转 Euler 角,Realman 数据训练时随机降采样到 5Hz(帧间隔 0.2s)。
  • 增强与归一化:随机裁剪/亮度/对比度/饱和度/色相增强;超出演示长度的未来动作用静止动作填充;动作归一化到 [-1, 1](论文提到也试过归一化到高斯分布 N(0,1),未见提升)。
  • 底座 VLM 的预训练数据(继承自 Prismatic,非 CogACT 自采):DINOv2 用 12 亿图像、SigLIP 用 400 亿图文对预训练,Llama-2 预训练 2 万亿 token,外加 120 万条多模态指令微调样本。
  • 纯真实机器人数据,不含仿真数据做预训练。

训练方法

  • 训练目标:标准扩散模型的 MSE 噪声预测损失 L_MSE = E[||ε̂ - ε||²],即预测噪声与真实高斯噪声之间的均方误差,视觉/语言/动作三模块端到端联合训练
  • 初始化:从 openvla 发布的 openvla-7b-prismatic 检查点初始化视觉+语言模块(也可直接从 Prismatic VLM 初始化,收敛更慢)。
  • 优化超参:batch size 256,恒定学习率 2e-5,训练 135K+ 迭代,每个训练样本按 8 个扩散时间步重复采样计算损失(论文 Implementation Details 原话”8 diffusion steps per sample”,GitHub 训练脚本中对应 --repeated_diffusion_steps 8,用于降低扩散损失估计的方差)。
  • 多步动作预测:训练时同时监督当前步 + 未来 N 步噪声预测,消融显示 N=15 最优(见评测部分)。
  • 推理侧:CFG(classifier-free guidance,默认 1.5)+ DDIM 采样(10 步)+ Adaptive Action Ensemble 联合使用。
  • 下游微调:GitHub 仓库建议全量微调(full fine-tuning)优于 LoRA,约 30 epoch 即可取得良好效果,训练脚本(全量微调与从零训练共用)同样设置 --repeated_diffusion_steps 8--future_action_window_size 15--action_model_type DiT-B,单节点 8×A100 示例配置。

Infra(训练 / 推理工程)

  • 预训练16 张 NVIDIA A100,约 5 天,PyTorch Fully Sharded Data Parallel(FSDP)
  • 下游微调(GitHub 示例):单节点 8 张 A100torchrun --nproc-per-node 8,global batch 256(per-device 32)。
  • 精度:训练用 FSDP 默认精度;推理可选 bf16(model.vlm.to(torch.bfloat16)),fp32 加载约需 30GB 显存
  • 推理延迟/频率(单张 A6000 GPU,bf16,CogACT-Base,连续调用 100 次取平均):181ms/次,配合 Adaptive Action Ensemble 的动作生成频率约 5.5Hz;若用 action chunking 一次输出 k 个动作(k 最多 16),频率线性提升为 k 倍,但开环预测步数越长精度越降。
  • 对比 openvla(同硬件、同精度):OpenVLA 推理 307ms/次,且每次推理只能生成 1 个动作(离散 token 需逐维自回归生成 7 个);CogACT 每次推理生成 16 步动作——这是”单认知 token 条件化 DiT 一次性出整段动作序列”相对”7 个动作 token 逐个自回归解码”的直接工程收益。

评测 benchmark

SIMPLER 仿真 - Google Robot(Table 1,四任务:Pick Coke Can / Move Near / Open-Close Drawer / Open Top Drawer & Place Apple):

方法参数量Visual Matching 平均Variant Aggregation 平均
RT-152.443.7
RT-1-X35M42.430.2
RT-2-X55B46.354.4
Octo-Base93M11.01.2
OpenVLA7B34.339.3
CogACT(本作)7.6B74.861.3

CogACT 在 Google Robot VM 单项上比同规模 OpenVLA(7B)高 40.5 个百分点。论文摘要给出的是跨设置汇总口径:相比 OpenVLA,在模拟评测(GR-VM + GR-VA + WR-VM 三项均值)上高出约 36.5 个百分点(摘要表述”over 35%”),在真实机器人实验(Realman + Franka 均值)上高出约 56.9 个百分点(摘要表述”55%”);相比 55B 的 RT-2-X,在 Google Robot 的 VM+VA 均值上高出约 17.7 个绝对百分点(摘要表述”18%“,注意 RT-2-X 未报告 WidowX 结果,故该项对比只含 Google Robot)。

SIMPLER 仿真 - WidowX Robot(Table 2,Visual Matching,四任务:Put Spoon on Towel / Put Carrot on Plate / Stack Green on Yellow Block / Put Eggplant in Basket):CogACT 平均 51.3%,对比 RT-1-X 1.1%、Octo-Base 17.5%、Octo-Small 26.7%、OpenVLA 4.2%。

真实 Realman 机械臂(Table 3,Pick/Stack/Place 三任务,预训练+微调 391 条演示后):CogACT 总平均 71.2%,对比 Octo-Base 4.9%、OpenVLA 12.1%(超 OpenVLA 59.1 个百分点)。

  • 泛化测试(未见桌面+未见干扰物,Table 4):CogACT 58.4% vs OpenVLA 9.7%。
  • 泛化测试(未见颜色/形状/类别,Table 5):CogACT 64.6% vs OpenVLA 6.3%。

真实 Franka 机械臂(Table 6,Close/Open Oven、Pick Bowl、Pick Brush 四任务,微调 400 条演示):CogACT 平均 61.4%,对比 Octo-Base 5.8%、OpenVLA 6.8%。

消融研究(均在 SIMPLER 上做,GR=Google Robot VM/VA,WR=WidowX VM,取三者平均):

消融维度设置平均成功率
动作模型架构(Table 7)MLP-3层(3M)50.6
MLP-7层(89M)52.5
DiT-Small(13M)58.5
DiT-Base(89M,默认)62.5
DiT-Large(308M)64.8(最优)
未来步数 N(Table 8)N=0(无多步)42.8
N=355.5
N=15(默认)62.5(最优)
N=3151.2(过长反而下降)
动作集成策略(Table 9)Action Chunking50.7
Temporal Ensemble58.9
Adaptive Ensemble(本作)62.5(最优)
CFG scale(Table IV)1.055.7
1.5(默认)62.5
3.062.7(与 1.5 相近)

关键结论:DiT 结构在同参数量下显著优于 MLP;动作模块的平均成功率与其参数量对数近似线性关系,呈现良好扩展规律;未来动作步数并非越多越好(N=31 反而下降,推测过长的开环预测降低精度);Adaptive Ensemble 优于 ACT 提出的两种基线集成策略。

创新点与影响

贡献

  1. 首次把扩散生成过程系统性地整合进大规模 VLA 模型,提出组件化架构(认知/动作分离,VLM 只出一个条件 token,动作模块专职生成),区别于 RT-2/OpenVLA 的离散 token 自回归路线与 Octo 的小型 diffusion head 路线。
  2. 系统研究了动作模块的骨干选型与规模效应,发现 DiT 相比 MLP 有结构性优势,且动作模块参数量与成功率呈对数线性的良好扩展规律——仅增加几百 M 参数(相对 7B VLM 很小)即可带来显著性能提升,提示了一条比”整体放大 VLM”更高效的 VLA 扩展路径。
  3. 提出 Adaptive Action Ensemble,用预测间余弦相似度自适应加权融合历史动作预测,是一个可独立复用于其他 VLA/策略模型的推理时技巧。
  4. 实证上,以 7.6B 参数在 SIMPLER 与真实 Realman/Franka 机械臂上大幅超过同规模 OpenVLA(7B)与更大的闭源 RT-2-X(55B),并因为”单 token 条件化、一次性出整段动作序列”的设计,推理延迟低于同硬件下的 OpenVLA(181ms vs 307ms),且单次推理产出的动作步数更多(16 vs 1)。

论文表述的边界(原文未设独立 Limitations 小节,以下是论文正文/消融中明确写出的约束,而非编者外推):训练数据限定为单臂末端执行器控制 + 至少一个第三人称相机的 OXE 子集,不含双臂/移动底盘等动作空间;动作模块虽有良好扩展规律,但消融显示未来预测步数并非越大越好(N=31 相比 N=15 掉点),说明多步预测存在最优窗口而非单调收益;仿真与真实评测的机器人本体(Google Robot、WidowX、Realman、Franka)均为单臂夹爪,未测试更复杂末端执行器或移动操作场景。

原始链接

一手源存档(sources/)