OpenVLA:开源的视觉-语言-动作模型

news2025/5/11 20:42:42

1. 简介

让我们先来介绍一下什么是OpenVLA,在这里:
https://openvla.github.io/
可以看到他们的论文、数据、模型。
在这里插入图片描述OpenVLA 是一个拥有 70亿参数开源 **视觉-语言-动作(VLA)**模型。它是在 Open X-Embodiment 数据集 中的 97万个 机器人执行任务或学习过程的数据记录(episodes) 上训练得到的。

每个 episode 是一个机器人从“接收任务”到“完成任务”的完整记录,包含了视觉画面、语言指令、动作反馈等。

Open X-Embodiment dataset 是一个由多个实验室联合构建的开源大规模机器人数据集。提供来自多种不同类型机器人、大量任务的数据,非常适合训练通用机器人模型。

OpenVLA 在通用机器人操作策略方面设立了新的业界标杆。它能够直接控制多种机器人,并且可以通过对模型的一小部分参数进行训练,就可以让它适应新的任务或机器人。

OpenVLA 的模型权重和基于 PyTorch训练流程都是完全开源的,用户可以通过 HuggingFace 平台下载并进行微调

一句话说明:OpenVLA 是一个强大的开源AI模型,能让机器人“看懂画面 + 听懂指令 + 做出动作”,并能快速适配多种任务和机器人,是未来通用机器人智能的重要一步。

2. 摘要

基于互联网上大规模视觉-语言数据和多样化机器人演示预训练的大模型,有可能彻底改变我们教授机器人新技能的方式:不再需要从零训练新行为,而是可以通过微调一些模型参数就能执行新任务类似 GPT 不用重训,只需给点新例子就会写出新东西。

但是因为缺乏高效微调的研究方法而且大多闭源(Google 的 RT 系列),导致不知道如何适配新任务,限制了模型的实际应用。

现在OpenVLA来了,训练他所采用的数据是现实中真正机器人操作的视频/动作记录,不是模拟器中产生的数据。

OpenVLA 以 Llama 2 语言模型为基础,结合了从 DINOv2 和 SigLIP 中提取的视觉特征,构建了强大的视觉编码器。

Llama 2:Meta(脸书)开发的强大开源语言模型。
DINOv2 / SigLIP:是处理图像的预训练视觉模型,可以将图片转化为“理解向量”。
这些模块组合在一起,模型就能“看懂图像 + 理解语言”。

OpenVLA 在“通用操作任务”上表现优异,甚至超越了闭源的 RT-2-X(55B 参数)模型,在 29 个任务和多种机器人上,任务成功率高出 16.5%,而参数仅为其 1/7。这项评估是在 WidowX 和 Google Robot 两种机器人平台上完成的。
而且 RT-2-X 没有探讨如何微调模型以适配新机器人。

OpenVLA 在新环境中也能高效地微调,尤其在多任务、多物体、语言交互性强的场景中表现出优秀的泛化能力,并比 Diffusion Policy 等从零模仿学习方法高出 20.4%。

计算效率方面:通过现代的低秩适配(LoRA)方法,OpenVLA 可以在普通消费者级 GPU(这点很关键啊) 上微调,并通过量化(quantization)部署而不降低任务表现。

LoRA(Low-Rank Adaptation):一种高效微调方法,只训练小部分参数,节省算力。
Quantization(量化):把模型压缩得更小(比如用 8-bit 代替 32-bit),大幅减少模型的内存占用和计算量,便于部署在手机、机器人上。

量化本质上是将 高精度数值(如 float32)映射到低精度数值(如 int8) 的过程:
原始 float32 权重:[0.12, -1.5, 3.7]
量化后的 int8 权重:[12, -15, 37]
虽然会损失部分精度,但通过合理的映射策略(如动态范围缩放、校准等),可以在精度损失和模型性能之间取得平衡。

关键协同效应:
LoRA 负责高效微调 → 保持模型对新任务的理解能力
量化负责压缩与加速 → 让模型适配边缘设备

最后,他们开放了模型的检查点(预训练权重)、微调用的笔记本文件、以及完整的 PyTorch 代码库,支持在 Open X-Embodiment 数据集上进行大规模训练。

3. 详细介绍

现有的机器人操作策略难以泛化,而在机器人领域之外,已有的视觉和语言基础模型(如 CLIP 、SigLIP 、Llama 2 )则展现出了更强的泛化能力,这是它们通过互联网规模的预训练数据集学到的先验知识所赋予的。

虽然在机器人领域复刻这种规模的预训练是一个尚未解决的难题(即使是最大的机器人操作数据集也只有 10 万到 100 万条示例),但是这也是一个机会:可以将现有的视觉和语言基础模型作为训练机器人策略的核心构件,从而使其具备超出训练数据范围的对象、场景和任务泛化能力。

为实现这一目标,已有研究尝试将预训练的语言模型和视觉-语言模型用于机器人表征学习,或作为模块化系统中用于任务规划与执行的一个部分。近年来,它们也被用于直接训练VLA,用于机器人控制。

VLA 是将视觉与语言基础模型直接用于机器人控制的一种实现方式,方法是对视觉条件下的语言模型(VLM)进行微调,从而生成机器人动作指令。

VLM:给语言模型添加视觉输入作为上下文(如 PaLI [19,20]),使其能生成与视觉相关的文本或动作。

