斯坦福发布{全球首个开源}“视觉语言动作大模型”,参数减少7倍,性能提高16.5%!


打造一个有温度、有趣味、专业的全栈式AI&AIGC交流社区!



 机器人操作任务是指让机器人执行物体操纵和操作的任务。这些任务涉及到机器人使用其机械臂、手指和其他工具来操纵物体,执行各种精细和复杂的操作。 然而,VLA在机器人领域的广泛采用一直是一个挑战,主要的原因包括:1)现有的VLA在很大程度上是封闭的,公众无法访问;2)先前的工作未能探索有效地微调VLA从而适应新任务的方法,这是采用的关键组成部分。为了应对这些挑战,作者引入了OpenVLA,这是一种7B参数的开源VLA,在970k个真实世界机器人演示的不同集合上进行了训练。OpenVLA建立在Llama 2语言模型的基础上,该模型与融合了DINOv2和SigLIP预训练特征的视觉编码器相结合。作为增加的数据多样性和新模型组件的产物,OpenVLA在广义操作方面表现出了强大的结果,在29个任务和多个机器人实施例中,其绝对任务成功率比RT-2-X(55B)等封闭模型高16.5%,参数减少了7倍。OpenVLA为多面手机器人操纵策略设定了一个新的技术状态。它支持开箱即用地控制多个机器人,并可以通过参数高效微调快速适应新的机器人领域。



项目主页-https://openvla.github.io/

代码链接-https://github.com/openvla/openvla

论文链接-https://arxiv.org/abs/2406.09246

模型链接-https://huggingface.co/openvla




01-机器人抓取任务简介

    机器人操作任务是指让机器人执行物体操纵和操作的任务。这些任务涉及到机器人使用其机械臂、手指和其他工具来操纵物体,执行各种精细和复杂的操作。机器人操作任务通常包括以下几个方面:
  • 物体抓取:机器人需要通过其机械臂和手指来准确地抓取和握持不同形状、大小和重量的物体。这需要机器人具备感知和控制能力,以在不同场景中实现稳定和可靠的抓取。
  • 物体放置:机器人需要能够将抓取的物体精确地放置到指定的位置和姿态。这可能涉及到在空间中进行精细的位置和方向调整,以确保物体被正确放置。
  • 物体搬运:机器人需要能够将物体从一个位置搬移到另一个位置。这可能涉及到在不同的环境中导航,避开障碍物,并将物体安全地运输到目标位置。
  • 组装和拆卸:机器人可以执行复杂的组装和拆卸任务,例如将零件组装成成品或将产品拆解为零部件。这要求机器人具备高度的灵活性和精确性,以便在不同的工作环境中进行准确的操作。
  • 物体识别和分类:机器人需要能够感知和识别不同的物体,并将它们分类到正确的类别中。这可以通过使用传感器、计算机视觉和机器学习等技术来实现。

    机器人操作任务在许多领域都有广泛应用,包括制造业、物流和仓储、医疗手术、家庭服务和农业等。通过实现自动化的机器人操作,可以提高生产效率、减少人力成本,并在危险或繁重的工作环境中保护人类工作者的安全。

