图 1:OpenVLA-OFT+ 在双臂 ALOHA 机器人上的运行展示。我们的优化微调(OFT)方案通过提升推理效率、模型质量以及输入输出灵活性,增强了微调后的 OpenVLA 策略。由此产生的 OpenVLA-OFT+ 策略能够在真实世界的双臂机器人上以高控制频率(25 Hz)执行各种灵巧的操控任务。“+”后缀表示集成了特征级线性调制(FiLM)[37],这在对准确理解语言至关重要的任务中,强化了语言的接地(语言基础/语义理解)能力。

问题一

请你先回答 OpenVLA 这篇:

  1. OpenVLA 想解决已有 VLA 工作的什么问题?为什么强调 “open-source”?
  2. OpenVLA 的模型架构由哪几个主要部分组成?Llama 2、SigLIP、DINOv 2 分别起什么作用?
  3. OpenVLA 是怎么把连续机器人动作变成 VLM 可以输出的 token 的?为什么要用 256 bins 和 q01/q 9?
  4. 和 π₀/π₀.₅ 相比,OpenVLA 的动作生成路线有什么本质不同?
    答:OpenVLA 主要解决之前 RT-2 等 VLAM 封闭不开源的问题。 OpenVLA 提供一个 7B 开源 VLA,使用 SigLIP+DINOv2 视觉编码器、projector 和 Llama 2 7B language backbone, 在 OXE 数据集上训练。
    SigLIP 提供语义视觉特征,DINOv2 提供空间/几何细节,Llama 2 负责自回归 action token 预测。

问题二:

请回答:

  1. OpenVLA 为什么用 Open X-Embodiment 的 970 k robot episodes?这种多机器人、多任务数据带来什么好处?
  2. 论文里为什么说 fused SigLIP + DINOv 2 vision encoder 有帮助?只用 SigLIP 会少什么?
  3. OpenVLA 为什么在语言 grounding、多物体任务上比从头训练的 Diffusion Policy 更有优势?
    答:OpenVLA 使用 Open X-Embodiment 是为了多机器人、多任务场景数据中学习跨越 embodiment 的通用视觉-语言-动作先验
    Fused SigLIP+DINOv2 结合了语义识别和空间几何定位能力;
    相比从头训练的 Diffusion Policy,OpenVLA 继承了大规模 VLM 的视觉-语义理解能力,因此在多物体、语言变化和泛化任务上更有优势,但在单一精细控制任务上 Diffusion Policy 仍可能很强。

问题三:

OpenVLA 的动作离散化

  • OpenVLA 为什么要把连续动作离散化成 token,而不是像 π₀ 一样用连续 action head?
  • 它为什么使用 q01/q99 做动作范围,而不是直接用动作的 min/max?
  • 把动作离散化成 256 bins 会带来什么好处和什么问题?
  • 如果动作维度是 7 维,OpenVLA 是一次输出一个 7 维 action token,还是每个维度分别输出 token?
    答:OpenVLA 为了复用 Llama 的逐个 token 预测的方式,把连续动作按维度离散化成 256 bins,并映射到词汇表的 action tokens。
    如果用 min/max,数据集动作中可能有异常值(非常大或非常小)。导致大部分正常动作都挤在很窄的 bin 区间里。
    q01/q99 是用第 1 百分位和第 99 百分位作为范围,忽略最极端的 2% 数据,让 256 个 bins 更集中覆盖常见动作区域。
    256 bins 好处:简单、可以直接接入 LLM词表,用分类损失训练;也方便各种机器人数据统一
    坏处:有量化误差,连续动作被压成 256 个 bin,精细控制会损失精度;另外自回归逐个输入,随着动作维度的增多,这种方式推理很慢
    不是一个 token 表示整个 7 维动作,而是每个维度一个 token。
OpenVLA对于不同动作维度的 机器人低层关节动作都转换 / 整理成末端执行器控制动作(7D action)
统一到共同的控制语义:末端位姿变化 + 夹爪

问题三:

