OpenVLA: 开源视觉-语言-动作模型文献解读
一、文献概述
论文标题: OpenVLA: An Open-Source Vision-Language-Action Model
作者: Moo Jin Kim, Karl Pertsch, Siddharth Karamcheti 等
机构: Stanford University, UC Berkeley, Toyota Research Institute, Google DeepMind, Physical Intelligence, MIT
发表时间: 2024年
论文链接: https://arxiv.org/abs/2406.09246
项目主页: https://openvla.github.io
二、研究背景与关键科学问题
2.1 研究背景
当前机器人学习领域面临的核心挑战是策略泛化能力不足:传统机器人策略难以超越训练数据进行泛化,缺乏对场景干扰物、新物体和未见任务指令的鲁棒性。然而,计算机视觉和自然语言处理领域的基础模型(如CLIP、SigLIP、Llama 2)通过海量互联网数据预训练,展现出了强大的泛化能力。
2.2 关键科学问题与技术挑战
本文主要解决以下两个核心问题:
-
开源性缺失问题: 现有的视觉-语言-动作模型(VLA)如RT-2-X大多是闭源的,模型架构、训练过程和数据混合策略缺乏透明度,限制了研究社区的进一步发展。
-
高效微调方法缺失: 现有工作未能探索如何将VLA模型高效地微调到新的机器人设置、环境和任务,这是VLA广泛应用的关键障碍。
-
跨本体泛化问题: 如何训练一个能够控制多种不同机器人本体(embodiments)的通用策略,并能够快速适应新的机器人设置。
-
计算资源限制: 如何在消费级GPU上实现VLA的微调与推理,降低使用门槛。
三、研究方法与技术路线
3.1 核心思想
OpenVLA的核心思想是直接微调视觉条件语言模型(VLM)来生成机器人控制动作,将机器人动作预测问题重新表述为"视觉-语言"任务。通过利用互联网规模的预训练知识,使机器人策略能够泛化到训练数据之外的物体、场景和任务。
3.2 模型架构
OpenVLA采用三阶段架构(如图2所示):
3.2.1 视觉编码器(Vision Encoder)
双编码器融合设计:
- SigLIP编码器: 提供高级语义特征(high-level semantics)
- DINOv2编码器: 提供低级空间信息(low-level spatial information)
技术细节:
- 输入图像尺寸: 224×224像素
- 两个编码器分别处理输入图像,特征向量在通道维度拼接
- 总参数量: 600M
创新点: 融合两种视觉特征显著提升了空间推理能力,这对机器人控制至关重要。实验表明,相比仅使用SigLIP,融合编码器在语言定位任务上提升了约10%的绝对成功率。
3.2.2 投影器(Projector)
- 结构: 2层MLP
- 功能: 将视觉特征映射到语言模型的嵌入空间
- 实现视觉token与语言token的对齐
3.2.3 语言模型主干(LLM Backbone)
- 基础模型: Llama 2(7B参数)
- 作用: 作为主要的推理和动作生成引擎
- 预训练数据: 互联网规模的文本数据
3.3 动作离散化与Token化
3.3.1 动作表示
机器人动作被表示为7维控制向量(通常为末端执行器的6-DoF位姿 + 夹爪开合)。
3.3.2 离散化策略
分箱(Binning)方法:
- 每个动作维度独立离散化为256个区间(bins)
- 区间边界: 基于训练数据的1%和99%分位数(而非最小-最大值)
- 目的: 忽略异常值,保持离散化的有效粒度
Token映射:
- Llama tokenizer仅预留100个特殊token,不足以容纳256个动作token
- 解决方案: 覆盖tokenizer词表中256个最少使用的token(最后256个token)
- 这种简单方法被证明是有效的
3.4 训练数据集
3.4.1 数据来源
Open X-Embodiment数据集:
- 总规模: 970k真实机器人演示轨迹
- 来源: 70多个独立机器人数据集
- 涵盖: 多种机器人本体、任务和场景
3.4.2 数据筛选与混合
筛选标准:
- 仅保留具有至少一个第三人称视角摄像机的操作数据集
- 仅使用单臂末端执行器控制
数据混合策略:
- 主要遵循Octo的数据混合权重
- 启发式地降低多样性较低数据集的权重
- 提升任务和场景多样性较大数据集的权重
数据组成(主要部分):
| 数据集 | 混合权重 |
|---|---|
| BridgeData V2 | 13.3% |
| Fractal | 12.7% |
| Kuka | 12.7% |
| BC-Z | 7.5% |
| FMB Dataset | 7.1% |
| DROID | 10.0%(训练最后1/3时移除) |
数据清洗:
- 过滤掉全零(no-op)动作
- 移除DROID数据集(训练后期)
3.5 训练过程
3.5.1 训练目标
标准下一个token预测:
- 损失函数: 交叉熵损失
- 仅对预测的动作token计算损失
- 忽略输入部分的损失
3.5.2 关键超参数
| 参数 | 设置值 |
|---|---|
| 学习率 | 2e-5 |
| 批量大小 | 2048 |
| 训练轮数 | 27 epochs |
| 优化器 | AdamW |
| 学习率预热 | 无 |
3.5.3 重要设计决策
-
视觉编码器微调 : 与VLM训练中的常见做法(冻结视觉编码器)不同,OpenVLA发现微调视觉编码器对VLA性能至关重要。假设原因:预训练视觉主干可能未捕获足够的细粒度空间细节以支持精确的机器人控制。
-
训练轮数: VLA训练需要多次遍历数据集(27轮),直到动作token准确率超过95%。这与典型的LLM/VLM训练(1-2轮)形成对比。
-
图像分辨率: 选择224×224像素而非384×384像素,因为后者训练时间增加3倍但性能无提升。
3.5.4 训练基础设施
- 硬件: 64×A100 GPU集群
- 训练时间: 14天
- 总计算量: 21,500 A100-hours
3.6 微调策略
3.6.1 全参数微调(Full Fine-Tuning)
- 更新所有70亿参数
- 需要8×A100 GPU,5-15小时/任务
3.6.2 参数高效微调(Parameter-Efficient Fine-Tuning)
LoRA(Low-Rank Adaptation):
- 秩(rank): r=32(推荐默认值)
- 应用于所有线性层
- 仅训练1.4%的参数(约100M参数)
- 内存需求: 单张A100 GPU
- 训练时间: 10-15小时/任务
- 性能: 与全参数微调相当
其他策略对比:
| 策略 | 成功率 | 训练参数 | VRAM需求 |
|---|---|---|---|
| 全参数微调 | 69.7% | 7,188M | 163.3GB* |
| 仅最后一层 | 30.3% | 465M | 51.4GB |
| 冻结视觉 | 47.0% | 6,760M | 156.2GB* |
| Sandwich微调 | 62.1% | 914M | 64.0GB |
| LoRA (r=32) | 68.2% | ~100M | 单卡 |
*需要2张GPU进行FSDP分片
3.7 推理优化
3.7.1 量化推理
精度级别对比:
| 精度 | Bridge成功率 | VRAM需求 |
|---|---|---|
| bfloat16 | 71.3% | 16.8GB |
| int8 | 58.1% | 10.2GB |
| int4 | 71.9% | 7.0GB |
关键发现:
- 4位量化(int4)在内存减少超过一半的情况下,性能与bfloat16相当
- 8位量化(int8)性能下降主要由于推理速度降低导致的系统动态变化,而非模型精度问题
- 4位量化在A5000 GPU上可达3Hz控制频率
3.7.2 推理速度
- 默认(bfloat16): RTX 4090上约6Hz
- 4位量化: 在多数GPU上吞吐量更高
- 支持远程推理服务器,实现实时动作预测流
四、实验设计与评估
4.1 实验目标
- 评估OpenVLA作为多机器人控制策略的"开箱即用"性能
- 评估OpenVLA在新机器人设置上的微调效果
- 评估参数高效微调和量化的计算效率与性能权衡
4.2 评估平台与任务
4.2.1 BridgeData V2 WidowX评估
机器人平台: WidowX机械臂(5Hz控制频率)
评估任务(17个任务,每个10次试验,共170次rollout):
| 类别 | 任务数 | 说明 |
|---|---|---|
| 视觉泛化 | 5 | 未见背景、干扰物、物体外观 |
| 运动泛化 | 2 | 未见物体位置和朝向 |
| 物理泛化 | 3 | 未见物体尺寸和形状 |
| 语义泛化 | 4 | 未见目标物体、指令和互联网概念 |
| 语言定位 | 3 | 多物体场景中的语言条件任务 |
代表性任务:
- Put Eggplant into Pot(视觉泛化)
- Lift Eggplant(运动泛化)
- Lift AAA Battery(物理泛化)
- Move Skull into Drying Rack(语义泛化)
- Put {Eggplant, Red Bottle} into Pot(语言定位)
4.2.2 Google Robot评估
机器人平台: 移动操作机器人(RT-1/RT-2评估平台)
评估任务(12个任务,每个5次试验,共60次rollout):
- 5个分布内任务
- 7个分布外(OOD)任务
OOD挑战:
- 未见背景(桌布图案)
- 未见目标物体(橙子、百事罐、香蕉)
- 未见指令关系("放到盘子上"vs"放到盘子附近")
- 互联网概念(Taylor Swift照片)
4.2.3 Franka机器人微调评估
Franka-Tabletop设置:
- 6个任务(3个单指令+3个多指令)
- 10-150个演示/任务
- 5Hz控制频率
Franka-DROID设置:
- 1个任务(Wipe Table)
- 70个演示
- 15Hz控制频率
4.2.4 LIBERO仿真评估
四个任务套件:
- LIBERO-Spatial: 空间关系理解
- LIBERO-Object: 物体类型理解
- LIBERO-Goal: 任务目标理解
- LIBERO-Long: 长程任务
每个套件10个任务,50个演示/任务
4.3 对比方法
- RT-1-X (35M参数): 在OpenX子集上从头训练的Transformer策略
- RT-2-X (55B参数): 闭源VLA,当前最先进模型
- Octo (93M参数): 开源通用策略,支持灵活微调
- Diffusion Policy: 从头训练的状态-of-the-art模仿学习方法
4.4 主要实验结果
4.4.1 开箱即用性能(BridgeData V2)
| 方法 | 平均成功率 |
|---|---|
| RT-1-X | 18.5±2.7% |
| Octo | 20.0±2.6% |
| RT-2-X | 50.6±3.5% |
| OpenVLA | 70.6±3.2% |
关键发现:
- OpenVLA比RT-2-X(55B参数)高出16.5%绝对成功率
- 参数仅7B,比RT-2-X少7倍
- 在除语义泛化外的所有类别中均优于或与RT-2-X相当
4.4.2 Google Robot评估结果
| 方法 | 平均成功率 |
|---|---|
| RT-1-X | 33.3±6.1% |
| Octo | 26.7±5.8% |
| RT-2-X | 78.3±5.4% |
| OpenVLA | 85.0±4.6% |
关键发现:
- OpenVLA与RT-2-X性能相当(误差范围重叠)
- 两者均显著优于RT-1-X和Octo
4.4.3 微调性能(Franka机器人)
| 方法 | Franka-Tabletop平均 | Franka-DROID平均 |
|---|---|---|
| Diffusion Policy | 48.5±4.9% | 35.0±8.0% |
| Diffusion Policy (matched) | 43.4±4.7% | 26.7±7.5% |
| Octo微调 | 43.4±4.4% | 38.3±8.5% |
| OpenVLA微调 | 67.2±4.0% | 58.3±7.2% |
| OpenVLA (scratch) | 43.4±4.6% | 21.7±6.6% |
关键发现:
- OpenVLA在所有测试任务中均达到至少50%成功率
- 在单指令任务上,Diffusion Policy表现强劲
- 在多指令、语言定位任务上,OpenVLA优势明显
- OpenVLA (scratch)性能显著下降,证明OpenX预训练的重要性
4.4.4 LIBERO仿真结果
| 方法 | LIBERO-Spatial | LIBERO-Object | LIBERO-Goal | LIBERO-Long | 平均排名 |
|---|---|---|---|---|---|
| Diffusion Policy | 78.3% (3) | 92.5% (1) | 68.3% (3) | 50.5% (3) | 2.5 |
| Octo微调 | 78.9% (2) | 85.7% (3) | 84.6% (1) | 51.1% (2) | 2.0 |
| OpenVLA微调 | 84.7% (1) | 88.4% (2) | 79.2% (2) | 53.7% (1) | 1.5 |
关键发现:
- OpenVLA在真实世界数据预训练的情况下,仍能适应仿真环境
- 平均排名最高,显示其作为默认选择的潜力
- 与Diffusion Policy和Octo的差距较真实世界实验更小,可能由于领域差异
五、主要创新点与学术贡献
5.1 核心创新点
5.1.1 首个开源通用VLA模型
OpenVLA是首个完全开源的通用视觉-语言-动作模型,包括:
- 模型检查点(HuggingFace)
- PyTorch训练代码
- 微调和推理笔记本
- 支持Open X-Embodiment数据集的完整训练流程
意义: 为机器人学习社区提供了可复现、可扩展的VLA研究基础。
5.1.2 融合视觉编码器设计
创新性地融合SigLIP和DINOv2两种视觉编码器:
- SigLIP提供语义理解能力
- DINOv2提供空间推理能力
- 实验验证相比单编码器提升约5%性能
5.1.3 系统性的VLA微调研究
首次全面探索VLA的微调策略:
- 证明VLA可有效微调到新机器人设置
- 在语言定位任务上比Diffusion Policy提升20.4%
- 揭示OpenX预训练对下游任务的重要性
5.1.4 参数高效微调与量化
首次将现代LLM优化技术应用于VLA:
- LoRA微调: 仅训练1.4%参数即可达到全参数微调性能
- 4位量化: 内存减少50%以上,性能无损
- 使VLA在消费级GPU上可行
5.2 学术贡献
5.2.1 方法论贡献
- 动作离散化最佳实践: 基于分位数的离散化策略,有效处理异常动作
- 训练配方: 27轮训练、视觉编码器微调等关键设计决策
- 数据混合策略: 基于多样性的启发式数据加权方法
5.2.2 实证贡献
- 性能基准: 在多个真实机器人和仿真平台上建立新的性能基准
- 消融研究: 系统性分析OpenX训练、融合编码器、视觉编码器微调等组件的贡献
- 计算效率分析: 详细的性能-计算权衡分析
5.2.3 工程贡献
- 开源代码库: 模块化PyTorch代码库,支持从单GPU微调到多节点集群训练
- 基础设施: 支持FSDP、FlashAttention、AMP等现代训练技术
- 远程推理: 支持实时远程动作预测流
5.3 对领域的影响
- 降低研究门槛: 开源使更多研究者能够参与VLA研究
- 推动标准化: 提供统一的VLA训练和评估框架
- 启发后续工作: 为VLA架构设计、训练策略、微调方法提供参考
六、局限性与未来工作
6.1 当前局限性
- 单图像输入: 目前仅支持单张图像观测,不支持多视角、本体感知输入或观测历史
- 推理速度: 6Hz的推理速度限制了在高频控制场景(如ALOHA的50Hz)中的应用
- 可靠性: 在测试任务上的成功率通常低于90%,仍有提升空间
- 动作表示: 仅支持单步动作预测,未实现动作分块(action chunking)
6.2 未来研究方向
- 多模态输入: 扩展支持多图像、本体感知、观测历史
- 推理加速: 探索动作分块、投机解码(speculative decoding)等技术
- 架构探索: 研究基础VLM规模对VLA性能的影响
- 联合训练: 探索机器人动作数据与互联网规模视觉-语言数据的联合训练
- 视觉特征: 研究最适合VLA模型的视觉特征类型
七、关键实验结论
7.1 消融实验结果
| 实验 | 主要发现 |
|---|---|
| OpenX训练消融 | 移除OpenX训练导致性能下降30%,证明多样化数据的重要性 |
| 双编码器消融 | 移除DINOv2导致性能下降5%,空间特征有助于部分任务 |
| 视觉编码器微调 | 冻结视觉编码器导致性能显著下降,微调对空间细节捕获至关重要 |
| 量化推理 | 4位量化性能无损,8位量化性能下降主要由于推理速度而非精度 |
7.2 定性观察
- OpenVLA和RT-2-X展现出比RT-1-X和Octo更鲁棒的行为
- 能够在存在干扰物时接近正确物体
- 能够根据目标物体朝向调整末端执行器姿态
- 能够从错误中恢复(如不稳定的抓取)
八、总结
OpenVLA代表了视觉-语言-动作模型领域的重要进展,通过开源一个高性能的7B参数VLA模型,为机器人学习社区提供了宝贵的研究资源。其主要贡献包括:
- 性能: 在多个基准上超越55B参数的RT-2-X,同时参数少7倍
- 开源: 完全开源的模型、代码和训练流程
- 实用性: 支持高效微调和量化推理,可在消费级GPU上运行
- 泛化性: 强大的跨本体泛化和语言定位能力
这项工作为VLA的广泛应用奠定了基础,并为未来研究提供了重要的参考基准。
参考文献
1\] Kim M J, Pertsch K, Karamcheti S, et al. OpenVLA: An Open-Source Vision-Language-Action Model\[J\]. arXiv preprint arXiv:2406.09246, 2024. \[2\] Brohan A, et al. RT-2: Vision-language-action models transfer web knowledge to robotic control\[J\]. arXiv preprint arXiv:2307.15818, 2023. \[3\] Octo Model Team, et al. Octo: An open-source generalist robot policy\[Z\]. 2023. \[4\] Chi C, et al. Diffusion policy: Visuomotor policy learning via action diffusion\[C\]//RSS, 2023. \[5\] Karamcheti S, et al. Prismatic vlms: Investigating the design space of visually-conditioned language models\[J\]. arXiv preprint arXiv:2402.07865, 2024.