02-机器人抓取任务发展历程

  • 2023年7月,A. Brohan, N. Brown, J. Carbajal等人提出“Rt-2: Vision-language-action models transfer web knowledge to robotic control”算法。作者建议在机器人轨迹数据和互联网规模的视觉语言任务(如视觉问答)上共同微调最先进的视觉语言模型。与其它方法相比,作者提出了一个简单、通用的方法来实现这一目标:为了将自然语言反应和机器人动作都采用相同的格式,他将动作表示为文本标记,并以与自然语言标记相同的方式将其直接纳入模型的训练集。作者将这类模型称为视觉语言动作模型(VLA),并实例化这样一个模型的示例,称之为RT-2。大量的实验结果表明:该方法导致了高性能的机器人策略,并使RT-2能够从互联网规模的训练中获得一系列紧急能力。这包括显著提高对新对象的泛化能力,解释机器人训练数据中不存在的命令的能力(例如将对象放置在特定数字或图标上),以及响应用户命令执行基本推理的能力(如拾取最小或最大的对象,或最接近另一对象的对象)。作者进一步证明,结合思维链推理可以让RT-2进行多阶段的语义推理,例如找出哪种物体可以用作即兴锤(石头),或者哪种饮料最适合太困的人(能量饮料)。

  • 2023年10月,A. Padalkar, A. Pooley, A. Jain, A. Bewley等人提出“Open X-Embodiment: Robotic learning datasets and RT-X models”算法。在本文中,作者提供了一个标准化数据格式和模型的数据集,方便在机器人操作的背景下探索这种可能性,同时提供了有效的X机器人策略的实验结果。作者通过21个机构的合作收集了22个不同机器人的数据集,展示了527项技能(160266项任务)。大量的实验结果证明,基于这些数据训练的高容量模型,作者称之为RT-X,它表现出积极的转移,并通过利用其他平台的经验来提高多个机器人的能力。

03-OpenVLA算法背景

    学习操作机器人的一个关键弱点是,它们无法在训练数据之外进行概括:虽然为个人技能或语言指令训练的现有策略有能力将行为外推到新的初始条件,如物体位置或照明,但它们对场景干扰器或新物体缺乏鲁棒性,并且难以执行看不见的任务指令。    

    然而,除了机器人技术之外,现有的视觉和语言基础模型,如CLIP、SigLIP和Llama 2,能够进行这些类型的泛化等,这源于其互联网规模的预训练数据集捕获的先验。尽管复制这种规模的机器人预训练仍然是一个悬而未决的挑战,即使是最大的机器人操作数据集也只有10万到100万个例子,但这种不平衡给我们提供了一个机会:即使用现有的视觉和语言基础模型作为训练机器人策略的核心构建块,这些策略可以推广到训练数据之外的对象、场景和任务。

    为了实现这个目标,现有工作已经探索了将预训练的语言和视觉语言模型集成到机器人表示学习中,并将其作为任务规划和执行的模块化系统的一个组成部分。最近,它们被用于直接学习视觉语言动作模型来进行控制。VLA为机器人提供了使用预训练的视觉和语言基础模型的直接实例化,直接微调可视化条件语言模型(VLM),如PaLI,用来生成机器人控制动作。通过建立在互联网规模数据上训练的强大基础模型,RT-2等VLA展示了令人印象深刻的鲁棒性结果,以及推广到新对象和任务的能力,为广义机器人策略树立了新标准。

    然而,有两个关键原因阻碍了现有VLA的广泛使用:1)当前模型是闭源的,只公布了部分模型架构、训练过程和数据混合等关键信息;2)现有工作没有提供部署和调整VLA以适应新机器人、环境和任务的最佳实践,尤其是在商品硬件(如消费级GPU)上。作者认为,为了为未来的研发奠定丰富的基础,机器人需要开源、多面手的VLA,支持有效的微调和适应,类似于围绕开源语言模型的现有生态系统。