为了构建未来研究与开发的良好基础,机器人学领域亟需像开源语言模型生态那样的、支持高效微调和适配的开源通用 VLA 模型

OpenVLA 的核心是一个预训练的视觉条件语言模型主干,它能捕捉多粒度的视觉特征,并在 Open-X Embodiment 数据集中来自真实机器人操作的 97 万条演示轨迹上进行了微调。
其核心架构基于三个预训练模型组件:SigLIP 和 DINOv2 视觉编码器以及 Llama 2 语言模型主干。

机器人任务通常需要同时处理宏观决策和微观控制:
宏观层面:理解“整理桌面”的整体目标。
微观层面:精确抓取书本、避开障碍物、调整关节力矩。
所以需要多粒度特征,如果用单粒度,可能导致无法理解任务意图或缺乏细节导致操作失败

他们还研究了 VLA 的高效微调策略(此前工作未涉足这一点),涉及从物体抓取放置到清洁桌面等 7 项多样化操作任务。
可以发现:微调后的 OpenVLA 策略明显优于其他预训练策略(如 Octo [5]);相较于使用从零开始的模仿学习(如 Diffusion Policy [3]),OpenVLA 在需要将语言指令与动作绑定的多任务多物体场景中展现出更显著的优势。

首次展示了利用低秩适配(LoRA)与模型量化,能够使 OpenVLA 在普通消费级 GPU 上进行微调与部署,而不会影响性能。

最后,他们开源了所有模型、部署与微调示例 notebook 以及 OpenVLA 的 PyTorch 代码库。

4. 相关方法和技术

4.1 视觉条件语言模型

视觉条件语言模型(VLMs)是在互联网规模的数据上进行训练的,目标是根据输入的图像和语言提示生成自然语言。这类模型已被广泛应用于多种任务,如视觉问答(VQA)和物体定位 [32, 33]。

近年 VLMs 发展的关键进展在于模型架构的创新——它们能将预训练视觉编码器(如 CLIP、SigLIP)提取的图像特征预训练语言模型(如 LLaMA、T5)连接起来,从而构建出强大的多模态模型,融合了视觉与语言两方面的进步。

近年来的开源 VLMs 趋于统一采用一种更简单的方式——“图像 patch 作为 token”(patch-as-token)的方法:即把图像划分为若干 patch,并将每个 patch 的特征视为一个“词元”(token),再投影到语言模型的输入空间中。

patch-as-token:模仿语言模型处理文本的方式,将图像“切割”成小块(patch),再将这些小块转换为类似“单词”的向量,最终让语言模型能同时理解视觉和文本输入。

在本研究中,使用了 Karamcheti 等人提出的 VLM 作为预训练主干网络。它结合了多分辨率的视觉特征,既融合了 DINOv2 提供的低层次空间信息,也融合了 SigLIP 提供的高层语义特征,从而有助于视觉泛化能力的提升。

DINOv2:一种自监督视觉 transformer 编码器,擅长捕捉图像中的空间关系。 SigLIP:Google
提出的图文匹配模型,用于提升视觉语义理解能力。

4.2 通用机器人策略

机器人领域的一个最新趋势是训练多任务的通用型机器人策略,这些策略使用的是包含多种机器人形式的大型数据集,Octo [5] 提出了一种通用策略,可以开箱即用地控制多种机器人,并能灵活地适配新的机器人设置。

像 Octo 这种策略,通常是将预训练模块(如语言嵌入或视觉编码器)与从零开始初始化的其他模块组合在一起,在训练过程中“缝合”成一个完整策略。

预训练模块:直接复用已有的大模型组件,这些模块已在海量数据上训练过,能够提取高质量的通用特征。
由于不同机器人的关节数量、运动范围、动力学特性差异巨大,完成的任务也不同,预训练模型无法直接覆盖。所以需要从零初始化某些模块。

这样的话,更换机器人时,只需调整适配器和解码器,无需重新训练整个模型,预训练模块也减少了机器人对数据量的依赖。

想象组装一台电脑:
预训练模块:像高性能的通用配件(CPU、内存),适合多种用途;
从零初始化的模块:像专用外设(游戏手柄、绘图板),需要根据具体需求定制驱动。

而 OpenVLA 则采用更加端到端的方式:直接微调 VLM,使其输出机器人动作指令,并将这些动作视为语言模型词汇表中的 token。

在 VLM 原有的文本词汇表中新增动作 token,使模型能像生成文本一样生成动作序列。 模型直接生成动作 token 序列,例如:
[detect_cup] [move_to_cup] [grasp] [lift] [move_to_table] [place]
使用机器人演示数据(图像-指令-动作序列三元组),让模型学习何时生成何种动作 token。
最后将生成的离散动作 token 转换为机器人可执行的连续控制信号

无需手动设计特征提取器、规划器、控制器,所有决策由单一模型完成,避免模块间接口不匹配导致的错误;从大规模机器人演示数据中学习动作模式,而非依赖规则编程。

实验表明,这种简单却可扩展的训练流程在性能和泛化能力上显著优于先前的通用策略模型。

4.3 VLA 模型

有不少研究尝试将 VLM 应用于机器人领域,例如用于视觉状态表示、目标检测、高级规划、以及作为反馈信号。也有部分研究将 VLM 直接嵌入端到端的视觉运动控制策略,但这些方法引入了大量架构上的特殊设计(如标定相机),因而通用性较差。

