引言
随着机器人动作策略预测的成熟,为了提升泛化能力,典型途径之一是基于预训练大语言模型的广泛知识,并增加 policy head。随后出现了更多成熟的专用 VLA 模型,如 OpenVLA。
1. OpenVLA:相当于 RT-2 的开源版
1.1 OpenVLA:第一个开源的通用 VLA 模型
2024 年 6 月,来自斯坦福大学、UC Berkeley、Toyota Research Institute、Google DeepMind、Physical Intelligence 及 MIT 的研究者推出了 OpenVLA。
- 论文:《OpenVLA: An Open-Source Vision-Language-Action Model》
- 项目地址:openvla.github.io
- GitHub 地址:github.com/openvla/openvla
这是一个具有 70 亿参数的开源视觉 - 语言 - 动作模型(VLA),由一个预训练的视觉条件语言模型骨干组成,在 Open-X Embodiment 数据集中的 97 万条机器人操作轨迹上进行了微调。它支持开箱即用地控制多个机器人,并且可以通过参数高效微调快速适应新的机器人领域。
1.2 OpenVLA 的模型架构、训练过程、训练数据
1.2.1 模型架构 (基于 Prismatic-7B VLM):SigLIP、DinoV2、Llama 2
大多数最新的 VLM 架构一般由三部分组成:视觉编码器、投影器、大型语言模型 LLM 骨干。
OpenVLA 基于 Prismatic-7B VLM 构建,包含:
- 视觉编码器:600M 参数,由预训练的 SigLIP 和 DinoV2 模型组成。输入图像块分别通过这两个编码器,随后将特征向量按通道拼接。添加 DinoV2 特征有助于改善空间推理。
- 投影器:两层小型 MLP。
- 语言模型骨干:70 亿参数的 Llama 2。
作者选择 Prismatic 作为主干,是因为其融合的 SigLIP-DinoV2 主干提供了改进的空间推理能力,且代码库模块化易用。
对于图像分辨率,最终选择 224×224 像素,因为 384×384 像素虽未带来性能差异但训练时间更长。 对于训练轮次,实际机器人性能会不断提高,直到训练动作 token 准确率超过 95%,最终完成了 27 个轮次。 对于学习率,固定学习率 2e-5 取得了最佳结果。
1.2.2 微调 Prismatic-7B VLM,使其输出机器人动作
作者将动作预测问题表述为一个'视觉 - 语言'任务,输入的观测图像和自然语言任务指令被映射为一串预测的机器人动作。
为了使 VLM 的语言模型主干能够预测机器人动作,作者通过将连续的机器人动作映射到语言模型的分词器使用的离散 token,将动作表示在 LLM 的输出空间中。
- 类似 Brohan 等人的方法,基于下一个 token 预测技术预测动作 token,作者将机器人的每个动作维度分别离散化为 256 个区间中的一个。
- 通过这种离散化方法,作者为一个 N 维的机器人动作获得了 N 个离散整数,范围为 [0...255]。
- 由于 Llama 分词器仅为微调时新引入的 token 预留了 100 个'特殊 token',远不足以满足动作离散化所需的 256 个 token,作者简单地用动作 token 覆盖 Llama 分词器词表中使用频率最低的 256 个 token。
一旦动作被处理为 token 序列,OpenVLA 就采用标准的下一个 token 预测目标进行训练,仅对预测的动作 token 计算交叉熵损失。
对于每个动作维度,设置区间宽度,使其在训练数据中动作的第 1st 和第 99th 分位数之间均匀划分。使用分位数使得能够忽略数据中的异常动作,否则这些异常值可能会极大地扩展离散化区间,降低动作离散化的有效精度。
1.2.3 训练数据
OpenVLA 用 Open X-Embodiment 数据集(OpenX)作为基础来策划训练数据集。完整的 OpenX 数据集由超过 70 个单独的机器人数据集组成,包含超过 200 万条机器人轨迹。
为了使在这些数据上进行训练变得可行,作者对原始数据集应用了多个步骤的数据整理:


