OpenVLA 深度解析:Prismatic VLM 架构下的离散化动作预测
前言
随着机器人动作策略预测的日益成熟,如何让模型具备更强的泛化能力成为关键。典型的途径之一是利用预训练大语言模型的广泛知识,并增加一个 Policy Head(早期如 RoboFlamingo 使用 LSTM 或 MLP)。随后,OpenVLA 等成熟的专用 VLA(Vision-Language-Action)模型应运而生。
通用机器人的核心发展方向在于「预训练 - 微调」模式,即利用同一套策略算法操作不同机器人。虽然 π0 模型曾引发关注,但 OpenVLA 作为开源方案,在架构与性能上提供了极具价值的参考。本文将深入剖析 OpenVLA 的模型架构、训练数据及源码实现。
第一部分 OpenVLA:相当于 RT-2 的开源版
1.1 OpenVLA 概述
1.1.1 基于 Open X-Embodiment 数据的 7B VLA 模型
2024 年 6 月,来自斯坦福大学、UC Berkeley、Google DeepMind 等机构的研究者推出了 OpenVLA。其论文《OpenVLA: An Open-Source Vision-Language-Action Model》详细阐述了这一具有 70 亿参数的开源视觉 - 语言 - 动作模型。
该模型由预训练的视觉条件语言模型骨干组成,在 Open-X Embodiment 数据集中的 97 万条机器人操作轨迹上进行了微调。它支持开箱即用控制多个机器人,并通过参数高效微调快速适应新领域。
1.1.2 背景与动机
当前机器人策略存在泛化弱点:难以应对场景干扰物或新颖物体。相比之下,CLIP、SigLIP 和 Llama 2 等基础模型凭借互联网规模预训练数据,具备优秀的泛化能力。
现有 VLA 尚未广泛应用的主要原因包括闭源限制以及缺乏适配最佳实践。为此,作者推出了 OpenVLA,旨在建立类似开源语言模型的生态系统,支持高效的微调与适配。
实验表明,OpenVLA 在 WidowX 和 Google Robot 的 29 项评测任务中,绝对成功率比拥有 550 亿参数的 RT-2-X 高出 16.5%。与 Octo 等先前研究不同,OpenVLA 采用端到端方法,直接将机器人动作视为语言模型词汇表中的 token 生成。
1.2 模型架构、训练过程与数据
1.2.1 模型架构:SigLIP、DinoV2、Llama 2
OpenVLA 基于 Prismatic-7B VLM 构建。大多数最新 VLM 架构包含三部分:视觉编码器、投影器、大型语言模型(LLM)骨干。
- 视觉编码器:采用两部分结构,由预训练的 SigLIP(400 亿图文对训练)和 DinoV2(12 亿图片训练)组成。输入图像块分别通过这两个编码器,特征向量按通道拼接。添加 DinoV2 有助于改善空间推理,这对机器人控制尤为关键。不过,后续 π0 模型仅使用 SigLIP 也取得了强劲性能,说明融合并非绝对必要。
- 投影器:两层小型 MLP,将视觉嵌入映射到语言模型输入空间。
- 语言模型骨干:70 亿参数的 Llama 2。
作者选择 Prismatic 而非 LLaVA 或 IDEFICS-1,主要归因于其融合的 SigLIP-DinoV2 主干提供了改进的空间推理能力,且代码库模块化易用。
关于训练细节:
- 分辨率:最终选择 224×224 像素,384×384 虽无性能差异但训练时间三倍增长。
- 轮次:VLA 训练需更多轮次,实际性能随动作 token 准确率提升而提高,最终完成 27 个轮次。
- 学习率:固定学习率 2e-5 表现最佳,无需预热。
1.2.2 微调策略:动作离散化
为了训练 OpenVLA,作者对 Prismatic-7B VLM 进行微调,将动作预测表述为'视觉 - 语言'任务。
- 动作 Token 化:将连续机器人动作映射到 LLM 的分词器使用的离散 token。每个动作维度被离散化为 256 个区间中的一个。
- 词表覆盖:Llama 分词器仅为微调预留了 100 个特殊 token,不足以满足 256 个动作 token 需求。因此,作者简单用动作 token 覆盖 Llama 分词器词表中频率最低的 256 个 token(即最后 256 个)。


