具身智能论文学习8:Octo: An Open-Source Generalist Robot Policy

📅 2026/8/16 22:24:33
具身智能论文学习8:Octo: An Open-Source Generalist Robot Policy
第一部分基本收录情况项目内容论文全名Octo: An Open-Source Generalist Robot Policy中文译名《Octo一种开源通用机器人策略》正式会议Robotics: Science and Systems XX会议简称RSS 2024会议时间2024年7月15日至19日会议地点荷兰代尔夫特正式论文编号RSS 2024Paper 090arXiv编号arXiv:2405.12213上传版本arXiv v22024年5月26日17页作者团队Octo Model Team主要机构UC Berkeley 主导联合 Stanford、CMU、Google DeepMind 的 Octo Model Team论文类型通用机器人策略、模仿学习、跨具身预训练预训练数据Open X-Embodiment中的约80万条机器人轨迹数据集数量25个子数据集模型规模Octo-Small 27MOcto-Base 93M实验平台9种真实机器人设置、4个机构动作生成条件扩散动作头、连续动作块任务条件自然语言指令或目标图像是否开源模型权重、训练与微调代码、数据加载工具均开放是否严格VLA宽泛意义上可以算但不是VLM/LLM中心型VLA第二部分解决的问题Open X-Embodiment→多机器人、大规模数据Diffusion Policy→连续动作序列与扩散动作生成Octo正好把前两条路线接起来Open X-Embodiment多机器人数据Transformer扩散动作头Octo通用机器人策略​换句话说Diffusion Policy主要是一个任务的数据→一个任务专用的扩散策略而Octo进一步研究多个机器人、多个任务的数据→一个能够继续适配的通用策略Octo官方项目将其描述为一种Transformer-based diffusion policy即基于Transformer的扩散机器人策略。第三部分核心目标Octo要实现的三种灵活性两种实现方式1灵活的任务定义告诉机器人要做什么任务可以由两种方式指定①自然语言指令例如Put the knife on the plate.②目标图像即给模型一张希望最终达到的场景图像。2灵活的观测输入告诉机器人现在是什么情况Octo可以接收下面这几种作为观测输入第三人称RGB图像腕部RGB图像图像历史机器人本体信息下游新加入的力/力矩等传感器。3灵活的动作空间Octo 预训练好以后可以通过微调适配新的机器人动作表示​它可以在微调中适配末端执行器增量控制关节位置控制单臂动作双臂14维动作。4两种使用模式①直接使用在训练数据中已有的机器人和兼容动作接口上无需额外训练直接控制。②下游微调对于新机器人、新传感器或新动作空间用约100条目标域示范进行微调。论文将这两种能力分别称为 Out-of-the-box control和 Efficient finetuning第四部分Octo核心内容1整体框架Octo 的整体策略是端到端从任务/视觉观测生成机器人动作的因此功能上属于 VLA 范畴Octo不是直接让Transformer生成离散动作token而是先让Transformer理解当前任务和观测再将其结果交给一个小型扩散动作头生成连续动作序列左上角用语言指令举例说明 Task Token 怎么产生左下角用当前 RGB 观测举例说明 Observation Token 怎么产生绿色 Task任务是什么比如语言指令或 Goal Image。通常作为整个序列的任务条件。蓝色 Observation每个时刻机器人当前看到的观测比如 RGB 图像、机器人状态等。紫色 Readout放在某个时刻的 Observation 后面把“任务 到目前为止的观测”汇总起来。Action Head →拿 Readout 的表示去生成机器人动作实际上 Octo 的 Action Head输出转化为机器人动作 是 Diffusion Action Head得到一个动作整体上会生成一个段动作块Action Chunk输出序列。任务观测→ 分词器 Tokenizer→ Octo Transformer→ Readout读出/汇总表示→ Diffusion Action Head → 动作块自然语言指令目标图像​最近若干时刻的观测​语言、目标图像和观测对应的tokenOcto Transformer​Readout Token产生的动作条件表示里面汇总总结了任务信息 当前观测信息从高斯噪声开始进行多步去噪真正生成连续动作块2输入如何转换为Token①语言指令语言指令先经过文本Tokenizer再输入预训练的T5-base 约有111M参数最终为每条指令产生16个语言embedding token。Put the knife on the plate.会被转换成论文实验发现冻结T5-base的效果最好换成更大的T5或微调其最后几层都没有带来明显提升。②第三人称图像图像编码器Octo 不采用大型 ResNet 作为独立视觉骨干而使用浅层卷积网络shallow convolution stack对 RGB 图像进行初步编码再划分为 16×16 patches形成视觉 tokens。第三人称图像→浅层卷积网络→Patch→Visual Tokens​指的是摄像头装在桌子旁、墙上、支架上能看到机械臂、桌面、物体等整体场景第三人称图像经过数据增强后缩放为256×256再通过浅层卷积网络并切分为16×16 的patch得到16×16256个视觉token。③腕部图像图像编码器Octo 不采用大型 ResNet 作为独立视觉骨干而使用浅层卷积网络shallow convolution stack对 RGB 图像进行初步编码再划分为 16×16 patches形成视觉 tokens。腕部图像→浅层卷积网络→Patch→Visual Tokens​摄像头装在机械臂手腕/夹爪附近看到的是机器人末端附近的局部画面腕部图像缩放为128×128 同样使用 16×16 patch因此得到 8×864 个视觉token。④目标图像图像编码器Octo 不采用大型 ResNet 作为独立视觉骨干而使用浅层卷积网络shallow convolution stack对 RGB 图像进行初步编码再划分为 16×16 patches形成视觉 tokens。Goal Image→浅层卷积网络→Patch→Visual Tokens目标图像与普通观测图像使用相似的视觉Tokenizer但被标记为任务条件而不是当前环境观测。所有token还会加入可学习的位置embedding以便Transformer区分这是任务token还是观测token来自哪个摄像头属于哪个真实时间步。3Octo Transformer与分块注意力Octo不是简单地把所有token完全混在一起而是使用Block-wise Masked Attention分块掩码注意力。假设输入序列为其中​语言或目标图像等任务token​第个时刻的观测token第个时刻的Readout Token。①观测token的注意力规则第个时刻的观测token只能看到以及也就是可以看到任务条件、当前观测和历史观测但不能看到未来观测。这是因果结构避免训练时泄露未来信息。②缺失模态直接屏蔽有些数据集没有语言标注腕部相机第二个摄像头。Octo不会要求每个数据集拥有完全相同的输入而是把不存在的token位置屏蔽。因此同一个Transformer可以处理不同数据集的不同传感器组合。③Readout Token读出/汇总表示Octo在每个观测块后加入一个可学习的Readout Token它类似BERT中的[CLS]token。Readout Token可以读取前面的任务和观测信息但普通观测token不会反过来关注它。因此它像一个“只读汇总器”把当前时刻之前的信息压缩成然后交给动作头。所以Readout Token不直接表示动作而是动作生成所需的条件表示​。4条件扩散动作头①Transformer先生成条件表示其中包含当前任务当前与历史图像场景和物体信息机器人当前应执行动作的上下文。②从随机动作噪声开始比如 Octo 一次要生成 4 个未来动作Diffusion Action Head 一开始生成的是一个同样形状的随机噪声动作块其中是一段完全随机的动作序列即。③多次条件去噪然后每一次 diffusion step 都对整个动作块一起去噪当前带噪动作块Transformer产生的任务与观测条件当前扩散步骤​小型去噪网络噪声调度参数。反复执行最终就是连续动作块等同于整段未来动作一起越来越干净。Octo的扩散动作头是一个三层MLP隐藏维度为256包含残差连接和LayerNorm并使用20个扩散步骤。④与原始Diffusion Policy的关系Octo沿用了Diffusion Policy的基本思想但做了一个非常重要的计算设计大型Transformer只运行一次重复去噪只发生在小型动作头中​原始Diffusion Policy通常是视觉编码器大型扩散策略网络Octo则是通用Transformer只编码一次小型扩散头重复去噪因此它把跨机器人通用表示和连续扩散控制进行了分工。5动作块Action Chunking与闭环控制Octo不是只预测当前一个动作而是预测即未来多步动作块。Action Chunking有两个作用①第一整段动作共同生成可以提高时间一致性减少机械臂逐步预测时的抖动。②第二多步预测能让策略形成较完整的局部动作意图例如靠近→下降→抓取→抬起但机器人不会始终开环执行完整动作块而是采用滚动时域控制预测动作块→执行前若干步→重新观察→重新预测论文没有把所有任务固定为同一动作块长度而是允许根据下游控制频率调整。例如双臂ALOHA任务中训练时预测64步动作推理时执行前12步后重新规划。6训练数据与跨机器人数据统一Open X-Embodiment当时约包含150万条机器人episodeOcto从中筛选出80万条episode来自25个子数据集。①数据筛选作者删除了没有图像输入的数据不使用末端增量动作的数据图像分辨率过低的数据任务过于重复的数据过度小众且不利于通用训练的数据。因此Octo的主预训练动作空间仍以Delta End-Effector Control 为主并没有在预训练时原生统一所有关节控制形式。②数据采样权重权重较高的数据集包括数据集训练采样权重Fractal17.0%Kuka17.0%Bridge17.0%BC-Z9.1%Stanford Hydra6.0%Language Table5.9%这些百分比是每个训练batch中的平均采样权重。不是原始80万条轨迹的简单数量占比。作者会提高任务和场景更丰富的数据集权重并降低重复性较强的大数据集权重。图3展示了Octo预训练时25个子数据集在每个训练batch中的平均采样权重。占比最大的三部分是Fractal、Kuka和Bridge三者各约占17%其后为BC-Z约9.1%、Stanford Hydra约6.0%和Language Table约5.9%其余数据集以较小比例共同提供不同机器人、场景和操作任务。图中的扇形面积不是80万条原始轨迹的严格数量占比而是训练采样概率作者首先根据数据集规模设置基础权重再对任务和环境更加多样的数据集进行上调对重复性过强的大数据集进行下调以避免少数数据集主导训练。因此Figure 3体现的核心设计是通过人工筛选和加权在“数据量”与“行为多样性”之间取得平衡而不是把Open X-Embodiment中的全部数据等比例混合。③缺失摄像头的处理某数据集没有腕部相机时使用零填充占位再通过注意力掩码避免模型使用不存在的内容。④夹爪动作统一作者将不同数据集的夹爪动作统一为1夹爪打开 0夹爪闭合最终选择绝对夹爪状态而不是只在开关变化时记录动作的相对表示。7预训练配置与模型规模Octo提供两个主要版本。模型层数隐藏维度MLP维度注意力头参数量Octo-Small123841536627MOcto-Base1276830721293M另外还有消融实验使用的Octo-Tiny10M主模型使用最近两帧观测也就是当前帧加一帧历史。作者发现从一帧增加到两帧能明显提高性能但继续增加历史长度的收益有限主要训练参数为参数设置OptimizerAdamW学习率3×10−4Warmup2000步学习率调度逆平方根衰减Weight Decay0.1梯度裁剪1.0Batch Size2048Octo-Base训练300k步在TPU v4-128上约用14小时。论文公开了27M和93M模型权重JAX微调代码完整预训练流程Open X-Embodiment数据加载器JAX和PyTorch兼容的数据工具。8Octo如何适配新输入与新动作空间①新增观测输入例如新机器人增加力力矩传感器可以加入新的轻量编码器新的输入位置embedding新的token块。原有Transformer结构不需要推倒重建。②新增动作空间假设预训练输出是7维末端动作但新机器人需要14维双臂关节动作可以重新初始化一个新的扩散动作头使其输出新动作维数。③结构可扩展不等于只训练新模块这里要注意Figure 2表示加入新输入或动作头时不需要重新初始化原有Transformer参数。但实际微调时作者发现冻结部分参数效果不如全量更新因此最终采用新增必要模块全模型微调​统一微调配置为约100条目标域示范训练50k步余弦学习率衰减线性warmup单张24GB A5000约5小时。第五部分实验效果1实验设计与对比方法图4汇总了Octo在4个机构、9种真实机器人设置上的评估并将其分为直接控制和下游微调两组。左侧三项为直接控制评估包括WidowX BridgeV2、UR5 Tabletop和RT-1 Robot这些机器人、RGB观测形式和末端增量动作接口均与预训练数据兼容因此模型无需额外目标域训练即可执行任务但仍需要适应新的物体位置、光照、背景和轻微相机变化。右侧六项为微调评估包括Berkeley Insertion、Stanford Coffee、CMU Baking、Berkeley Pick-Up、Berkeley Coke和Berkeley Bimanual分别覆盖精密插入、长时程操作、新关节动作空间、新机器人形态和双臂控制。Berkeley Insertion还加入了力力矩观测Berkeley Pick-Up和Berkeley Bimanual使用了新的关节位置动作空间。因此这组实验不是简单测试九个任务而是系统检验Octo能否在任务、传感器、动作空间和机器人形态发生变化时继续复用预训练知识。论文围绕三个问题展开实验Octo能否直接控制多种机器人Octo是否是有效的下游微调初始化哪些设计真正决定通用机器人策略的性能实验覆盖9种真实机器人设置 来自 4个机构①直接控制实验包括WidowX BridgeV2UR5 TabletopRT-1 Robot。这些机器人和接口在预训练数据中已经出现因此属于训练分布内机器人上的直接使用。但测试时仍改变物体位置光照背景干扰物相机轻微位置。②微调实验包括Berkeley Peg InsertionStanford CoffeeCMU BakingBerkeley Pick-UpBerkeley CokeBerkeley Bimanual。它们分别测试新力力矩输入精细长时程任务新动作空间新机器人形态单臂到双臂迁移。③对比方法直接控制对比RT-1-X35MRT-2-X55B。下游微调对比ResNetTransformer从头训练VC-1预训练视觉编码器Octo预训练权重微调。2直接控制实验结果Octo在WidowX、UR5和RT-1 Robot上直接执行语言条件任务。论文报告Octo平均成功率比RT-1-X高29个百分点​在有RT-2-X结果的WidowX和RT-1 Robot任务上Octo与55B参数的RT-2-X表现接近而Octo-Base只有93M参数。图5比较了RT-1-X、Octo-Base和RT-2-X在WidowX、UR5与RT-1 Robot三种真实机器人设置上的直接控制成功率。蓝色柱为35M参数的RT-1-X绿色柱为93M参数的Octo橙色柱为55B参数的RT-2-X。图中Octo在WidowX上的成功率约为0.5明显高于RT-1-X约0.2并与RT-2-X约0.5相近在UR5上Octo约为0.7高于RT-1-X约0.37在RT-1 Robot上Octo约为0.8高于RT-1-X约0.6并接近RT-2-X约0.85。论文综合三种机器人报告Octo比RT-1-X平均高29个百分点同时在有RT-2-X结果的WidowX和RT-1 Robot上表现相近。由于这些机器人和控制接口来自预训练分布这里的zero-shot或out-of-the-box应理解为无需目标域微调的直接使用而不是对完全未见机器人和新技能的零样本泛化。3更细的零样本泛化结果泛化类型平均成功率训练分布内任务85%新物体80%新环境40%新技能5%新技能测试包括把杯子翻倒10%把方块插入槽中0%。因此Octo擅长同一技能下换物体但不擅长机器人从未演示过的新操作技能4下游微调实验结果所有方法在约100条目标域示范上进行训练每个任务评估20次。方法插入咖啡烘焙拾取Coke双臂平均从头训练10%45%25%0%20%20%20%VC-15%0%30%0%10%50%15%Octo微调70%75%50%60%100%80%72%Octo平均达到72%从头训练的最佳平均值为20%因此Octo领先下一最佳基线72−2052个百分点这些实验分别证明Berkeley Insertion可以新增力力矩输入Berkeley Pick-Up可以从末端控制切换为关节位置控制Berkeley Coke可以适配预训练中未见的机器人Berkeley Bimanual可以从单臂预训练扩展到14维双臂动作。因此这一组实验比单纯的任务成功率更重要它证明了Octo的预训练表示可以跨输入接口、动作空间和机器人形态迁移​表1比较了三种初始化方法在六个下游机器人设置上的微调效果ResNet加Transformer从头训练、使用VC-1预训练视觉表示以及使用Octo预训练权重。每个目标域约提供100条示范各方法使用相同微调超参数并在每个任务上评估20次。Octo在Berkeley Insertion、Stanford Coffee、CMU Baking、Berkeley Pick-Up、Berkeley Coke和Berkeley Bimanual上分别达到70%、75%、50%、60%、100%和80%平均成功率为72%从头训练平均仅20%VC-1平均为15%。其中星号表示Berkeley Insertion加入了新的力力矩观测十字符号表示Berkeley Pick-Up和Berkeley Bimanual采用新的关节位置动作空间。该结果说明Octo带来的不是单纯更好的视觉特征而是可迁移的任务—观测—动作策略表示能够在少量目标域示范下适配新传感器、新控制接口以及预训练中未出现的机器人形态。5消融实验与关键设计结论表2在WidowX平台上比较了Octo的训练数据、动作预测目标和网络架构设计所有结果均为两项语言条件任务和两项目标图像条件任务共40次试验的平均成功率。完整Octo-Small达到83%当训练数据缩减为RT-X使用的11数据集混合时降至60%只使用Bridge单机器人数据时进一步降至43%说明数据集的跨机器人和跨任务多样性对通用策略性能至关重要。将扩散动作头替换为256-bin离散分类后成功率只有18%替换为普通连续MSE回归后为35%表明离散动作缺少精细连续控制能力而MSE容易在多种合理动作之间产生平均化和犹豫行为。将Octo的Transformer-first架构替换为ResNet-50加Transformer后达到70%虽然仍然较强但低于完整模型的83%。因此Octo的性能不是单一组件造成的而是广泛的数据混合、扩散连续动作建模和可规模化Transformer架构共同作用的结果。论文在WidowX上对Octo-Small进行消融。模型设置综合成功率完整Octo-Small83%RT-X的11数据集混合60%只用Bridge单机器人数据43%离散动作分类头18%连续MSE动作头35%ResNet-50Transformer70%①数据多样性重要43%→60%→83% 说明训练数据从单机器人扩展到11个数据集再扩展到25个数据集后性能持续提高。论文的结论不是只需要增加轨迹总数。而是机器人、任务、物体和场景的多样性同样重要​②扩散动作头重要MSE动作头只有35%。原因是它容易对多种正确动作取平均形成“犹豫型策略”移动很慢不敢旋转夹爪动作方向不明确。离散动作头只有18%。它虽然动作更果断但连续精度不足容易错过抓取位置。扩散动作头兼顾连续精度多模态动作分布③Transformer-first结构更适合规模化ResNet-50小Transformer达到70%低于完整Octo的83%。Octo把大部分参数和计算集中在Transformer中而视觉前端只使用浅层卷积。但这不是说ViT结构在所有数据规模下都优于ResNet。作者发现在只有约100条示范、从头训练时ResNet反而更容易训练。④模型规模Octo从10M→27M→93M 性能在UR5和WidowX任务上持续提高。更大的Octo-Base对初始场景变化更稳定更少过早尝试抓取视觉场景理解更可靠。图6研究了Octo模型规模对直接控制性能的影响。横轴为模型参数量纵轴为语言条件任务上的zero-shot成功率蓝线表示UR5绿线表示WidowX。Octo-Tiny约10M参数在两种机器人上的成功率接近0Octo-Small为27M参数在UR5和WidowX上分别约为0.30和0.20Octo-Base为93M参数两项成功率分别提高到约0.70和0.60。结果表明在相同训练数据和策略设计下增加Transformer容量能够显著改善场景识别、动作选择和对初始配置变化的鲁棒性。作者还观察到Octo-Base比Small更少出现过早抓取更能稳定判断物体和机械臂之间的空间关系。不过该图每个点只基于每种机器人一个语言任务、10次试验数据量较小因此它能够支持“本实验范围内性能随规模提高”的结论但不足以确定完整的机器人策略规模定律。第六部分Limitation → Next PaperOpenVLAOcto已实现多机器人预训练、开源、灵活输入输出和高效微调但其核心策略并不是建立在一个强大的 Internet-scale 预训练 VLM 上语言主要由预训练 T5 编码视觉由轻量 CNN 编码机器人策略主体仍主要依靠机器人数据学习。因此它在复杂视觉语义、语言 grounding 和开放世界泛化方面仍弱于基于大型 VLM 的 VLA。下一步自然是能否直接从一个强大的预训练 VLM 出发再用多机器人动作数据把它端到端微调成一个真正开放、可微调的 VLA→OpenVLA。