OpenVLA 的局限,以及 OpenVLA-OFT 为什么出现

  1. OpenVLA 原始版本在真实机器人部署时,为什么推理速度会比较慢?
  2. 为什么“每个动作维度自回归输出 token”会限制高频控制?
  3. OpenVLA-OFT 做了哪些关键改动来解决这个问题?
  4. OpenVLA-OFT 还保留 OpenVLA 的哪些优势?
    答:
    OpenVLA 原版慢,是因为它用 Llama 自回归逐维生成离散 action tokens,一个 7D 动作需要 7 次顺序解码,action chunking 时延迟还会乘以 chunk 长度。OpenVLA-OFT 用 parallel decoding 一次预测所有动作维度,并结合 action chunking 一次输出未来 K 步动作;同时把离散 256-bin action token 改成连续动作 MLP head,用 L1 损失训练,从而提升速度和动作精度。它保留 OpenVLA 的 VLM backbone 和预训练语义能力,但替换了动作解码方式。
OpenVLA 将连续动作压成 256 bins(离散化),精细控制会损失动作精度
并且没有 action chunking,每次预测下一步,容易缺乏时间一致性
VLM输出的 action token 先还原成 bin id,再把 bin id 映射回连续动作值

问题四:

OpenVLA-OFT 的 Parallel Decoding

  1. 原版 OpenVLA 的自回归解码里,为什么第 2 个动作维度必须等第 1 个动作维度生成完?
  2. OpenVLA-OFT 的 parallel decoding 是怎么让所有动作维度一次生成的?
  3. 为什么 parallel decoding 可以自然支持 action chunking?
  4. Parallel decoding 相比自回归,会不会损失动作维度之间的依赖建模能力?你怎么回答这个 trade-off?
    答: parallel decoding 就是一次前向把所有动作维度和 未来多个动作 step 一起预测出来。
    OpenVLA-oft 的 parallel decoding 不是简单加一个 MLP,而是把自回归 action token 的因果 attention,变成了双向 attention。让所有动作位置在一次前向中同时预测
    对于 chunk size K 和动作维度 D ,模型放入 K×D 个 action queries,一次输出整个动作块。
    相比自回归,双向 attention 仍能建模动作维度和时间步之间的依赖。同时带来巨大推理速度提升和更好的 action chunking 能力。

问题五:

OpenVLA-OFT 的 Continuous Action + L 1 Regression

  1. OpenVLA-OFT 为什么要把离散 action token 改成连续 action head?
  2. L1 regression 相比 next-token cross entropy 的训练目标有什么不同?
  3. 为什么论文发现简单的 L1 regression 能比 diffusion/action token 更适合 OFT?
  4. L1 regression 有什么潜在局限?什么时候 diffusion/flow matching 可能更合适?
    答:连续 action head 是为了避免 token 离散化导致的量化误差(细小动作会被划分到最近的bin,精细操作损失精度)。
    L1 regression 是连续回归目标。直接最小化预测动作和真实动作的绝对误差。
    论文发现,在 VLA fine-tuning 场景下,简单 L1 即快又稳定,一次前向就能输出动作块,效果甚至优于更复杂的 diffusion。它的局限是对多模态动作分布建模较弱,容易预测平均动作;
    当一个状态下存在多种合理执行策略时,diffusion 或 flow matching 可能更合适。

问题六 :

OpenVLA-OFT 和 π₀ / π₀.₅ 的对比

  1. OpenVLA-OFT 的连续 action head + L1 regression,和 π₀/π₀.₅ 的 flow matching action expert,本质区别是什么?
  2. 为什么 π₀/π₀.₅ 的 flow matching 通常表达能力更强,但推理更慢?
  3. 为什么 OpenVLA-OFT 论文会说 L1 regression 已经足够强?
  4. 如果部署一个高频 ALOHA 双臂任务,你会选 OpenVLA-OFT 还是 π₀.₅?为什么?
    答:OpenVLA-OFT 使用连续 MLP action head 和 L 1 regression,直接回归 normalized continuous action,推理只需一次前向,天然适合 parallel decoding 和 action chunking。π₀/π₀.₅ 使用 flow matching action expert,学习从噪声到真实动作分布的向量场,表达能力更强,能更好建模多模态动作,但推理需要多步积分/去噪,延迟更高。对于高频 ALOHA 双臂任务,我更倾向 OpenVLA-OFT+,因为它能并行输出动作块,支持 14 D 关节动作和高控制频率;如果任务更强调复杂多模态策略和动作分布建模,π₀.₅ 也有优势。

问题七

