080|Octo:可适配的通用机器人策略
原论文:Octo: An Open-Source Generalist Robot Policy,Octo Model Team,2024。论文。
先接住前作的问题
Open X说明多机器人数据可以共享,但统一容器并不让固定输入输出网络适配新传感器和动作维度。Octo把编码器、主干与动作头拆开,研究下游接口改变时怎样复用内部计算。
五个前置概念
五个前置概念:行为克隆拟合示范动作;条件扩散从噪声恢复条件下的动作样本;注意力掩码规定信息允许流向;动作分块预测连续未来动作;接口适配把新传感器和执行器的物理语义接到已有模型。
一、问题设定:传感器和动作维度改变时怎样复用通用策略
机器人实验室换一只机械臂,常常连输入和输出维度都会改变:原来只有外部相机,现在多了腕部相机;原来预测末端增量,现在要预测两个手臂的关节位置。如果模型只能接受固定格式,“通用”便只剩下在同一接口中识别更多物体。
这是离线模仿学习。训练样本包含图像历史、语言或目标图像以及专家动作;没有价值函数、环境模型或在线奖励优化。因此,动作生成中的“扩散步”不是机器人与环境交互的一步。
预训练主要采用末端增量控制数据,下游可以重新定义动作头。任务目标由语言或图像提供;训练标签是示范动作,部署成功则由具体任务判据衡量。动作预测误差低,不自动意味着长时序任务成功。
问题有三个层次:跨数据集共享控制知识、缺失模态仍能训练、换接口时保留已有参数。把所有图像简单拼接只能处理固定相机数量;把所有动作强行投到相同维度,则可能混淆关节位置和末端位移的物理意义。
二、以模块token接口连接共享主干与扩散头
Octo 把任务、观测和动作接口拆成模块,用大量机器人示范预训练共享 Transformer,再通过新输入编码器和输出头适配下游平台。它的动作生成器使用扩散模型,既能表示多种可行行动,又保留连续动作的精度。
最重要的结果不是“任何机器人开箱即用”,而是少量目标示范可以把预训练模型适配到新传感器、动作空间和双臂平台。开箱即用实验主要使用预训练中出现过的机器人与任务类型,新平台实验则需要微调。
1. 任务和观测变成 token
语言由冻结的 T5 编码,图像经浅层卷积和 patch 化。任务 token、各时间步观测 token 以及读出 token 被送入 Transformer。
关键不是所有 token 彼此都看见,而是分块注意力:观测只读取当前与过去信息和任务;缺失模态被屏蔽;读出 token 可以读取观测,但不反过来改变观测 token 的表示。这样新增动作头时,原有主干的输入语义不必被重定义。
用教学记号表示:
是注意力掩码, 是动作块。新增传感器仍需要编码与训练;模块化不意味着新来的力传感器读数会自动有意义。
2. 主干只运行一次,扩散头运行多次
给定 后,扩散头从噪声逐步恢复动作块。下面用标准噪声预测形式解释去噪训练:
是噪声级别, 是采样噪声, 控制动作信息保留量。这是教学形式,部署调度应按模型配置实现。若把每次去噪都重新运行完整图像主干,会引入并非架构必需的计算开销。
普通均方误差回归容易把两种动作求平均。扩散头则学习条件分布中的多个区域。不过,多模态建模只是机制解释;是否更成功仍需机器人闭环实验验证。
3. 图像目标帮助使用无语言数据
训练时从轨迹未来抽取目标图像,并在语言和图像条件之间进行遮蔽。它让没有语言注释的示范仍然参与训练,而不是凭空生成动作监督。
目标图像还提供了语言没有表达的空间细节。“放到盘子里”未指定盘内位置,目标图像可能已经显示了目标姿态。因此两类条件的成功率差异,不应全部归因于语言理解差。
4. 数据混合也是方法的一部分
预训练选取具有图像及合适动作接口的数据,并调整不同来源的采样权重。夹爪语义也要统一:开合状态与“本步是否改变开合”的标签并不等价。相同数值若代表相反物理含义,更多数据反而会制造冲突。
附录对数据打乱的讨论很有价值。连续取一条长轨迹的许多相邻帧,会让一个 minibatch 的有效多样性很低;帧级交错和更大的缓冲区改变了模型实际看到的数据分布。
5. 下游微调的流程
“保留预训练权重”指初始化时无需丢弃主干,不等于训练时始终冻结主干。论文使用全策略微调,并比较了冻结部分参数的方案。
缺失模态与数值为零的模态必须分开。教学设一个真实零值力读数表示“无接触”,另一个样本根本没有力传感器;若二者都作为有效零token输入,模型会把“不知道”误学成“确定无接触”。显式掩码给出了第三种语义:该通道不参与本次注意力。
读出token只读不写的结构也有价值:新增一个输出头,不会仅因多放了一个查询就改变原观察token的前向表示。但微调共享参数仍会改变表示,所以这种结构隔离不是灾难性遗忘的保证。原文的模块接口与全策略微调需一起读,不能把“保留权重”误写为“冻结主干”。原文§III-A及微调
教学例子与前置概念
自构例子,未运行:机械臂可以从杯子左侧或右侧绕过去。示范两种路线各半,MSE 在某些观测下可能预测朝杯子中心的平均动作。扩散策略可以采样某一侧路线,但如果每次重新规划都换侧,仍会犹豫。比较动作块长度及执行长度,记录碰撞、成功率与反向转向次数,才能检验多模态分布是否变成连贯行动。
三、替换输入编码器和动作头后微调共享主干
新增传感器先要映射到正确token接口,新动作头也要接收目标身体监督。扩散头迭代可复用主干特征,不需要每次重新运行整套图像Transformer。
预训练:
从加权数据混合中取图像历史、任务和动作块
屏蔽缺失传感器,随机选择语言或未来图像作为条件
Transformer 生成动作读出表示
对动作加噪,训练扩散头与共享策略参数
适配新机器人:
保留主干,添加所需传感器编码器或新维度动作头
用目标平台示范微调整个策略
部署:
编码当前观测一次,在小动作头内迭代去噪
执行动作块的前一部分,重新观察并生成下一块
四、分开预训练混合与下游适配预算
原图怎么读: 图4,原论文图注与图像。“开箱即用”评估的平台与环境来自预训练数据范围。读零样本结果时先锁定这一边界,再与需要更换观测/动作头的下游微调结果区分。
原文标注 CC BY 4.0。本页摘图仅保留图形区域并作栅格化;有面板重排的图另行注明,作者与原文入口见各图注。

