一句话定位

Octo 是首个完全开源(含预训练管线、checkpoint、数据加载器)、且能被高效微调到全新观测/动作空间的通用机器人策略(Generalist Robot Policy, GRP):一个 transformer-first 骨干 + 扩散动作头,在 open-x-embodiment80 万条真机轨迹(25 个子数据集)上做模仿预训练,既可用语言指令也可用目标图像指定任务,开箱即控多种机械臂,并能在单张消费级 A5000上用约 100 条演示、5 小时微调迁移到新传感器(力/力矩)、新动作空间(关节位置控制)乃至新本体(双臂 ALOHA)。两个开源规模:Octo-Small 27M、Octo-Base 93M。

背景与定位

论文攻击的是「通用机器人模型」这一开放难题:NLP/CV 已有可复用的通用预训练骨干,而机器人一直「一任务一机器人各训一个」。此前的 GRP——robocat(RoboCat,目标条件多本体)、open-x-embodiment 的 RT-1-X / RT-2-X(语言条件跨 5 本体)——虽已展示跨本体控制,但被三个短板锁死:(1) 强约束下游用户只能沿用预训练时的固定输入(如单摄像头)与动作空间;(2) 缺乏对新域的有效微调支持;(3) 最大的模型不对公众开放。

Octo 的核心设计取向是灵活性 + 可扩展性:用一套 block-wise masked attention 的 transformer,把「任意输入 token(观测 + 任务)→ 输出 token(解码成动作)」统一起来,微调时只需增删 token / 加轻量 encoder / 加新 head,不动预训练的 transformer 权重。方法论上,Octo 把三样已在别处出现的组件——transformer 策略骨干、语言 + 目标图像双模态任务指定、diffusion-policy(Chi et al. 的扩散动作解码)——首次组合进跨本体通用策略,并叠加 aloha-act(ACT)提出的 action chunking 与来自可扩展 ViT 训练文献(学习率调度、模型阶梯)的工程实践。范式名:跨本体通用机器人策略预训练 + 组合式可微调接口。与同期靠大 VLM 骨干输出离散动作 token 的 RT-2-X(55B)路线不同,Octo 走「小策略 + 连续扩散动作」路线;与后来的 hpt-heterogeneous-pretrained-transformerslapa-latent-action-pretraining 同属「如何吃下异构机器人数据」的探索谱系。发表于 RSS 2024(Delft)。

模型架构

核心是一个 transformer 策略 π,三段式:输入 tokenizer → transformer 骨干 → readout head

输入 tokenizer(模态特定)

  • 语言:先分词,再过冻结的 t5-base(111M),产出 16 个语言 embedding token。(消融发现冻结 base 最好;换 t5-small 30M / t5-large 386M 或微调最后两层都没提升,归因于多数数据集缺乏丰富自由语言标注。)
  • 图像观测 / 目标图像:过一个很浅的卷积 stack,切成 16×16 patch(第三人称图 → 256 token,腕部相机图 → 64 token)。这是「transformer-first」设计:几乎不用大 ResNet encoder,把参数与 FLOPS 集中在 transformer 骨干里(与 canonical ViT 一致)。
  • 输入序列 = [任务 token, 观测 token₁, 观测 token₂, …] + 可学习位置 embedding。

Transformer 骨干(block-wise masked attention)

  • 观测 token 只能因果地注意到「同时刻或更早」的观测 token 以及任务 token;不存在的观测(如某数据集无语言)被整块 mask 掉。
  • 插入可学习的 readout token(类似 BERT 的 [CLS]):它注意前面的观测/任务 token,但不被任何观测/任务 token 注意——只被动读出内部 embedding,不影响它们。这种模块化让微调时能自由增删观测/任务/head 而不重初始化预训练权重(对比 RT-1 / GNM 那种「改一个图像输入就要重训大块」)。

扩散动作头(diffusion action head)

  • 施加在 readout token 的 embedding 上,预测连续、多模态动作分布,且预测一个 action chunk(一次预测未来数步)。
  • 结构:3 层 MLP,hidden dim 256,带残差连接与 LayerNorm;标准 DDPM 目标,cosine 噪声 schedule,20 步去噪。关键工程点:每次动作预测只跑一次 transformer 前向,多步去噪全在这个小 head 内完成(省算力)。
  • 预训练 chunk size = 4(README FAQ);观测历史 window = 2 帧(超过 1 帧额外历史收益急剧递减)。

