OpenVLA
模型概览
- 发布团队:OpenVLA Collaboration (Stanford / UC Berkeley / Toyota Research)
- 基础架构:Prismatic VLM (SigLIP + DINOv2 双视觉塔) → Llama 2 7B → 动作分词器 (Action Tokenizer)
- 输入 / 输出:图像 + 文本指令 → 7-DoF 末端位姿动作 (位置 3 + 姿态 3 + 夹爪 1)
- 参数量:7.6 B (FP16 ~15 GB)
- 发布日期:2024 年 6 月
核心机制
动作离散化 (Action Tokenization)
连续动作 (x, y, z, rx, ry, rz, gripper) │ ▼ 256-bin 离散化[Token-12, Token-87, Token-203, ...] │ ▼ 嵌入 Llama 2 词表[Token Embedding 与文本 Token 同一空间]- 关键设计:动作 Token 与文本 Token 共享词表 → 大语言模型的 in-context 能力直接迁移到机器人
训练数据
- Open X-Embodiment:970K episodes,来自 22 个机器人数据集的联合
- 数据增强:图像随机缩放、色彩抖动、随机视角
部署与微调
推理硬件
| 精度 | GPU | 显存 | 推理延迟 |
|---|---|---|---|
| FP16 | A100 80G | 16 GB | ~80 ms |
| FP16 | RTX 4090 24G | 16 GB | ~120 ms |
| BF16 | RTX 5090 32G | 16 GB | ~70 ms |
| 4-bit | RTX 3090 24G | 6 GB | ~200 ms |
LeRobot 集成
# Hugging Face LeRobot 一行训练python lerobot/scripts/train.py \ --policy.type=openvla \ --dataset.repo_id=your-username/your-dataset \ --batch_size=8 --steps=200000微调建议
- 数据量:每任务 ≥ 100 episodes;> 1K 显著提升成功率
- LoRA 微调:rank=32 即可保留基础能力,新增任务特定先验
- 数据归一化:必须使用训练集 (Open X-Embodiment) 的均值 / 方差
⛔ 别这么做 (Anti-patterns)
经验证的坑 —— 跳过 = 至少浪费半天,严重的烧板 / 锁机。
| ❌ 错误做法 | 💥 后果 | ⚠️ 风险 | 范围 |
|---|---|---|---|
| 不要在没装 NVIDIA 驱动 555+ 的情况下跑 Isaac Sim 4.2+ | 驱动不匹配 = 启动黑屏。nvidia-smi 查驱动版本。 | 🔴 | Isaac Sim / Isaac Lab |
| 不要把 OpenVLA / Octo / Pi-0 在没 4-bit 量化的状态下塞进 24GB 4090 | 7B 模型 fp16 = 14GB+KV cache → OOM。先 bitsandbytes 4-bit 加载再 fine-tune。 | 🟡 | OpenVLA / Octo / Pi-0 |
不要在 Isaac Sim 训练 RL 时不设 num_envs 上限 | 贪心 8192 envs = 24GB 显存瞬间爆。RTX 4090 实测 4096 envs 是甜点。 | 🟡 | Isaac Lab / RSL-RL / SkyRL |
| 不要在真机部署 VLA 之前跳过仿真域随机化 | sim-to-real gap 不收敛 = 99% 仿真成功率 + 0% 真机。先 DR 20% (质量 / 摩擦 / 视觉)。 | 🔴 | 任何 VLA 真机部署 |
| 不要把 3DGS 训练数据直接用手机 4K 视频 | 4K 60fps 1 小时 ≈ 100GB,且相机畸变 = 训练出来模糊。先 ffmpeg 1080p + 标定。 | 🟡 | 3D Gaussian Splatting |
| 不要在没 GPU 的 Linux 容器里跑 VLA 微调 | CPU 跑 7B = 1 步 5 分钟,1 epoch = 3 天。最低 1×RTX 4090 或租云。 | 🔴 | OpenVLA / VLA 微调 |
| 不要用 MuJoCo 默认 simulator 跑 Mobile ALOHA 仿真 | 默认 scene 没有双臂 + 移动底盘。要用 aloha_sim 官方 scene 文件。 | 🟡 | MuJoCo / ALOHA |
🚨 风险总览 (Risk Matrix)
| 风险等级 | 含义 | 例子 |
|---|---|---|
| 🟢 低 | 改错可回滚 / 几分钟恢复 | pip 全局装包、DHCP IP 写死 |
| 🟡 中 | 需要重新刷机 / 重装 / 1-2 小时恢复 | 装错 ROS 2 版本、没 OTA 升级看版本 |
| 🔴 高 | 不可逆 / 烧板 / 安全风险 | 电池反接、micro-ROS 没看门狗、刷机中途断电 |