| 项目 | 原文设置 | 检验的问题 |
|---|---|---|
| 预训练来源 | 25 个 Open X 数据集,约 80 万轨迹 | 广泛控制经验能否迁移 |
| 模型规模 | Small 27M、Base 93M;语言编码器另有参数 | 主策略规模与表现的关系 |
| 预训练预算 | Base:300k 更新、batch 2048,TPU v4-128 约 14 小时 | 上游成本 |
| 下游微调 | 约百条目标示范,50k 更新,A5000 约 5 小时 | 消费级训练资源下能否适配 |
| 零样本组 | WidowX、UR5、RT-1 Robot 对应任务 | 已有平台上的新初始条件 |
| 接口变化组 | 力矩输入、关节动作、双臂动作等 | 新接口适配能力 |
| 比较方法 | RT-X、从零训练、VC-1 初始化等 | 开箱表现和初始化价值 |
| 评价数量 | 多项任务 20 次;双臂计数存在正文附录差异 | 小样本成功率的统计边界 |
预训练模型与从零训练模型的总数据和总算力不同。这里测的是“利用现成基础模型是否有帮助”,不是严格等总预算下哪一种算法更高效。VC-1 对照还使用不同动作解码与损失,因此差异不能全部解释为机器人预训练优于视觉预训练。
五组证据怎么读
表I:微调初始化。 Octo 六个设置平均约 72%,从零训练约 20%。按表中舍入均值相减是约 52 个百分点;若计算相对提升则是约 260%,二者不是同一个数。表中精确插入、关节控制及双臂操作共同支持接口适配价值,却不能推出未提供目标示范时也有效。
表II 与表VI:动作头和数据混合。 WidowX 的聚合结果中,扩散方案约 83%,MSE 约 35%,离散方案约 18%。这是特定训练与四任务评价下的结果。表VI 也显示 ResNet 方案在某个目标图像任务上更好,因此不能改写为 Transformer 在每个任务都占优。
表VII:泛化边界。 新物体平均 80%,新环境 40%,新技能 5%。这组对照尤其重要:换物体仍可能沿用旧抓放技能,而翻杯或精确插槽改变了动作要求。不同泛化轴有明显差异,不能用一个“泛化成功率”掩盖。
图4:开箱控制。 支持跨多个已覆盖平台的部署能力。RT-2-X 的部分数据来自先前结果,另有作者协助评价;Octo 与 RT-X 训练混合和规模也不相同。这是系统比较,不是只改变模型结构的受控实验。
图5:模型尺寸。 在所测任务上较大模型更好,但每平台任务和试验数有限。它提供规模收益的线索,尚不是覆盖机器人任务分布的稳定 scaling law。