规模阶梯(Table V)

变体LayersHidden DMLP sizeHeadsParams
Octo-Tiny10M(仅缩放消融用)
Octo-Small123841536627M
Octo-Base1276830721293M

(Small/Base 骨干分别对标 ViT-S / ViT-B。)

数据

  • 规模:Open X-Embodiment 约 150 万条 episode 中,筛出 80 万条作训练——作者称是当时最大的机器人操作演示集(RT-X 只用了更受限的 35 万条子集)。预处理后数据集约 1.2TB(README)。
  • 组成:手工筛选 25 个 OXE 子数据集(内部代号 oxe_magic_soup)。采样权重主要按各集样本量、再做少量手工调整。

混合配比(Table III,每 batch 平均占比)

数据集占比数据集占比
Fractal (RT-1)17.0%Toto2.4%
Kuka17.0%Austin Sirius2.3%
Bridge17.0%Berkeley Autolab UR51.5%
BC-Z9.1%IAMLab CMU Pickup Insert1.2%
Stanford Hydra6.0%Viola1.2%
Language Table5.9%Berkeley Fanuc1.0%
Taco Play3.6%NYU Franka Play0.9%
Furniture Bench3.3%Jaco Play0.6%
UT Austin Mutex3.0%Berkeley Cable Routing0.3%
Austin Sailor2.9%Austin Buds0.3%
Roboturk2.8%CMU Stretch / NYU Door / DLR EDAN / UCSD Kitchen≤0.2%
  • curation 规则:先剔除「无图像流」「非 delta 末端执行器控制」的集;再剔除过度重复、低分辨率、过于小众的集。把剩余集粗分「更多样/更少样」,更多样的权重翻倍;对少数重复 episode 多的集降权。
  • 对齐:缺失相机通道零填充;统一夹爪动作——+1 = 张开,0 = 闭合(消融表明这种「绝对夹爪表示」优于「相对表示」)。
  • 模态覆盖偏斜(论文自陈的短板根因):仅 27% 数据含腕部相机仅 56% 数据含语言标注——这直接导致腕部相机处理弱、语言条件不如目标图像条件。
  • 动作标注 / 自监督:对无语言标注的数据集一律用目标图像条件;训练时用 hindsight goal relabeling(从轨迹未来均匀采一状态当目标图),并对每条样本随机置零语言或目标图,使模型既能语言也能目标图条件。
  • v1.5 数据侧改动:用 GPT-3.5 对语言指令做改写增广(README)。

训练方法

  • 目标:扩散策略的标准 DDPM 去噪目标(Chi et al. / Ho et al.),cosine schedule,20 步。作者对比发现扩散头在 zero-shot 与微调上都优于 MSE 头与离散动作头。
  • 优化器/调度AdamW,学习率 3e-4inverse-square-root(reciprocal square-root)衰减2000 步线性 warmup,weight decay 0.1,梯度裁剪 1.0batch size 2048
  • 预训练步数:Octo-Base 训 300k 步
  • 图像增广:第三人称相机——随机裁剪→resize 到 256×256→color jitter;腕部相机——同样但不随机裁剪,resize 到 128×128;像素归一到 [-1, 1]。
  • 数据加载工程:在解码图像前先跨轨迹 shuffle/interleave 帧,使 shuffle buffer 撑到 50 万(小 buffer 20k + 轨迹级 interleave 会显著掉 zero-shot 性能);每条轨迹最多抽 100 个随机步避免长 episode 挤爆 buffer。
  • 微调配方(全模型更新,统一超参):给约 100 条目标域演示,微调 50k 步,cosine decay + 线性 warmup。作者发现更新全模型优于冻结部分预训练参数;对新观测/新动作空间只需加对应 encoder/位置 embedding/新 head。
  • v1.5 训练侧修正(README):把语言 token 在上下文窗口每个时刻重复以增强视觉-语言 cross-attention;关掉扩散头 dropout(与 LayerNorm 不兼容);修 attention mask off-by-one;修图像增广随机种子。

