斯坦福提出首个开源视觉语言动作大模型OpenVLA

news2025/1/13 10:10:59

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

  • 摘要
  • 模型结构
  • 训练数据
  • 训练设施
  • 实验
  • 总结和局限性

项目主页
代码链接
论文链接
模型链接

摘要

OpenVLA 摘要
现有的VLA(Vision-Language-Action )模型具有这些局限性:
1)大多封闭且开放;
2)未能探索高效地为新任务微调VLA的方法,而这是VLAs被采用的关键组成部分。
为此本工作开发了OpenVLA,一个基于97万条Open X-Embodiment机器人任务的7B参数开源VLA模型,它为通用机器人操作策略设定了新的技术前沿,它支持直接控制多台机器人,并且可以通过参数高效微调快速适应新的机器人配置。OpenVLA建立在Llama2语言模型和ViT视觉编码器上,融合了来自 DINOv2和SigLIP的预训练权重。由于添加了更多数据和新模型组件,OpenVLA在通用物体操作任务上的表现十分出色,在29个任务和多种机器人形态上,其绝对任务成功率比封闭模型RT-2-X(55B)高出16.5%,同时参数数量减少了7倍。

模型结构

模型结构
给定一张图像观测和语言指令,OpenVLA可以预测7维的机器人控制动作。该结构包含3个关键的组件:(1)一个联结了Dino V2和SigLIP特征的视觉编码器,(2)一个将视觉特征映射到语言embedding空间的投射层,(3)一个7B参数量的LLM backbone:Llama2。整个模型基于Prismatic-7B VLM,仅修改了输出部分,针对机械臂action使用归一化分为了256bin,动作token来自语言token后身下的token和使用频率很低的token(类似RT2)。

训练数据

训练数据构建OpenVLA训练集的目标是捕捉各种机器人、场景和任务的多样性,使其可以直接控制各种机器人,并允许高效地微调以适配新的机器人。我们利用Open X-Embodiment 数据集作为基础来构建我们的训练集,截至撰写本文时,OpenX数据集包含70多个独立的机器人数据集,超过200万个机器人轨迹,为便于使用该数据集进行训练,我们对原始数据集进行了数据清洗,目标是确保:
(1)所有训练数据集中具有一致的输入和输出空间;为解决该问题,我们仅将训练数据集限制为至少包含一个第三人称摄像头和单臂末端执行器控制的操作数据集;
(2)在最终的训练混合数据中具有均衡的机器人配置、任务和场景;为此,我们利用Octo里的方法对所有通过第一轮筛选的数据集的混合数据权重进行不同比例配置。
此外我们还尝试将一些额外的数据集加入到训练集中,这些数据集是在Octo发布后添加到OpenX数据集中的,包括约10%的DROID数据集。在实践中,我们发现DROID上的动作标记准确率在整个训练过程中都保持较低的水平,这表明在未来可能需要更高的混合权重或模型来适应其多样性。为了不影响最终模型的质量,在训练的最后1/3阶段我们将DROID从中移除。

训练设施

OpenVLA模型在64个A100 GPU集群上训练了14天,(总共21,500个A100小时),batch_size设为2048。推理时OpenVLA在bfloat16精度(即未进行量化)下需要15GB的GPU内存,在NVIDIA RTX 4090 GPU上运行时约为6Hz(不包括编译、投机解码或其他推理加速技巧)。我们还可以通过量化进一步减少OpenVLA在推理过程中的内存占用,同时在实际的机器人任务中不会影响性能。同时我们实现了一个远程VLA推理服务器,允许实时远程向机器人传输动作预测,从而无需拥有强大的本地计算设备来控制机器人。我们将此远程推理解决方案作为开源代码的一部分进行发布。

实验

