Summary

Octo: An Open-Source Generalist Robot Policy

  • 核心: 一个 transformer-based diffusion policy,在 Open X-Embodiment 800k 轨迹上预训练,支持任意相机/语言/目标图像输入并能高效 finetune 到新观测/动作空间
  • 方法: ViT 风格 transformer + 块状 attention mask + 可插拔 readout token + diffusion action head(chunked action prediction)
  • 结果: 跨 9 个真实机器人 setup(4 个机构)zero-shot 击败 RT-1-X、与 RT-2-X (55B) 持平;finetune 平均比 from-scratch 和 VC-1 高 52%
  • Sources: paper | website | github
  • Rating: 3 - Foundation(首个完整开源 code + checkpoint + data loader 的 GRP,块状 attention + diffusion head 的组合被 OpenVLA 等后续 VLA 工作事实上继承)

Key Takeaways:

  1. 完全开源的 GRP 范式: 是当时第一个把 model checkpoint + training pipeline + data loader 全开源的 generalist robot policy,奠定了 OpenVLA 等后续工作的基础设施
  2. Transformer-first 架构 + 块状 attention 是 cross-embodiment 的关键 enabler: 输入/输出都是 token,新增 camera 只需加 positional embedding,新增 action space 只需加 readout head——pretrained 权重完全保留
  3. Diffusion head > MSE head > discrete head: ablation 揭示 18%(discrete)/35%(MSE)/83%(diffusion)的鸿沟,归因为 multi-modal action 分布的表达力
  4. 数据规模 + 多样性是 scaling 的主要驱动: 25 datasets > 11 datasets (RT-X mix) > single-robot;ViT 在小数据上不如 ResNet,仅在 OXE 全量数据上才超出
  5. 诚实的 negative result 清单: Appendix E 系统记录了 wrist camera 弱、proprioception 损害性能、relative gripper representation 失败等——对后续工作极有参考价值

Teaser. Octo zero-shot 控制多种机器人执行 language/goal-conditioned 任务的 demo 视频。


模型设计

架构总览

Figure 0. Octo 模型架构。 左:task description (绿) 和 observation (蓝) 通过 pretrained T5 和 shallow CNN 各自 tokenize。上:transformer backbone 处理 token 序列、产出 readout token (紫),再经 action head 解码为 action。下:块状 attention 允许 finetune 时增删输入和输出 head 而不动 pretrained 参数。

Octo 的 policy 由三部分组成:

  • Tokenizers: language → t5-base (111M) → 16 个 language tokens;image observations / goals → shallow CNN + patchify (16×16) → 256 个 (3rd-person) 或 64 个 (wrist) tokens
  • Transformer backbone: 加 learnable positional embedding 后拼成统一序列 输入 transformer
  • Readout heads: 插入 learnable readout token (类似 BERT 的 [CLS]),diffusion action head 在 readout 的 embedding 上预测 action chunk

块状 attention mask 的关键设计

  • Observation token 只能 causally attend 到当前及之前时间步的 observation 与 task token
  • 缺失的 observation(如某 dataset 没有 wrist camera)整块 mask 掉
  • Readout token 只读不写——它 attend 别人但不被 attend,因此可任意增删而不影响其他 token 的 representation

这是 finetune 灵活性的根本来源:换 camera 配置或加新 action space 时,pretrained transformer 权重一字不动,只新增 lightweight encoder / positional embedding / output head。相比之下,RT-2 等架构换输入需要重训大块组件。

Training Objective

用 conditional diffusion head 预测连续多模态 action 分布。每次 action 预测只需 transformer 一次 forward,K 步 denoising 全在小 diffusion head 内完成。

Equation. Diffusion 去噪迭代

符号说明 是第 步的噪声化 action; 是去噪网络,条件于 transformer readout embedding 来自标准 cosine noise schedule。

含义:训练用标准 DDPM 目标(往真实 action 上加 Gaussian noise,让 重建 noise)。Inference 用 20 步 cosine schedule denoising。Finetune 时整个模型一起更新(freeze 反而更差)。

训练数据

Figure 1. 训练数据混合。 从 Open X-Embodiment 中精选 25 个含图像、end-effector 控制、任务多样的数据集。pie chart 显示每个 dataset 在 batch 中的平均比例(手动权衡 size 和 diversity)。