原文还有一个需要保留的统计口径:表I 称每个下游设置 20 次,附录 F-C 的双臂设置写 10 次。解读该项 80% 时应说明这一不一致,不能擅自选一个计数补出置信区间。
五、新接口需要语义正确的监督和归一化
成本既包含上游示范采集,也包含数据清洗、物理接口统一和训练基础设施。下游“约五小时”是已有数据与模型后的训练成本,不包括机器人搭建和示范收集。
作者指出腕部相机、语言条件仍有短板,并联系到这两种模态在预训练中的覆盖比例。这是合理解释,但要证明因果关系,还需在相同总量下专门控制模态覆盖,而不是仅观察数据频率和性能同时偏低。
我的分析是,模块化更像允许模型继续学习的插座,而非通用控制知识的保证。新增力输入是否有用,取决于示范是否包含足够接触变化;新增 14 维动作头是否协调双臂,取决于目标数据是否展示了协同关系。
追问:新增相机后性能下降,怎样区分接口接错与负迁移?
参考答案:先核对时间戳、视角语义、图像归一化和掩码,再用冻结旧输入的对照定位新增分支影响。若新相机与动作不同步,下降不是共享表征本身的证据。随后才比较适配数据量与参数更新范围,并保留旧接口成绩作为参照。
六、沿机制关系继续读
Octo组合Open X-Embodiment数据与Diffusion Policy式动作分布,重点改造可适配接口;与OpenVLA是平行通用策略路线,开放权重不意味着同样的数据、动作头和推理预算。
七、自测三题与参考答案
问题1:为什么可以新增动作头,却不能直接把旧动作值当新机器人的关节角?
答案:参数接口的可扩展性与物理语义不同。末端位移和关节角不是同一变量;新增头要通过目标示范学习映射。直接重新解释旧值会破坏单位、坐标和运动学关系。
问题2:扩散需要多次迭代,为什么不意味着图像 Transformer 也运行同样多次?
答案:图像和任务先编码成固定条件表示,去噪循环只在较小的动作头内使用这个表示。两部分计算可以分离,这也是动作分布表达力与推理成本之间的重要设计。
问题3:72% 对 20% 应怎样描述,才能避免夸大?
答案:按舍入均值是约 52 个百分点,或相对基线约提高 260%。更重要的是说明这是若干下游微调设置的平均,且预训练方使用了大量上游数据;它不表示每个机器人都提高相同比例,更不是零样本新技能的结果。