实验目标是测试OpenVLA是否能够作为一种强大的多机器人控制policy,并且能很好地微调适配新的机器人:

  1. 在评估多个机器人和各种类型的泛化能力时,OpenVLA与之前的通用机器人策略相比如何?
  2. OpenVLA可以在新的机器人设配置和任务上进行有效的微调吗?它与当前最先进的数据驱动的高效模仿学习方法相比如何?
  3. 我们可以使用参数高效微调和量化来降低OpenVLA模型的训练和推理计算需求,使其更易于使用吗?性能-计算消耗的权衡是什么?
    实验一:直接在多个实验平台上进行评估
    BridgeData
    Google Robot Evaluation
       RT-1-X和Octo都表现不佳,经常无法操纵正确的物体,尤其是在有干扰物的情况下,有时还会导致机器人胡乱挥动手臂。请注意,我们的评估测试了比先前工作中的评估更大的泛化程度,以挑战互联网数据预训练的VLA模型。因此,没有互联网预训练的模型的性能预期较低。RT-2-X明显优于RT-1-X和Octo,证明了大规模网络数据的预训练VLMs对机器人技术的益处。
       值得注意的是,OpenVLA在谷歌机器人评测中的表现与RT2-X相当,但在BridgeData V2评测中的表现显著优于RT-2-X,尽管其参数量仅为RT-2-X的十分之一(7B vs. 55B参数)。从质量上看,我们发现RT-2-X和OpenVLA都比其他测试模型表现出更稳健的行为,例如在有干扰物的情况下接近正确的物体,正确地使机器人的末端执行器与目标物体的朝向对齐,甚至从错误中恢复,例如不安全地抓取物体(有关更详细的示例,请参见https://openvla.github.io)。RT-2-X在语义泛化任务中表现出更高的性能,如图3所示,这是预期的,因为它使用了更大规模的互联网预训练数据,并与机器人动作数据和互联网预训练数据共同进行微调,以更好地保留预训练知识,而不是仅在机器人数据上进行微调,如OpenVLA。然而,OpenVLA在其他所有任务类别中在BridgeData V2和谷歌机器人评测中的表现与RT-2-X相当或更好。性能差异可归因于多种因素的结合:我们为OpenVLA创建了一个更大的训练数据集,包含97万条轨迹(而RT-2-X为35万条);我们对训练数据集进行了更仔细的清洗,例如从Bridge数据集中过滤掉了所有零动作;OpenVLA还使用了一种融合的视觉编码器,将预训练的语义和空间特征结合在一起。

实验二:在新的机器人上进行微调适配
新机器人适配
   总的来说,我们发现OpenVLA实现了最高的平均性能。值得注意的是,大多数先前的工作只有在狭窄的单指令或多样化的多指令任务中才能获得较强的性能,导致成功率差异很大。OpenVLA是唯一在所有测试任务中的成功率能达到至少50%的方法,这表明它可能是一个强大的模仿学习选型,特别是涉及语言引导的多任务。对于狭窄但高度灵巧的任务,Diffusion Policy仍然显示出更平滑和更精确的轨迹; 扩散策略中的动作分块和时间平滑有望帮助OpenVLA达到相同水平的灵活性,并且可能是未来工作的一个有希望的方向。
实验三: 参数高效的微调
微调的方式有:

  1. full finetuning(全参微调): 优化所有参数;
  2. last layer only(仅最后一层微调):仅微调OpenVLA transformer backbone 最后一层和token embedding矩阵;
  3. frozen vision(冻结视觉):固定视觉编码器,微调其他所有参数;
  4. sandwich微调:微调视觉编码器、token embedding矩阵和最后一层;
  5. LoRA微调:使用low-rank自适应的方法微调所有线性层
    参数微调效果对比
       只有对网络进行最后一层微调或冻结视觉编码器时将导致性能不佳,进一步适应对目标场景的视觉特征是至关重要的。相比之下,Sandwich微调实现了更好的性能,因为它微调视觉编码器,同时它消耗了更少的GPU内存,因为它不会对整个LLM主干进行微调。最后,LoRA微调实现了两者之间的最佳权衡性能和训练记忆消耗,优于Sandwich微调并达到完全微调的性能,同时只微调了1.4%的参数。我们发现LoRA Rank对策略性能的影响可以忽略不计,因此建议使用r = 32的默认Rank。使用LoRA微调,我们可以在单个A100 GPU上在10-15小时内对新任务的进行微调,与完全微调相比,计算减少了8倍。

总结和局限性

总结:
1, OpenVLA是一个先进的、开源的视觉-语言-动作(Visual Language Action)模型;
2, 它现成能够实现跨身体机器人控制,同时可以通过参数高效微调技术轻松适应新的机器人;
3, 满足实时控制;
4, 指标达到业内SOTA。

局限性:
1,目前仅支持单张图像观测。将OpenVLA扩展到支持多图像和本体感知输入以及观测历史是未来工作的重要方向。探索使用在交织的图像和文本数据上预训练的VLM(视觉语言模型)可能有助于实现这种灵活输入的VLA微调。

2,提高OpenVLA的推理效率对于实现ALOHA(每秒50hz的高频控制)等配置的VLA控制至关重要[88]。这也将利于测试更灵巧的双手操作任务的VLA。探索使用动作分块或替代的推理时优化技术可能是一个可行的解决方案。

3,尽管OpenVLA在测试任务上的成功率通常低于90%,但它仍优于之前的通用Policy,有提升空间。

4,由于计算能力的限制,许多VLA设计问题尚未得到充分研究:基模型VLM的大小对VLA性能有何影响?在机器人动作预测数据和大规模互联网的视觉语言数据上进行协同训练是否可以显著提高VLA性能?最适合VLA模型的视觉特征是什么?

个人评价:非常Nice,赶紧在自己的机器人上复现

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

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

相关文章

香橙派AIpro做目标检测

使用香橙派AIpro做目标检测 文章目录 使用香橙派AIpro做目标检测香橙派AIpro开发板介绍香橙派AIpro应用体验快速体验香橙派的AI功能YOLOV5s目标检测使用场景描述图像目标检测视频目标检测摄像头目标检测YOLOv5s 目标检测的运行结果分析香橙派 AIpro 在运行过程中的表现 香橙派A…

【Vue报错】v-bind动态绑定src无效

今天遇到v-bind动态绑定video的src,出现无效的问题 但是翻看以前的项目都是没问题的 之前的项目 现在的项目 发现并不能呈现视频效果 进行了改进,成功展示

Java数据结构9-排序

1. 排序的概念及引用 1.1 排序的概念 排序:所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。 稳定性:假定在待排序的记录序列中,存在多个具有相同的关键字的记录…

【ROS2】Ubuntu 24.04 源码编译安装 Jazzy Jalisco

目录 系统要求 系统设置 设置区域启用所需的存储库安装开发工具 构建 ROS 2 获取 ROS 2 代码使用 rosdep 安装依赖项安装额外的 RMW 实现(可选)在工作区构建代码 设置环境 尝试一些例子 下一步 备用编译器 Clang保持最新状态 故障排除 卸载 系统要求 当前…

mac如何安装nvm

​ vue项目开发,热更新,webpack,前辈造的轮子:各类的工具,库,像axios,qs,cookie等轮子在npm上可以拿来直接用,需要node作为环境支撑。 开发时同时有好几个项目,每个项目的需求不同…

自然语言处理领域介绍及其发展历史

自然语言处理领域介绍及其发展历史 1 NLP2 主要任务3 主要的方法1 基于规则的方法(1950-1980)2 基于统计的方法(传统的机器学习的方法)3 Connectionist approach(Neural networks) 1 NLP 自动的理解人类语…

C++(第四天----拷贝函数、类的组合、类的继承)

一、拷贝构造函数(复制构造函数) 1、概念 拷贝构造函数,它只有一个参数,参数类型是本类的引用。如果类的设计者不写拷贝构造函数,编译器就会自动生成拷贝构造函数。大多数情况下,其作用是实现从源对象到目…

mmdetection3增加12种注意力机制

在mmdetection/mmdet/models/layers/目录下增加attention_layers.py import torch.nn as nn from mmdet.registry import MODELS #自定义注意力机制算法 from .attention.CBAM import CBAMBlock as _CBAMBlock from .attention.BAM import BAMBlock as _BAMBlock from .attent…

语音声控灯:置入NRK3301离线语音识别ic 掌控的灯具新风尚

一、语音声控灯芯片开发背景 我们不难发现,传统的灯具控制方式已难以满足现代人对便捷性和智能化的追求。传统的开关控制方式需要人们手动操作,不仅繁琐且不便,特别是在夜晚或光线昏暗的环境下,更容易造成不便甚至安全隐患。而语音…

Spring学习03-[Spring容器核心技术IOC学习进阶]

IOC学习进阶 Order使用Order改变注入顺序实现Ordered接口,重写getOrder方法来改变自动注入顺序 DependsOn使用 Lazy全局设置-设置所有bean启动时候懒加载 Scopebean是单例的,会不会有线程安全问题 Order 可以改变自动注入的顺序 比如有个animal的接口&a…

海外仓一件代发功能自动化:海外仓WMS系统配置方法

根据数据显示,2014-2019年短短几年之间,跨境电商销售总额增长了160%以上。这为跨境电商商家和海外仓,国际物流等服务端企业都提供了巨大的发展机遇。 然而,作为海外仓,要想服务好跨境电商,仓库作业的每一个…

JAVA进阶学习10

文章目录 一、创建不可变集合二、Stream流2.1 Stream流的获取2.1 Stream流的中间方法2.2 Stream流的终结方法 一、创建不可变集合 意义:如果一个集合中的数据在复制或使用过程中不能修改,或者被其他对象调用时不能改变内部数据,即增加数据的安…

【C++ 】解决 C++ 语言报错:Null Pointer Dereferenc

文章目录 引言 在 C 编程中,空指针解引用(Null Pointer Dereference)是一种常见且危险的错误。当程序试图通过空指针访问内存时,会导致程序崩溃或产生不可预期的行为。本文将详细探讨空指针解引用的成因、检测方法及其预防和解决…

Unity之VS脚本自动添加头部注释Package包开发

内容将会持续更新,有错误的地方欢迎指正,谢谢! Unity之VS脚本自动添加头部注释Package包开发 TechX 坚持将创新的科技带给世界! 拥有更好的学习体验 —— 不断努力,不断进步,不断探索 TechX —— 心探索、心进取&…

【靶机实战】Apache Log4j2命令执行漏洞复现

# 在线靶场 可以通过访问极核官方靶场开启靶机实验:极核靶场 -> 漏洞复现靶场 -> Log4j2-RCE 原文:【靶机实战】Apache Log4j2命令执行漏洞复现 - 极核GetShell (get-shell.com) # 简介 Apache Log4j2 是一个广泛使用的 Java 日志记录库&#…

秋招突击——设计模式补充——简单工厂模式和策略模式

文章目录 引言正文简单工厂模式策略模式策略模式和工厂模式的结合策略模式解析 总结 引言 一个一个来吧,面试腾讯的时候,问了我单例模式相关的东西,自己这方面的东西,还没有看过。这里需要需要补充一下。但是设计模式有很多&…

比赛获奖的武林秘籍:01 如何看待当代大学生竞赛中“卷”“祖传老项目”“找关系”的现象?

比赛获奖的武林秘籍:01 如何看待当代大学生竞赛中“卷”“祖传老项目”“找关系”的现象? 摘要 本文主要分析了大学生电子计算机类比赛中“卷”“祖传老项目”“找关系”的现象,结合自身实践经验,给出了相应的解决方案。 正文 …

1-4 NLP发展历史与我的工作感悟

1-4 NLP发展历史与我的工作感悟 主目录点这里 第一个重要节点:word2vec词嵌入 能够将无限的词句表示为有限的词向量空间,而且运算比较快,使得文本与文本间的运算有了可能。 第二个重要节点:Transformer和bert 为预训练语言模型发…

百日筑基第十一天-看看SpringBoot

百日筑基第十一天-看看SpringBoot 创建项目 Spring 官方提供了 Spring Initializr 的方式来创建 Spring Boot 项目。网址如下: https://start.spring.io/ 打开后的界面如下: 可以将 Spring Initializr 看作是 Spring Boot 项目的初始化向导&#xff…

【Unity navigation面板】

【Unity navigation面板】 Unity的Navigation面板是一个集成在Unity编辑器中的界面,它允许开发者对导航网格(NavMesh)进行配置和管理。 Unity Navigation面板的一些关键特性和功能: 导航网格代理(NavMesh Agent&…