OpenVLA:开源视觉-语言-动作模型(CoRL 2024 全文中文翻译与精读)
论文:OpenVLA: An Open-Source Vision-Language-Action Model
项目主页:https://openvla.github.io
论文地址:https://arxiv.org/abs/2406.09246
会议:CoRL 2024

图1:OpenVLA 概览。 OpenVLA 是一个包含 70 亿参数的开源视觉—语言—动作模型。它在 Open X-Embodiment 数据集的 97 万条机器人轨迹上训练,能够直接根据图像观测和自然语言指令预测机器人动作。本文以下内容以论文原始章节为顺序进行中文翻译;引用框中的“我的理解”是额外解释,不属于论文原文。
摘要(Abstract)
在互联网规模的视觉—语言数据和多样化机器人示教数据上预训练的大型策略,有可能改变我们教机器人学习新技能的方式:我们不必从零开始训练新行为,而是可以微调这类视觉—语言—动作(VLA)模型,从而获得具有鲁棒性和泛化能力的视觉运动控制策略。然而,VLA 在机器人领域的广泛采用一直面临两个挑战:1)现有 VLA 大多是闭源的,公众无法访问;2)以往工作没有探索如何高效地将 VLA 微调到新任务上,而这恰恰是推动其实际采用的关键环节。
为了解决这些问题,我们提出 OpenVLA:一个拥有 70 亿参数的开源 VLA,使用包含 97 万条真实世界机器人示教的多样化数据集进行训练。OpenVLA 基于 Llama 2 语言模型,并结合了融合 DINOv2 与 SigLIP 预训练特征的视觉编码器。得益于增加的数据多样性和新的模型组件,OpenVLA 在通用机器人操作任务上表现出很强的性能:在覆盖 29 个任务和多种机器人本体的评测中,其任务绝对成功率比闭源的 RT-2-X(550 亿参数)高 16.5%,而参数量仅为后者的约七分之一。
我们进一步表明,OpenVLA 可以有效地微调到新的设置;尤其是在包含多个物体的多任务环境中,它展现出很强的泛化能力和语言 grounding 能力,并且比从零开始训练的表达能力较强的模仿学习方法(例如 Diffusion Policy)高 20.4%。我们还研究了计算效率问题。作为另一项贡献,我们表明,借助现代低秩适配方法,可以在消费级 GPU 上微调 OpenVLA;借助量化,也可以高效地提供模型服务,而不会损害下游任务的成功率。
最后,我们发布模型检查点、微调笔记本以及 PyTorch 代码库。该代码库内置了在 Open X-Embodiment 数据集上大规模训练 VLA 的支持。
我的理解: 这篇工作的核心意义并不只是“又一个 VLA”。它第一次把 VLA 的模型权重、训练代码、微调流程和部署方法放在相对完整的开源体系中。对于个人实验室而言,OpenVLA 更像一个可修改的研究底座:我们可以在它之上替换动作解码器、改变数据混合方式、加入动作分块或扩散动作头,而不是只能通过闭源接口观察结果。
1 Introduction
学习得到的机器人操作策略的一个关键弱点,是无法泛化到训练数据之外:虽然针对单个技能或语言指令训练的现有策略,能够将行为外推到新的初始条件,例如物体位置或光照变化 [2, 3],但它们面对场景干扰物或新物体时缺乏鲁棒性 [4, 5],并且难以执行未见过的任务指令 [6, 7]。
然而,在机器人学之外,现有的视觉和语言基础模型(例如 CLIP [8]、SigLIP [9] 和 Llama 2 [10])具备这类泛化能力,甚至更强。这些能力源于互联网规模预训练数据所捕获的先验知识。虽然在机器人领域复现这种规模的预训练仍然是一个开放问题——即使最大的机器人操作数据集 [1, 11] 也只有 10 万到 100 万个样本——但这种数据规模的不平衡提示了一个机会:可以将现有的视觉和语言基础模型作为训练机器人策略的核心构件,使策略能够泛化到训练数据之外的新物体、场景和任务。
围绕这一目标,已有工作探索了将预训练语言模型和视觉—语言模型用于机器人表征学习 [12–14],以及将它们作为任务规划与执行模块系统中的组成部分 [15, 16]。最近,研究者开始直接学习用于控制的视觉—语言—动作模型 [VLA;1, 7, 17, 18]。VLA 直接体现了将预训练视觉和语言基础模型用于机器人学的思路:它们直接微调视觉条件语言模型(VLM),例如 PaLI [19, 20],使其生成机器人控制动作。
得益于建立在互联网规模数据上训练的强大基础模型之上,RT-2 [7] 等 VLA 展现出令人印象深刻的鲁棒性,并且能够泛化到新物体和新任务,为通用机器人策略树立了新的标准。然而,现有 VLA 广泛使用仍受到两个关键因素的阻碍:1)当前模型 [1, 7, 17, 18] 大多是闭源的,模型架构、训练流程和数据混合的可见性有限;2)现有工作没有提供将 VLA 部署和适配到新机器人、新环境及新任务的最佳实践,尤其没有充分考虑消费级 GPU 等普通硬件。
我们认为,为了给未来的研究和开发建立丰富的基础,机器人学需要类似开源语言模型生态的、支持有效微调和适配的开源通用 VLA。
为此,我们提出 OpenVLA,一个拥有 70 亿参数的开源 VLA,并为通用机器人操作策略建立新的最佳性能。OpenVLA 由一个预训练视觉条件语言模型骨干组成,该骨干能够捕获多个粒度层次的视觉特征;我们在 Open-X Embodiment [1] 数据集提供的 97 万条机器人操作轨迹上对其进行微调。该数据集覆盖范围广泛的机器人本体、任务和场景。
得益于更高的数据多样性和新的模型组件,OpenVLA 在 WidowX 和 Google Robot 两种机器人本体上的 29 个评测任务中,比此前最佳的 VLA——拥有 550 亿参数的 RT-2-X [1, 7]——高出 16.5 个百分点的绝对成功率。我们还研究了 VLA 的高效微调策略,这是以往工作尚未探索的新贡献。实验覆盖 7 个多样化的操作任务,行为范围从抓取放置物体到清洁桌面。
我们发现,微调后的 OpenVLA 策略明显优于微调后的预训练策略(例如 Octo [5])。与从零开始使用扩散策略进行模仿学习 [3] 相比,微调后的 OpenVLA 在需要将语言 grounding 到行为的多任务、多物体环境中取得了显著提升。
在上述结果的基础上,我们首次展示了利用低秩适配 [LoRA;26] 和模型量化 [27] 的计算高效微调方法的有效性。这些方法使 OpenVLA 能够在消费级 GPU 上进行适配,而无需大型服务器节点,同时不牺牲性能。作为最后一项贡献,我们将所有模型、部署和微调笔记本,以及用于大规模训练 VLA 的 OpenVLA 代码库开源,希望这些资源能够推动未来对 VLA 的探索和适配。
脚注 1: OpenVLA 使用了多个预训练模型组件:SigLIP [9] 和 DinoV2 [25] 视觉编码器,以及 Llama 2 [10] 语言模型骨干。三个模型的权重都是开放的,但它们的训练数据和代码并未开放。我们发布了训练数据、代码和模型权重,以便在这些组件之上复现 OpenVLA。
我的理解: Introduction 给出的逻辑非常清楚:机器人数据不可能短期内追上互联网图文数据规模,因此 VLA 的关键并不是“重新训练一个机器人基础模型”,而是利用已经获得语义和视觉泛化能力的 VLM,再补上动作输出能力。OpenVLA 的研究价值在于把这条路线变成公开、可复现、可适配的工程与算法方案。
2 Related Work
2.1 Visually-Conditioned Language Models
视觉条件语言模型(VLM)在互联网规模数据上训练,用于根据输入图像和语言提示生成自然语言;它们已经被用于从视觉问答 [28–31] 到目标定位 [32, 33] 等大量应用。推动近期 VLM 发展的关键进展之一,是将预训练视觉编码器 [8, 9, 25] 的特征与预训练语言模型 [10, 23, 34–36] 连接起来的模型架构。这些架构直接建立在计算机视觉和自然语言建模的进展之上,从而构造出强大的多模态模型。
早期工作探索了在视觉特征与语言特征之间进行交叉注意力的多种架构 [37–41];而新的开源 VLM [20, 42–44] 已逐渐收敛到更简单的“将图像块作为 token”方法:将预训练视觉 Transformer 的图像块特征视为 token,然后把它们投影到语言模型的输入空间中。这种简单性使得语言模型大规模训练的现有工具很容易被重新用于 VLM 训练。
我们的工作使用这些工具来扩展 VLA 训练规模,具体采用 Karamcheti 等人 [44] 的 VLM 作为预训练骨干。该模型使用多分辨率视觉特征进行训练,将 DINOv2 [25] 的低层空间信息与 SigLIP [9] 的高层语义信息融合,以帮助实现视觉泛化。
我的理解: “patch-as-token”使视觉和语言进入同一种序列建模接口。对机器人控制而言,DINOv2 与 SigLIP 的融合尤其重要:机器人不仅需要知道“这是什么物体”,还必须知道“物体在哪里、朝向如何、末端应该往哪里移动”。
2.2 Generalist Robot Policies
机器人学近期的一个趋势,是在大规模、多样化的机器人数据集 [1, 2, 6, 11, 45, 49–56] 上训练多任务“通用”机器人策略 [2, 6, 45–49]。这些数据集覆盖多种不同的机器人本体 [1, 5, 53, 57–66]。特别是,Octo [5] 训练了一个通用策略,可以开箱即用地控制多种机器人,并且能够灵活地微调到新的机器人设置。
这类方法与 OpenVLA 的一个关键区别在于模型架构。Octo 等以往工作通常将语言嵌入或视觉编码器等预训练组件,与从零初始化的额外模型组件组合起来 [2, 5, 6],并在策略训练过程中学习将这些组件“拼接”起来。不同于这些工作,OpenVLA 采用了更端到端的方法:直接微调 VLM 来生成机器人动作,并将动作视为语言模型词表中的 token。我们的实验评估表明,这种简单而可扩展的流程显著提升了性能和泛化能力,超过了以往的通用机器人策略。
2.3 Vision-Language-Action Models
大量工作探索了将 VLM 用于机器人学,例如用于视觉状态表征 [12, 13]、目标检测 [67]、高层规划 [16] 以及提供反馈信号 [68–71]。另一些工作将 VLM 直接集成到端到端视觉运动操作策略中 [14, 15],但在策略架构中加入了大量结构,或者要求使用经过标定的相机,从而限制了适用性。
近期,若干工作探索了与我们类似的方案,直接微调大型预训练 VLM 来预测机器人动作 [1, 7, 17, 18, 72–74]。这类模型通常被称为视觉—语言—动作模型(VLA),因为它们将机器人控制动作直接融合进 VLM 骨干。这样做有三个主要优点:
- 在大规模互联网视觉—语言数据上对预训练的视觉组件和语言组件进行对齐。
- 使用并非为机器人控制定制的通用架构,因此可以利用现代 VLM 训练背后的可扩展基础设施 [75–77],只需极少的代码修改,就能将策略扩展到十亿参数规模。
- 为机器人学直接利用 VLM 的快速进步提供路径。
现有 VLA 工作要么集中于单机器人或仿真设置中的训练和评估 [72–74, 78],因而缺乏通用性;要么是闭源的,不支持高效微调到新的机器人设置 [1, 7, 17, 18]。
与本文最密切相关的是 RT-2-X [1]。该工作在 Open X-Embodiment 数据集上训练了一个拥有 550 亿参数的 VLA 策略,并展示了当时最先进的通用机器人操作策略性能。然而,我们的工作与 RT-2-X 存在以下重要差异:
- 我们将强大的开源 VLM 骨干与更丰富的机器人预训练数据集相结合,使 OpenVLA 在实验中超过 RT-2-X,同时模型规模小一个数量级。
- 我们系统研究了将 OpenVLA 模型微调到新的目标设置,而 RT-2-X 没有研究微调场景。
- 我们首次展示了现代参数高效微调方法和量化方法对 VLA 的有效性。
- OpenVLA 是第一个开源的通用 VLA,因此能够支持未来对 VLA 训练、数据混合、训练目标和推理方法的研究。
3 The OpenVLA Model
OpenVLA 是一个 70 亿参数的 VLA,在 Open X-Embodiment 的 97 万条机器人示教上训练。本节依次介绍现代 VLM 骨干、训练流程、训练数据、关键设计决策,以及训练与推理基础设施。
下面我们详细介绍开发 OpenVLA 所采用的方法,并总结从中获得的关键经验。具体而言,我们首先简要介绍构成 OpenVLA 骨干的现代 VLM(第 3.1 节);然后介绍基本训练方案和数据集(第 3.2 节和第 3.3 节);接着讨论关键设计决策(第 3.4 节);最后给出训练和推理所使用基础设施的细节(第 3.5 节)。
图2:OpenVLA 模型结构。 输入是一张图像观测和一条语言指令,输出为 7 维机器人控制动作。结构包含三个关键部分:融合 DINOv2 与 SigLIP 特征的视觉编码器、把视觉特征映射到语言嵌入空间的投影器,以及 Llama 2 7B 语言模型骨干。动作反分词器把动作 token 还原为连续控制量。
3.1 Preliminaries: Vision-Language Models
大多数近期 VLM [20, 42–44] 的架构包含三个主要部分(见图 2):
- 视觉编码器,将图像输入映射为若干“图像块嵌入”。
- 投影器,接收视觉编码器的输出嵌入,并将其映射到语言模型的输入空间。
- 大型语言模型(LLM)骨干。
在 VLM 训练期间,模型在从各种互联网来源整理的成对或交错视觉—语言数据上,以端到端方式使用下一个文本 token 预测目标进行训练。
本工作建立在 Prismatic-7B VLM [44] 之上。Prismatic 遵循上述标准架构,由一个拥有 6 亿参数的视觉编码器、一个小型的两层 MLP 投影器,以及一个拥有 70 亿参数的 Llama 2 语言模型骨干 [10] 组成。
值得注意的是,Prismatic 使用了由两部分组成的视觉编码器,分别是预训练的 SigLIP [79] 和 DinoV2 [25] 模型。输入图像块分别经过两个编码器,随后将得到的特征向量沿通道维拼接。与更常见的 CLIP [80] 或仅使用 SigLIP 的视觉编码器相比,已有研究表明,加入 DinoV2 特征有助于改善空间推理能力 [44],这对于机器人控制尤其有帮助。
SigLIP、DinoV2 和 Llama 2 都没有公开其训练数据的详细信息;这些数据很可能分别包含数万亿个来源于互联网的图文、纯图像和纯文本 token。Prismatic VLM 在这些组件之上,使用 LLaVA 1.5 数据混合进行微调 [43]。该数据混合来自开源数据集 [29, 42, 81–83],总计约 100 万个图文和纯文本数据样本。
3.2 OpenVLA Training Procedure
训练 OpenVLA 时,作者对预训练 Prismatic-7B VLM 进行微调,使其预测机器人动作。动作预测被表述为一个“视觉—语言”任务:输入观测图像和自然语言任务指令,输出一串机器人动作。
为了使语言模型骨干能够预测动作,作者把连续动作映射为语言模型 tokenizer 所使用的离散 token。每个动作维度分别离散为 256 个区间。
对于每个动作维度,我们使用训练数据中第 1 个分位数到第 99 个分位数之间的区间,并将其均匀划分为 256 个 bin。
与 Brohan 等人 [7] 使用的最小值—最大值边界相比,使用分位数可以忽略数据中的离群动作。否则,离群值可能大幅扩大离散化区间,降低动作离散化的有效粒度。
经过这种离散化后,对于一个 N 维机器人动作,我们得到 N 个属于 的离散整数。遗憾的是,OpenVLA 语言骨干使用的 Llama 分词器 [10] 只为微调时新引入的 token 预留了 100 个“特殊 token”,不足以容纳动作离散化所需的 256 个 token。
因此,我们再次选择简单方案,遵循 Brohan 等人 [7] 的做法,直接将 Llama 分词器词表中使用频率最低的 256 个 token(对应词表末尾的 256 个 token)覆盖为动作 token。动作被处理成 token 序列后,OpenVLA 使用标准的下一个 token 预测目标进行训练,并且只在预测动作 token 上计算交叉熵损失。第 3.4 节将讨论实现该训练流程时的关键设计决策。下面介绍用于训练 OpenVLA 的机器人数据集。
当动作被转换为 token 序列后,OpenVLA 使用标准 next-token prediction 目标训练,但交叉熵损失只在预测动作 token 上计算:
其中:
:连续机器人动作的第
个维度;
与
:该动作维度在训练数据中的第 1% 与第 99% 分位点;
:量化后得到的离散动作编号,范围为 0–255;
:当前图像观测;
:自然语言任务指令;
:当前动作 token 之前已经生成的动作 token;
:参数为
的 OpenVLA 自回归概率模型。
我的理解(公式之间的逻辑): 第一条公式完成“连续动作 → 256 个离散格子”的量化;第二条公式再把这些格子当作语言 token,通过交叉熵训练模型逐个预测。也就是说,第一式定义动作的表示方式,第二式定义如何学习这种表示。分位数分箱解决离群值把动作区间拉得过宽的问题;覆盖低频词表 token 则避免修改 tokenizer 与输出层结构。
为什么不直接回归 7 个连续数? 直接回归更自然,但无法完全复用 LLM 的 next-token prediction 训练栈。OpenVLA 选择离散 token,是用一定量化误差换取成熟的大模型训练基础设施。它的局限是:离散化不天然表达连续动作的多模态分布,也缺少动作序列的时间平滑;这正是扩散、流匹配或动作分块解码头可以继续改进的地方。
3.3 Training Data
构建 OpenVLA 训练数据集的目标,是覆盖多样化的机器人本体、场景和任务。这样,最终模型就能够开箱即用地控制多种机器人,并且能够高效地微调到新的机器人设置。
我们以 Open X-Embodiment 数据集 [1](OpenX)为基础整理训练数据集。在本文撰写时,完整的 OpenX 数据集由 70 多个独立机器人数据集组成,包含超过 200 万条机器人轨迹。这些数据集是在一个大型社区协作项目中汇总而成,并被统一为连贯且易于使用的数据格式。为了使在这些数据上训练变得可行,我们对原始数据集执行了多步数据整理。
数据整理有两个目标:
- 确保所有训练数据集具有连贯的输入空间和输出空间;
- 确保最终训练混合中的机器人本体、任务和场景保持平衡。
为实现第一个目标,我们遵循 [1, 5],将训练数据集限制为满足以下条件的操作数据集:至少包含一个第三人称相机,并使用单臂末端执行器控制。为实现第二个目标,对于通过第一轮筛选的所有数据集,我们采用 Octo [5] 的数据混合权重。Octo 通过启发式方法降低权重或移除多样性较低的数据集,并提高任务和场景多样性较高的数据集的权重;详细信息见 Octo Model Team 等人 [5]。
我们还尝试将 OpenX 发布 Octo 之后加入的少量额外数据集纳入训练混合,其中包括 DROID 数据集 [11],但仅使用了 10% 的保守混合权重。实践中,我们发现 DROID 上的动作 token 准确率在整个训练过程中都保持较低,这表明未来可能需要更大的混合权重或更大的模型来拟合其多样性。为了避免影响最终模型质量,我们在训练的最后三分之一阶段移除了 DROID。所使用数据集及其混合权重的完整概览见附录 A。
OpenVLA 训练数据的目标,是覆盖尽可能丰富的机器人本体、场景和任务,使最终模型能够直接控制不同机器人,并高效适配新配置。作者以 Open X-Embodiment 为基础构造训练集。完整 OpenX 当时包含 70 多个独立机器人数据集和 200 多万条轨迹,经过社区协作被整理为统一格式。
为了使训练可行,作者对原始数据进行多步筛选。目标是:第一,在不同数据集间建立一致的输入输出空间;第二,让最终混合数据中的本体、任务与场景保持相对平衡。
为统一空间,作者只保留至少具有一个第三人称相机、采用单臂末端执行器控制的操作数据集。为平衡数据,作者使用 Octo 的混合权重:降低或移除多样性较低的数据集权重,提高任务与场景更加丰富的数据集权重。
作者也尝试加入 DROID 等后来新增的数据,并给 DROID 10% 的保守混合权重。但训练期间 DROID 的动作 token 准确率始终较低,意味着需要更高的混合权重或更大的模型才能拟合其多样性。为避免影响最终模型质量,作者在训练最后三分之一阶段移除了 DROID。
我的理解: “更多数据”并不等于“更好数据”。跨机器人数据会同时带来动作空间、控制频率、相机视角和任务标注差异。DROID token 准确率长期偏低说明模型容量与 mixture weight 之间存在竞争:某个高多样性数据集权重太小,模型可能一直学不会;权重太大,又可能破坏其他数据分布。
3.4 OpenVLA Design Decisions
在开发 OpenVLA 模型时,我们先进行了小规模实验,探索不同设计决策,然后才开始最终模型训练。具体而言,初始实验在 BridgeData V2 [6] 上训练和评估 OpenVLA 模型,而不是使用完整的 OpenX 混合数据;这样做可以提高迭代速度并降低计算成本。之所以选择 BridgeData V2 作为探索平台,是因为它规模适中、任务类型多样,且包含丰富的语言指令标注,非常适合快速验证不同骨干网络、图像分辨率、训练轮数和学习率等设计选择对最终性能的影响。通过这种先小规模探索、再大规模训练的两阶段策略,我们能够在投入昂贵的全量训练之前,以较低成本筛选出最优的模型配置。下面总结这些探索得到的关键经验。
VLM 骨干。 最初,我们尝试了多个 VLM 骨干。除 Prismatic [44] 外,我们还测试了对 IDEFICS-1 [84] 和 LLaVA [85] 进行微调以预测机器人动作。我们发现,在场景中只有一个物体的任务上,LLaVA 和 IDEFICS-1 的表现相当;但在场景中有多个物体、且策略需要操控正确物体——即语言指令指定的物体——的任务上,LLaVA 展现出更强的语言 grounding 能力。
具体来说,在 BridgeData V2 的水槽环境中,跨 5 个语言 grounding 任务取平均时,LLaVA 的绝对成功率比 IDEFICS-1 高 35%。经过微调的 Prismatic VLM 策略进一步提升了性能:在简单的单物体任务以及多物体语言 grounding 任务上,其绝对成功率总体比 LLaVA 策略高约 10%。我们将这一性能差异归因于融合的 SigLIP-DinoV2 骨干带来的更强空间推理能力(见第 3.1 节)。除性能提升外,Prismatic 还提供了模块化且易于使用的代码库,因此我们最终选择它作为 OpenVLA 的骨干。
图像分辨率。 输入图像的分辨率会显著影响 VLA 训练的计算需求,因为更高分辨率的图像会产生更多图像块 token,从而形成更长的上下文长度,并使训练计算量按平方增长。我们比较了输入分辨率为 224 \times 224 像素和 384 \times 384 像素的 VLA,但在评测中没有发现性能差异,而后者的训练时间要长 3 倍。因此,我们为最终的 OpenVLA 模型选择 224 \times 224 的分辨率。
需要注意的是,在许多 VLM 基准测试中,提高分辨率确实能够改善性能 [44, 86, 87];但至少在当前的 VLA 实验中,我们还没有观察到这一趋势。
微调视觉编码器。 以往关于 VLM 的研究发现,在 VLM 训练期间冻结视觉编码器通常能够获得更高的性能 [44]。直观地说,冻结的视觉编码器可能更好地保留从互联网规模预训练中学到的鲁棒特征。
然而,我们发现,在 VLA 训练期间微调视觉编码器对于取得良好性能至关重要。我们推测,预训练视觉骨干可能无法捕获场景中关键部分的足够细粒度空间细节,而这些细节对于精确的机器人控制是必要的。
训练轮数。 典型的 LLM 或 VLM 训练通常最多在训练数据上遍历一到两个 epoch。相比之下,我们发现,VLA 训练需要显著更多次地遍历训练数据;随着训练动作 token 准确率超过 95%,真实机器人性能会持续提升。我们的最终训练运行在训练数据上完成了 27 个 epoch。
学习率。 我们在多个数量级范围内搜索 VLA 训练的学习率,最终使用固定学习率 2 \times 10^{-5} 获得最佳结果;这与 VLM 预训练期间使用的学习率相同 [44]。我们没有发现学习率预热能够带来收益。
作者在最终大规模训练前,先在 BridgeData V2 上做小规模实验,以提高迭代速度并降低计算成本。
VLM 骨干。 作者比较了 Prismatic、IDEFICS-1 和 LLaVA。LLaVA 与 IDEFICS-1 在单物体任务上表现相近,但在包含多个物体、需要根据语言指令选择正确目标的任务中,LLaVA 语言对齐更强。在 BridgeData V2 水槽环境的五项语言 grounding 任务上,LLaVA 的绝对成功率平均比 IDEFICS-1 高 35%。Prismatic 微调策略又比 LLaVA 高约 10 个百分点。作者认为差异来自融合 SigLIP-DINOv2 骨干带来的空间推理提升,因此最终选择 Prismatic。
图像分辨率。 更高分辨率产生更多图像 patch token,使上下文长度增加,训练计算量呈二次增长。作者比较 224×224 与 384×384 输入,在机器人评测中没有观察到性能差异,而 384×384 训练耗时是前者 3 倍。因此最终采用 224×224。
是否微调视觉编码器。 VLM 研究通常发现冻结视觉编码器效果更好,因为这样可以保留互联网预训练得到的鲁棒特征。但 VLA 训练中,作者发现微调视觉编码器对高性能至关重要。其原因可能是预训练视觉骨干缺少精细机器人控制所需的局部空间细节。
训练轮数。 LLM/VLM 通常只遍历数据集一到两轮;VLA 却需要显著更多轮次。真实机器人性能会随着训练动作 token 准确率提升而持续提高,直到准确率超过 95%。最终 OpenVLA 训练遍历数据集 27 轮。
学习率。 作者跨多个数量级搜索学习率,固定学习率 效果最好,与 VLM 预训练使用的学习率相同;学习率 warmup 没有带来收益。
我的理解: 这些结论反映了 VLA 与普通 VLM 的差异。语义识别允许一定模糊性,但控制误差会直接累积成失败,因此需要微调视觉编码器、更多轮训练和更高动作 token 准确率。224 分辨率不吃亏,可能是因为当前任务的关键几何信息仍能在该分辨率下辨别;这不意味着精细装配或小物体任务也一定如此。
3.5 Infrastructure for Training and Inference
最终的 OpenVLA 模型使用由 64 张 A100 GPU 组成的集群训练 14 天,总计消耗 21,500 个 A100 小时,批大小为 2048。
在推理期间,OpenVLA 以 bfloat16 精度加载时(即未量化时)需要 15 GB GPU 显存,并且在一张 NVIDIA RTX 4090 GPU 上的运行速度约为 6 Hz;这里没有使用编译、推测解码或其他推理加速技巧。我们还可以通过量化进一步降低 OpenVLA 的推理显存占用,而且不会损害真实机器人任务中的性能,如第 5.4 节所示。
我们在图 6 中报告了不同消费级和服务器级 GPU 上的推理速度。为了方便使用,我们实现了一个远程 VLA 推理服务器,允许将动作预测实时流式传输到机器人,从而不再要求用户必须拥有强大的本地计算设备才能控制机器人。该远程推理方案随我们的开源代码一并发布(第 4 节)。
4 The OpenVLA Codebase
作者发布了模块化 PyTorch 代码库,可从单 GPU 微调扩展到多节点 GPU 集群上的十亿参数 VLA 训练。代码支持自动混合精度、FlashAttention 和 FSDP 等现代 Transformer 训练技术;原生支持 Open X 数据训练,集成 HuggingFace AutoModel,并支持 LoRA 微调与量化推理。
我的理解: 对开源研究而言,“能下载权重”不等于“开源完整”。OpenVLA 同时开放数据接口、训练代码、微调 Notebook 和部署流程,这使研究者可以真正改变模型,而不仅是调用推理 API。
5 Experiments
实验旨在回答三个问题:
- OpenVLA 在多个机器人和多种泛化条件下,与已有通用策略相比如何?
- OpenVLA 能否有效微调到新的机器人配置和任务?与数据高效模仿学习相比如何?
- 参数高效微调和量化能否降低训练与推理成本?性能—计算量如何权衡?
实验设置总览
| 维度 | 具体设置 |
|---|---|
| 开箱评测对象 | WidowX(BridgeData V2)与 Google Robot 移动操作平台 |
| 下游适配对象 | Franka-Tabletop 与 Franka-DROID 两种 Franka Panda 配置 |
| 泛化场景 | 未见背景/干扰物、未见位置与朝向、未见尺寸与形状、未见物体/指令/互联网概念 |
| 语言条件测试 | 多物体场景中是否操作指令指定的正确目标 |
| Bridge 评测规模 | 17 项任务 × 10 次,共 170 次 rollout |
| Google Robot 规模 | 12 项任务 × 5 次,共 60 次 rollout |
| 下游微调数据 | 每项任务 10–150 条示教,共 7 项 Franka 任务 |
| 控制频率 | Franka-Tabletop 5Hz;Franka-DROID 15Hz;Bridge 5Hz |
| 主要指标 | 任务成功率(平均值 ± 标准误差)、训练参数量、显存、推理频率 |
| 公平性控制 | A/B 评测使用相同任务、相同机器人初始状态和相同物体初始状态 |
Baseline 总览
| Baseline | 类型与规模 | 训练/输入特点 | 比较目的 |
|---|---|---|---|
| RT-1-X | 3500 万参数通用 Transformer | 在 OpenX 子集上从零训练 | 判断无互联网 VLM 预训练的通用策略能力 |
| Octo | 9300 万参数开源通用策略 | OpenX 预训练,支持下游微调 | 开源通用策略强基线 |
| RT-2-X | 550 亿参数闭源 VLA | 互联网视觉语言预训练 + 机器人动作数据 | 与大规模闭源 VLA 比较开箱泛化 |
| Diffusion Policy | 从零训练的扩散模仿学习 | 两帧历史、本体状态、动作块、滚动时域控制 | 比较窄任务中的连续轨迹质量和数据效率 |
| Diffusion Policy (matched) | 输入输出规格匹配 OpenVLA | 单图、无本体状态、无历史、单步相对动作 | 排除输入与控制接口不公平因素 |
| OpenVLA (scratch) | Prismatic VLM 直接微调 | 不经过 OpenX 机器人预训练 | 验证 97 万机器人轨迹预训练的价值 |
我的理解(如何读这些 baseline): 这组实验不是单纯比较“谁的成功率高”。RT-1-X/Octo 与 RT-2-X/OpenVLA 的差异主要检验互联网 VLM 预训练的价值;OpenVLA 与 OpenVLA scratch 检验机器人预训练的价值;OpenVLA 与两种 Diffusion Policy 则把“语义泛化能力”和“连续轨迹建模能力”拆开比较。尤其是 matched 版本,用来避免把观察历史、本体状态和动作分块等额外信息带来的优势误算成算法本身的优势。
5.1 Direct Evaluations on Multiple Robot Platforms
机器人设置与任务。 我们在两种机器人本体上“开箱即用”地评估 OpenVLA 的性能:BridgeData V2 评测中的 WidowX 机器人(见图 1 左侧),以及 RT-1 和 RT-2 评测中使用的移动操作机器人 [2, 7](“Google robot”,见图 1 中间)。这两个平台都曾被以往工作广泛用于评估通用机器人策略 [1, 2, 5, 7]。
我们在每个环境中定义了一组全面的评测任务,覆盖多种泛化维度,包括:
- 视觉泛化: 未见过的背景、干扰物以及物体颜色或外观;
- 运动泛化: 未见过的物体位置和朝向;
- 物理泛化: 未见过的物体尺寸和形状;
- 语义泛化: 未见过的目标物体、指令以及来自互联网的概念。
我们还在包含多个物体的场景中评估语言条件能力,检验策略是否能够按照用户提示操控正确的目标物体。图 3 和图 4 的下排分别给出了 BridgeData V2 和 Google robot 评测中的任务示例图像。
图3:BridgeData V2 WidowX 评测任务与结果。 任务覆盖多种泛化轴以及语言条件能力。OpenVLA 的整体性能最高;除语义泛化外,它在其他类别均超过 RT-2-X。每种方法统计 170 次 rollout 的平均成功率与标准误差。
总体而言,对于 BridgeData V2 实验,我们对每种方法进行了 170 次 rollout(17 个任务,每个任务 10 次试验);对于 Google robot 实验,我们进行了 60 次 rollout(12 个任务,每个任务 5 次试验)。所有任务以及它们与训练数据之间差异的详细拆分见附录 B。
本节及后续各节的所有评测都采用 A/B 评测协议:使用相同的任务以及相同的机器人和物体初始状态,以确保比较公平。
比较方法。 我们将 OpenVLA 的性能与三个以往的通用操作策略进行比较:RT-1-X [1]、RT-2-X [1] 和 Octo [5]。
RT-1-X(3,500 万参数)和 Octo(9,300 万参数)是从 OpenX 数据集的子集上从零开始训练的 Transformer 策略;在开源操作策略中,Octo 是当时性能最先进的模型。RT-2-X(550 亿参数)是当时最先进的闭源 VLA,使用了在互联网数据上预训练的视觉和语言骨干。
BridgeData V2 评测结果汇总于图 3,Google robot 评测结果汇总于图 4;附录中的表 4 和表 6 给出了逐任务拆分。我们发现,RT-1-X 和 Octo 都难以完成测试任务,尤其是在存在干扰物时,它们经常无法操控正确的物体;在一些情况下,甚至会使机器人无目的地挥动手臂。
需要注意的是,我们的评测为了挑战使用互联网预训练的 VLA 模型,测试了比以往工作更大程度的泛化。因此,没有互联网预训练的模型表现较低是可以预期的。RT-2-X 明显优于 RT-1-X 和 Octo,体现了大型预训练 VLM 对机器人学的益处。
值得注意的是,尽管 OpenVLA 的规模小一个数量级(70 亿参数对 550 亿参数),它在 Google robot 评测中与 RT-2-X 表现相当,并在 BridgeData V2 评测中显著超过 RT-2-X。
从定性结果看,RT-2-X 和 OpenVLA 都比其他测试模型展现出明显更鲁棒的行为。例如,当场景存在干扰物时,它们会接近正确物体;会正确调整机器人的末端执行器,使其与目标物体的朝向对齐;甚至能够从不牢固抓取物体等错误中恢复。项目主页提供了定性 rollout 示例。
如图 3 所示,RT-2-X 在语义泛化任务上取得了更高性能。这是符合预期的,因为它使用了规模更大的互联网预训练数据,并且同时使用机器人动作数据和互联网预训练数据进行联合微调,从而更好地保留预训练知识;而 OpenVLA 只在机器人数据上进行微调。
然而,在 BridgeData V2 和 Google robot 的其他所有任务类别上,OpenVLA 的表现都与 RT-2-X 相当或更好。这一性能差异可能源于多个因素的共同作用:我们为 OpenVLA 整理了更大的训练数据集,包含 97 万条轨迹(RT-2-X 使用 35 万条);我们对训练数据进行了更仔细的清洗,例如过滤掉 Bridge 数据集中的全零动作(详细讨论见附录 C);此外,OpenVLA 使用融合视觉编码器,将预训练的语义特征和空间特征结合起来。附录 D 给出了这些组件的消融分析。
图 3 中的任务标签包括:将黄色玉米放到粉色盘子上、将蓝色杯子叠放到粉色杯子上、将红色瓶子或茄子放入锅中、将锅翻正、提起茄子。评测类别包括未见过的背景/干扰物/物体外观、未见过的物体位置与朝向、未见过的物体尺寸与形状、未见过的物体/指令/互联网概念,以及操控语言提示中指定物体的能力。
图 4 中的任务标签包括“将可口可乐罐移到 Taylor Swift 处”和“抓取可口可乐罐”;评测区分了训练数据中见过的任务与条件,以及未见过的物体、任务、背景和概念。
图 4:Google robot 评测结果。 我们在 RT-1 和 RT-2 评测所使用的移动操作机器人上,对通用机器人策略进行分布内任务和分布外(OOD)任务评测 [2, 7]。我们发现,OpenVLA 和 RT-2-X 的总体表现相当,并且显著优于 RT-1-X 和 Octo。平均成功率及其标准误基于每种方法共 60 次 rollout 计算。详细结果见表 6。
OpenVLA 在 Google Robot 上与 RT-2-X 相当,在 BridgeData V2 上则显著超过 RT-2-X,尽管参数规模小一个数量级。定性观察表明,两种 VLA 都比其他模型更加鲁棒:存在干扰物时会靠近正确目标;能调整末端姿态以匹配目标朝向;抓取不牢时还能进行一定恢复。
RT-2-X 在语义泛化上更强,这是合理的:它使用规模更大的互联网预训练数据,并在机器人动作数据和互联网视觉—语言数据上联合微调,从而更好地保留预训练知识;OpenVLA 则只在机器人数据上微调。在其他任务类别中,OpenVLA 相当或更好。作者将差异归因于 97 万轨迹的大训练集(RT-2-X 为 35 万)、更仔细的数据清洗,以及融合语义与空间特征的视觉编码器。
我的理解: RT-2-X 语义泛化更强提示了一个重要问题:只在机器人轨迹上继续训练,可能发生“语义遗忘”。后续 VLA 可以在动作数据与互联网图文数据上共同训练,或者使用参数隔离/正则化,在学习控制的同时保留 VLM 知识。
5.2 Data-Efficient Adaptation to New Robot Setups
以往工作主要关注直接“开箱即用”地评估 VLA [1, 7, 16],而将 VLA 模型有效微调到新任务和新机器人设置这一问题基本没有得到研究;但它是 VLA 广泛应用的关键。在本节中,我们研究 OpenVLA 快速适配到新真实世界机器人设置的能力。仿真环境中的微调实验见附录 E。
机器人设置与任务。 我们测试了一个简单的 OpenVLA 微调方案:对模型的全部参数进行全量微调,并使用包含目标任务 10–150 条示教的小型数据集(见图 5;参数高效微调方法见第 5.3 节)。
我们在两种设置中测试 OpenVLA:
- Franka-Tabletop: 固定安装在桌面上的 Franka Emika Panda 七自由度机械臂;
- Franka-DROID: 最近发布的 DROID 数据集中的 Franka 机械臂设置 [11],安装在可移动的站立式办公桌上。
这两种设置分别使用 5 Hz 和 15 Hz 的非阻塞控制器。我们选择 Franka 机械臂作为微调实验的目标本体,是因为它们在机器人学习社区中得到广泛使用,因此很可能是 OpenVLA 微调的目标平台。我们还在控制频率不同的设置上进行测试,以检验 OpenVLA 对不同应用场景的适用性。
比较方法。 我们将 OpenVLA 与从零训练的、最先进的数据高效模仿学习方法 Diffusion Policy [3] 进行比较。我们还比较了 Diffusion Policy(matched)版本,该版本匹配 OpenVLA 的输入和输出规格。除此之外,我们评估了在目标数据集上微调的 Octo [5],因为它是当时支持微调的最佳通用策略;RT-2-X 的推理 API 不支持微调。
我们还在同一目标数据集上微调 OpenVLA,得到的策略记为 OpenVLA。最后,作为消融实验,我们比较了 OpenVLA(scratch):直接在目标机器人设置上微调底层 Prismatic VLM,而不是微调在 OpenX 上预训练过的 OpenVLA 模型,以评估大规模机器人预训练的作用。
结果见图 5,逐任务拆分见附录表 7。我们发现,在“将胡萝卜放入碗中”和“将玉米倒入锅中”等较窄的单指令任务上,两个版本的 Diffusion Policy 都能与通用策略 Octo 和 OpenVLA 竞争,或者超过它们;但在场景中包含多个物体、需要语言条件的更加多样化微调任务上,预训练通用策略表现更好。
OpenX 预训练使 Octo 和 OpenVLA 能够更好地适配这些语言 grounding 很重要的多样化任务;OpenVLA(scratch)的较低性能为此提供了证据。
总体而言,我们发现 OpenVLA 获得了最高的平均性能。值得注意的是,大多数以往工作只在窄的单指令任务或多样化的多指令任务中的某一类上取得较强性能,因此成功率变化很大。OpenVLA 是唯一一个在所有测试任务上都达到至少 50% 成功率的方法,这表明它可以作为模仿学习任务的强默认选项,特别是当任务包含多样化语言指令时。
对于更窄但高度灵巧的任务,Diffusion Policy 仍能产生更加平滑和精确的轨迹。将 Diffusion Policy 中使用的动作分块和时序平滑机制引入 OpenVLA,可能帮助后者达到同等水平的灵巧性,也是一个有前景的未来方向(当前局限详见第 6 节)。
脚注 3: 完整版 Diffusion Policy 使用两步观测历史,其中包含图像和本体感觉状态;它通过预测未来 T 个动作组成的动作块来执行滚动时域控制,并以开环方式执行其中前 X 个动作,然后再预测下一个动作块。对于 15 Hz 控制,我们像 DROID 先前工作 [11] 一样设置 T=16、X=8;对于 5 Hz 控制,我们将动作块大小减小为 T=8、X=3。在第 5.2 节的方法中,它也是唯一一个预测绝对笛卡尔坐标来控制机器人的方法;其他方法都使用相对位置控制。Diffusion Policy(matched)以单张图像作为输入,不使用本体感觉信息和观测历史,并且在不使用动作分块的情况下预测单个相对位置控制动作。
作者测试一种简单配方:使用目标任务的 10–150 条示教,对 OpenVLA 全部参数进行微调。实验包含 Franka-Tabletop(固定桌面 Franka Panda 7-DoF 机械臂,5Hz 控制)和 Franka-DROID(安装在可移动升降桌上的 Franka,15Hz 控制)。
比较方法包括从零训练的 Diffusion Policy、输入输出规格与 OpenVLA 匹配的 Diffusion Policy、微调 Octo、微调 OpenVLA,以及直接微调未经过 OpenX 机器人预训练的基础 Prismatic VLM(OpenVLA scratch)。
图5:适配新机器人配置。
我们评估了在七个 Franka Emika Panda 任务上从零训练的最先进 Diffusion Policy,每个任务使用 10–150 条示教;同时也评估了在相同数据上微调的通用机器人策略 Octo 和 OpenVLA。Diffusion Policy 在窄的单指令任务上表现较强,而 Octo 和 OpenVLA 在涉及多个指令和干扰物的多样化微调任务上表现更好。总体而言,OpenVLA 在两种设置上都取得了最高的聚合性能,表明它是学习下游任务策略的有效默认选项。平均成功率及其标准误基于每种方法 129 次 rollout 计算,其中 Franka-Tabletop 任务 99 次,Franka-DROID 任务 30 次。详细结果见表 7。
两种 Diffusion Policy 在“把胡萝卜放入碗中”“把玉米倒入锅中”等窄单指令任务上具有竞争力,甚至超过通用策略;但在包含多个物体、需要语言条件的多样化任务上,OpenX 预训练的 Octo 和 OpenVLA 更强。OpenVLA scratch 较差,也说明大规模机器人预训练带来了有效先验。
整体而言,OpenVLA 平均性能最高,并且是唯一在所有测试任务上成功率都至少达到 50% 的方法。对于狭窄但要求高灵巧度的任务,Diffusion Policy 轨迹仍更平滑、更精确。作者认为把动作分块与时间平滑加入 OpenVLA,可能提升其灵巧性。
我的理解: 这部分直接连接 ACT、Diffusion Policy 与 VLA。VLA 的强项是语义和多任务泛化,扩散/动作分块的强项是连续轨迹质量与时序平滑。把 VLA 骨干与 chunk、diffusion 或 flow 动作头结合,是比单纯扩大 VLM 更贴近精细操作的研究方向。
5.3 Parameter-Efficient Fine-Tuning
上一节中的 OpenVLA 全量微调实验使用了 8 张 A100 GPU,每个任务需要 5–15 小时(取决于数据集大小)才能取得较高性能。虽然这比 VLA 预训练所需的计算量少很多,但本节进一步探索计算量和参数量都更加高效的微调方法,并研究它们的有效性。
具体而言,我们比较以下微调方法:
- 全量微调: 如第 5.2 节所述,在微调期间更新全部权重。
- 仅微调最后一层: 只微调 OpenVLA Transformer 骨干的最后一层和 token 嵌入矩阵。
- 冻结视觉编码器: 冻结视觉编码器,但微调所有其他权重。
- Sandwich 微调: 解冻视觉编码器、token 嵌入矩阵和最后一层。
- LoRA: 使用 Hu 等人 [26] 提出的常用低秩适配技术,在模型的所有线性层上应用多个秩 r。
我们在表 1 中报告多个 Franka-Tabletop 任务上的微调成功率,以及训练参数数量和 GPU 显存需求。我们发现,仅微调网络最后一层或冻结视觉编码器都会导致性能较差,这说明针对目标场景进一步适配视觉特征至关重要。
相比之下,“Sandwich 微调”取得了更好性能,因为它会微调视觉编码器;同时,由于不微调整个 LLM 骨干,它消耗的 GPU 显存更少。最后,LoRA 在性能和训练显存消耗之间实现了最佳权衡:它超过 Sandwich 微调,并在只微调 1.4% 参数的情况下达到与全量微调相当的性能。
我们发现,LoRA 的秩对策略性能影响很小,因此建议默认使用 r=32。使用 LoRA 时,可以在单张 A100 GPU 上用 10–15 小时将 OpenVLA 微调到一个新任务,相比全量微调将计算量减少 8 倍。
策略 成功率 训练参数(\times 10^6) 显存(批大小 16) 全量微调 69.7 \pm 7.2\% 7,188.1 163.3 GB* 仅微调最后一层 30.3 \pm 6.1\% 465.1 51.4 GB 冻结视觉编码器 47.0 \pm 6.9\% 6,760.4 156.2 GB* Sandwich 微调 62.1 \pm 7.9\% 914.2 64.0 GB LoRA,秩 = 32 68.2 \pm 7.5\% 97.6 59.7 GB LoRA,秩 = 64 68.2 \pm 7.8\% 195.2 60.5 GB
表 1:参数高效微调评测。 LoRA 微调实现了最佳的性能—计算量权衡:在只训练模型 1.4% 参数的同时,达到与全量微调相当的性能。平均成功率及其标准误基于每种方法在选定 Franka-Tabletop 任务上的 33 次 rollout 计算;详细结果见表 8。带星号的显存数据表示使用 FSDP [77] 分片到 2 张 GPU 上。
全参数微调每个任务需要 8 张 A100 运行 5–15 小时。作者比较了全参数微调、只训练最后一层、冻结视觉编码器、sandwich 微调,以及不同秩的 LoRA。
| 策略 | 成功率 | 训练参数量 | 显存(batch 16) |
|---|---|---|---|
| 全参数微调 | 69.7±7.2% | 7188.1M | 163.3GB(2卡分片) |
| 仅最后层 | 30.3±6.1% | 465.1M | 51.4GB |
| 冻结视觉 | 47.0±6.9% | 6760.4M | 156.2GB(2卡分片) |
| Sandwich | 62.1±7.9% | 914.2M | 64.0GB |
| LoRA rank=32 | 68.2±7.5% | 97.6M | 59.7GB |
| LoRA rank=64 | 68.2±7.8% | 195.2M | 60.5GB |
只训练最后一层或冻结视觉编码器都会明显降低性能,进一步说明视觉特征必须适配目标场景。Sandwich 微调同时解冻视觉编码器、token embedding 和最后一层,因此优于前两者。LoRA 的性能—计算量权衡最佳:只训练约 1.4% 参数,就能接近全参数微调。rank 32 与 64 几乎无性能差异,因此作者建议默认使用 。LoRA 使单张 A100 在 10–15 小时内完成新任务微调,计算量比全参数微调降低约 8 倍。
5.4 Memory-Efficient Inference via Quantization 通过量化实现高效显存推理
OpenVLA 是一个拥有 70 亿参数的模型,因此推理时的显存占用高于 Octo 等以往的开源通用策略;Octo 的参数量小于 1 亿。我们遵循 LLM 服务部署的最佳实践,以 bfloat16 精度保存和加载 OpenVLA 进行推理,这是我们的默认方案。这样可以将显存占用降低一半,使 OpenVLA 能够部署在仅有 16 GB 显存的 GPU 上。
本节使用为 LLM 服务开发的现代量化技术 [27, 88],测试是否可以进一步降低策略推理所需的显存,并扩大 VLA 策略的可用范围。这些方法以更低精度加载网络权重,以减少显存需求,但可能会牺牲推理速度和准确率。
具体而言,我们在 8 个具有代表性的 BridgeData V2 任务上,研究以 8 bit 和 4 bit 精度提供 OpenVLA 服务的效果。我们在表 2 中报告显存占用和 rollout 性能,并在图 6 中报告不同消费级和服务器级 GPU 上可实现的控制频率。
我们观察到,由于新增量化操作的开销,8 bit 量化会使大多数 GPU 上的推理速度下降。4 bit 推理则能够获得更高吞吐量,因为减少 GPU 显存传输所带来的收益抵消了量化开销。
由于推理速度下降,8 bit 量化导致性能显著降低:在我们用于评测的 A5000 GPU 上,模型只能以 1.2 Hz 运行。这相较于 BridgeData V2 任务所使用的 5 Hz 非阻塞控制器训练数据,会显著改变系统动力学。值得注意的是,4 bit 量化推理的性能与 bfloat16 半精度推理相近,但所需 GPU 显存不到后者的一半。4 bit 量化模型可以在 A5000 上以 3 Hz 运行,因此更接近数据采集期间的系统动力学。
图 6:不同 GPU 上的 OpenVLA 推理速度。 bfloat16 和 int4 量化都能实现较高吞吐量,尤其是在采用 Ada Lovelace 架构的 GPU(RTX 4090、H100)上。借助 TensorRT-LLM [89] 等现代 LLM 推理框架,还可以进一步加速。带菱形标记的数据表示模型为了适配显存而分片到两张 GPU 上。
表 2:量化推理性能。 4 bit 量化在将 GPU 显存占用降低一半以上的同时,达到了与 bfloat16 推理(本文默认方案)相当的性能。平均成功率及其标准误基于 8 个具有代表性的 BridgeData V2 任务,以及每种方法共 80 次 rollout 计算;详细结果见表 5。
脚注 4: 在第 5.3 节和第 5.4 节中,我们实验使用的是一个 OpenVLA 版本:它采用较小的机器人数据混合进行预训练(与 Octo 使用的 OpenX 数据混合相同),并使用略小的架构,仅采用 SigLIP [79] 视觉骨干,而不是融合的 DinoSigLIP 编码器。我们发现,这种更简单的架构在微调任务和“开箱即用”任务上仍然都取得了较强性能。
OpenVLA 参数远多于 Octo 等小于 1 亿参数的开源通用策略。默认 bfloat16 推理约需 16GB 显存。作者进一步测试 8-bit 与 4-bit 量化,在 8 项代表性 BridgeData V2 任务上评估显存和任务性能。
| 精度 | Bridge 成功率 | 显存 |
|---|---|---|
| bfloat16 | 71.3±4.8% | 16.8GB |
| int8 | 58.1±5.1% | 10.2GB |
| int4 | 71.9±4.7% | 7.0GB |
8-bit 量化在多数 GPU 上反而变慢,因为额外量化运算的开销较大。在实验所用 A5000 上只能达到 1.2Hz,与 Bridge 数据采集时 5Hz 非阻塞控制器的系统动力学相差较大,导致性能明显下降。4-bit 由于降低显存传输量,可以达到约 3Hz,性能与 bfloat16 相近,但显存不到一半。
我的理解: 量化是否有效不能只看离线动作 token 准确率。机器人是闭环系统,推理频率变化会改变观测—动作时序和动力学分布。int8 精度更高却成功率更低,主要原因不是数值误差,而是推理过慢;这是机器人部署与普通语言模型部署的重要区别。
6 Discussion and Limitations
本文提出 OpenVLA:一个具有强跨本体开箱控制能力的开源 VLA,并证明它可以通过参数高效微调快速适配新机器人配置。
当前模型仍有多项局限。第一,它只支持单张图像观测。真实机器人系统具有多样化传感输入,因此未来需要支持多图像、本体状态和观测历史。预训练于交错图文数据的 VLM 可能有助于实现灵活输入。
第二,OpenVLA 推理吞吐仍不足以支持 ALOHA 等 50Hz 高频控制系统,也限制了在更灵巧的双臂任务上测试 VLA。动作分块、推测解码和其他推理优化可能是解决方案。
第三,虽然 OpenVLA 超过此前通用策略,但可靠性仍不够高,多数任务成功率低于 90%。
最后,受计算资源限制,许多设计问题尚未充分研究:基础 VLM 规模如何影响 VLA?机器人动作数据与互联网视觉—语言数据联合训练是否显著提高性能?什么视觉特征最适合 VLA?作者希望开源模型与代码能帮助社区共同研究这些问题。
我的理解: OpenVLA 的局限几乎直接指向下一阶段 VLA 研究:多帧与本体状态输入、连续且时序化的动作头、高频推理、双臂精细操作,以及机器人数据与互联网多模态数据的联合训练。对端到端操作研究而言,OpenVLA 最适合作为语义与视觉骨干,而不是把离散单步动作 token 视为最终答案。
附录:论文中尚未在正文充分展示的图与表
内容完整性说明: 正文已覆盖论文主文 Figure 1–6,以及 Table 1(参数高效微调)与 Table 2(量化推理)的核心数字。但论文附录还包含 Figure 7–11 与 Table 3–12。下面尽量把这些非文字结果补全,并附上阅读理解;这样读者不必来回翻 PDF 才能看到任务样例和详细分表。
A. 训练数据混合(Table 3)
OpenVLA 的训练混合主要沿用 Octo 的 OpenX 权重,并加入少量新数据集。下表给出论文附录 A 中的完整混合(百分比为 mixture weight):
| 数据集 | 权重 | 数据集 | 权重 |
|---|---|---|---|
| Fractal | 12.7% | Kuka | 12.7% |
| Bridge | 13.3% | Taco Play | 3.0% |
| Jaco Play | 0.4% | Berkeley Cable Routing | 0.2% |
| Roboturk | 2.3% | Viola | 0.9% |
| Berkeley Autolab UR5 | 1.2% | Toto | 2.0% |
| Language Table | 4.4% | Stanford Hydra | 4.4% |
| Austin Buds | 0.2% | NYU Franka Play | 0.8% |
| Furniture Bench | 2.4% | UCSD Kitchen | <0.1% |
| Austin Sailor | 2.2% | Austin Sirius | 1.7% |
| DLR EDAN Shared Control | <0.1% | IAMLab CMU Pickup Insert | 0.9% |
| UTAustin Mutex | 2.2% | Berkeley Fanuc Manipulation | 0.7% |
| CMU Stretch | 0.2% | BC-Z | 7.5% |
| FMB Dataset | 7.1% | DobbE | 1.4% |
| DROID | 10.0%* |
* 训练最后三分之一阶段因 DROID 的动作 token 准确率长期偏低而移除,并把它的权重重新分配到其余数据集。