数据 curation 的几个关键决策:

  • 剔除:无图像流、非 delta end-effector 控制、过度重复、低分辨率、niche 任务
  • 类别加权:粗分 “more diverse” / “less diverse”,前者权重 ×2
  • 缩减:down-weight 含大量 repetitive episode 的 dataset
  • 缺失通道补 0;gripper action 对齐到 +1=open / 0=closed
  • 共 800k 轨迹(vs RT-X 用了 350k)——是当时已知最大的 manipulation 数据集

评估 setup

Figure 2. 评估任务。 9 个真实机器人 setup 横跨 4 个机构,包括 zero-shot(WidowX/UR5/RT-1 robot)和 finetune 场景,后者覆盖新 observation(FT 力矩)、新 action space(joint position)、新 embodiment(ViperX、ALOHA bimanual)。


实验

Zero-Shot 控制

Figure 3. Zero-Shot 评估。 Octo 在 WidowX / UR5 / RT-1 Robot 上对比 RT-1-X 和 RT-2-X。Octo 平均比 RT-1-X 高 29%;与 RT-2-X (55B 参数) 相当——而 Octo-Base 只有 93M。

WidowX 上用 goal image conditioning 比 language 高 25%——goal image 信息更密。但泛化分析(Table VII)显示 zero-shot 对新场景降级中度、对新技能(flip cup、precise insertion)几乎完全失败——in-distribution 是 strong,OOD 边界很硬。

数据高效 Finetune

Table I. Finetuning Evaluation. 6 个新 domain,每个 ~100 demo + 同一套 finetune 超参,success rate 平均 20 trials。

MethodBerkeley Insertion*Stanford CoffeeCMU BakingBerkeley Pick-Up†Berkeley CokeBerkeley Bimanual†Average
ResNet+Transformer Scratch10%45%25%0%20%20%20%
VC-15%0%30%0%10%50%15%
Octo (Ours)70%75%50%60%100%80%72%

(*: 新 observation 输入 force-torque;†: 新 action space joint position)

Octo 平均比次优基线 (scratch) 高 52 个百分点。值得注意:VC-1 这样的”通用视觉表征”作为初始化反而比 from-scratch 还差(15% vs 20%)——纯视觉预训练对 manipulation 的迁移价值有限,跨 embodiment 的动作监督才是 useful pretraining 的核心。

设计决策 ablation

Table II. Model Ablations. WidowX setup 上对比,40 trials 平均。

AxisVariantAggregate Performance
-Octo-Small (Ours)83%
dataRT-X dataset mix60%
dataSingle robot dataset (Bridge)43%
policyDiscretized Action Prediction18%
policyContinuous Action Prediction (MSE)35%
archResNet-50 + Transformer70%

三个独立 ablation 都给出相当显著的 gap:

  • Data scale & diversity: 25 > 11 > 1 datasets,单调上升——暗示进一步 scale data mixture 还有空间
  • Policy head: diffusion (83) ≫ MSE (35) ≫ discrete (18)。MSE 倾向”hedging”(缓慢、不旋转 gripper);discrete 倾向”decisive but imprecise”(动得果断但 grasp 频繁 miss);diffusion 兼顾多模态与精度
  • Architecture: ViT-first (83) > ResNet-50 + small Transformer (70) on full OXE。但作者明确指出 ResNet 在 small dataset (~100 demo) 上反超 ViT——大 transformer 只在大数据下才赢

Figure 4. Model Scaling. Octo 性能随模型规模(Tiny 10M / Small 27M / Base 93M)单调上升,UR5 和 WidowX 任务上都成立。Base 比 Small 在初始场景配置变化时更鲁棒、更少早 grasp 误判。

工程上的 do’s & don’ts (Appendix E)

Worked:

  • 加 1 帧 history 显著提升 zero-shot;再加更多 frame 收益微弱
  • Action chunking 让 policy 动作更连贯;temporal ensembling 反而无收益
  • Patch size 16 > 32(尤其 grasping),代价是 4× token
  • 巨大 shuffle buffer(500k)+ pre-decode interleaving 是从 25 个 dataset 并行加载的关键