直接微调大型预训练 VLM 来预测机器人动作 [1, 7, 17, 18, 72–74]。这类模型通常被称为 视觉-语言-动作模型(VLA)。有三大优势:

  1. 可以将预训练的视觉与语言模块在大规模图文数据上进行对齐;
  2. 架构通用,可利用现成的多模态训练基础设施,轻松扩展到十亿级参数模型;
  3. 能够直接继承 VLM 领域的最新进展,迅速提升机器人性能。

OpenVLA模型结构
输入:
左上角的图片;左下角的自然语言指令

中间结构:
1.针对输入的图像进行视觉特征提取(DINO v2 + SigLIP),包含低层次空间细节(物体边缘、形状)和高层次理解信息(这是碗、这是茄子),两者并行对同一帧图像进行编码,然后各自输出一组视觉特征向量。
2. 将上面步骤生成的视觉特征通过MLP映射到与语言模型相同的[token表示空间] 中。输出一组 [视觉tokens] (彩色小方块),它们就像是“视觉版的单词”。
3. 针对输入的语音指令,通过LIama Tokenizer 切分成一系列文本 tokens(绿色小方块)
4. 将 视觉tokens 和 语言tokens 一起作为输入,输入进LIama 2(7B参数),生成一串 动作tokens(紫色小方块)。

动作解码:
Action De‑Tokenizer 将这些 tokens 转化为机器人可执行的连续控制信号——通常表示为 Δx、Δθ、Δgrip 等 7 维动作向量(图中右边机械臂的箭头)。

5. VLA 模型

前面已经初步介绍了这个模型,但还有许多未被充分探索的问题,例如:应当选择哪些模型主干、哪些数据集、哪些超参数进行训练。
下面将详细阐述开发 OpenVLA 的方法和核心经验教训。

主要都是他们怎么去训练这个模型的,关于怎么部署好像没有讲到?
可如果我们想炼个小的,针对草莓采摘的,也许会参考官方的训练过程

5.1 VLM

在本工作中,选用 Prismatic-7B VLM [44] 作为基础模型。它包括:
600M 参数的视觉编码器;

Prismatic 的视觉编码器由 SigLIP [79] 和 DinoV2 [25] 两部分组成,引入 DinoV2 特征能够增强空间推理能力[44],这对机器人控制尤为重要。
将两个编码器输出的向量在特征维度上并排连接,得到更丰富的表示。

2 层的小型 MLP 投影器;
7B 参数的 Llama 2 语言模型骨干。

SigLIP、DinoV2 和 Llama 2 并未公开其完整的训练数据集,但可以推测它们分别在万亿级的互联网图文对、纯图像、纯文本数据上预训练。
Prismatic VLM 则在此基础上,使用 LLaVA 1.5 数据混合集 [43] 进行微调,该混合集包含约 100 万 条来自开源数据集的图文和纯文本样本。

5.2 OpenVLA 训练流程

将动作预测视为一种“视觉-语言”任务:将观测到的图像和自然语言任务指令映射到一串预测的机器人动作序列 。
为了让视觉-语言模型的语言骨干能够预测机器人动作,我们将连续的机器人动作映射为离散的语言模型 token。

机器人动作原本是连续值(如 Δx=0.05),但语言模型只能处理离散 token,需先离散化。

经过上述离散化后,N 维动作被表示为 N 个取值范围在 [0…255] 的整数。但 Llama tokenizer [10] 只预留了 100 个“special token”供微调时新增用的id(共有数万个token),直接用我们 256 个动作 token id 覆盖 Llama 词表中最少被使用的 256 个 token。

当我们把动作全都变成 token,就能像训练GPT那样:给模型一段“视觉+语言”输入,让它一步步预测下一个动作 token。其实就是让模型学会这个视觉+语言 和 该做什么动作 之间的映射

训练结束后,模型既能理解图像和指令,又能输出机器臂的动作序列,且每个动作序列里的 token 都映射到一组连续控制信号,机器人就按这个信号执行操作。

5.3 训练数据

以 Open X-Embodiment(OpenX) 数据集为基础进行数据精炼。
数据精炼有两个目标:
1.保证输入输出空间一致性,即所有子数据集的图像和动作格式统一;
2.保证数据多样性平衡,即在机器人形态、任务类型、场景环境间均衡分配训练样本。

仅保留至少有一个第三人称视角相机且使用单臂末端执行器的操作数据集
附录 A 中给出了所有使用数据集及其混合权重的完整列表。

5.4 设计决策

先在小规模实验中尝试了多种设计方案,再启动最终的完整模型训练。
初期选用了 BridgeData V2 [6] 数据集进行训练与评估,而非一次性使用全量 OpenX 混合数据,这样能够加快实验迭代并降低算力开销。

BridgeData V2:一个涵盖多种操作场景的中等规模机器人演示数据集,常用于快速迭代研究。

经微调的 Prismatic VLM 策略在简单单物体任务多物体语言落地任务中,又比 LLaVA 高出约 10%,这一性能差异归因于Prismatic 所用的SigLIP+DinoV2 融合编码器所提升的空间推理能力,此外,Prismatic 拥有模块化且易用的代码库。

输入图像的分辨率对 VLA 训练的计算量影响很大:分辨率越高,生成的图像 patch token 越多,模型上下文长度越长,训练计算量呈n²增长。

使用 224×224 px 与 384×384 px 的输入,发现两者在性能上无显著差异,但后者训练时间要慢 3 倍。