我的理解: 这张表说明 OpenVLA 不是“把 OpenX 全倒进去”。Bridge/Fractal/Kuka 合计约 38.7%,是主体;DROID 虽给了 10%,却因学不动被后期拿掉。数据混合本身就是超参:多样性、可拟合性和最终跨本体泛化在互相拉扯。
B. Bridge 17 项任务样例(Figure 7)与原始水槽任务(Figure 8)
Figure 7 展示了 BridgeData V2 评测的 17 项任务,覆盖视觉/运动/物理/语义泛化与语言 grounding。Figure 8 则展示原始 Bridge 水槽环境演示:训练示教常把末端初始化到目标物体正上方;而作者评测时通常把末端固定初始化到水槽上方,因此测试比训练演示更难。

图7:BridgeData V2 WidowX 评测任务。 共 17 项任务:5 项视觉泛化、2 项运动泛化、3 项物理泛化、4 项语义泛化、3 项语言 grounding;每项 10 次 rollout。

图8:原始 Bridge 水槽环境任务示例。 训练演示中末端常直接位于目标上方;评测初始化更远离目标,机器人必须先水平接近再操作。

表4:BridgeData V2 详细评测结果。 按视觉、运动、物理、语义泛化和语言 grounding 拆分各方法成功率,用于补充主文汇总图。
我的理解: 这解释了为什么“开箱泛化”很难。即便物体类别相似,初始化分布、相机位姿、光照和背景都在偏移。OpenVLA/RT-2-X 能做出来,说明互联网视觉语义 + 大规模机器人轨迹确实提供了一定鲁棒性;RT-1-X/Octo 更易在干扰物场景中选错目标,也符合“缺少强 VLM 先验”的预期。
C. Google Robot 任务与详细结果(Figure 9 / Table 6)