OpenVLA-OFT+ 的 FiLM

  1. OpenVLA-OFT+ 为什么还要加 FiLM?它想解决什么问题?
  2. FiLM 是怎么把语言信息注入视觉 backbone 的?
  3. 为什么只用图像 token + 语言 token 拼接,有时语言 grounding 还不够?
  4. 在 ALOHA 任务里,去掉 FiLM 会发生什么?为什么?
    答:加 FiLM 是为了增强语言 grounding,尤其是在然而任务场景很像,但语言指令不同的 ALOHA 任务中。FiLM 用语言 embedding 生成 gamma 和 beta,告诉视觉 backbone 哪些视觉通道增强,哪些被压缩。使视觉 backbone 早期就根据指令增强任务相关性。
    相比简单拼接图像 token 和语言 token,FiLM 是更早、更强的语言条件化视觉编码;
    去掉 FiLM 后模型容易忽略指令,语言相关任务成功率会显著下降。

问题八

OpenVLA-OFT 的 Action Chunking

  1. 什么是 action chunking?它和单步 action prediction 有什么区别?
  2. OpenVLA 原版为什么不适合 action chunking?
  3. OpenVLA-OFT 为什么天然适合 action chunking?
  4. 如果 chunk size 太大,会有什么风险?
    答:Action chunking 是一次预测未来 K 步动作,而不是只预测下一步。它能让动作更平滑、更有时间一致性,并减少每步重新规划带来的抖动。原版 OpenVLA 因为自回归逐 token 生成,如果 chunk size 是 K、动作维度是 D,就需要顺序生成 K×D 个 action tokens,延迟太高。OpenVLA-OFT 通过 parallel decoding 和连续 action head,一次前向即可输出 K×D 个连续动作值,所以天然适合 action chunking。Chunk size 太大时,主要问题不是计算慢,而是开环执行太久,反馈频率降低,环境变化和执行误差无法及时纠正。

问题九

OpenVLA / OpenVLA-OFT 接入新机器人
假设你要把一个新机器人接入 OpenVLA-OFT:6 维单臂关节 + 1 维夹爪,有 1 个外部摄像头和 1 个腕部摄像头。

  1. 数据里你需要保存哪些信息?
  2. 如果机器人动作是 7D 关节空间动作,而不是 OpenVLA 预训练里的 7D 末端 delta pose,OFT 怎么适配?
  3. 需要做哪些归一化/反归一化?
  4. 你会微调哪些模块?为什么?
    答:接入新机器人时,我会先采集并整理 demonstration 数据,包括外部相机、腕部相机、语言指令、机器人 state、action、timestep 信息。
    然后明确 action space 是 joint delta、absolute joint,还是 end-effector delta pose。
    即使新机器人是 7D,如果它是关节空间动作,和 OpenVLA 预训练的 7D 末端动作语义也不同,所以不能直接复用原动作解释,而是在 OFT 中设置 continuous action head 输出目标机器人的 7 D action,并用目标数据微调。训练前需要对 state/action 做 per-dimension normalization;推理时再反归一化成真实机器人命令。
    微调时主要训练 LoRA、action head、state projector,必要时加 FiLM 增强语言 grounding,同时保留 VLM backbone 的预训练语义能力。

问题十

OpenVLA vs OpenVLA-OFT vs π₀.₅ 总结对比
你试着从这 5 个维度回答:

  1. 动作表示:离散 token / 连续回归 / flow matching?
  2. 动作生成方式:自回归 / 并行解码 / 多步去噪?
  3. 推理速度:谁最快,谁最慢,为什么?
  4. 动作精度与多模态能力:谁更强,代价是什么?
  5. 部署新机器人时,你会怎么选?
    答:OpenVLA 原版把连续动作离散成 action tokens,一个动作维度对应一个 token,用 Llama 自回归逐维生成,因此训练形式和 LLM 统一,但有量化误差和推理慢的问题。OpenVLA-OFT 保留 OpenVLA 的视觉语言 backbone,把动作输出改成 parallel decoding + continuous action head + L1 regression,一次前向输出动作块,速度最快,适合高频控制,但 L1 对多模态动作分布可能会平均化。π₀.₅ 使用 flow matching action expert,从噪声出发通过多步积分生成连续动作,表达能力和多模态建模更强,但推理需要多步,延迟更高。部署时,如果强调高频实时控制选 OpenVLA-OFT;如果强调复杂泛化和多模态动作生成,选 π₀.₅。

问题十一

