具身智能论文阅读:OpenVLA:An Open-Source Vision-Language-Action Model
Abstract
在大规模互联网视觉-语言数据与多样化机器人示范的组合上预训练的大型策略,有潜力改变我们教机器人新技能的方式:与其从零开始训练新行为,不如通过微调这些视觉-语言-动作(vision-language-action, VLA)模型,来获得稳健且可泛化的视觉运动控制策略。然而,VLA 在机器人领域的广泛应用仍面临挑战:1)现有的 VLA 大多是封闭的,公众无法访问;2)先前的工作未能探索高效微调 VLA 以适应新任务的方法,而这是实现广泛应用的关键环节。
针对这些挑战,我们提出了 OpenVLA,一款拥有 70 亿参数的开源 VLA,训练数据来自多样化的 97 万条真实机器人示范。OpenVLA 基于 Llama 2 语言模型,并结合视觉编码器,该编码器融合了 DINOv2 与 SigLIP 的预训练特征。得益于数据多样性的增加和新模型组件的引入,OpenVLA 在通用操控任务上表现出强劲性能:在 29 个任务和多种机器人实体上,其绝对任务成功率较封闭模型 RT-2-X(550 亿参数) 高出 16.5%,而参数量仅为其 1/7。
我们进一步展示了 OpenVLA 可被高效微调以适应新场景,尤其在多任务环境(涉及多个对象)中展现出强泛化能力与良好的语言理解能力,且相较于从零训练的表达式模仿学习方法(如 Diffusion Policy),任务成功率提升了 20.4%。此外,我们还探讨了计算效率问题;作为一项独立贡献,我们展示了 OpenVLA 可以通过现代低秩适配方法在消费级 GPU 上进行微调,并可通过量化进行高效部署,而不会影响下游任务的成功率。
最后,我们发布了模型检查点、微调笔记本以及 PyTorch 代码库,并内置对在 Open X-Embodiment 数据集上大规模训练 VLA 的支持。
introduction
机器人操控学习策略的一个关键弱点在于其无法超越训练数据进行泛化:尽管现有针对单项技能或语言指令训练的策略能够将行为外推到新的初始条件,例如物体位置或光照变化 [2, 3],但它们对场景干扰因素或新颖物体缺乏鲁棒性 [4, 5],且在执行未见过的任务指令时表现不佳 [6, 7]。然而,在机器人领域之外,现有的视觉与语言基础模型(foundation models),如 CLIP [8]、SigLIP [9] 和 Llama 2 [10],能够实现此类泛化能力,甚至更为广泛,这得益于它们在互联网规模预训练数据中所捕捉的先验信息。虽然在机器人领域重现这种规模的预训练仍然是一个未解决的挑战——即便是最大规模的机器人操控数据集 [1, 11] 也仅有 10 万到 100 万条示例——这种不平衡反而提供了一个机会:将现有视觉与语言基础模型作为核心模块,用于训练能够对训练数据之外的物体、场景和任务实现泛化的机器人策略。
认为大语言模型能力很强,用机器人操作数据集来进行微调,可以在保留大语言模型对物体,场景感知的基础上,获得对机器人的相关能力
为实现这一目标,已有工作探索了将预训练的语言模型和视觉-语言模型整合用于机器人表示学习 [12–14],并作为模块化系统中任务规划与执行的组件 [15, 16]。近期,这些模型也被用于直接学习视觉-语言-动作模型(vision-language-action, VLAs)[1, 7, 17, 18] 用于控制。VLA 为将预训练视觉与语言基础模型应用于机器人提供了直接实例,其核心方法是对视觉条件下的语言模型(visually-conditioned language models, VLMs),如 PaLI [19, 20],进行微调,以生成机器人控制动作。依托在互联网规模数据上训练的强大基础模型,诸如 RT-2 [7] 的 VLA 展现出令人印象深刻的鲁棒性,并能够泛化到新颖物体和任务,从而为通用机器人策略树立了新的标杆。
然而,现有 VLA 无法被广泛应用的原因主要有两个:1)当前模型 [1, 7, 17, 18] 是封闭的,对模型架构、训练流程及数据组合的透明度有限;2)现有工作未提供在新机器人、环境和任务上部署及适配 VLA 的最佳实践——尤其是在消费级硬件(如普通 GPU)上。我们认为,为了为未来研究与开发奠定坚实基础,机器人领域亟需开源的通用 VLA,以支持高效微调和适配,类似于现有开源语言模型生态系统 [21–24]。
为此,我们提出了 OpenVLA,一款拥有 70 亿参数的开源视觉-语言-动作模型(VLA),在通用机器人操控策略方面建立了新的最新技术水平(state of the art)。
OpenVLA 的核心由一个预训练的视觉条件语言模型(visually-conditioned language model)骨干构成,该模型能够在多个层次上捕捉视觉特征,并在来自 Open-X Embodiment 数据集 [1] 的 97 万条多样化机器人操控轨迹上进行微调。该数据集涵盖了广泛的机器人实体、任务类型与场景环境。
得益于数据多样性的增加和新模型组件的引入,OpenVLA 在性能上超越了拥有 550 亿参数的 RT-2-X 模型 [1, 7]——这一此前的最先进 VLA——在 WidowX 和 Google Robot 两种机器人平台上的 29 个评估任务中,OpenVLA 的绝对任务成功率提升了 16.5%。
此外,我们系统研究了 VLA 的高效微调策略,这是一项此前工作尚未探索的全新贡献,涵盖了 7 个多样化的操控任务,范围从物体抓取与放置到桌面清理等复杂行为。实验结果表明,微调后的 OpenVLA 策略显著优于同样经过微调的预训练策略模型(如 Octo [5])。与从零开始的扩散策略模仿学习方法(Diffusion Policies [3])相比,微调后的 OpenVLA 在多任务环境中——尤其是涉及多个物体并需要将语言与行为精确对应(language grounding)的任务中——表现出显著性能提升。
基于上述结果,我们首次验证了计算高效的微调方法在 VLA 领域的有效性:通过低秩适配(Low-Rank Adaptation, LoRA) [26] 和模型量化(Model Quantization) [27] 等技术,可以在消费级 GPU 上对 OpenVLA 模型进行适配和微调,而无需依赖大型服务器节点,且不会损失性能。
最后,作为我们工作的进一步贡献,我们将 所有模型、部署与微调笔记本(notebooks)以及 OpenVLA 代码库 全部开源,支持在大规模环境下训练 VLA 模型。我们期望这些资源能够推动未来研究,进一步探索与适配 VLA 在机器人领域的应用。
OpenVLA 采用了多个预训练模型组件,包括 SigLIP [9] 和 DINOv2 [25] 视觉编码器,以及 Llama 2 [10] 语言模型骨干。对于这三种模型,其权重均为开放获取,但其训练数据与代码并未公开。为此,我们在这些组件的基础上,发布了用于复现 OpenVLA 的训练数据、代码以及模型权重。
主要的贡献就是通过微调来适应VLA任务的可靠性
Related Work
Visually-Conditioned Language Models
视觉条件语言模型(Visually-Conditioned Language Models, VLMs) 是在互联网规模的数据上训练的模型,旨在根据输入图像及语言提示生成自然语言。这类模型已被广泛应用于多种任务,从视觉问答(Visual Question Answering)[28–31] 到目标定位(Object Localization)[32, 33]。
推动近年来 VLM 发展的关键进展之一,是其模型架构能够连接预训练视觉编码器 [8, 9, 25] 与预训练语言模型 [10, 23, 34–36] 的特征,从而直接利用计算机视觉与自然语言建模领域的最新成果,构建功能强大的多模态模型。早期研究探索了多种视觉与语言特征之间的交叉注意力(cross-attention)架构 [37–41],而最新的开源 VLM [20, 42–44] 则逐渐收敛为一种更为简洁的“patch-as-token”方法:在该方法中,来自预训练视觉 Transformer 的图像块(patch)特征被视为语言模型的输入 token,并被投影到语言模型的输入空间中。这种简化的设计使得利用现有大规模语言模型训练工具来训练 VLM 成为可能。
在本研究中,我们采用这些工具来实现 VLA 的可扩展训练(scalable training),并特别使用 Karamcheti 等人 [44] 提出的 VLM 作为我们的预训练骨干模型。该模型融合了来自 DINOv2 [25] 的低层空间信息与 SigLIP [9] 的高层语义信息,从而增强了视觉泛化能力。
Generalist Robot Policies
近年来,机器人学研究逐渐呈现出一种趋势,即在大规模、多样化的机器人数据集上 [1, 2, 6, 11, 45, 49–56] 训练多任务“通用型”机器人策略(generalist robot policies) [2, 6, 45–49],以实现跨多种机器人形态(embodiments)的统一控制 [1, 5, 53, 57–66]。其中值得关注的是 Octo [5],该模型训练了一种可直接控制多种机器人且支持灵活微调以适配新机器人配置的通用策略。
然而,这些方法与 OpenVLA 之间存在一个关键区别——模型架构(model architecture)。以 Octo 为代表的先前工作通常将预训练组件(如语言嵌入或视觉编码器)与从零初始化的额外模块进行组合 [2, 5, 6],并在策略训练过程中学习如何将这些组件“拼接(stitch)”在一起。与此不同,OpenVLA 采用了一种更加端到端(end-to-end)的设计思路,直接对视觉条件语言模型(VLM)进行微调,使其能够通过将机器人动作视为语言模型词汇表中的“token”来生成控制动作。
实验结果表明,这一简洁而可扩展的训练流程(pipeline在性能与泛化能力上均显著优于以往的通用策略模型。
end2end
Vision-Language-Action Models
已有大量研究探索了 视觉条件语言模型(VLMs) 在机器人领域的应用,例如用于视觉状态表示 [12, 13]、目标检测 [67]、高层规划 [16],以及提供反馈信号 [68–71]。
另一些工作将 VLMs 直接整合到端到端的视觉运动操控策略(visuomotor manipulation policies) 中 [14, 15],但这类方法往往在策略架构中引入了复杂的结构约束,或依赖经过标定的相机系统(calibrated cameras),从而限制了其实际应用范围。
近期有多项研究采用了与我们类似的思路,直接微调大型预训练 VLM 来预测机器人动作 [1, 7, 17, 18, 72–74]。这类模型通常被称为 视觉-语言-动作模型(Vision-Language-Action Models, VLAs),因为它们将机器人控制动作直接融合进 VLM 的骨干网络中。该设计具有以下三个主要优势:
(1) 它能够在大规模互联网视觉-语言数据集上实现预训练视觉与语言组件的有效对齐;
(2) 其采用的通用架构并非为机器人控制专门定制,因此可直接利用现代 VLM 训练所依托的可扩展基础设施(scalable infrastructure) [75–77],从而以最少的代码修改实现数十亿参数级别的策略模型训练;
(3) 它为机器人领域直接受益于 VLM 的快速进展提供了路径。
现有 VLA 研究大多集中于单一机器人或仿真环境的训练与评估 [72–74, 78],因此缺乏泛化能力;或者模型是封闭的,无法高效微调以适应新的机器人配置 [1, 7, 17, 18]。
与我们工作最为相关的是 RT-2-X [1],该模型在 Open X-Embodiment 数据集上训练了一个拥有 550 亿参数 的视觉-语言-动作(VLA)策略,并展现了当前最先进的通用操控性能。
然而,我们的研究在多个关键方面与 RT-2-X 存在显著差异:
(1) OpenVLA 结合了一个强大的开源 VLM 骨干网络与更丰富的机器人预训练数据集,在实验中表现优于 RT-2-X,同时模型规模仅为其一个数量级;
(2) 我们系统地研究了 OpenVLA 模型在新目标环境中的微调方法,而 RT-2-X 并未探讨这一设定;
(3) 我们首次在 VLA 领域验证了现代参数高效微调(parameter-efficient fine-tuning)与模型量化(quantization)方法的有效性;
(4) OpenVLA 是首个完全开源的通用型 VLA,从而支持未来在 VLA 训练、数据组合(data mixtures)、目标函数设计(objectives)以及推理(inference) 等方面的研究与拓展。
The OpenVLA Model
我们介绍了 OpenVLA 模型,这是一种拥有 70 亿参数的视觉-语言-行动模型(Vision-Language-Action,VLA),在 Open X-Embodiment 数据集 [1] 上利用 97 万条机器人示教数据进行训练。
目前在 VLA 模型的研发中,仍存在许多尚未深入探索的问题,例如:
— 哪种模型骨干结构(backbone)最适合?
— 哪些数据集最有效?
— 训练时应采用哪些超参数?
在本节中,我们将详细阐述 OpenVLA 的开发方法 并总结主要经验。具体来说:
- 我们首先简要介绍现代 视觉语言模型(VLM),它是 OpenVLA 的核心骨干(第 3.1 节);
- 接着说明我们的 基本训练流程与数据集(第 3.2 和 3.3 节);
- 然后讨论一些 关键的设计决策(第 3.4 节);
- 最后介绍用于 训练与推理的基础设施(第 3.5 节)。
这种分层式介绍旨在帮助厘清我们在设计和训练 OpenVLA 时的核心理念与技术路线。
Preliminaries: Vision-Language Models
大多数现代视觉语言模型(VLMs) [20, 42–44] 的架构主要由三个部分组成(见图 2):
(1) 视觉编码器(visual encoder),用于将输入图像映射为若干个“图像补丁嵌入”(image patch embeddings);
(2) 投影器(projector),用于接收视觉编码器输出的嵌入向量,并将其映射到语言模型的输入空间中;
(3) 大型语言模型骨干(LLM backbone)。
在 VLM 的训练过程中,模型通过端到端方式进行训练,优化目标为 下一个文本标记预测(next text token prediction),训练数据来源于从互联网上精心筛选的 配对或交错的视觉与语言数据。
在本研究中,我们基于 Prismatic-7B VLM [44] 构建模型。
Prismatic 遵循上述标准架构,由以下三部分组成:一个拥有 6 亿参数的视觉编码器、一个 两层 MLP 投影器,以及一个 拥有 70 亿参数的 Llama 2 语言模型骨干 [10]。
值得注意的是,Prismatic 采用了 双分支视觉编码器结构,由 预训练的 SigLIP [79] 和 DinoV2 [25] 模型 共同组成。输入图像补丁分别通过这两个编码器进行处理,然后将得到的特征向量在通道维度上进行拼接。
与更常用的 CLIP- 或仅使用 SigLIP 的视觉编码器 相比,加入 DinoV2 特征被证明能够显著提升模型的 空间推理能力 [44],这一特性对机器人控制任务尤为有利。
SigLIP、DinoV2 和 Llama 2 均未公开其训练数据的详细信息,但这些数据很可能分别包含 数万亿级别的互联网来源图文对、纯图像数据以及纯文本数据。
Prismatic VLM 在这些组件的基础上,使用 LLaVA 1.5 数据混合集(data mixture) [43] 进行微调。该数据集共包含约 100 万条 来自开源数据集 [29, 42, 81–83] 的 图文配对样本和纯文本样本。
Prismatic-7B VLM [44] 构建模型 ,双分支视觉编码器结构,由 预训练的 SigLIP [79] 和 DinoV2 [25] 模型 共同组成,入 DinoV2 特征被证明能够显著提升模型的 空间推理能力 [44],这一特性对机器人控制任务尤为有利
OpenVLA Training Procedure
为了训练 OpenVLA,我们在 预训练的 Prismatic-7B VLM 骨干网络上进行微调,以实现机器人动作预测(见图 2)。
我们将动作预测问题形式化为一个 “视觉–语言”任务:输入为一张观测图像与一条自然语言任务指令,输出为一串预测的机器人动作序列 [7]。
为了使 VLM 的语言模型骨干能够生成机器人动作,我们将连续的机器人动作映射为语言模型词表中的离散标记(tokens),从而在 LLM 的输出空间中表达动作。
借鉴 Brohan 等人 [7] 的方法,我们将机器人动作的每个维度分别离散化为 256 个区间(bins)。
对于每个动作维度,我们将区间宽度设置为均匀划分训练数据中动作在第 1 个百分位(1st quantile) 与第 99 个百分位(99th quantile) 之间的范围。
与 Brohan 等人 [7] 使用的 最小–最大值范围(min–max bounds) 不同,采用分位数的方式可以有效忽略数据中的异常动作值(outliers),避免这些极端样本拉大离散化区间,从而提升动作离散化的有效精度(granularity)。
通过这种离散化处理,我们可以为一个 N 维机器人动作 获得 N 个离散整数值(∈ [0 … 255])。
然而,OpenVLA 的语言模型骨干所使用的 Llama tokenizer [10] 仅预留了 100 个“特殊标记”(special tokens)供微调过程中新增使用,这不足以容纳动作离散化所需的 256 个标记。
为了解决这一问题,我们遵循 Brohan 等人 [7] 的简洁方案:
直接用 256 个最少使用的标记(即词表最后 256 个标记)覆盖 Llama tokenizer 的原始词汇表,将其替换为我们的动作标记。
在动作被处理为一串标记后,OpenVLA 采用标准的 下一个标记预测(next-token prediction)目标进行训练,
仅对预测的动作标记计算 交叉熵损失(cross-entropy loss)。
我们将在 第 3.4 节 中详细讨论实现此训练过程的关键设计决策。
接下来,我们将介绍用于 OpenVLA 训练的机器人数据集。
解释原理:OpenVLA 将机器人动作预测任务设计为一种视觉-语言任务。模型的输入包括一张观测图像和一条自然语言任务指令,输出则是一串表示机器人动作的序列。由于语言模型本身只能处理离散的 token,因此连续的机器人动作需要先被离散化为整数 token,从而与语言模型的词表对应。
首先,对机器人动作空间中的每一个维度进行离散化处理。离散化的核心思想是将每个动作维度的连续值划分为 256 个离散区间(bins),区间范围由训练数据中该动作维度的第 1% 到第 99% 分位数确定。这种方式能够忽略极端异常值,避免将离散化区间无限拉大,从而保证动作编码的精度。离散化后,每个维度得到一个整数,取值范围在 0 到 255 之间。对于 N 维动作向量,最终得到 N 个离散整数。接下来,将离散动作映射到语言模型的词表 token。OpenVLA 使用 Llama tokenizer 作为语言模型的词表,原始词表中预留了 100 个特殊 token,用于微调时引入新 token,但动作离散化需要 256 个 token。为解决这一问题,OpenVLA 将 Llama tokenizer 词表中使用频率最低的 256 个 token(通常在词表末尾)覆盖为动作 token,并与离散化整数一一对应。这样,每个离散化的动作整数都对应一个唯一的 token,例如离散值 77 对应 token_77,154 对应 token_154,依此类推。在训练过程中,图像和任务指令首先被输入到 VLM(视觉-语言模型),通过视觉编码器和语言编码器融合生成上下文表示。LLM 通过上下文信息逐步预测动作 token 序列,训练目标为标准的下一个 token 预测(next-token prediction),仅对动作 token 计算交叉熵损失。训练完成后,模型可以在给定图像和任务指令的情况下生成动作 token 序列。在推理阶段,生成的动作 token 再映射回原来的离散区间,并进一步解码为连续动作值,从而得到可供机器人执行的动作信号。例如,生成的 token_77 被映射回 x 维度动作值 0.3,token_154 被映射回 y 维度动作值 0.6,token_51 对应 z 维动作值 0.2,token_230 对应 gripper 夹爪开合 0.9。这样,机器人便可以执行抓取、移动、放置等连续动作。整个流程实现了从连续动作到离散 token 再回到连续动作的闭环,使视觉信息和语言指令能够直接驱动机器人动作生成。该设计不仅保证了端到端训练的可行性,也使离散化动作能够充分利用语言模型的生成能力,实现复杂任务的动作预测和控制。
Training Data
构建 OpenVLA 训练数据集的目标是覆盖大量多样化的机器人实体、场景和任务。这能够使最终模型在训练完成后能够直接控制多种机器人,并支持对新机器人配置的高效微调。我们以 Open X-Embodiment 数据集 [1](简称 OpenX)作为基础来策划训练数据集。在撰写本文时,完整的 OpenX 数据集包含超过 70 个独立的机器人子数据集,以及超过 200 万条机器人轨迹,这些数据通过社区的大规模协作被整合为统一且易于使用的数据格式。为了使在该数据上进行训练变得可行,我们对原始数据集进行了多步数据整理。
数据整理的目标是确保:(1)所有训练数据集之间具有一致的输入输出空间;(2)最终训练混合数据在机器人实体、任务和场景上保持均衡。针对第一个目标,我们遵循 [1, 5] 的方法,将训练数据集限制为仅包含至少带有一台第三人称相机的操作数据集,并使用单臂末端执行器控制。针对第二个目标,我们借鉴 Octo [5] 的数据混合权重,对通过第一轮筛选的数据集进行处理。Octo 采用启发式方法,对多样性较低的数据集进行降权或移除,对任务和场景多样性较大的数据集进行加权;具体细节可参见 Octo Model Team 等人 [5]。
此外,我们尝试将自 Octo 发布以来新增的一些数据集纳入训练混合中,包括 DROID 数据集 [11],但混合权重设定较为保守,仅为 10%。实际上,我们发现 DROID 上的动作 token 准确率在整个训练过程中保持较低水平,这表明在未来可能需要更高的混合权重或更大的模型来适应其多样性。为了不影响最终模型的质量,我们在训练的最后三分之一阶段将 DROID 从数据混合中移除。所使用的数据集和混合权重的完整概览可参见附录 A。
OpenVLA Design Decisions
在开发 OpenVLA 模型的过程中,我们在正式开始最终模型训练之前,在小规模实验中探索了多种设计决策。具体而言,我们在初步实验中使用 BridgeData V2 [6] 对 OpenVLA 模型进行训练和评估,而不是直接在完整的 OpenX 混合数据集上训练,以提高迭代速度并降低计算成本。我们在这些探索中获得的关键经验总结如下。
VLM Backbone.
最初,我们尝试了多种 VLM 骨干模型。除了 Prismatic [44] 外,我们还测试了将 IDEFICS-1 [84] 和 LLaVA [85] 微调用于机器人动作预测的效果。实验发现,在场景中仅有一个物体的任务中,LLaVA 与 IDEFICS-1 的表现相当,但在涉及多个物体且策略需要操纵正确物体(即语言指令中指定的物体)的任务中,LLaVA 展现了更强的语言对齐能力。具体而言,在 BridgeData V2 的水槽环境中,五个语言对齐任务的平均绝对成功率上,LLaVA 相比 IDEFICS-1 提高了 35%。经过微调的 Prismatic VLM 策略在性能上进一步提升,在简单单物体任务以及多物体语言对齐任务中,绝对成功率大约比 LLaVA 高 10%。我们将这一性能差异归因于融合了 SigLIP-DinoV2 骨干带来的空间推理能力增强(见 3.1 节)。除了性能提升外,Prismatic 还提供了模块化且易于使用的代码库,因此我们最终选择它作为 OpenVLA 模型的骨干。
Image Resolution.
输入图像的分辨率对 VLA 训练的计算需求有显著影响,因为更高分辨率的图像会生成更多的图像 patch token,从而导致更长的上下文序列,这会使训练计算量呈平方增长。我们比较了使用 224×224 像素和 384×384 像素输入的 VLA,但在评估中未观察到性能差异,而 384×384 的训练时间大约是前者的三倍。因此,我们最终选择将 OpenVLA 模型的输入分辨率设置为 224×224 像素。需要注意的是,在许多 VLM 基准测试中,提高分辨率确实可以提升性能 [44, 86, 87],但在 VLA 上我们暂未观察到这一趋势。
Fine-Tuning Vision Encoder.
以往关于 VLM 的研究发现,在 VLM 训练过程中冻结视觉编码器通常会获得更高的性能 [44]。直观上,冻结的视觉编码器可以更好地保留其在互联网规模预训练中学到的稳健特征。然而,我们发现,在 VLA 训练过程中对视觉编码器进行微调对于获得良好的 VLA 性能至关重要。我们假设,预训练的视觉骨干可能无法捕捉到场景中关键部分的足够精细的空间细节,从而无法支持精确的机器人控制。
Training Epochs.
典型的 LLM 或 VLM 训练通常只会对训练数据集进行一到两个 epoch 的迭代。相比之下,我们发现对于 VLA 的训练,需要对训练数据集进行更多次迭代,实际机器人性能会随着训练的进行不断提升,直到动作 token 的预测准确率超过 95%。我们的最终训练过程对训练数据集总共完成了 27 个 epoch。
learning rate
我们在 VLA 训练中对学习率进行了多个数量级的搜索,最终发现使用固定学习率 2e-5 可以获得最佳效果(该学习率与 VLM 预训练时使用的学习率相同 [44])。我们没有发现学习率预热(learning rate warmup)能够带来额外收益。
Infrastructure for Training and Inference
最终的 OpenVLA 模型在一个由 64 块 A100 GPU 组成的集群上训练了 14 天,总计约 21,500 A100 小时,使用的批量大小为 2048。在推理阶段,当以 bfloat16 精度加载(即未量化)时,OpenVLA 需要约 15GB 的 GPU 显存,并且在单块 NVIDIA RTX 4090 GPU 上运行速度约为 6Hz(未使用编译、推测性解码或其他加速推理技巧)。通过量化,我们可以进一步降低 OpenVLA 在推理时的显存占用,同时在实际机器人任务中不影响性能,如第 5.4 节所示。我们在图 6 中报告了 OpenVLA 在多种消费级和服务器级 GPU 上的推理速度。为了方便使用,我们实现了一个远程 VLA 推理服务器,可以将动作预测实时流式传输到机器人,从而无需依赖高性能本地计算设备来控制机器人。我们在开源代码发布中提供了该远程推理解决方案(见第 4 节)。
The OpenVLA Codebase
我们随模型一同发布了 OpenVLA 代码库,这是一个模块化的 PyTorch 代码库,用于训练 VLA 模型(参见 https://openvla.github.io)。该代码库支持从在单块 GPU 上微调 VLA,到在多节点 GPU 集群上训练数十亿参数的 VLA,并兼容现代大型 Transformer 模型训练技术,如自动混合精度(AMP,PyTorch [75])、FlashAttention [76] 以及完全分片数据并行(FSDP,Zhao 等 [77])。开箱即用时,OpenVLA 代码库对 Open X 数据集的训练提供了完整支持,可与 HuggingFace [21] 的 AutoModel 类集成,并支持 LoRA 微调 [26] 以及量化模型推理 [27, 88]。
Experiments
我们实验评估的目标是测试 OpenVLA 是否能够作为一个强大的多机器人通用控制策略“开箱即用”,同时验证其作为新机器人任务微调的良好初始化能力。具体而言,我们旨在回答以下几个问题:
- 当在多种机器人和多类型泛化任务上进行评估时,OpenVLA 相较于以往的通用机器人策略表现如何?
- OpenVLA 是否能够在新的机器人配置和任务上实现有效的微调?其性能与当前最先进的数据高效模仿学习方法相比如何?
- 我们是否可以通过参数高效微调与模型量化来降低 OpenVLA 在训练与推理中的计算需求,从而提升其可用性?在性能与计算开销之间的权衡关系如何?
Direct Evaluations on Multiple Robot Platforms
Robot Setups and Tasks.
我们在两种机器人形态上对 OpenVLA 的“开箱即用”性能进行了评估:来自 BridgeData V2 评测的 WidowX 机械臂(见图 1 左)以及用于 RT-1 和 RT-2 评测的移动操作机器人(“Google robot”,见图 1 中)。这两种平台在以往的研究中均被广泛用于通用机器人策略的性能验证 [1, 2, 5, 7]。
在每个环境中,我们定义了一系列覆盖多种泛化维度的评测任务,包括:
- 视觉泛化(未见过的背景、干扰物体、物体的颜色与外观变化);
- 运动泛化(未见过的物体位置或朝向);
- 物理泛化(未见过的物体尺寸或形状);
- 语义泛化(未见过的目标物体、指令或来自互联网的新概念)。
此外,我们还评估了模型在多物体场景中的语言条件控制能力,即策略能否根据语言指令精确操控目标物体。BridgeData V2 和 Google robot 评测任务的示例图分别见图 3 与图 4 的底部。
总体而言,在 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(参数量 3500 万)和 Octo(参数量 9300 万)均为从头在 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,充分展示了大规模、互联网预训练的视觉-语言模型在机器人任务中的显著优势。
值得注意的是,OpenVLA 在 Google robot 的评测中与 RT-2-X 表现相当,而在 BridgeData V2 的评测中则显著优于 RT-2-X,尽管其参数规模小了一个数量级(7B 对比 55B)。
从定性表现来看,我们发现 RT-2-X 和 OpenVLA 均展现出明显更为稳健的控制行为。例如,当场景中存在干扰物体时,这两个模型都能准确接近目标物体;在操控过程中能正确调整机械臂末端执行器的姿态,使其与目标物体的方向对齐;甚至在出现轻微抓取错误(如夹取不牢)后,也能主动调整并自我纠正动作。相关定性 rollout 示例可参见项目主页(https://openvla.github.io)。
在语义泛化任务上,RT-2-X 的表现略高(见图 3),这与其模型训练策略有关。RT-2-X 使用了更大规模的互联网预训练数据,并且在微调时同时使用了机器人动作数据与互联网语言-视觉数据进行联合微调(co-finetuning),从而更好地保留了预训练阶段获得的语义知识。相比之下,OpenVLA 仅在机器人数据上进行微调,因此在语义泛化任务上略逊一筹。
然而,在 BridgeData V2 和 Google robot 的其余任务类别中,OpenVLA 的表现总体上与 RT-2-X 相当甚至更优。这种性能差异主要可以归因于以下几个方面:
- 更大规模的训练数据:OpenVLA 使用了约 97 万条机器人轨迹(相比之下,RT-2-X 仅使用约 35 万条)。
- 更严格的数据清洗与筛选:例如,在 Bridge 数据集中,我们过滤掉了所有“全零动作”的无效样本(详见附录 C)。
- 更强的视觉编码结构:OpenVLA 采用了融合式视觉编码器(fused vision encoder),结合了语义特征与空间特征的预训练模型,以提升对场景细节的理解与空间推理能力。
这些关键设计的消融分析详见附录 D。
Data-Efficient Adaptation to New Robot Setups
以往的研究主要集中在直接评估 VLA 模型的“即开即用(out-of-the-box)”性能 [1, 7, 16],而如何有效地将 VLA 模型微调(fine-tune)到新任务和新机器人系统这一问题却鲜有探讨。然而,这恰恰是 VLA 模型能否被广泛应用的关键所在。本节我们研究了 OpenVLA 在真实世界机器人平台上快速适应新任务的能力。(关于仿真环境中的微调实验,请参见附录 E。)
机器人设置与任务
我们为 OpenVLA 设计了一种简单的微调方案:对模型的全部参数进行完全微调(full fine-tuning),使用包含 10–150 条目标任务演示数据的小规模数据集(见图 5)。
此外,我们在两种不同的机器人配置上测试了该方案:
- Franka-Tabletop:固定式桌面安装的 Franka Emika Panda 七自由度机械臂;
- Franka-DROID:来自最新发布的 DROID 数据集 [11] 的 Franka 机械臂配置,安装在可移动升降桌上。
这两种设置的控制频率分别为 5Hz 和 15Hz(均为非阻塞控制器)。我们选择 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。
- 然而,在更复杂的微调任务中(例如涉及多个物体、需要理解语言指令的场景),预训练的通用策略模型(Octo 和 OpenVLA)表现显著更优。
这种差异的根本原因在于:OpenX 的大规模预训练使得 Octo 和 OpenVLA 在面对多样化、语言驱动的任务时具有更强的泛化能力。
从对照实验中我们也可以看到证据:OpenVLA (scratch) 的表现明显较差,说明缺乏预训练的模型在语言和多物体场景中难以快速适应。
总体结论
总体而言,OpenVLA 在平均性能上取得了最高结果。值得注意的是,以往的大多数方法通常只能在单一类型的任务(要么是狭义的单指令任务,要么是多样化的多指令任务)中表现突出,成功率差异较大。而 OpenVLA 是唯一在所有测试任务中都能保持至少 50% 成功率的模型,这表明它可以作为模仿学习任务中的强大默认基线,尤其适用于包含多样语言指令的任务。
不过,对于一些狭义但需要高精度操控的任务,Diffusion Policy 依然展现出更平滑、更精准的动作轨迹。未来工作可以考虑将 Diffusion Policy 中的**动作分块(action chunking)和时间平滑(temporal smoothing)**机制引入 OpenVLA,以进一步提升其精细操作能力。相关讨论详见第 6 节“当前局限性分析”。
这段文字描述了 Diffusion Policy(扩散策略) 在机器人控制中的结构与控制机制,主要包括输入特征、预测方式以及与其他方法的对比。以下是具体的梳理与细化说明:
总体结构与控制原理
完整版本的 Diffusion Policy 采用了 两步观测历史机制,即模型不仅接收当前时刻的观测,还结合前一时刻的信息进行决策。输入包括两个主要部分:
第一,视觉输入(即来自相机的图像);
第二,机器人自身的 本体状态(proprioceptive state),例如关节角度、末端执行器位置、力反馈等。这种结合使模型在生成动作时同时具备外部环境理解和自身运动状态感知能力。
在控制策略上,它采用了 滚动时域控制(Receding Horizon Control, RHC)。模型一次性预测一段长度为 T 的未来动作序列(称为一个动作块),然后只执行前 X 个动作,再根据新的观测重新预测下一个动作块。这种方式可以在短时范围内实现开环控制,同时保持对长时序任务的灵活规划。
在实验设置中,控制频率不同对应的动作块参数不同:
当控制频率为 15Hz 时,设置 T=16,X=8;
当控制频率为 5Hz 时,设置 T=8,X=3。
这意味着在高频控制下,模型每次预测更长的未来动作,以维持控制的平滑性,而在低频控制下,动作块相应缩短以减少延迟。
动作预测方式
该方法是文中第 5.2 节所有比较模型中唯一直接预测绝对笛卡尔坐标(absolute Cartesian coordinates) 来控制机械臂的方式。
这意味着模型输出的动作直接对应于机器人末端执行器在三维空间中的目标位置,而不是相对于当前状态的位移(relative position)。这种设计使其在复杂路径规划中能保持对绝对空间结构的全局一致性。
Diffusion Policy(matched) 的对比版本
Diffusion Policy 的对照版本(称为 matched 版本)进行了若干简化:
它仅使用单张图像作为输入,没有本体感知信息,也没有观测历史,因而不具备时间或状态连续性的记忆能力。
此外,它只预测一个相对位姿控制动作(relative position control action),而不是动作序列,也不采用动作块的滚动预测。这使得它的控制方式更加局部化和单步化,无法像完整版本那样进行前瞻性规划。
总结
完整的 Diffusion Policy 通过将时间上下文(历史观测)、多模态输入(视觉 + 本体状态)与动作块式的滚动控制相结合,实现了对机器人连续任务的稳定控制和高精度动作生成。而简化版则退化为仅基于单帧视觉的单步相对控制,缺乏时序一致性和全局空间感知能力。
Parameter-Efficient Fine-Tuning
完整微调(fine-tuning)的 OpenVLA 在上一节的实验中使用了 8 张 A100 GPU,每个任务耗时约 5–15 小时(具体取决于数据集规模),即可达到较高的性能。尽管这相比于 VLA 的预训练阶段所需计算量已经显著减少,但在本节中,我们进一步探索了更高计算效率与参数效率的微调方法,并对其有效性进行了研究。
具体而言,我们比较了以下几种微调策略:
Full fine-tuning(全量微调):在微调过程中更新模型的全部参数,如第 5.2 节所述;
Last layer only(仅最后层微调):仅微调 OpenVLA Transformer 主干网络的最后一层以及词嵌入矩阵;
Frozen vision(冻结视觉编码器):在微调时冻结视觉编码器参数,仅更新其他部分;
Sandwich fine-tuning(夹层式微调):解冻视觉编码器、词嵌入矩阵以及最后一层,其余部分保持冻结;
LoRA(低秩适配):采用 Hu 等人 [26] 提出的低秩适配(Low-Rank Adaptation)方法,在模型的所有线性层中引入可学习的低秩更新,并设置多个秩值 ( r ) 进行比较。
我们在多个 Franka-Tabletop 任务上报告了这些方法的微调成功率,同时在表 1 中给出了各方法对应的训练参数量和 GPU 显存占用情况。
实验结果表明,仅微调网络的最后一层或冻结视觉编码器都会导致性能显著下降,这说明视觉特征需要根据目标场景进一步适配。相比之下,“夹层式微调” 由于同时微调了视觉编码器,因此取得了更好的性能;并且由于主干语言模型未完全更新,其显存消耗更低。
最后,LoRA 方法 在性能与显存占用之间实现了最佳平衡。它在仅微调 1.4% 参数的情况下,性能可与全量微调相当,并且优于“夹层式微调”。此外,我们发现 LoRA 的秩 ( r ) 对策略性能影响极小,因此推荐默认使用 ( r = 32 )。借助 LoRA,我们能够在单张 A100 GPU 上于 10–15 小时内完成 OpenVLA 的新任务微调——相较于全量微调,计算需求减少约 8 倍。

非常好的问题 👍。
我们来仔细看这张表中的 VRAM (batch 16) 一列,它标注了训练时的显存占用情况。
表中有一行脚注写着:
“*: Sharded across 2 GPUs with FSDP [77].”
这句话的意思是:
带星号(*)的显存数据,是在 使用 FSDP(Fully Sharded Data Parallel,全分片并行)并行到两张 GPU 上 时测得的。
🧠 换句话说:
| 策略 | VRAM 占用 | 使用 GPU 数量 | 实际每张 A100 显存占用 |
|---|---|---|---|
| Full FT | 163.3 GB * | 2 张 A100 | ≈ 81.6 GB / GPU |
| Frozen vision | 156.2 GB * | 2 张 A100 | ≈ 78.1 GB / GPU |
| Last layer only | 51.4 GB | 1 张 A100 | ≈ 51.4 GB / GPU |
| Sandwich | 64.0 GB | 1 张 A100 | ≈ 64.0 GB / GPU |
| LoRA (rank = 32) | 59.7 GB | 1 张 A100 | ≈ 59.7 GB / GPU |
| LoRA (rank = 64) | 60.5 GB | 1 张 A100 | ≈ 60.5 GB / GPU |
✅ 结论:
- 全量微调(Full FT)和冻结视觉编码器(Frozen vision):
使用 2 张 A100 GPU,每张约占用 80 GB 显存。
→ 说明这些实验是在 80GB 版 A100(A100 80GB) 上进行的。 - LoRA、Sandwich、Last-layer-only 微调:
都是在 单张 A100(80GB) 上完成的。- LoRA 约占 60GB 显存。
- Sandwich 约占 64GB。
- Last-layer-only 最轻,仅 51GB。
因此:
🔹 全量微调:需要 2 张 A100 (80GB)
🔹 LoRA 微调:只需 1 张 A100 (80GB),且显存占用不到 60 GB。
这也印证了文中提到的结论:
“With LoRA, we can fine-tune OpenVLA on a new task within 10–15 hours on a single A100 GPU – an 8× reduction in compute compared to full fine-tuning.”
Memory-Efficient Inference via Quantization
OpenVLA 是一个拥有 70 亿参数的模型,其推理阶段的显存占用量高于此前的开源通用机器人策略模型,如参数量不足 1 亿的 Octo。为降低显存开销,我们遵循大语言模型(LLM)推理的最佳实践,在推理阶段以 bfloat16 精度 保存并加载 OpenVLA(作为默认方式),从而将显存占用减半,使其能够在仅配备 16GB 显存的 GPU 上运行。
在本节中,我们进一步探讨是否可以通过采用近年来为大语言模型推理所开发的现代量化技术 [27, 88],进一步降低推理所需显存,从而提升 VLA 策略模型的可访问性。这些方法通过以更低的数值精度加载网络权重,在显存占用减少的同时,可能带来推理速度或精度的下降。
具体而言,我们在 8 个具有代表性的 BridgeData V2 任务上测试了以 8 位 和 4 位精度 部署 OpenVLA 的效果,并在 表 2 中报告了显存占用与推理性能结果,同时在 图 6 中展示了不同消费级与服务器级 GPU 上的可实现控制频率。
实验结果表明,8 位量化在多数 GPU 上导致推理速度下降,主要由于额外的量化运算开销所致;而 4 位推理 则获得了更高的吞吐率,因为显存传输量的减少抵消了量化带来的额外计算成本。
由于推理速度降低,8 位量化模型的性能出现明显下滑:在用于评估的 A5000 GPU 上,其运行频率仅为 1.2Hz,与 BridgeData V2 任务中所使用的 5Hz 非阻塞控制器 的动态特性存在显著差异。
值得注意的是,4 位量化模型 在显存占用不到一半的情况下,仍能保持与 bfloat16 半精度推理 近乎相同的性能。此外,4 位量化模型可在 A5000 上以 3Hz 运行,更接近训练数据采集时的系统动态特性。
Discussion and Limitations
在本工作中,我们提出了 OpenVLA,一种最先进的开源视觉-语言-动作(Vision-Language-Action, VLA)模型,该模型在跨载体机器人控制任务中能够直接获得出色性能。我们还展示了 OpenVLA 可以通过参数高效微调(parameter-efficient fine-tuning)方法,轻松适配新的机器人平台。
目前的 OpenVLA 模型存在一些限制。首先,它目前仅支持单张图像观测。在现实世界中,机器人环境是高度异质的,可能包含多种类型的感知输入 [5]。将 OpenVLA 扩展为支持多张图像、固有感知(proprioceptive)输入以及观测历史,是未来工作的重要方向。探索在交错的图像和文本数据上预训练的视觉语言模型(VLM)可能有助于实现这种灵活输入的 VLA 微调。
其次,提高 OpenVLA 的推理吞吐量对于实现高频率控制(如以 50Hz 运行的 ALOHA [90])的 VLA 控制至关重要。这也将使得在比本工作中研究的更复杂、双手操作的任务上测试 VLA 成为可能。探索动作分块(action chunking)或其他推理时优化技术(如推测解码 speculative decoding [91])可能提供潜在解决方案。
此外,OpenVLA 的性能仍有提升空间。虽然 OpenVLA 的表现优于现有通用策略,但在所测试任务上的可靠性尚未达到很高水平,通常成功率低于 90%。
最后,由于计算资源的限制,许多 VLA 设计问题仍未得到充分探索:基础 VLM 的规模对 VLA 性能有何影响?在机器人动作预测数据与互联网规模视觉语言数据上进行联合训练是否能显著提升 VLA 性能?哪些视觉特征最适合 VLA 模型?我们希望通过发布 OpenVLA 模型和代码库,能够让社区共同探索这些问题。