Infra(训练 / 推理工程)

  • 训练硬件TPU v4-128 podOcto-Base(ViT-B,300k 步,batch 2048)约 14 小时Octo-Small 约 8 小时(README)。
  • 微调硬件单张 NVIDIA A5000(24GB VRAM)约 5 小时(可多卡加速)——刻意压到「消费级、可及」的算力预算。
  • 精度 / 并行细节:论文未披露具体并行策略与数值精度(框架为 JAX)。
  • 推理吞吐:单张 NVIDIA 4090Octo-Base 13 it/sec、Octo-Small 17 it/sec(README)。得益于「每步动作只跑一次 transformer 前向、去噪在小 head 内完成」。
  • 实机控制频率(微调评测披露,因平台而异):CMU Baking 动作 15 Hz(R2D2 Franka 控制器)、Stanford Coffee 10 Hz(基于 Polymetis)、Berkeley Coke(ViperX,末端 delta 控制)5 Hz。双臂 ALOHA 用 chunk=64 训练、test 时 receding-horizon 每次执行 12 个动作再重规划。

评测 benchmark

4 家机构、9 个真机 setup 上评测(数据均取自源自 project page 与论文 Fig.3 / Table I)。

Zero-shot 开箱控制(成功率)

方法WidowXUR5RT-1 Robot
RT-1-X (35M)0.200.350.60
RT-2-X (55B)0.500.85
Octo0.500.700.80
  • 语言条件下 Octo 平均比 RT-1-X 高 29%,与 55B 的 RT-2-X 相当
  • Octo 额外支持目标图像条件:WidowX 上目标图条件比语言条件平均高 25%

数据高效微调(成功率,各约 100 条演示、统一超参,Table I)

方法CMU BakingStanford CoffeeBerkeley Peg Insert*Berkeley Pick-Up†Berkeley CokeBerkeley Bimanual†平均
ResNet+Transformer Scratch (28M)0.250.450.100.000.200.200.20
VC-1 (视觉表征预训练)0.300.000.050.000.100.500.15
Octo0.500.750.700.601.000.800.72

(* 新观测:力/力矩本体感受;† 新动作空间:关节位置控制。数值取自论文 Table I,与 project page 微调总表一致。)Octo 平均比次优 baseline 高 52%

设计消融(Table II/VI,均在 WidowX,40 trials 平均)

配置聚合成功率
Octo-Small(完整)83%
数据:RT-X 11-集混合60%
数据:仅单机器人(Bridge)43%
策略:离散动作预测18%
策略:连续 MSE 预测35%
架构:ResNet-50 + Transformer70%

结论:最宽数据混合 + ViT/transformer-first 架构 + 扩散动作头三者各自都显著更优。

规模缩放:Octo-Tiny(10M) < Small(27M) < Base(93M),zero-shot 随规模单调提升;Base 对初始场景更鲁棒、更少过早抓取。

泛化分解(Table VII,WidowX):in-distribution 85%、novel objects 80%、novel environment 40%、novel skill 仅 5%(翻杯、插槽等新技能几乎不会)。

创新点与影响

贡献:(1) 首个完全开源可复现的通用机器人策略——放出预训练管线、27M/93M checkpoint、以及 JAX/PyTorch 双端 OXE 数据加载器(MIT 协议);(2) 首个能有效微调到新观测与新动作空间的 GRP,靠 block-wise attention + readout token 的组合式接口,微调时不动预训练骨干;(3) 把 transformer 策略 + 语言/目标图双条件 + 扩散动作头首次组合进跨本体设定,并给出成体系的设计消融(数据宽度、扩散 vs MSE vs 离散、ViT vs ResNet、模型规模、patch size、shuffle buffer 等「有效/无效清单」),成为后续研究的配方参考。

影响:Octo 与 open-x-embodiment 一起成为 2024 年开源通用机器人策略的事实基线,被后续 VLA(如 OpenVLA 等)反复作为对比与初始化对象;它证明了「小策略 + 连续扩散动作」路线在开箱多机器人控制上能追平 55B 级 VLM(RT-2-X),且推理与微调成本低到消费级 GPU 可及。

作者自陈局限:(1) 腕部相机处理不佳——微调时常只用第三人称相机反而更好,根因是仅 27% 数据含腕部相机;(2) 语言条件明显弱于目标图条件,根因是仅 56% 数据有语言标注且标注贫乏;(3) 全靠最优演示的模仿学习,未用次优/在线交互数据;(4) 只在单臂/双臂操作上训练评测,未涉导航/移动操作;(5) 加入本体感受输入反而变差(疑似因果混淆);(6) 新技能泛化很弱(Table VII novel skill 5%)。

原始链接

一手源存档(sources/)