虽然在许多 VLM 基准上更高分辨率能带来性能提升,但在 VLA 任务中我们尚未观测到这一趋势。最终 OpenVLA 选用 224×224 px 分辨率。

VLM 领域的研究表明:冻结视觉编码器(即不更新其权重)通常能获得更好效果,但在 VLA 训练中微调视觉编码器对性能至关重要。

冻结编码器可保持预训练知识,但可能缺乏适应下游任务的细节;微调则让编码器“专门”学习机器人视角下关键细节。

典型的 LLM 或 VLM 训练通常遍历数据集一到两次(即 1–2 个 epoch)。相反,我们发现 VLA 的训练需要在数据集上多次迭代——真实机器人任务的表现会随着训练动作 token 准确率提升而持续改进,直到超过 95%。最终,我们在完整训练中共完成了27个 epoch

没有过拟合?那么过拟合的极限在哪里?

针对 VLA 训练对学习率进行了大范围调参,最终发现固定学习率 2×10⁻⁵(与 VLM 预训练时相同)效果最佳。此外,我们并未观察到学习率预热(warmup)带来额外收益。

预热(Warmup):训练初期用较低学习率逐渐升至目标值,有时能稳定早期训练,但本实验中未见明显作用。

5.5 训练和推理所需的硬件、软件和系统架构

最终的 OpenVLA 模型在一个由 64 块 A100 GPU 组成的集群上训练了 14 天,总计使用了约 21,500 A100 GPU 小时,训练时使用的 batch size 是 2048。

在推理阶段,OpenVLA 在 bfloat16 精度(即未量化)下加载时需要大约 15GB 的 GPU 显存,在一块 NVIDIA RTX 4090 上的运行速度约为 6Hz(>=5就可以接受),即每秒处理约 6 帧。

6Hz 推理速度,是指 OpenVLA 模型单次“思考”(即:从视觉+语言输入→预测一条动作指令的时间) 的频率,也就是 模型生成一组动作
token 的速度,不包括机器人实际执行动作所需的反馈/控制周期。

举个例子: 比如 VLA 每 200ms(5Hz)预测一次动作序列:
输出是:“在未来 1 秒内,将机械臂末端移动到坐标 (x, y, z)并抓取”。
然后底层控制器在这 1 秒内,以 200Hz 的频率不断调整电机来执行这一目标。

所以,VLA 推理速度只需要能跟得上“动作规划节奏”就行,不需要直接满足底层控制频率。这一结构类似人类的行为系统:大脑规划动作(低频),肌肉自主协调(高频)。

可以通过对模型进行量化来进一步减少 OpenVLA 在推理时的显存占用,而且不会影响其在真实机器人任务中的性能。

下图说明了 OpenVLA 在多种消费级与服务器级 GPU 上的推理速度。
不同GPU下的推理速度
4-bit量化让模型可在Jetson等嵌入式设备运行,消费级显卡(RTX 4090)接近专业卡(H100)性能,降低部署门槛。

为方便使用,他们实现了一个远程 VLA 推理服务器,可将动作预测结果实时传输到机器人无需本地搭载强算力设备即可控制机器人。在后续的开源代码介绍中包含这一远程推理解决方案

这个我可以用吗?

6. 代码库

发布了 OpenVLA 代码库,它是一个模块化的 PyTorch 代码库,用于训练 VLA 模型。
它既可以在单个 GPU 上微调 VLA 模型,也能在多节点的 GPU 集群上训练拥有上亿参数的大模型。

它支持多种现代的训练大模型技巧,例如自动混合精度(AMP)、FlashAttention、以及完全分片的数据并行(FSDP)。

AMP(Automatic Mixed Precision):让训练更快、更省内存的方法。比如有些计算用32位浮点(float32),有些用16位(float16),效果差不多但更省资源。

FlashAttention:一种更快、更节省内存的注意力机制实现,在训练大模型时尤其重要。

FSDP(Fully Sharded Data Parallelism):把模型参数拆开分配到不同GPU上,可以训练更大的模型。

OpenVLA 代码库开箱即用,支持在 Open X 数据集上训练,兼容 HuggingFace 的 AutoModel 类,并支持 LoRA 微调和量化模型推理。

OpenVLA 是一个用来训练 VLA 的“万能训练机”,既适合小规模实验,也能搞亿级大模型。它集成了当前流行的训练加速工具(AMP、FlashAttention、FSDP),并支持主流框架(HuggingFace)、灵活的微调(LoRA)、高效的部署(模型量化)等,基本是现代 AI 工程师的理想训练工具箱。

7. 实验

实验目标是评估 OpenVLA 作为一个即插即用(无需大量修改)的通用多机器人控制策略的表现,同时也要测试其是否容易在新任务上快速适配
希望通过实验能够回答一下三个问题:
1.在多种机器人和不同类型的泛化任务上,OpenVLA 的表现与已有的通用机器人策略相比如何?
2.OpenVLA 能否高效地微调到新的机器人系统和任务?其效果与最先进的数据高效模仿学习方法相比如何?
3.能否通过参数高效的微调方法和模型量化技术,降低 OpenVLA 的训练与推理成本,从而提升其实用性?其中的性能与计算消耗之间的权衡关系如何?

作者设计的实验目标,从“能用”(跨机器人泛化)→“好用”(快速适配)→“省资源”(低成本部署)三个角度评估

7.1 实验设置与任务定义