图9:Google Robot 评测任务。 覆盖 in-distribution 与多种 OOD 条件;每种方法共 60 次 rollout。
| 方法 | 总体趋势(论文主文 + Table 6) |
|---|---|
| RT-1-X / Octo | 困难 OOD 与干扰物场景明显偏弱 |
| RT-2-X | 显著强于无 VLM 预训练策略,语义泛化突出 |
| OpenVLA | 与 RT-2-X 总体接近;在 Bridge 上更强,在 Google Robot 上大体持平 |

我的理解: Google Robot 结果说明:OpenVLA 并不是“只在 Bridge 上靠数据清洗赢”。它在另一个本体上也能逼近 55B 闭源 VLA;真正拉开差距的,往往是 Bridge 上的数据预处理与视觉骨干选择。
D. 下游适配任务样例(Figure 10 / Figure 11)与详细分表(Table 7)

图10:Franka-Tabletop 微调任务。 前 3 项偏窄单指令,后 3 项偏多物体/多指令;另含 OOD 变体(未见物体、桌布、干扰物、倒置摆放等)。

图11:Franka-DROID “擦桌/扫入簸箕”任务。 左:in-distribution;右:有未见干扰物的 OOD。评分满分 2 分:扫入 3 个物体得 2 分,扫入 1–2 个得 1 分。
Table 7 给出 Figure 5 的完整任务分解。核心读法不是“谁全面碾压”,而是:
| 任务类型 | 更强的方法 | 含义 |
|---|---|---|
| 窄单指令、高灵巧 | Diffusion Policy | 连续轨迹/动作块建模占优 |
| 多指令、多物体、要语言对齐 | OpenVLA / Octo | OpenX 预训练带来语义条件能力 |
| 两套 Franka 配置总平均 | OpenVLA 最高 | 唯一在所有测试任务上 ≥50% 的方法 |

