OpenVLA 论文
OpenVLA 是一种具有 70 亿参数的开源视觉-语言-动作模型(
Vision-Language-Action, VLA
),旨在将视觉感知、语言理解和机器人动作控制无缝结合。其核心是一个预训练的视觉条件语言模型(Vision-Conditioned Language Model
),通过在Open-X Embodiment
数据集上进行微调,该数据集包含了 970k 条多样化的机器人操作轨迹,涵盖了广泛的场景和任务。OpenVLA 的架构和训练方法使其在机器人操作和多模态任务中展现出强大的潜力。
与 Octo 等先前的工作不同,OpenVLA 采用了一种更为端到端的方法。Octo 等模型通常由预训练的组件(如语言嵌入或视觉编码器)组成,并与从头初始化的附加模型组件结合,在策略训练过程中学习如何将这些组件“拼接”在一起。相比之下,OpenVLA 直接对视觉-语言模型(VLM)进行微调,通过将机器人动作视为语言模型词汇中的 token 来生成机器人动作。这种方法不仅简化了模型架构,还增强了多模态任务中的一致性和泛化能力。
最近的 VLM 架构一般涵盖:
作者将机器人动作预测问题重新表述为一个“视觉-语言”任务。具体来说,模型接收观察图像和自然语言任务指令作为输入,并将其映射为一串预测的机器人动作。为了实现这一目标,作者将连续的机器人动作离散化,映射到语言模型的分词器所使用的离散 token 上,从而将动作预测问题转化为语言模型的输出空间问题。
动作离散化方法
为了使视觉-语言模型(VLM)的语言模型骨干能够预测机器人动作,作者采用了一种基于分位数的离散化方法。对于每个动作维度,作者将训练数据中动作的第 1 分位数到第 99 分位数之间的区间均匀划分为若干“箱子”。与 Brohan 等人使用的最小-最大边界方法不同,这种基于分位数的方法能够有效忽略数据中的异常动作,避免异常值过度扩展离散化区间,从而保持动作离散化的有效粒度。
通过这种方法,作者将一个 N 维的机器人动作表示为 N 个离散整数,每个整数的取值范围为 [ 0 , 255 ] [0, 255] [0,255]。然而,OpenVLA 使用的语言模型骨干(Llama 分词器)在微调期间仅保留了 **100 个“特殊词”**用于新引入的词,这远不足以覆盖 256 个动作 token。
分词器词汇的调整
为了解决这一问题,作者借鉴了 Brohan 等人的方法,选择了一种简单而有效的策略:用动作 token 覆盖 Llama 分词器词汇中使用频率最低的 256 个词(即词汇表中最后的 256 个词)。这种方法既避免了分词器词汇的扩展,又确保了动作 token 的有效表示。
最终使用Open X-Embodiment dataset
对模型进行微调,使用lora finetune
且发现微调vision encoder
可以帮忙捕捉机器人数据的细粒度空间细节。
性能表现
结果显示,OpenVLA在大多数任务中表现最强,并且在通用策略中具有最高的总体成功率。RT-2-X也表现良好,优于RT-1-X和Octo(RT-1-X和Octo在这些泛化任务中通常遇到困难),但不如OpenVLA。