作者团队在两个机器人实体上评估 OpenVLA 的“开箱即用”性能:一个是 BridgeData V2 评估下的 WidowX 固定机械臂,另一个是 Google(RT-1,RT-2)评估中使用的移动机械臂(被称为“Google robot”)。

一个是「定点做家务」的机器人(WidowX),一个是「能移动操作」的更高级机器人(Google robot)-RT系列是固定位置操作
草莓采摘机器人肯定会移动,但是采摘时候是定点的

设计了全面的任务集,涵盖了多个泛化维度,在 BridgeData V2 任务集上进行了 170 次实验(17 个任务 × 10 次尝试),在 Google Robot 平台上进行了 60 次实验(12 个任务 × 5 次)。采用 A/B 测试,确保不同模型的起始条件一致。
BridgeData V2 WidowX robot evaluation tasks and results
这张图展示了在 BridgeData V2 任务下的 WidowX上,四种通用机器人控制策略——RT‑1‑X(蓝色)、Octo(橙色)、RT‑2‑X(绿色)和我们的方法 OpenVLA(红色)——在一套五大类任务上的表现对比,以及它们的整体平均成功率。

任务类别含义成功率(%)
视觉泛化
(Visual Generalization)
背景、遮挡物、物体外观未在训练中出现过RT‑1‑X 8.0 Octo 29.0 RT‑2‑X 52.0 OpenVLA 87.0
运动泛化
(Motion Generalization)
物体的位置与朝向组合未见过RT‑1‑X 25.0 Octo 7.5 RT‑2‑X 55.0 OpenVLA 60.0
物理泛化
(Physical Generalization)
物体的形状和大小组合未见过RT‑1‑X 10.0 Octo 20.0 RT‑2‑X 26.7 OpenVLA 76.7
语义泛化
(Semantic Generalization)
需要理解全新对象、指令或网络上概念RT‑1‑X 26.3 Octo 0.0 RT‑2‑X 38.8 OpenVLA 36.3
语言接地
(Language Grounding)
能否根据语言提示精确操纵指定物体RT‑1‑X 30.0 Octo 40.0 RT‑2‑X 85.0 OpenVLA 90.0
整体平均
(Average)
上述五类任务的加权平均RT‑1‑X 18.5 Octo 20.0 RT‑2‑X 50.6 OpenVLA 70.6

针对草莓采摘项目,每株长的都不同,光照也不同,叶片遮挡情况也不同,所以视觉泛化能力很重要;
草莓的位置(台面种植中草莓朝向应该都是向下?)也是很难都训练到,所以运动泛化很重要;
草莓的形状和大小也各不相同,所以物理泛化很重要;
草莓就是草莓,不需要理解全新对象或概念,所以语义泛化不重要。
综合来看,这个模型在理论上符合草莓采摘的环境

Google robot evaluation results
这张图是在Google robot 平台上四种机器人策略(RT-1-X、Octo、RT-2-X、OpenVLA)在 In-Distribution(训练数据内任务)和 OOD Generalization(未见任务)场景下的性能对比,足见OpenVLA 的优势。

总的来说:RT-1-X & Octo 表现较差,它们在任务中经常搞错目标,或者机器人干脆“摆烂”乱动。RT-2-X 借助大模型 + 互联网预训练 + 语言理解,在泛化能力上领先很多。尽管 OpenVLA 只有 RT-2-X 的 1/8 参数量,它在 Google Robot 上表现相当,在 BridgeData V2 上全面领先

原因包括:
1.更大的训练数据量(OpenVLA 用了 97 万条运动信息 vs RT-2-X 的 35 万)
2.更干净的数据处理(比如去掉了 BridgeData 中无效动作)
3.使用融合视觉编码器:结合语义 + 空间特征(提高理解能力)

7.2 对新机器人环境的高效数据适应

如何高效地将 VLA 微调到新任务和机器人配置仍鲜有探索,而这恰恰是实现其广泛部署的关键
在本节中,研究 OpenVLA 是否能快速适配新的真实世界机器人平台。(更多仿真实验见附录 E)

所用策略:对所有参数进行完整微调,只用 10–150 个演示样本来学习目标任务(下图),用了99个桌面任务和30个DROID现实场景任务

这是一个非常“极限”的测试:少样本 + 全参数更新,看模型是否能快速适应。 这在机器人学习中非常重要,因为数据昂贵,示教困难。

在两个环境中测试OpenVLA:
1.Franka-Tabletop:固定在桌面上的 Franka Emika Panda 机械臂;
2.Franka-DROID:来自 DROID 数据集、安装在移动升降桌上的 Franka 环境。

两者都是 Franka 机械臂,但存在平台姿态和传感差异,可以检验模型的适配性。
DROID 是一个新出的实际任务数据集,非常贴近现实使用场景。
选择 Franka 机械臂作为微调实验的目标平台,是因为它在机器人学习社区中广泛使用,因此很可能是 OpenVLA 的现实“适配对象”。

两个环境的控制频率分别是 5Hz 和 15Hz,均为非阻塞控制器。

Diffusion Policy 方法进行对比,它是当前数据高效模仿学习的 SOTA 方法,从零开始训练。还使用了输入输出接口与 OpenVLA 对齐的 Diffusion Policy(matched 版本)进行对比。

此外,也评估了 Octo 在目标数据集上的微调效果 —— 它是目前最强且支持微调的通用策略。