我的理解: 若你的下游任务像“固定把 A 放进 B”,Diffusion Policy 仍很香;若任务指令多样、场景里有干扰物,OpenVLA 更合适。这也是为什么后文强调:下一步不该只扩 VLM,而应给 VLA 加 action chunk / diffusion / flow 头。
E. 参数高效微调细表(Table 8)与量化细表(Table 5 / Table 11)
Table 8 是 Table 1 的任务级展开:LoRA r=32/64 在 “Put Carrot in Bowl” 与 “Move <object> onto Plate” 的 in-distribution / OOD 上都能接近全参数微调。
Table 5 是 Table 2 的 8 项 Bridge 任务细表;Table 11 则用 blocking control 去掉推理速度影响后,发现 int8/int4/bfloat16 成功率接近。这证实:正文里 int8 变差,主因是推理变慢改变了闭环动力学,而不是 8-bit 数值精度本身不够。


我的理解: 机器人量化实验必须同时报“任务成功率 + 控制频率/时延”。只报离线 token accuracy 会误判。OpenVLA 这里最有工程价值的结论是:int4 既省显存,又还能维持接近 bfloat16 的真机表现。
F. 消融实验(Table 9 / Table 10)
| 设定 | 平均成功率 | 结论 |
|---|---|---|
| OpenVLA(完整 OpenX + 融合视觉) | 76.3±4.8% | 完整配方 |
| OpenVLA-Bridge(只训 Bridge) | 45.6±5.6% | 去掉 OpenX 预训,掉约 30 个点 |
| OpenVLA-Bridge-SigLIP(再去掉 DinoV2) | 40.6±5.5% | 融合视觉仍有增益,但小于 OpenX |
| 微调视觉编码器 | 显著更高 | 控制任务需要适配局部空间特征 |
| 冻结视觉编码器 | 明显更差,甚至行为不稳定 | VLM 里“冻结视觉更好”的经验不能直接搬到 VLA |