Did not work:

  • ImageNet-pretrained ResNet encoder 无收益
  • Relative gripper action: 减少 gripper open/close 次数 → grasp 成功率略升,但 grasp 失败后 retry 行为缺失,整体反而更差
  • Proprioception input: 训练 loss 看起来好但部署变差,疑似 causal confusion (state 与 future action 强相关)
  • Finetune T5 encoder(包括用 large size):无收益——归因于 dataset 中 language annotation 既不丰富也不 free-form

❓ Diffusion (83%) vs Discrete (18%) 的 gap 大得惊人——同样在 RT-2 用 discretized action token 也跑得不错,怀疑这里 discrete head 的具体实现(256 bin、cross-entropy)可能 under-tuned。要看作者是否就 discrete baseline 做过同等的超参 sweep。


关联工作

基于

  • Open X-Embodiment: 数据源——Octo 训了 OXE 中 800k / 1.5M 轨迹,比 RT-X 用的 350k 多 2.3×
  • DDPM (Ho et al.): 标准 cosine schedule + 20 步 denoising 的 action diffusion head
  • ViT (Dosovitskiy et al.): backbone 架构与 patch tokenization
  • T5 (Raffel et al.): language encoder,用 t5-base (111M) frozen

对比

  • RT-2-X (55B): 直接对比 zero-shot,Octo (93M) 接近,参数效率上完胜
  • RT-1-X (35M): 同类规模 baseline,Octo 平均高 29%
  • VC-1: 通用视觉表征预训练 baseline,在 finetune 评测中作为 “pretrained encoder” 代表
  • Diffusion Policy (Chi et al.): 单 task diffusion policy 的鼻祖,Octo 把它推到 cross-embodiment

方法相关

  • Action chunking (ALOHA / ACT): chunk 64 actions + receding horizon control 是 Octo finetune ALOHA bimanual 的关键
  • GNM, RoboCat: 跨 embodiment generalist policy 的早期代表,Octo 在 manipulation 域延伸
  • Hindsight goal relabeling (Andrychowicz et al.): goal image 任务的训练技巧

