VLA 模型横评:选型 + 复现成本
概念速览
- VLA (Vision-Language-Action):视觉 + 语言 + 动作的统一多模态大模型,输出机器人动作
- 训练范式:(1) 大规模互联网 VL 数据预训练 (2) 机器人演示数据微调 (3) 仿真 / 真实 RL 后训练
- 代表模型:RT-2 (Google) / OpenVLA (Stanford) / Pi-0 (Physical Intelligence) / Octo (UC Berkeley) / HPT (Stanford) / ACT (Stanford-Aloo)
6 大模型横评
| 模型 | 厂商 | 参数量 | 预训练数据 | 推理延迟 | 显存需求 | 开源 |
|---|---|---|---|---|---|---|
| RT-2 | Google DeepMind | 12B / 55B | 互联网 + 机器人 | 3-5 Hz | 24 GB+ | ❌ |
| OpenVLA | Stanford / Berkeley | 7.6B | Open X-Embodiment | 3-5 Hz | 16 GB+ | ✅ |
| Pi-0 | Physical Intelligence | 3B | 自有机器人轨迹 | 30-50 Hz | 8 GB | 部分 |
| Pi-0.5 | Physical Intelligence | 3B | 跨平台 (Droid / ALOHA / Franka) | 30-50 Hz | 8 GB | ❌ |
| Octo | UC Berkeley | 27M / 93M | Open X-Embodiment | 30-50 Hz | 4 GB | ✅ |
| HPT (Heterogeneous) | Stanford | 1B | 多机器人混合 | 30-50 Hz | 6 GB | ✅ |
| ACT | Stanford (Aloo) | 1M-50M | 单一任务 (15-50 条) | 50-100 Hz | 4 GB | ✅ |
| Diffusion Policy | Columbia (Chi) | 10M-300M | 单一任务 (50-200 条) | 10-30 Hz | 4 GB | ✅ |
选型决策树
你的目标是什么?│├─ "我只想让机械臂抓杯子"│ └─→ 50 条 ACT / Diffusion Policy(最简单)│├─ "我有一台真机,想要 3-5 个任务"│ └─→ 200 条 OpenVLA-7B 微调(多任务泛化)│├─ "我有仿真 + 真机,要做 Sim-to-Real"│ └─→ Pi-0 / Pi-0.5(业界 SOTA)│├─ "我有 100 小时机器人数据,要训基础模型"│ └─→ Octo-27M(轻量预训练)│└─ "我有跨平台数据 (Aloha + Franka + Droid)" └─→ HPT / Pi-0.5(异构数据)决策表(按场景)
| 你的情况 | 推荐模型 | 训练数据 | 硬件成本 |
|---|---|---|---|
| 学生 / 个人,没 GPU | ACT / Diffusion Policy | 50 条 | 1× RTX 4090 即可 |
| 创业公司,有 1-2 张 H100 | OpenVLA | 200-2000 条 | 1× H100 7 天 |
| 大厂研究院,≥ 8 张 H100 | Pi-0 / Pi-0.5 | 1000+ 条 | 8× H100 14 天 |
| 多机器人协作 | HPT | 异构数据 | 4× H100 14 天 |
关键维度详解
推理延迟
实时控制需要 10 Hz+ 频率。Pi-0 通过流式输出 + 轻量网络达到 30-50 Hz;OpenVLA / RT-2 由于 LLM backbone 仅 3-5 Hz。
| 模型 | 频率 | 控制场景 |
|---|---|---|
| ACT | 50-100 Hz | 高速抓放 |
| Diffusion Policy | 10-30 Hz | 中速分拣 |
| Pi-0 | 30-50 Hz | 高速 + 通用 |
| Octo | 30-50 Hz | 通用 + 轻量 |
| OpenVLA | 3-5 Hz | 慢速 + 通用 |
| RT-2 | 3-5 Hz | 慢速 + 通用 |
显存需求
| 模型 | FP16 推理 | 4-bit 量化 | 最低 GPU |
|---|---|---|---|
| OpenVLA-7B | 16 GB | 6 GB | RTX 4080 |
| RT-2 (12B) | 24 GB | 10 GB | RTX A6000 |
| RT-2 (55B) | 110 GB | 28 GB | 2× A100 |
| Pi-0 (3B) | 8 GB | 3 GB | RTX 4070 |
| Octo-27M | 0.5 GB | 0.5 GB | Jetson Orin |
| ACT (50M) | 0.5 GB | 0.5 GB | RTX 3060 |
数据效率
- ACT:50 条就能上手抓放任务
- Diffusion Policy:50-200 条
- Octo:200+ 条,多任务
- OpenVLA:500+ 条,多任务
- Pi-0:1000+ 条,预训练 + 微调
- RT-2:未开源,预训练规模大
各模型详解
OpenVLA
- 仓库:openvla/openvla
- Backbone:Prismatic VLM (SigLIP + Llama 2 7B)
- 训练数据:Open X-Embodiment 800k 条
- 优势:7B 模型在 7+ 平台间零样本泛化
- 劣势:推理慢 (3-5 Hz)
RT-2
- 论文:arxiv 2303.07517
- 优势:互联网级 VL 预训练
- 劣势:闭源,12B / 55B 部署成本高
- 适合:研究 / 演示
Pi-0 (Physical Intelligence)
- 团队:Pi 的 Sergey Levine 等顶级研究人员
- 关键创新:流式 token 输出,达到 30-50 Hz
- 优势:速度 + 通用性 + 多任务
- 劣势:闭源,仅 API 接入
Octo
- 仓库:octo-models/octo
- Backbone:Transformer (27M / 93M 参数)
- 优势:极轻量,可微调可全训
- 适用:Jetson 边缘部署
ACT
- 论文:Learning Fine-Grained Bimanual Manipulation (RSS 2023)
- 优势:50 条数据即能训练
- 局限:单任务,无泛化
Diffusion Policy
- 论文:Diffusion Policy (RSS 2023)
- 优势:轨迹平滑,能处理多模态动作分布
- 局限:单任务 / 少任务
实战:OpenVLA 微调 (示例)
# 1. 装环境pip install -e .
# 2. 下载 OpenVLA-7Bhuggingface-cli download openvla/openvla-7b-finetuned-libero-10
# 3. 准备数据 (转为 RLDS 格式)python examples/libero/regenerate_libero_dataset.py \ --save-dir /data/libero_rlds
# 4. 微调torchrun --standalone --nnodes 1 --nproc-per-node 4 \ vla-scripts/finetune.py \ --vla_path openvla/openvla-7b-finetuned-libero-10 \ --data_root_dir /data/libero_rlds \ --dataset_name libero_10_no_noops \ --run_root_dir /data/openvla_ft \ --num_steps_in_episode=10 \ --batch_size=4评估与基准
| 基准 | 任务数 | 数据规模 | 顶尖模型 |
|---|---|---|---|
| LIBERO | 130 任务 (4 类) | 仿真 | OpenVLA-7B 76% / Pi-0 88% |
| CALVIN | 34 长程任务 | 仿真 | Pi-0.5 4.46 段 |
| Simpler-Bridge | 6 任务 (桥式数据) | 仿真 | Octo 80% / OpenVLA 60% |
| Open X-Embodiment | 22 平台 (真机) | 800k 条 | Pi-0 / RT-2 |
下一步
- 🦾 硬件入门:LeRobot SO-100 装机
- 🧠 跑通 OpenVLA 微调:OpenVLA 详解
- 🛰️ 跑 Pi-0:RT-2 详解 (含类比 Pi-0 章节)
- 📦 Sim-to-Real:Isaac Sim 仿真 训练 + 迁移
⛔ 别这么做 (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 没看门狗、刷机中途断电 |