一句话定位
UniAct(CVPR 2025)学习一个 256 条码字、跨机器人共享的”通用动作”码本(vector-quantized codebook),用一个微调过的 VLM 根据观测+语言目标选码,再用极轻量的逐本体 MLP 解码头把码字翻译回各机器人的实际控制信号,使一个 0.5B 参数的策略在 WidowX 真机和 libero 仿真上普遍超过 14 倍大的 openvla(7B),并能仅用新码头(4M/500M ≈ 0.8% 参数)快速适配未见过的新本体 AIRBOT。
背景与定位
范式:码本式跨本体通用动作空间(Universal Action Space),试图从根本上解决”异构本体的动作空间无法共享”这个卡住通用具身基础模型发展的核心矛盾。论文把此前处理动作异构性的路线归纳为两类失败模式:一类是 openvla、Octo(见 octo)、RT-X 系列这类做法,强行把不同动作空间视为等价,套用同一套离散化/归一化(如统一转成相对末端位姿),代价是相似的编码在不同数据源里可能代表完全不同的物理含义;另一类是 crossformer-cross-embodied-learning、rdt-1b、π0(见 pi0)代表的朴素聚合思路——手工设计一个物理上可解释、覆盖所有本体的统一动作空间,需要大量人工工程,且没有真正挖掘不同本体间的共享结构。
第三类相关工作是**隐动作空间(latent action space)**方法:LAPA(见 lapa-latent-action-pretraining)、IGOR、LAPO 通过在无动作视频上联合训练逆/正向动力学模型来提取隐动作,但这类隐动作只解释”两帧画面之间发生了什么变化”,容易被环境变化、新物体出现等与控制无因果关系的因素污染,且对观测间隔敏感;BeT、VQ-BeT、QueST 等用 K-means/VQ 对动作聚类建码本,但只在单一本体域内建模复杂人类示教的多模态性,没有触及跨本体异构问题。
UniAct 的关键区别:universal action extractor 不是单纯解释帧间视觉变化,而是一个以任务目标为条件的选码器——给定观测 o 和语言目标 g,VLM 输出选择每个码字的似然 p(u|o,g),逼迫码本捕捉”任务进展”而非噪声视觉变化;同时码本和解码头端到端联合训练在真实动作监督信号上,因此码字与实际控制存在因果连接(而非解释视频帧差的隐动作)。训练数据来自 Open X-Embodiment、libero、Droid 三个数据源的混合。
模型架构
Universal Action Extractor(选码器):基于 LLaVA-OneVision-0.5B(预训练 VLM)微调而来,输入观测 o(第三人称图像)与语言目标 g,输出在通用动作码本上的似然分布 p(u|o,g)。
Universal Action Space(码本):建模为 vector-quantized codebook,𝒰 ∈ ℝ^(256×128),即 N=256 个码字,每个码字 D=128 维。选码过程本是不可导的 arg max,训练时用 Gumbel-Softmax 类别重参数化(而非 Straight-Through Estimator,论文消融显示 STE 因硬采样每步只更新一个码字、易导致码本坍缩)近似,softmax 温度 τ 在训练过程中逐步衰减以兼顾早期探索与后期收敛稳定性。
Heterogeneous Decoding(异构解码头):K 个(K = 训练域数,本文 28)轻量级解码头 h_k,每个都是简单 MLP,输入为选出的通用动作 u* 与共享视觉骨干(ImageNet 预训练 ResNet18)抽取的视觉特征 o,输出该本体的实际控制信号 â^(k)。刻意保持解码头极简(简单 MLP 而非复杂网络),是为了让模型的主要学习能力都投入到通用动作本身,最大化跨本体泛化能力,而不是让某个解码头过拟合到单一本体的数据分布。
分辨率/精度:VLM 输入分辨率 384×384,ResNet18 输入 224×224(均沿用各自原始配置)。
动作表示:不做时序 chunk(每步基于当前 o,g 预测单步码字与动作),损失函数按各域动作标签性质定制——离散动作用 Cross-Entropy,连续动作用 MSE / Huber / diffusion loss。GitHub 代码库额外提供一个可选的 ACT(Action Chunking Transformer 风格)解码头,但论文实验与 Model Zoo 发布的 Libero / Bridge 权重均为 MLP 解码头。
跨本体(cross-embodiment)机制:所有本体共享同一个 VLM 选码器与同一套码本,只有解码头是本体专属且参数量极小,这是 UniAct 实现”少量参数+少量数据即可适配新本体”的结构基础。
规模:整体实例化为 0.5B 参数(主要由 LLaVA-OneVision-0.5B 贡献)。
数据
预训练总计 约 1 百万条演示,来自 28 个不同本体,混合了 Open X-Embodiment、libero、Droid 三个开源机器人数据集合,统一标准化为”含第三人称视觉观测 + 语言指令”格式,但刻意保留动作异构性(不同数据集混用 EEF 位置、EEF 速度、关节位置等不同控制接口),与两个基线(Octo、OpenVLA)需要”手工清洗成同一种动作空间”(如统一转成相对末端位姿、剔除关节位置动作)形成对比。默认只使用每个数据集的第一路第三人称视角(沿用 OpenVLA/Octo 惯例)。
28 个数据集的完整训练混合表(论文 Table 4,Trajectory / Samples / 采样率% / 控制接口):
| Dataset | Trajectory | Samples | Sample rate(%) | Control Interface |
|---|---|---|---|---|
| Utaustin Mutex | 1,500 | 361,871 | 1.0 | EEF Position |
| Berkeley Cable Routing | 1,557 | 38,789 | 0.2 | EEF velocity |
| NYU Franka Play | 454 | 44,412 | 1.0 | EEF velocity |
| Kuka | 557,893 | 7,130,157 | 12.7 | EEF Position |
| Austin Sailor | 240 | 352,110 | 2.2 | EEF velocity |
| Fmb | 8,611 | 1,136,907 | 1.0 | EEF velocity |
| Berkeley Autolab | 1,000 | 95,310 | 1.2 | EEF Position |
| Viola | 150 | 75,614 | 0.9 | EEF Position |
| Dobbe | 5,208 | 1,139,874 | 1.4 | EEF Position |
| Iamlab CMU | 631 | 146,241 | 0.9 | EEF Position |
| Austin Buds | 50 | 34,110 | 0.2 | EEF Position |
| Language Table | 441,911 | 6,602,077 | 4.4 | EEF Position |
| Stanford Hydra | 569 | 357,137 | 4.4 | EEF Position |
| Robo Set | 18,246 | 1,419,838 | 5.0 | Joint position |
| Austin Sirius | 559 | 279,724 | 1.7 | EEF velocity |
| Dlr Edan | 104 | 8,824 | 0.1 | EEF Position |
| Fractal | 86,599 | 3,607,028 | 12.7 | EEF Position |
| TOTO | 1,003 | 324,669 | 2.0 | Joint position |
| Berkeley Fanuc | 415 | 58,660 | 0.7 | EEF Position |
| CMU Stretch | 135 | 25,012 | 0.2 | EEF Position |
| Roboturk | 1,934 | 186,910 | 2.3 | EEF Position |
| Jaco Play | 976 | 66,094 | 0.4 | EEF Position |
| Taco Play | 3,603 | 230,966 | 3.0 | EEF Position |
| BC-Z | 42,811 | 5,957,097 | 7.5 | EEF Position |
| Droid | 92,115 | 27,043,929 | 10.0 | EEF Position |
| Furniture Bench | 5,100 | 3,905,717 | 2.4 | EEF velocity |
| Bridge | 28,933 | 899,685 | 13.3 | EEF Position |
| Libero | 6,500 | 1,007,204 | 5.0 | EEF Position |
(采样率按数据集加权,用于平衡本体/任务/场景,而非按轨迹条数等比例采样;WidowX 真机基准对应表中 Bridge 数据集,Franka 仿真基准对应表中 Libero 数据集。)
新本体快速适配(AIRBOT):仅采集 100 条新演示,覆盖 4 种截然不同的控制接口(相对/绝对末端位置、相对/绝对关节位置),UniAct 与两个基线均未在预训练阶段见过 AIRBOT。
训练方法
目标函数:联合优化码本 𝒰 与选码器参数 θ、以及全部 K 个异构解码头,最小化 K 个域上行为克隆损失之和 min_{𝒰,θ} Σ_k E[ℒ_k(â^(k), a)](论文 Eq.6);ℒ_k 按域内动作标签性质选择 Cross-Entropy(离散)或 MSE/Huber/diffusion loss(连续)。训练策略上,𝒰 与选码器每步都更新,而各异构头 h_k 只依据对应域采样到的批次更新——类似元学习中”全局共享参数 + 任务专属组件”的分工。
类别重参数化:用 Gumbel-Softmax 而非 Straight-Through Estimator;论文消融发现 STE 的硬采样每步只优化一个码字,容易造成码本坍缩,Gumbel-Softmax 的软权重能让梯度分布到多个候选码字上,利于码本多样性学习。
预训练超参(论文 Table 3):optimizer AdamW,batch size 1024,learning rate 2×10⁻⁵,weight decay 0,β₁,β₂=0.9,0.95,500K 迭代,BFloat16 精度。
图像增强(论文 Table 2):RandomResize(ratio=0.75–1.333,scale=0.5–1.0,双三次插值)、RandomHorizontalFlip(p=0.5)、ColorJitter(对比度/亮度/饱和度均 0.6–1.4)。
快速适配策略(AIRBOT):冻结码本与选码器,仅为每种新控制接口从零训练一个轻量 MLP 头;4 种接口各训练一个头。微调超参(论文 Table 7):AdamW,batch size 128,lr 3×10⁻⁴,weight decay 0,β₁,β₂=0.9,0.95,10K 迭代,BFloat16。微调新增参数占比 4M / 500M ≈ 0.8%,是三者中最小的(OpenVLA 97M/7000M≈1.4%,Octo 2M/100M=2%)。
LIBERO 微调基线对照:为保证公平比较,OpenVLA 与 Octo 也在同样的 LIBERO 数据上按各自官方流程微调(细节见下方 Infra 与评测节)。
Infra(训练 / 推理工程)
预训练:64 张 NVIDIA A100,使用 DeepSpeed,训练时长约 10 天,精度 BFloat16;论文未披露具体 ZeRO stage / 张量并行等并行策略细节,仅确认使用 DeepSpeed。
AIRBOT 快速适配微调(UniAct 自身):4 张 A100,DeepSpeed,耗时约 1 小时。
基线对照训练规模(非 UniAct,供参照):LIBERO 上微调 OpenVLA 用 8 张 A6000 GPU,耗时 7 小时;微调 Octo 用 2 张 RTX 4090,耗时 4 小时。AIRBOT 上微调 OpenVLA 用 8 张 A6000,耗时 1.5 小时;微调 Octo 用 2 张 4090,耗时 0.5 小时(OpenVLA 微调持续到训练集准确率达到官方要求的 95%)。
推理侧:论文未披露控制频率(Hz)、单步推理延迟或 FPS 数据;也未讨论边缘硬件部署或量化方案。GitHub 仅提供推理代码示例(uniact_model.infer(domain_name=...)),无性能基准。
评测 benchmark
三个基线对照模型:Octo(0.1B,扩散式策略)与 OpenVLA(7B,自回归离散动作),均在约 1M 条”精心清洗过、消除了动作异构性”的机器人演示上训练(如统一为相对 EEF 位置、剔除关节位置动作);UniAct-0.5B 使用同规模、同来源但未经此类繁琐清洗的原始异构数据训练。
WidowX 真机(BridgeV2 平台复现,Kim et al. [OpenVLA] 评测协议,19 个任务 × 10 次试验 = 190 次 rollout):
| Model | Visual | Motion | Physical | Semantic | Language Grounding | Average |
|---|---|---|---|---|---|---|
| Octo | 24.0 | 30.0 | 10.0 | 19.4 | 48.3 | 28.9 |
| OpenVLA-7B | 66.0 | 35.0 | 60.0 | 48.1 | 88.3 | 65.1 |
| UniAct-0.5B(本文) | 69.0 | 66.0 | 70.0 | 38.8 | 73.3 | 63.3 |
UniAct-0.5B 在视觉、运动、物理三个泛化维度上超过 14 倍大的 OpenVLA-7B;在语义泛化与语言接地任务上数值上略低于 OpenVLA(论文表述为”comparable”),作者将其归因于 OpenVLA 更大的 7B 视觉语言骨干带来的语义理解/语言接地优势。WidowX 分任务详细得分见论文 Appendix Table 5(如 visual 子任务 “put eggplant into pot (easy)“:Octo 3.0 / OpenVLA 10.0 / UniAct 10.0;physical 子任务 “flip pot upright”:Octo 1.0 / OpenVLA 2.0 / UniAct 7.0 等,评分制为按任务进度打分而非纯二值成功率)。
LIBERO 仿真(130 任务,5 个 suite:Spatial/Object/Goal/Long/90,各 suite 20 次试验/任务;基线在官方代码上微调以对齐任务类型/专家轨迹数/图像质量):
| Model | LIBERO-Spatial | LIBERO-Object | LIBERO-Goal | LIBERO-Long | LIBERO-90 | Average |
|---|---|---|---|---|---|---|
| Octo | 17.5 | 12.0 | 36.5 | 20.0 | 32.5 | 27.7 |
| OpenVLA-7B | 43.0 | 66.5 | 54.5 | 13.0 | 44.1 | 44.1 |
| UniAct-0.5B(本文) | 64.5 | 77.5 | 68.0 | 46.5 | 60.0 | 61.3 |
UniAct-0.5B 在全部 5 个 suite 上均超过两个基线,整体平均成功率比 7B 的 OpenVLA 高 17.2 个百分点(61.3 vs 44.1),比 Octo 高 33.6 个百分点(61.3 vs 27.7)。论文提到 OpenVLA 微调时即便清洗 no-op 数据、增加训练步数,动作准确率仍偏低,而 UniAct 对噪声数据表现出更强鲁棒性。
AIRBOT 快速适配(4 种控制接口 × easy/hard 两个任务版本,成功率%):
| Model | Rel. EEF (easy/hard) | Rel. Joint (easy/hard) | Abs. EEF (easy/hard) | Abs. Joint (easy/hard) |
|---|---|---|---|---|
| Octo | 5.0 / 12.5 | 22.5 / 17.5 | 2.5 / 0.0 | 0.0 / 0.0 |
| OpenVLA-7B | 32.5 / 22.5 | 17.5 / 2.5 | 32.5 / 15.0 | 2.5 / 7.5 |
| UniAct-0.5B(本文) | 57.5 / 40.0 | 47.5 / 45.0 | 52.5 / 30.0 | 70.0 / 30.0 |
UniAct-0.5B 在全部 4 种控制接口、easy 与 hard 两个难度下均一致超过两个基线。
通用动作空间的可解释性分析:人工检查全部 256 个码字在不同机器人上解码出的行为,发现至少 40% 的码字表现出严格一致的语义行为(同一码字在 WidowX 真机与 Franka 仿真等存在巨大 sim-to-real / 视角差异的机器人上,解码出相似的动作,如”向前移动”);论文进一步展示可以完全不依赖机器人运动学知识、仅靠手选码字序列来操纵机器人完成 pick&place 等任务。
码字利用率的 JS 散度分析(论文 Table 1,P=pick up bowl,O=open drawer 两个任务,WidowX/Franka 两个机器人,数值越低说明利用率分布越一致):
| P_WidowX | P_Franka | O_WidowX | O_Franka | |
|---|---|---|---|---|
| P_WidowX | 0 | 0.34 | 0.45 | 0.51 |
| P_Franka | 0.34 | 0 | 0.60 | 0.58 |
| O_WidowX | 0.45 | 0.60 | 0 | 0.44 |
| O_Franka | 0.51 | 0.58 | 0.44 | 0 |
同一任务、不同机器人之间的码字利用率分布差异(P_WidowX vs P_Franka = 0.34;O_WidowX vs O_Franka = 0.44)明显小于同一机器人、不同任务之间的差异(P_WidowX vs O_WidowX = 0.45;P_Franka vs O_Franka = 0.58),说明选码器确实在按”任务进展”而非”本体身份”分配码字。
创新点与影响
- 核心创新:把跨本体动作异构性问题重新表述为”学一个目标条件的离散通用动作码本 + 逐本体轻量解码”,而不是强行统一动作空间或朴素聚合各本体动作空间;选码器以 VLM 为骨干、以任务目标 g 为条件(而非解释帧间视觉差异),使码字与真实控制行为存在因果连接,这是相对 LAPA/IGOR/LAPO 等隐动作方法的关键区别。
- 参数效率:0.5B 的 UniAct 在 WidowX 真机视觉/运动/物理泛化与 LIBERO 全部 5 个 suite 上超过 14 倍大的 OpenVLA-7B;新本体适配只需极小的新增参数(4M/500M ≈ 0.8%,小于 OpenVLA 的 1.4% 与 Octo 的 2%),且无需对新数据做动作空间清洗。
- 可解释性:256 个码字里至少 40% 展现跨本体、跨 sim-to-real gap 的一致语义行为,甚至可以直接手选码字序列”盲操作”机器人完成任务,论文认为这为把通用动作当作未来更大规模具身基础模型的”动作 tokenizer”(服务于世界模型规划等场景)提供了可能性。
- 作者自陈局限(论文 Appendix D):(1) 当前仅在单臂机器人、不同控制接口设置上验证,尚不确定”通用动作”这一共性是否只存在于同类本体(机械臂)之间,还是能推广到双臂、灵巧手、四足乃至自动驾驶车辆等结构差异更大的本体;(2) 当前所有解码头统一用简单 MLP 以避免过拟合,但更复杂的本体(如双臂)理论上需要更复杂的解码头,如何按本体复杂度定制解码头容量尚未探索;(3) 是否”更多数据/更多本体”必然带来更好的通用动作空间(scaling law)尚未研究;(4) 通用动作作为未来世界模型 tokenizer 的潜力仅停留在讨论层面,未做实验验证。
原始链接
- arXiv: https://arxiv.org/abs/2501.10105 (PDF: https://arxiv.org/pdf/2501.10105)
- GitHub: https://github.com/2toinf/UniAct
- 项目主页: https://2toinf.github.io/UniAct/
- HuggingFace 模型仓库: https://huggingface.co/2toINF/UniAct
一手源存档(sources/)
- uniact—github-readme — GitHub README 快照(模型加载/推理示例、Model Zoo 权重与已发布成功率、训练/快速适配脚本)
- uniact—project-page — 项目主页快照(摘要、WidowX/LIBERO/AIRBOT 三张完整评测表、交互式”手选码字控制机器人”演示说明)
- uniact—hf-card — HuggingFace 模型卡快照(license、指向论文/代码的极简卡片)
- arXiv 原文 PDF/HTML(2501.10105,CVPR 2025 收录,v1 2025-01-17 / v2 2025-03-08)——不入 git,见上方原始链接