后续 / 影响

  • OpenVLA (2024-06): 1 个月后发布的同类工作,把 backbone 换成 7B Llama2 + Prismatic VLM,证明 LLM-backbone 路线的优势(vault 中存有改进版 OpenVLA-OFT
  • 后续大量 VLA 论文(VlaserX-VLA 等)继承”transformer + cross-embodiment + finetune-friendly”的设计哲学

论文点评

Strengths

  1. 真正可复用的开源工程: code、checkpoint、data loader、training pipeline 全开源,是后续 OpenVLA 等 generalist policy 工作的事实基础设施
  2. 架构设计清晰对应一个真实问题: 块状 attention + readout token 的设计直接服务于 “finetune 时不动 pretrained 权重也能换 input/output” 这个生产需求,不是为了 fancy 而 fancy
  3. 诚实详尽的 ablation 与 negative result: Appendix E 系统披露 8 项 “what did and did not work”,包括 wrist camera 弱、proprioception 反作用等——这种 honesty 在 robot foundation model 论文里少见
  4. 方法 simple & generalizable: 没有任何 task-specific tweak,“transformer + tokenize everything + diffusion head” 的最小组合,正好符合 simple/scalable/generalizable 原则
  5. Cross-institution 评测的样本量: 9 个 setup × 4 个机构 + 一致 finetune 超参,结果可信度高于”自己 lab 调到飞起”的论文

Weaknesses

  1. Zero-shot 边界硬: Table VII 显示对新技能 generalization 几乎为 0(flip cup 10%, put block in slot 0%)。论文承认但不深入——Octo 本质是 “interpolation in skill space”,不是 emergent capability
  2. Goal-conditioned vs Language-conditioned 鸿沟未解: language 显著弱于 goal image,归因于 pretraining data 中只有 56% 有 language annotation——但没尝试 LLM-augmented 数据 relabeling 等解法
  3. Wrist camera 利用率低: 作者明确说 finetune 时常常只用 third-person 比加 wrist 还好——这是预训练数据 27% 含 wrist 的直接后果,但论文没探索如何让模型学会”按需使用” wrist
  4. VLA 路线的回避: Octo 用 frozen T5-base 作 language encoder,没把 LLM 与 policy 一起训。这是和后续 RT-2 / OpenVLA 的根本路线分歧——后者证明大 VLM backbone 的 visuolingual grounding 显著更强。Octo 的实验显示 finetune T5 无收益,但用 frozen 小 LM 这一前提本身可能就限制了 ceiling
  5. Discrete action baseline 可能 under-tuned: 18% 太低了,与 RT-X 系列的实际部署经验不符;论文没说是否对 discrete 做过同等 sweep
  6. Imitation-only: 只能 train on optimal demos,无法用 sub-optimal / online interaction data——作者列为 future work

可信评估

Artifact 可获取性

  • 代码: inference + training + finetuning 全开源,JAX 实现,提供 Colab notebook
  • 模型权重: Octo-Small (27M) 和 Octo-Base (93M) 在 HuggingFace rail-berkeley/octo-{small,base}octo-{small,base}-1.5
  • 训练细节: 完整披露——hyperparameters (Table IV)、模型 size (Table V)、数据混合权重 (Table III)、training step、batch size、TPU 配置都给了
  • 数据集: 开源(Open X-Embodiment dataset,有官方下载);具体 25 个 sub-dataset 的过滤规则在 Section III-B 和 Appendix C

Claim 可验证性

  • “800k trajectories from OXE”: 数据源公开,curation 规则明文,可复现
  • “finetune in 5 hours on a single A5000”: 给了 GPU + 时间 + step 数(50k),独立 lab 可重测
  • “Octo > RT-1-X by 29% averaged”: zero-shot 评测有具体 task 列表和 trial 数(10 per task),样本量小但 disclosure 完整
  • ⚠️ “Octo similar to RT-2-X (55B)”: 仅在 WidowX 和 RT-1 Robot 两组 task 上对比,trial 数 10 per task;“similar” 的判定缺统计检验,可能受 task 选择影响
  • ⚠️ “Octo outperforms next best baseline by 52% averaged”: 在 6 个 finetune setup 上成立,但 baseline 主要是 from-scratch 和 VC-1——没和同期更强 generalist policy(如 RT-1-X finetune)对比
  • ⚠️ “first GRP that is fully open-source”: 时间上的先验性 claim,在 2024 年 5 月成立,但定义边界(“fully” = code + weight + data)有可商榷余地
  • ❌ 无明显营销话术——abstract 和 intro 整体克制

Notes

  • 路线对比的启示: Octo(frozen T5 + transformer + diffusion head)vs OpenVLA(trainable VLM backbone + discrete token)的对比是评估 “VLM backbone 是否必要” 的天然 ablation。Octo 在更小参数量下接近 RT-2-X,提示架构 + diffusion head 的贡献可能被低估——后续若做 VLA-vs-non-VLA 的成本/性能权衡分析,Octo 是 baseline
  • 对我自己工作的可借鉴点: 块状 attention + readout token 这套机制在做 multi-task / multi-modal finetune 时是个干净的设计模板;写论文的 Appendix E 风格(systematic do/don’t 清单)值得照搬
  • Appendix E 可直接拿来用: negative result 清单在做具体实验时直接可用(如不要加 proprioception、不要 finetune language encoder、用 absolute gripper representation)——省一轮踩坑
  • 疑问: Octo 没用 proprioception 是 dataset 不一致还是 causal confusion?后续 OpenVLA 也没用 proprio,但 X-VLA 等开始引入——值得追踪 proprio 在 modern VLA 中是否被解决

Rating

Metrics (as of 2026-04-24): citation=1163, influential=100 (8.6%), velocity=50.35/mo; HF upvotes=29; github 1633⭐ / forks=269 / 90d commits=0 / pushed 632d ago · stale

分数:3 - Foundation 理由:在 VLA / generalist robot policy 方向上符合 Foundation 档——(1) Strengths #1 说明的”完全开源 code + checkpoint + data loader + training pipeline”地位确实使 Octo 成为 OpenVLA 等后续工作的事实基础设施,是 related work 必引节点;(2) 块状 attention + readout token + diffusion head 的组合被后续 VLA 广泛借鉴(见关联工作”后续/影响”),不是一个被取代的 incremental SOTA。相比 Frontier (2),它不是”正在被比较的当前 SOTA”而是”已成奠基”;相比 Archived (1),其开源工程与 Appendix E 的负面结果清单至今仍被直接复用。