04-OpenVLA算法简介
    在互联网规模的视觉语言数据和各种机器人演示的组合上预先训练的大型策略有可能改变我们教授机器人新技能的方式!我们可以微调这种视觉语言动作(VLA)模型,从而获得鲁棒、可推广的视觉运动控制策略,而不是从头开始训练新行为。
    然而,VLA在机器人领域的广泛采用一直是一个挑战,主要的原因包括:1)现有的VLA在很大程度上是封闭的,公众无法访问;2)先前的工作未能探索有效地微调VLA从而适应新任务的方法,这是采用的关键组成部分。
    为了应对这些挑战,作者引入了OpenVLA,这是一种7B参数的开源VLA,在970k个真实世界机器人演示的不同集合上进行了训练。OpenVLA建立在Llama 2语言模型的基础上,该模型与融合了DINOv2和SigLIP预训练特征的视觉编码器相结合。作为增加的数据多样性和新模型组件的产物,OpenVLA在广义操作方面表现出了强大的结果,在29个任务和多个机器人实施例中,其绝对任务成功率比RT-2-X(55B)等封闭模型高16.5%,参数减少了7倍。OpenVLA为多面手机器人操纵策略设定了一个新的技术状态。它支持开箱即用地控制多个机器人,并可以通过参数高效微调快速适应新的机器人领域。

    大量的实验结果进一步证明,我们可以有效地针对新的设置对OpenVLA进行微调,在涉及多个对象的多任务环境中具有特别强的泛化能力和强大的语言基础能力,并且比扩散策略等从头开始的表达性模仿学习方法强20.4%。作者还探索了计算效率;作为另一个贡献,作者展示了OpenVLA可以通过现代低秩自适应方法在消费者GPU上进行微调,并通过量化有效地提供服务,而不会影响下游成功率。最后,作者发布了模型检查点、微调笔记本和PyTorch代码库,内置支持在Open X-Implementation数据集上大规模训练VLA。

05-OpenVLA算法流程
    上图展示了该算法的训练流程。作者通过微调预训练的Prismatic-7B VLM来训练OpenVLA,该模型由三个关键元素组成
  • 融合的视觉编码器,由SigLIP和DinoV2主干组成,将图像输入映射到多个“图像补丁嵌入”。
  • 一个映射模块,将视觉编码器的输出嵌入映射到大型语言模型的输入空间。
  • 预测标记化输出动作的Llama 2 7B语言模型主干。这些令牌被解码为可以在机器人上直接执行的连续输出动作。

    为了训练OpenVLA,作者从Open X-Implement(OpenX)数据集中策划了一个970k机器人操纵轨迹的数据集。该数据集涵盖了广泛的任务、场景和机器人实施例。作者在64个A100 GPU的集群上训练OpenVLA 15天。经过训练的模型文件可以从HuggingFace下载,并通过几行代码来使用。

06-OpenVLA算法环境搭建&运行
06.01-搭建运行环境
# 利用git获取源代码git clone https://github.com/openvla/openvla.git
# 安装三方依赖cd openvlapip install -e .
# 安装 Flash-Attention 2pip install packaging ninja
# Verify Ninja --> should return exit code "0"ninja --version; echo $?
# Install Flash Attention 2# =>> If you run into difficulty, try `pip cache remove flash_attn` firstpip install "flash-attn==2.5.5" --no-build-isolation

06.02-运行Demo样例

    为了开始加载和运行OpenVLA模型进行推理,作者提供了一个轻量级接口,该接口利用HuggingFace转换器AutoClasses,具有最小的依赖性。例如,要在带有Widow-X机器人的BridgeData V2环境中为以下零样本指令加载openvla-7b:
