大规模训练 OpenVLA:如何构建机器人训练数据集
本文介绍 OpenVLA 的训练规模、数据构成与机器人训练数据集的构建思路。
- OpenVLA 是一个用于机器人操纵的 7B 参数开源视觉-语言-动作模型
- 在 Open X-Embodiment 数据集(22 种机器人类型、527 种技能)中的 97 万个机器人事件中进行训练
- 在多个基准测试中均优于 RT-2-X 等封闭源 55B 参数模型
- 使用 LoRA 对新的机器人设置进行微调只需 100 次演示
- 机器人人工智能的最大挑战不是模型架构,而是建立多样化、高质量的训练数据集
- 大规模的视频和可视数据收集需要强大的代理基础设施和自动化功能
企业说明: 对于需要数百万视觉训练样本的研究团队或构建机器人人工智能系统的公司来说,企业级数据收集基础设施变得至关重要。规模、正常运行时间和数据多样性是瓶颈所在。解决方案 Bright Data 的视频数据平台 可以为工业规模的数据集创建提供所需的强大管道。
机器人人工智能正进入突破性发展阶段。正如大型语言模型改变了文本生成,视觉模型改变了图像理解一样,视觉-语言-动作模型(VLA)正在重塑机器人学习与物理世界交互的方式。
这一转变的核心是 OpenVLA是一个具有 7B 参数的开源模型,它可以控制开箱即用的机器人,理解自然语言指令,并能以最少的训练数据适应新任务。
但大多数教程都不会告诉你:模型只是成功的一半。真正的挑战在于建立为这些系统提供支持的训练数据集。
什么是 OpenVLA?
OpenVLA 是一个开源的视觉-语言-动作模型,由斯坦福大学、加州大学伯克利分校、丰田研究院和谷歌 DeepMind 的研究人员共同开发。它能处理摄像头图像、解释自然语言命令并输出连续的机器人动作。
模型架构由三个关键部分组成:
- 融合视觉编码器 使用 SigLIP 和 DinoV2 骨干网络
- 投影仪层 将视觉特征映射到语言模型的输入空间
- A Llama 2 7B 语言模型 预测标记化机器人行动的
让 OpenVLA 脱颖而出的是它的训练数据。该团队整理了 97 万条机器人操纵轨迹,这些轨迹来自于 开放的 X-实验数据集该系统涵盖 22 种不同的机器人平台和 527 种不同的技能。
结果如何?OpenVLA 的性能超过了 RT-2-X,即谷歌的闭源 55B 参数模型,同时完全开源,体积缩小了 8 倍。
开始使用 OpenVLA
只需几行代码,您就可以运行 OpenVLA 推理:
from 变压器 import AutoModelForVision2Seq,AutoProcessor
from PIL import 图片
import 电筒
# 加载机型和处理器
处理器 = AutoProcessor.from_pretrained("openvla/openvla-7b", trust_remote_code=True)
vla = AutoModelForVision2Seq.from_pretrained(
"openvla/openvla-7b",
attn_implementation="flash_attention_2",
torch_dtype=torch.bfloat16、
low_cpu_mem_usage=True,
trust_remote_code=True
).to("cuda:0")
# 从机器人摄像头获取图像
图像Image.Image = get_from_camera(...)
prompt = "进机器人应采取什么行动拾起红杯?
# 预测行动(7-DoF)
输入 = processor(prompt, image).to("cuda:0",dtype=torch.bfloat16)
action = vla.predict_action(**inputs, unnorm_key=)"bridge_orig", do_sample=False)
# 执行操作
机器人行动(行动,......)
该模型可输出可直接控制机械臂的 7-DoF 动作。对于训练数据中包含的机器人(如 WidowX 或 Franka Panda),可以使用 OpenVLA zero-shot。对于新的机器人设置,需要进行微调。
为定制机器人微调 OpenVLA
OpenVLA 的优势之一是对新机器人和任务的高效适应。使用 LoRA(低级别自适应),您只需使用少得惊人的数据就能对模型进行微调。
下面介绍如何启动 LoRA 微调:
torchrun --standalone --nnodes 1 --nproc-per-node 1 vla-scripts/finetune.py
--vla_path "openvla/openvla-7b"
--数据根目录 /path/to/datasets
--数据集名称 your_robot_dataset
--run_root_dir /path/to/checkpoints
--lora_rank 32
--批量大小 16
--学习速度 5e-4
--image_aug True
OpenVLA 论文的主要观点是:只用 10-150 次演示进行微调,就能在新任务上实现强大的性能。LoRA 仅对 1.4% 的参数进行了微调,却与完全微调的结果相匹配。
机器人人工智能的数据挑战
对于任何大规模构建机器人人工智能系统的人来说,这里都是有趣的地方。
"(《世界人权宣言》) 开放的 X-实验数据集 令人印象深刻:来自 21 个研究机构的 22 个机器人平台的 100 万条轨迹。但从最近的行业分析来看:整个 Open X-Embodiment 数据集比用于训练大型语言模型的文本语料库 Common Crawl 小 1,673 倍。
机器人人工智能缺乏数据。
这带来了独特的机遇和挑战。建立更好的机器人人工智能系统不仅仅是模型架构的问题。它涉及到大规模收集、整理和处理各种训练数据。
视频数据为何对机器人技术至关重要
OpenVLA 的训练在很大程度上依赖于视觉数据。每个轨迹都包含摄像头的观测数据,模型可以学习如何解读这些数据。这在机器人人工智能和视频数据收集之间建立了直接联系。
考虑这些使用案例:
从示范视频中学习:研究人员越来越多地通过观看人类演示来训练机器人。这需要大规模的视频收集和处理。
模拟到现实的转移:团队使用模拟器生成合成训练数据,然后根据真实世界的视频片段进行验证。
跨体现学习:OpenVLA 的优势来自于对 22 种不同机器人类型的学习。要扩大这一优势,需要来自更多平台和环境的视频数据。
如果您正在收集用于人工智能训练的视频数据,那么无论您是在构建机器人数据集还是任何其他可视化人工智能系统,其原理都是相似的。代理、速率限制和自动化在规模化时成为关键因素。
对于大规模视频搜索操作,可使用以下工具 使用适当代理配置的 yt-dlp 可帮助收集可视化培训数据。同样的基础架构挑战也适用:您需要旋转的住宅代理、强大的错误处理和合规的自动化。
构建机器人训练数据集的最佳实践
根据 OpenVLA 文档和研究结果,以下是成功收集机器人数据的关键因素:
控制频率:收集 5-10Hz 的演示数据。由于 OpenVLA 不使用动作分块技术,因此很难处理高频数据。
连续运动:避免数据收集过程中的停顿。在推理过程中,模型可能会卡死在空闲动作上。
数据多样性:包括初始条件、物体位置和光照的变化。OpenVLA 的通用性来自于训练数据的多样性。
一致的战略:用相似的方法演示任务。一致的方法会让模型更容易解决学习问题。
质量重于数量:100 次高质量演示往往胜过 1000 次噪音演示。
扩大规模,超越开放式 X-体现
开放 X-Embodiment数据集提供了坚实的基础,但生产机器人系统通常需要定制数据。以下是团队扩展数据集的典型方式:
转换为 RLDS 格式:OpenVLA 希望使用 RLDS(强化学习数据集)格式的数据。您可以使用 本工具包.
注册自定义数据集:转换后,在 OpenVLA 配置文件中注册数据集:
# 在 prismatic/vla/datasets/rlds/oxe/configs.py 中
oxe_dataset_configs = {
"您的自定义数据集": {
"image_obs_keys": {"初级": "图像"},
"action_space": "连续",
# ... 附加配置
}
}
创建混合物配置:将您的自定义数据与现有的 Open X-Embodiment 数据集相结合,防止灾难性遗忘。
性能基准
OpenVLA 的成果不言自明:

该模型在视觉变化(背景、干扰物)、运动变化(物体位置)和语义理解(新指令)方面都表现出很强的泛化能力。
展望未来
OpenVLA 代表着机器人人工智能的转变。通过将具有竞争力的 VLA 完全开源,研究人员实现了最先进机器人学习的平民化。
下一个前沿领域不是模型架构,而是数据。而是数据。
能够高效收集、处理和整理各种机器人训练数据的团队将拥有显著优势。无论是通过模拟、人工演示还是互联网规模的视频收集,数据管道都正在成为主要瓶颈。
对于该领域的建设者来说:投资于数据基础设施就像投资于模型开发一样重要。机器人会感谢你的。