OpenVLA 和 π₀.₅ 的“保护预训练知识”思路对比

  1. OpenVLA 把动作 token 放进 LLM 词表训练,会不会破坏语言能力?它是怎么缓解的?
  2. π₀/π₀.₅ 为什么更强调把动作生成和 VLM 语义能力隔离?
  3. OpenVLA-OFT 从离散 action token 改成 continuous action head 后,对保护 VLM 语义能力有什么好处?
  4. 如果面试官问“OpenVLA 这种直接让 LLM 输出动作 token,是不是不如 π₀ 的 action expert 设计合理?”你怎么回答?
    答:OpenVLA 直接让 LLM 输出 action token,优点是训练形式统一,可以复用 next-token prediction 和 LLM/VLM 工程帧;缺点是训练梯度会会回传到 LLM,影响 LLM 的预训练参数,影响它的语言理解能力。
    动作输出采用这种方式也有离散化误差和自回归延迟。
    它通过使用 LLM 词表中最少使用的 256 个 token、只在 action token 位置计算 loss,以及几何 LoRA/冻结部分参数来缓解遗忘。
    π₀/π₀.₅ 将采用了 VLM+action expert 的架构,让语义理解和动作预测解耦来保护 VLM 预训练语义。
    OpenVLA-OFT 则这种的保留 OpenVLA 的 LLM backbone,但加了一个 MLP 连续动作输出头,减少对 LLM token head 的依赖。

问题十二

OpenVLA / OpenVLA-OFT 的局限

  1. OpenVLA 原版有哪些主要局限?请从动作表示、推理速度、action chunking、动作精度回答。
  2. OpenVLA-OFT 解决了哪些局限?还有哪些没有解决?
  3. L1 regression 的单峰问题在真实机器人任务中可能怎么体现?
  4. 如果你要进一步改进 OpenVLA-OFT,你会怎么做?
    答:OpenVLA 的局限性是动作离散化带来量化误差,自回归逐维生成导致推理慢。
    OpenVLA -oft 用 parallel decoding、action chunking、continuous action head 和 L1 regression 解决速度和离散量化误差的问题,
    但是 L1 是单峰回归目标,面对同一状态下多种合理动作可能输出平均动作。它不能很好表达多模态动作分布。
    进一步改进可以引入 diffusion/flow matching 来建模多模态动作,同时结合闭环 chunk 执行,不要一次 chunk 全部开环执行到底,降低 chunk 太长导致的误差累积。FiLM 增强和更强的新机器人适配模块。

问题十三

假设你要在公司内部部署一个“桌面整理机器人”:

机器人:双臂 ALOHA 类平台
输入:一个外部相机 + 两个腕部相机 + 14D joint state
动作:14D absolute joint action
任务:根据语言指令整理桌面物品,比如“把红杯子放进抽屉,把勺子放进碗里”
要求:25Hz 控制,低延迟,对语言目标有较强 grounding

请你回答:

  1. 你会选 OpenVLA、OpenVLA-OFT、还是 π₀.₅?为什么?
  2. 数据采集和格式处理怎么做?
  3. 模型输入/输出怎么设计?
  4. 推理时 action chunk 怎么执行,chunk size 怎么选?
  5. 如何评估成功率和失败恢复能力?
    答:我会选择 OpenVLA-OFT。因为任务要求 25 Hz 低延迟控制,动作是 ALOHA 类 14 D absolute joint action,OpenVLA-OFT+ 支持 parallel decoding、action chunking 和 continuous action head,一次前向可以输出多步 14D 连续动作;同时 FiLM 能增强语言 grounding,适合"红杯子"勺子"这种目标选择任务;
    数据上,我会采集多视角 RGB、14 D joint state、14 D absolute joint action、语言指令、episode/timestep 和成功失败标注,并对 state/action 做 per-dimension normalization。模型输入是外部相机、左右腕相机、语言指令和 14D state,输出是 K 步 14 D normalized action chunk,部署时反归一化成关节目标。
    推理时 chunk size 可以从 8 到 25 调参。25 Hz 下 K=25 表示一次输出 1 秒动作,但如果场景变化快,我会采用 receding horizon,只执行前几步就重新观测和重规划。评估时看全任务成功率、子任务成功率、语言 grounding、碰撞/抖动/关节限位、端到端延迟,以及失败后能否重新抓取、重新定位或恢复执行。
Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