我的理解: 对复现者最重要的两个消融是:1)OpenX 混合几乎不可省;2)VLA 应该微调视觉编码器。DinoV2 有帮助,但不是决定性因素。
G. LIBERO 仿真结果(Table 12)
| 方法 | Spatial | Object | Goal | Long | 平均成功率 | 平均排名 |
|---|---|---|---|---|---|---|
| Diffusion Policy from scratch | 78.3±1.1% | 92.5±0.7% | 68.3±1.2% | 50.5±1.3% | 72.4±0.7% | 2.5 |
| Octo fine-tuned | 78.9±1.0% | 85.7±0.9% | 84.6±0.9% | 51.1±1.3% | 75.1±0.6% | 2.0 |
| OpenVLA fine-tuned | 84.7±0.9% | 88.4±0.8% | 79.2±1.0% | 53.7±1.3% | 76.5±0.6% | 1.5 |

我的理解: 仿真里 OpenVLA 仍最好,但领先幅度小于真机微调。作者解释是:OpenVLA 预训练几乎全是真机数据,迁移到仿真存在 domain gap。所以 LIBERO 更适合做可复现基准,不能反过来证明“仿真提升幅度 = 真机提升幅度”。
H. 覆盖结论
| 论文非文字元素 | 博客覆盖状态 |
|---|---|
| Figure 1–6(主文) | 已覆盖 |
| Figure 7–11(附录任务样例) | 本附录补全 |
| Table 1–2(主文) | 已覆盖为 HTML 表 |
| Table 3(数据混合) | 本附录补全 |
| Table 4–8(详细结果) | 本附录补关键表 + 解读;完整矩阵见图注对应截图 |
| Table 9–12(消融/仿真) | 本附录补全 |
| 算法伪代码框 | 论文无独立 algorithm box;方法以公式与结构图表达,正文已覆盖 |
因此,更新后的博客不再只是“放了主文 6 张图”,而是把论文中支撑结论的关键表格、任务样例图和消融表尽量展示出来,并说明它们如何支撑主文判断。
全文通篇总结
1. 论文解决了什么问题?
已有 VLA 展现出优秀的视觉、语言与任务泛化能力,但主流系统闭源,训练数据和适配流程不透明,计算门槛也很高。OpenVLA 的目标是提供一个开源、可复现、可微调、可部署的通用视觉—语言—动作模型,并验证它能否在较小参数规模下达到闭源 VLA 的竞争水平。
2. 核心方法有什么特点?
OpenVLA 不是从零设计一个机器人网络,而是把 Prismatic-7B VLM 改造成动作生成模型:
- SigLIP 提供较强语义特征,DINOv2 提供更细的空间特征;
- MLP Projector 把视觉 patch 映射到 Llama 2 的语言嵌入空间;
- 连续 7 维动作按照每维 1%–99% 分位区间离散为 256 个 token;
- 动作 token 覆盖 Llama 词表中最低频的 256 个位置;
- 只在动作 token 上计算 next-token prediction 交叉熵;
- 在经过筛选和重加权的 97 万条 OpenX 机器人轨迹上训练。
方法的特点是结构简单、最大限度复用 VLM/LLM 训练栈。它没有为机器人动作专门设计复杂连续生成器,而是把动作纳入语言 token 接口,使模型训练、LoRA 和量化都能直接借用大模型生态。
3. 方法中最关键的公式链是什么?
第一步是分位数动作量化:把连续动作 映射为离散编号
。第二步是动作 token 交叉熵:在图像
和指令
条件下逐 token 预测动作。前者决定动作表示的精度与鲁棒性,后者决定模型如何学习视觉—语言条件到动作的映射。
其优势是训练简单、基础设施成熟;代价是动作离散化误差、单步预测缺少时序平滑,以及对连续多模态动作分布的表达能力有限。
4. 训练数据与工程选择有什么特别之处?
作者没有直接使用完整 OpenX,而是统一为第三人称相机、单臂末端控制的操作数据,并沿用 Octo mixture weights 平衡不同数据集。DROID 虽然多样,但 token 准确率一直较低,最终在训练最后三分之一被移除。这说明数据混合不是简单堆数据,而是模型容量、数据异质性和采样权重之间的平衡。
工程上,224×224 与 384×384 的机器人性能相近,但后者训练慢 3 倍;微调视觉编码器对控制性能至关重要;VLA 需要训练 27 个 epoch,明显多于普通 VLM;最终预训练消耗约 21,500 A100 小时。
5. 实验对象和 baseline 如何组织?
开箱评测覆盖 WidowX 和 Google Robot,测试视觉、运动、物理和语义四类泛化,并与 RT-1-X、Octo、RT-2-X 比较。下游适配覆盖 Franka-Tabletop 与 Franka-DROID,使用 10–150 条示教,并与 Diffusion Policy、matched Diffusion Policy、Octo 和 OpenVLA scratch 比较。另有 LoRA 参数高效微调与 int8/int4 量化实验。
这种 baseline 设计分别回答:互联网预训练是否重要、机器人预训练是否重要、VLA 是否比从零模仿学习更适合多语言任务,以及计算优化是否牺牲性能。
6. 实验中最特别的改进与结果是什么?
- OpenVLA 只有 7B 参数,却在整体 29 项评测中超过 55B RT-2-X;
- RT-2-X 在语义泛化仍占优,说明联合保留互联网知识有价值;
- OpenVLA 是所有下游方法中唯一在每项任务都至少达到 50% 成功率的方法;
- Diffusion Policy 在狭窄、要求高灵巧性的单指令任务上轨迹更平滑;
- LoRA rank 32 只训练 1.4% 参数,达到接近全参数微调的性能;
- int4 把显存从 16.8GB 降到 7.0GB,成功率仍与 bfloat16 相当;int8 反而因推理频率过低而降低真机成功率。
7. 这篇论文的主要局限是什么?
OpenVLA 仅支持单图输入,没有本体状态、观测历史和多相机上下文;单步离散动作 token 不适合 50Hz 高频控制和精细双臂接触;多数任务可靠性仍低于 90%;训练成本对个人实验室仍然很高;只用机器人数据微调也可能损失 VLM 原有的互联网语义知识。
8. 对后续研究的总体启发
OpenVLA 很适合作为视觉—语言语义骨干,但不一定是最终动作建模形式。一个自然方向是保留 OpenVLA 的视觉语言骨干和 OpenX 预训练能力,再把离散单步动作 token 替换为 ACT 动作分块、Diffusion Policy、flow matching 或带时序记忆的连续动作头。对于双臂和精细操作,还应加入多帧、本体状态、力/触觉信息和更高频闭环推理。
我的总体评价: OpenVLA 最重要的贡献,是建立了开源 VLA 的研究坐标系,而不是彻底解决通用机器人控制。它在语义泛化和多任务适配上证明了大规模视觉语言先验的价值,但实验也清楚暴露了动作精细度、时序性和控制频率问题。因此,它既是强基线,也是一个非常明确的“可被新动作头继续改造”的起点。
结语
OpenVLA 的主要贡献,不是单一指标上的提升,而是提供了可研究、可微调、可部署的开源 VLA 坐标系。它用 Prismatic-7B 骨干融合 SigLIP 的语义特征与 DINOv2 的空间特征,把连续动作离散成语言模型 token,并在 97 万条 OpenX 机器人轨迹上训练。实验表明,它能够以远小于 RT-2-X 的参数规模获得有竞争力的跨机器人泛化性能;LoRA 与 int4 量化进一步降低了适配和部署门槛。
对于动作分块、扩散策略、流匹配动作头、双臂操作和时序建模研究,OpenVLA 提供了一个很适合继续改造的开源起点。
目录
2.1 Visually-Conditioned Language Models
2.3 Vision-Language-Action Models
3.1 Preliminaries: Vision-Language Models
3.2 OpenVLA Training Procedure
3.5 Infrastructure for Training and Inference
5.1 Direct Evaluations on Multiple Robot Platforms
5.2 Data-Efficient Adaptation to New Robot Setups
5.3 Parameter-Efficient Fine-Tuning
5.4 Memory-Efficient Inference via Quantization
B. Bridge 17 项任务样例(Figure 7)与原始水槽任务(Figure 8)
C. Google Robot 任务与详细结果(Figure 9 / Table 6)
D. 下游适配任务样例(Figure 10 / Figure 11)与详细分表(Table 7)
E. 参数高效微调细表(Table 8)与量化细表(Table 5 / Table 11)
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐
图1:OpenVLA 概览。 OpenVLA 是一个包含 70 亿参数的开源视觉—语言—动作模型。它在 Open X-Embodiment 数据集的 97 万条机器人轨迹上训练,能够直接根据图像观测和自然语言指令预测机器人动作。本文以下内容以论文原始章节为顺序进行中文翻译;引用框中的“我的理解”是额外解释,不属于论文原文。
图2:OpenVLA 模型结构。 输入是一张图像观测和一条语言指令,输出为 7 维机器人控制动作。结构包含三个关键部分:融合 DINOv2 与 SigLIP 特征的视觉编码器、把视觉特征映射到语言嵌入空间的投影器,以及 Llama 2 7B 语言模型骨干。动作反分词器把动作 token 还原为连续控制量。

图5:适配新机器人配置。





所有评论(0)