# Install minimal dependencies (`torch`, `transformers`, `timm`, `tokenizers`, ...)# > pip install -r https://raw.githubusercontent.com/openvla/openvla/main/requirements-min.txtfrom transformers import AutoModelForVision2Seq, AutoProcessorfrom PIL import Image
import torch
# Load Processor & VLAprocessor = AutoProcessor.from_pretrained("openvla/openvla-7b", trust_remote_code=True)vla = AutoModelForVision2Seq.from_pretrained( "openvla/openvla-7b", attn_implementation="flash_attention_2", # [Optional] Requires `flash_attn` torch_dtype=torch.bfloat16, low_cpu_mem_usage=True, trust_remote_code=True).to("cuda:0")
# Grab image input & format promptimage: Image.Image = get_from_camera(...)prompt = "In: What action should the robot take to {<INSTRUCTION>}?\nOut:"
# Predict Action (7-DoF; un-normalize for BridgeData V2)inputs = processor(prompt, image).to("cuda:0", dtype=torch.bfloat16)action = vla.predict_action(**inputs, unnorm_key="bridge_orig", do_sample=False)
# Execute...robot.act(action, ...)
07-OpenVLA算法性能评估
07.01-主观效果性能评估

    上面的视频展示了OpenVLA如何在各种评估任务中与其它基线方法RT-2-X进行比较的效果。(视频速度提高了2倍。)通过观察与分析,我们可以发现:真实世界谷歌机器人推出RT-2-X(闭源55B参数模型)和OpenVLA都能可靠地执行分布内和基本分布外(OOD)泛化任务。

    然而,RT-2-X在困难的语义泛化任务上比OpenVLA表现得更好,即需要来自互联网的概念知识的任务,这些概念没有出现在机器人动作训练数据中,例如下面视频中的Taylor Swift。这是意料之中的,因为RT-2-X使用了更大规模的互联网预训练数据,并与机器人动作数据和网络预训练数据进行了协同微调,以更好地保存预训练知识(对于OpenVLA,为了简单起见,我们仅根据机器人动作数据微调预训练的视觉语言模型)。   

    上面的视频展示了在涉及场景中多个对象并需要语言条件的微调任务中,Diffusion Policy、Octo与OpenVLA的效果展示。通过观察与分析,我们可以发现:Octo和OpenVLA通常表现更好,因为它们的OpenX预训练使它们能够更好地适应这些更多样化的任务。

07.02-客观指标性能评估

    上图评估了OpenVLA在两种设置中“开箱即用”控制多个机器人平台的能力:Bridge V2中的WidowX设置和RT系列论文中的Google robot。实验结果表明:Open VLA开创了一个新的技术状态,优于先前的广义策略RT-1-X和Octo。值得注意的是,作为增加的数据多样性和新的模型组件的产物,它也优于RT-2-X,一种55B参数封闭的VLA。

    上图展示了作者在广泛的泛化任务中测试了OpenVLA,例如视觉(看不见的背景、干扰物对象、对象的颜色/外观);运动(看不见的物体位置/方向);物理(看不见的物体大小/形状);以及语义(来自互联网的看不见的目标对象、指令和概念)概括。通过仔细观察与分析,我们可以发现:RT-2-X和OpenVLA都表现出比其他测试模型明显更稳健的行为,例如当存在干扰物体时接近正确的物体,正确地定位机器人的末端执行器以与目标物体的方向对齐,甚至从错误中恢复,如不安全地抓握物体。

    VLA模型对新任务和机器人设置的有效微调在很大程度上尚未探索,但这是其广泛采用的关键。上图作者研究了OpenVLA在两个领域快速适应新机器人设置的能力:Franka Tabletop,一种固定的、安装在桌子上的Franka Emika Panda 7-DoF机械臂,控制频率为5Hz;和Franka DROID,来自最近发布的DROID数据集的Franka机械臂设置,控制在15Hz。

    作者将其与扩散策略进行比较,扩散策略是一种从零开始训练的最先进的数据高效模仿学习方法。此外,作者还对Octo进行了评估,对目标数据集进行了微调。OpenVLA在大多数任务中明显优于Octo。扩散策略在更窄、更精确的任务上最强,而OpenVLA在需要多任务、多对象设置中的行为基础语言的任务上表现出更好的性能。OpenVLA是唯一一种在所有测试任务中成功率至少达到50%的方法,这表明它可能是模仿学习任务的一个强大的默认选项,尤其是当它们涉及一组不同的语言指令时。
08-OpenVLA算法效果展示

图8.1-OpenVLA算法抓取效果1展示
图8.2-OpenVLA算法抓取效果2展

图8.3-OpenVLA算法抓取效果3展

图8.4-OpenVLA算法抓取效果4展示



关注我,AI热点早知道,AI算法早精通,AI产品早上线!






欢迎你的加入,让我们一起交流、讨论与成长!

若二维码失效:关注公众号--》交流分享--》联系我们(备注:AI产品汇)

禁止私自转载,需要转载请先征求我的同意!