OpenVLA 深度解析:基于 Prismatic VLM 的离散化动作预测
前言
随着机器人动作策略预测技术的成熟,如 ACT、扩散策略(Diffusion Policy)等,提升泛化能力的关键路径之一在于利用预训练大语言模型的广泛知识,并叠加策略头(Policy Head)。早期的 RoboFlamingo 使用了较简单的模型结构,而近期 OpenVLA 和 π0 等 VLA(Vision-Language-Action)模型的出现,标志着通用机器人控制进入了'预训练 - 微调'的新阶段。
π0 的意义在于首次用同一套策略框架操作不同机械臂,这种模式代表了通用机器人的核心发展方向。虽然 π0 开源时间有所延迟,但 OpenVLA 作为目前逼近其思路的重要开源方案,值得深入剖析。本文将聚焦 OpenVLA,探讨其架构设计、训练策略及源码实现细节。
OpenVLA:类似 RT-2 的开源版 VLA
1. 模型背景与定位
2024 年 6 月,来自斯坦福大学、UC Berkeley、Google DeepMind 等机构的研究者推出了 OpenVLA。该模型在 Open-X Embodiment 数据集中的 97 万条机器人操作轨迹上进行了微调。
当前机器人策略的一个关键弱点是泛化能力不足,难以应对场景干扰物或新颖物体。相比之下,CLIP、SigLIP 和 Llama 2 等基础模型凭借互联网规模的预训练数据,具备更强的泛化潜力。OpenVLA 的核心目标就是利用这些视觉和语言基础模型,构建能泛化到超出训练数据的机器人策略。
现有 VLA 尚未广泛应用的主要原因包括闭源限制以及缺乏适配新环境的最佳实践。OpenVLA 旨在提供一个开源、通用且支持高效微调的解决方案。
2. 模型架构:Prismatic-7B VLM
OpenVLA 基于 Prismatic-7B VLM 构建,采用标准的视觉 - 语言模型架构,主要由三部分组成:
- 视觉编码器:使用 SigLIP 和 DinoV2 的组合。SigLIP 在 400 亿图文对上训练,DinoV2 在 12 亿图片上训练。输入图像块分别通过这两个编码器,特征向量按通道拼接。实验表明,融合 DinoV2 有助于改善空间推理,这对机器人控制尤为关键。不过也有版本仅使用 SigLIP 骨干,性能依然强劲。
- 投影器:一个两层的小型 MLP,将视觉特征映射到语言模型的输入空间。
- 语言模型骨干:70 亿参数的 Llama 2。
作者选择 Prismatic 而非 LLaVA 或 IDEFICS-1,主要是因为其融合的 SigLIP-DinoV2 主干提供了更好的空间推理能力,且在多物体语言指令任务中表现更优。此外,Prismatic 提供了模块化且易于使用的代码库。
关于训练细节:
- 分辨率:最终选择 224×224 像素,因为 384×384 并未带来显著性能提升,但训练成本增加三倍。
- 轮次:VLA 训练通常需要更多轮次,实际性能直到动作 token 准确率超过 95% 才趋于稳定,最终运行了 27 个轮次。
- 学习率:固定学习率 2e-5 效果最佳,无需预热。
3. 训练策略:动作离散化
为了训练 OpenVLA,作者对预训练的 Prismatic-7B VLM 进行微调,将动作预测问题表述为'视觉 - 语言'任务。
关键在于如何将连续的动作映射到 LLM 的输出空间。作者采用了类似 RT-2 的方法,将每个动作维度离散化为 256 个区间中的一个。由于 Llama 分词器仅为微调预留了 100 个特殊 token,不足以容纳 256 个动作 token,因此作者选择覆盖 Llama 分词器词表中频率最低的 256 个 token(即最后 256 个)来存储动作信息。
一旦动作被处理为 token 序列,OpenVLA 就采用标准的下一个 token 预测目标进行训练,仅对预测的动作 token 计算交叉熵损失。对于每个动作维度,区间宽度设置为均匀划分训练数据中第 1 和第 99 分位数之间的范围,忽略异常值以提高有效精度。
4. 训练数据与基础设施
训练数据基于 Open X-Embodiment 数据集(OpenX),包含超过 70 个单独的机器人数据集。为了统一输入输出空间,筛选了至少有一个第三人称摄像机的操作数据集,并使用单臂末端执行器控制。为了平衡不同形态的数据集权重,参考了 Octo 的数据混合策略。
训练在一个由 64 个 A100 GPU 组成的集群上进行,耗时 14 天。推理时,模型加载为 bfloat16 精度,需要 15GB 显存,在一块 NVIDIA RTX 4090 上以大约 6Hz 的速度运行。作者还发布了远程 VLA 推理服务器,允许实时流式传输动作预测。