还加入了一个消融实验 —— OpenVLA (scratch),直接在目标平台上微调未预训练的 Prismatic VLM,以评估大规模机器人预训练的效果。
Adapting to new robot setups.
可以看到下面这个擦桌子的任务是在现实场景中的,比单纯的桌面任务要复杂。
在这里插入图片描述
该图对比了多种机器人策略在Franka Emika Panda机械臂上的任务表现,分为 单一指令任务 和 多样化多指令任务。

我们发现,在单一指令任务中(如“将胡萝卜放入碗中”或“将玉米倒入锅中”),Diffusion Policy 两个版本的表现比 Octo 和 OpenVLA 更优。

说明 Diffusion Policy 在小样本、高精度控制任务中仍是 SOTA,泛化型模型还略逊一筹。

但在场景中存在多个物体、需要语言理解的复杂任务中,预训练的通用策略效果更好。

OpenVLA 是唯一在所有测试任务中成功率始终≥50%的方法。

OpenVLA (ours) 在两类任务中综合表现最优,尤其是在多样化任务中优势显著。
Diffusion Policy 在单一任务中表现突出,但在复杂场景中泛化能力不足。

OpenX 的预训练使 Octo 和 OpenVLA 能更好适应语言语义要求高的复杂任务 —— 这一点也可以从 OpenVLA (scratch) 表现较差中看出。

若 OpenVLA 能引入动作分段与时间平滑机制,可能在精细度上达到 Diffusion Policy 同样水平。

7.3 参数高效微调

在上一节中,对 OpenVLA 进行完整微调通常需要 8 张 A100 GPU,耗时 5–15 小时(具体取决于数据集大小),才能获得较高性能。

虽然比预训练省很多(预训练动辄几千 GPU 小时),但仍然不够轻量化,尤其在实际部署或小团队研究中。

本节将探索更节省算力和参数的微调方法,并研究其效果。

对比了如下几种微调方法:

  • 完整微调(full fine-tuning):更新模型中所有参数,这是 baseline,也是性能最强、但计算成本最高的方案。
  • 仅微调最后一层(last layer only):只微调 Transformer 主干的最后一层token 嵌入矩阵
  • 冻结视觉模块(frozen vision):冻结视觉编码器,微调其它所有参数。
  • 夹心微调(sandwich fine-tuning):微调视觉编码器 + token 嵌入 + 最后一层
  • LoRA 微调:采用 Hu 等人提出的流行的低秩适配技术(Low-Rank Adaptation)[26],在模型的所有线性层上应用多个秩 r。

LoRA 是近年来主流的轻量微调方案,尤其适合 LLM 场景。
它通过在固定主模型的同时,仅插入低秩矩阵进行训练,极大减少参数数量和内存需求。

在多个 Franka-Tabletop 任务上实验出了各方法的微调成功率、训练参数数量和 GPU 显存需求
Parameter-efficient fine-tuning evaluation.
我们发现,仅微调最后一层或冻结视觉模块的效果都较差,说明视觉特征需进一步适配目标场景。

相比之下,夹心微调(sandwich)表现更好,因为它微调了视觉模块;同时因为未微调完整语言模型主干,显存占用也更低。

最后,LoRA 在性能与资源消耗之间实现了最佳平衡 —— 它的表现超过“夹心微调”,并且可与完整微调媲美,但仅需微调完整的 1.4% 的参数。

LoRA 的秩(rank)对策略性能影响甚微,说明LoRA 不太敏感于 rank,调参成本低,因此推荐默认使用 r = 32。

使用 LoRA 后,我们可以在单张 A100 上,用 10–15 小时就完成一次 OpenVLA 的微调 —— 相比全量微调,算力开销减少了 8 倍。

但还是太贵了

7.4 通过量化实现内存高效推理

虽然 OpenVLA 表现强,但它很“大”,推理内存消耗是个瓶颈,尤其对资源受限的部署环境(如边缘设备、小型机器人)。

借鉴大语言模型(LLM)部署的最佳实践,在推理阶段将 OpenVLA 保存和加载为 bfloat16 精度(这是默认设置),这可将内存占用减半,使得该模型能在 仅有 16GB 显存的 GPU 上运行。

这种方法已经大大压缩了资源要求,但目标是进一步压缩。本节我们将探索是否可以使用现代量化技术进一步减少策略模型的推理内存占用,从而扩大 VLA 策略模型的可访问性。

通过以更低的精度加载模型权重,从而以牺牲一定推理速度和准确性为代价,换取内存使用的降低。

具体来说,我们在 8 个代表性的 BridgeData V2 任务上,对 OpenVLA 模型在 8-bit 和 4-bit 精度下的推理效果进行实验。
不同消费级和服务器级 GPU 上的控制频率
在大多数 GPU 上,8-bit 量化会导致推理速度变慢,因为增加的量化操作带来了额外计算开销。

8-bit 理论上应该更快(更小数据),但实际中量化解码操作本身会成为瓶颈。

而 4-bit 推理反而能获得更高效率,因为显存传输的减少抵消了量化操作的开销更轻更快
在这里插入图片描述
4-bit 量化在性能上与 bfloat16 几乎相当,但显存占用却不到后者的一半。

极小的精度损失换来了巨大的内存节省,这使得部署在 8G/12G 显存设备上变得可行。

RTX 4090 是基于 Ada Lovelace 架构,对 FP16 / INT8 / 4-bit 量化推理优化极强。
A100 虽然 FP16/TF32 表现也很强,但对消费级推理优化支持不如 4090 高效。

在量化和微调中,使用过一个修改过的 OpenVLA 模型进行实验,使用了较小规模的机器人数据混合进行预训练,并采用了稍微简化的架构,仅使用了 SigLIP 作为视觉主干网络,而不是使用更复杂的融合 DinoSigLIP 编码器。

作者发现,即使使用这种更简单的架构,该模型在微调任务和“开箱即用”任务中依然表现出色。
这也是一个可优化的点

8. 讨论与局限

当前的 OpenVLA 模型存在一些局限。

1.首先,它目前仅支持单张图像的观测输入。这在动态任务或需要时序感知的场景中会表现不佳。

现实中的机器人系统通常是异构的,具有多种类型的传感器输入。实际应用中常用多摄像头、深度图、IMU、力传感器等。

理想汽车他们也用到了VLA这个模型,他们是怎么解决这个问题的?

未来的重要研究方向是让 OpenVLA 支持多图像、身体感知输入以及观测历史信息。
使用在交错图文数据上预训练的视觉语言模型(VLM)可能有助于实现这类灵活输入的 VLA 微调。

2.其次,提高 OpenVLA 的推理吞吐量对于支持高频控制设置至关重要。这也将使我们能够在比本研究中更精细、更复杂的双手操作任务上测试 VLA 模型(Helix)

当前模型速度还达不到对部分高控制频率任务的实时响应需求,尤其是高精度、双臂任务。

3.此外,OpenVLA 的性能仍有提升空间。虽然其表现优于现有的通用策略,但在测试任务中尚未达到非常高的可靠性,成功率通常低于 90%。

4.最后,由于计算资源限制
模型大小是否值得扩大?
联合多来源数据的训练是否优于分阶段训练?
哪种视觉表示(如 CLIP、DINO、SigLIP)最适合 VLA?

承上启下

当将 VLA 模型部署到真实机器人系统中时,尽管它在模拟环境或基准任务中展现了良好性能,但在实际落地过程中仍面临多方面的挑战和困难。

  1. 资源限制与硬件兼容性
    计算资源不足:VLA 模型通常较大(如 OpenVLA 为 7B 参数量),即便量化后仍需较高的 GPU 显存(7GB)。大多数机器人(尤其是移动机器人或嵌入式系统)配备的 GPU(如 Jetson TX2、Xavier、RTX 1650 等)根本无法运行这种模型。

我们那草莓采摘机器人用的什么GPU呢?电源和散热问题应该还好,启动时间是否会成为限制?

  1. 输入感知的多样性与不足
    仅支持静态图像(单帧)输入、缺少时序建模。许多真实任务(如抓取、搬运)需要基于历史状态决策,仅基于当前帧可能导致误判。

我们那采摘是否有基于历史状态决策?

  1. 实时性与控制频率瓶颈
    推理延迟高:大模型(即便量化到 4-bit)在中端 GPU 上推理仍需数百毫秒,远不能满足 10Hz (每步推理时间100ms)以上的实时控制需求。延迟导致的控制响应滞后,使得系统状态已发生改变,而控制信号仍基于“旧图像”做出的决策
    实际部署中需要用异步机制(图像获取、模型推理、控制执行)并行运行,对系统设计要求高,调试成本大。

  2. 环境不确定性高
    现实场景中,物体可能位移、掉落、形变,VLA 模型如果没有动态感知能力就容易失效。

  3. 训练-部署之间的偏差
    如果模型在仿真中训练,则部署到实机上可能完全失效,视觉差异、物理摩擦、机器人动态都不同。
    为了适应特定机器人的特性,需要额外采集数据进行 LoRA 等微调。但采集/标注/部署本身就是一个复杂流程,尤其在工业环境下成本高昂。

  4. 系统集成
    模块耦合度高:VLA 模型往往集成视觉、语言、控制模块,缺乏良好的模块化设计,使得集成到现有机器人架构中困难。
    调试困难:VLA 模型的推理过程往往是黑盒的,无法像传统控制器那样逐步调试,很难定位错误来源

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2373411.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Matlab/Simulink的一些功能用法笔记(4)

水一篇帖子 01--MATLAB工作区的保护眼睛颜色设置 默认的工作区颜色为白色 在网上可以搜索一些保护眼睛的RGB颜色参数设置 在MATLAB中按如下设置: ①点击预设 ②点击颜色,点击背景色的三角标符号 ③点击更多颜色,找到RGB选项 ④填写颜色参数…

Elasticsearch:我们如何在全球范围内实现支付基础设施的现代化?

作者:来自 Elastic Kelly Manrique SWIFT 和 Elastic 如何应对基础设施复杂性、误报问题以及日益增长的合规要求。 金融服务公司在全球范围内管理实时支付方面面临前所未有的挑战。SWIFT(Society for Worldwide Interbank Financial Telecommunication -…

matlab介绍while函数

MATLAB 中的 while 语句介绍 在 MATLAB 中,while 语句是一种循环结构,用于在满足特定条件时反复执行一段代码块。与 for 循环不同,while 循环的执行次数是动态的,取决于循环条件是否为真。 语法 while condition% 循环体代码 e…

如何解决 PowerShell 显示 “此系统上禁用了脚本运行” 的问题

在 Windows 11 或 10 的 PowerShell 中运行脚本时,你可能会遇到一个错误,提示系统上禁用了脚本运行。这是一种安全功能,而不是系统问题,旨在防止可能有害的脚本自动运行。然而,如果你需要运行脚本来完成某些任务,或者你在系统上做了软件开发或测试的环境,那么你需要在 P…

深入浅出之STL源码分析4_类模版

1.引言 我在上面的文章中讲解了vector的基本操作,然后提出了几个问题。 STL之vector基本操作-CSDN博客 1.刚才我提到了我的编译器版本是g 11.4.0,而我们要讲解的是STL(标准模板库),那么二者之间的关系是什么&#x…

初学者入门指南:什么是网络拓扑结构?

初学者入门指南:什么是网络拓扑结构? 在构建或学习计算机网络时,一个绕不开的核心概念便是“网络拓扑结构”(Network Topology)。它决定了网络中各个设备如何连接、通信以及如何扩展。理解网络拓扑不仅有助于我们更清…

Satori:元动作 + 内建搜索机制,让大模型实现超级推理能力

Satori:元动作 内建搜索机制,让大模型实现超级推理能力 论文大纲一、背景:LLM 推理增强的三类方法1. 基于大规模监督微调(SFT)的推理增强2. 借助外部机制在推理时进行搜索 (RLHF / 多模型 / 工具)3. 现有局限性总结 二…

SDC命令详解:使用all_outputs命令进行查询

相关阅读 SDC命令详解https://blog.csdn.net/weixin_45791458/category_12931432.html all_outputs命令用于创建一个输出端口对象集合,关于设计对象和集合的更详细介绍,可以参考下面的博客。 Synopsys:设计对象https://chenzhang.blog.csdn…

printf调试时候正常,运行时打印不出来

问题是在添加了 printf 功能后,程序独立运行时无法正常打印输出,而调试模式下正常。这表明问题可能与 printf 的重定向实现、标准库配置、或编译器相关设置有关。 解决: 原来是使用 Keil/IAR,printf可能需要启用 MicroLIB 或正确…

解决 TimeoutError: [WinError 10060] 在 FramePack项目中连接 Hugging Face 超时的问题

#工作记录 以下是针对 TimeoutError: [WinError 10060] 的完整排查方案,适用于 FramePack项目中。 (一般该错误的发生原因请重点排查Hugging Face模型仓库受限需要登录的情形) FramePack项目参考资料 FramePack部署(从PyCharm解…

分布式-Redis分布式锁

Redis实现分布式锁优点 (1)Redis有很高的性能; (2)Redis命令对此支持较好,实现起来比较方便 实现思路 (1)获取锁的时候,使用setnx加锁,并使用expire命令为锁…

UniRepLknet助力YOLOv8:高效特征提取与目标检测性能优化

文章目录 一、引言二、UniRepLknet 的框架原理(一)架构概述(二)架构优势 三、UniRepLknet 在 YOLOv8 中的集成(一)集成方法(二)代码实例 四、实验与对比(一)对…

自研时序大模型讲解(4月29日)直播回顾

4 月 29 日,清华团队揭秘:时序大模型如何让数据“活”起来线上直播圆满结束。清华大学软件学院博士生,IoTDB 原生机器学习引擎 AINode 研发同学刘雍在线上面向数千人次的时序数据分析人员与 AI 大模型行业关注者,就时序大模型的发…

k8s之ingress解释以及k8s创建业务的流程定义

matchLabels ingress Ingress 是反向代理规则,用来规定 HTTP/S 请求应该被转发到哪个 Service 上,比如根据请求中不同的 Host 和 url 路径让请求落到不同的 Service 上。 Ingress Controller 就是一个反向代理程序,它负责解析 Ingress 的反向…

从0开始学习大模型--Day05--理解prompt工程

提示词工程原理 N-gram:通过统计,计算N个词共同出现的概率,从而预测下一个词是什么。 深度学习模型:有多层神经网络组成,可以自动从数据中学习特征,让模型通过不断地自我学习不断成长,直到模型…

计算机视觉——基于树莓派的YOLO11模型优化与实时目标检测、跟踪及计数的实践

概述 设想一下,你在多地拥有多个仓库,要同时监控每个仓库的实时状况,这对于时间和精力而言,都构成了一项艰巨挑战。从成本和可靠性的层面考量,大规模部署计算设备也并非可行之策。一方面,大量计算设备的购…

【计算机视觉】OpenCV项目实战:OpenCV_Position 项目深度解析:相机定位技术

OpenCV_Position 项目深度解析:基于 OpenCV 的相机定位技术 一、项目概述二、技术原理(一)单应性矩阵(Homography)(二)算法步骤(三)相机内参矩阵 三、项目实战运行&#…

LAMMPS分子动力学基于周期扰动法的黏度计算

关键词:黏度,周期扰动法,SPC/E水分子,分子动力学,lammps 目前分子动力学计算黏度主要有以下方法:(1)基于 Green - Kubo 关系的方法。从微观角度出发,利用压力张量自相关函数积分计算…

unity通过transform找子物体只能找子级

unity通过transform找子物体只能找子级,孙级以及更低级别都找不到,只能找到自己的下一级 如果要获取孙级以下的物体,最快的方法还是直接public挂载

ThinkPad T440P如何从U盘安装Ubuntu24.04系统

首先制作一个安装 U 盘。我使用的工具是 Rufus ,它的官网是 rufus.ie ,去下载最新版就可以了。直接打开这个工具,选择自己从ubuntu官网下载Get Ubuntu | Download | Ubuntu的iso镜像制作U盘安装包即可。 其次安装之前,还要对 Thi…