Q1:OpenVLA 在真机上跑多快?
~6 Hz on 单 RTX 4090(无 compilation / speculative decoding)。📎推理显存 15 GB(bfloat16 无量化)。
论文:Kim, Pertsch, Karamcheti, ... Tedrake, Sadigh, Levine, Liang, Finn. OpenVLA: An Open-Source Vision-Language-Action Model. CoRL 2024 / arXiv:2406.09246. 🌐
让学术界也能用上视觉语言动作模型。秘诀是另起炉灶、开源重做一套。OpenVLA 之于 RT-2,就像 LLaMA 之于 GPT-3。两边都是另起炉灶的开源重做,不是把闭源模型开壳。更狠的是它反超了闭源的 RT-2-X 55B。整体任务上领先 16.5%。
要解决的问题:让学术界能复现、微调、改进 VLA。📎
老办法:RT-2 确立了 VLA 范式但完全闭源。55B 权重、13 万真机数据、PaLI-X 预训练,三项学术界都拿不到。📎整个方向被一家垄断。其他团队只能看论文。
OpenVLA 的转身:另起炉灶,开源一套 7B VLA。在 970k OpenX 数据上训练,谁都能下载、微调、改架构。📎性能不只是"可比"RT-2。它在整体任务上反超闭源的 RT-2-X 55B 达 16.5% 绝对成功率。📎
方法核心(技术上妙在哪,大白话):两块设计撑起 OpenVLA。
学术友好仅限微调:要说清边界。微调便宜——LoRA 让单张 A100/H100 就能改 OpenVLA。📎但预训练贵。从头训仍需 64×A100 跑两周,约 21,500 A100-hours。普通实验室复现不起。📎
你会看到:VLA 研究从一家独大变成社区共建。后续催生 CogACT、OpenVLA-OFT 等。一整条开源生态都建立在它之上。[未确认]
一句话类比:OpenVLA 之于 RT-2,就像 LLaMA 之于 GPT-3。两边都是另起炉灶的开源重做,不是把闭源模型开壳。而且 OpenVLA 反超了闭源的 RT-2-X 55B。这比 LLaMA 当年追 GPT-3 还狠。
核心机制:开源 7B Prismatic VLM。在 970k OpenX 数据上做 next-token prediction 训练。📎
双流视觉(关键设计)。图像分别过 SigLIP 和 DINOv2 两个 encoder。📎输出 feature 在 channel 维度直接拼接。叫 channel-wise concat。不是 cross-attention,也不是 late fusion 投票。SigLIP 出"这是什么",DINOv2 出"在哪里、什么姿态"。
Action tokenization。每维动作离散成 256 bin。沿用 RT-1/RT-2 设计。📎关键改进:bin 边界用 1st 和 99th 分位数(quantile)。不是 RT-1 的 min-max。忽略 outlier 动作。末端 7 维动作 → 7 个 action token。
词表问题:tokenizer 只预留 100 个 special token。不够 256 个 action token。OpenVLA 继承 RT-2 的套路。覆盖词表里最不常用的 256 个 token。📎不动词表大小、不需新增 embedding。
关键设计决策(Sec. 3.4):
单卡微调(关键工程贡献)。用 LoRA + gradient checkpointing。7B 模型在单张 A100/H100 上可微调。📎4-bit 量化后真机性能不掉。消费级 GPU 也能跑推理。
常见误区(先抛一个):"OpenVLA 是 RT-2 的简单缩水版吧?"——不是。📎它是重新设计。双流视觉(SigLIP+DINOv2)。quantile 边界。unfreeze vision encoder。27 epoch。每个决策都和 RT-2 不同。
架构精确配置(论文 Sec. 3.1 + Fig. 2):OpenVLA 建立在 Prismatic-7B VLM(Karamcheti 2024)上,三部分:
输入分辨率(Sec. 3.4):224×224px——实测 384×384 与 224 等效但训练慢 3×,所以选 224。
Action tokenization 精确公式(Sec. 3.2):每维动作离散成 256 bin(沿用 RT-1/RT-2 的 256 bin 设计)。关键改进——bin 边界用 1st 和 99th 分位数(quantile),不是 RT-1 的 min-max:
$$\text{bin}_i\text{ 边界}: \text{uniformly divide }[Q_1(a_i),\,Q_{99}(a_i)]\text{ into 256 bins}$$
这样忽略 outlier 动作,避免 outlier 把 bin 区间拉得太宽、降低有效精度。每维动作 → 整数 $\in[0, 255]$,$N$ 维动作 → $N$ 个 token。注意 OpenVLA 末端是 7 维动作(无 terminate token;episode 结束交给 action chunk / EOS),而 RT-2 是 8 维(含 terminate)。
Token 词表问题:Llama tokenizer 只预留 100 个 special token 给 fine-tune 用,不够 256 个 action token。OpenVLA 的解法(继承 Brohan et al. 2023 = RT-2):直接覆盖 Llama tokenizer 词表里最不常用的 256 个 token(即最后 256 个 token),换成 action token。这样不动词表大小、不需要新增 embedding。训练用标准 next-token prediction,cross-entropy loss 只在 action token 上算(input image+text tokens 不算 loss)。末端 7 维动作(Δx/y/z + Δroll/pitch/yaw + gripper)→ 7 个 action token。📎
训练数据(论文 Sec. 3.3):OpenX-Embodiment 子集,共 970k 轨迹。筛选规则:
关键设计决策详解(论文 Sec. 3.4):
训练 + 推理 infra(论文 Sec. 3.5):
| 项目 | 值 |
|---|---|
| 训练硬件 | 64× A100 GPU × 14 天 = 21,500 A100-hours |
| Batch size | 2048 |
| 推理显存 | 15 GB(bfloat16,无量化) |
| 推理速度 | ~6 Hz on 单 RTX 4090(无 compilation / speculative decoding) |
| 输入分辨率 | 224×224(384 测过等效但慢 3×) |
| 训练 epoch | 27 |
| Optimizer | AdamW,fixed lr=2e-5,无 warmup |
| Codebase 特性 | PyTorch + AMP + FlashAttention + FSDP;HuggingFace AutoModel 集成;支持 LoRA + 量化 |
单卡微调(关键工程贡献):OpenVLA 用 LoRA(低秩适配)+ gradient checkpointing,让 7B 模型在单张 A100/H100 上可微调。论文 Sec. 5.4 还验证量化(4-bit)后真机性能不掉——这让消费级 GPU(如 RTX 4090 24GB)也能跑 OpenVLA 推理。这对学术小团队是巨大福音——不用大集群就能做 VLA 研究。
局限:
图谱定位:OpenVLA 是 T06 VLA 五段演进第三段「跨本体 + 开源」的开源里程碑。📎它把 RT-2 立起来的 VLA 范式,从一家大公司的黑盒翻成全社区的公共品。是开源 VLA 时代的起点。
继承 / 催生:
Open problems:
"OpenVLA 是 RT-2 的简单缩水版" —— 错。它是重新设计。📎双流视觉(SigLIP+DINOv2)、quantile bin 边界、unfreeze vision encoder、27 epoch 训练——每个决策都和 RT-2 不同。
是平行的开源设计,不是缩水。
"DINOv2 是冗余的,SigLIP 够用" —— 错。Sec. 3.4 ablation:双流比单 SigLIP 在单物体 + 多物体任务整体上高 ~10%。📎
SigLIP 出"是什么",DINOv2 出"在哪里、什么姿态"——VLA 同时需要两类信息。
"27 epoch 是过拟合" —— 错。VLA 需要长训,real robot 性能持续提升到 action token accuracy >95%。📎
LLM 的 1–2 epoch 经验不适用 VLA。
"unfreeze vision encoder 浪费算力" —— 错。预训练 backbone 抓不到精细空间细节,必须 unfreeze。📎
传统 VLM 冻结 vision encoder 的实践在 VLA 上反而不工作。
"用 min-max 边界切 bin 更精确" —— 错。outlier 动作会把区间拉得太宽、降低有效精度。📎
quantile 边界(1st–99th)忽略 outlier,256 bin 的有效分辨率更高。
OpenVLA 为什么用 SigLIP + DINOv2 双流,而不是单 SigLIP?两类视觉信息分别管什么?
💡 参考答案
动作 token 化时,为什么用分位数边界(第 1–99 百分位)而不是 min-max?离群动作会怎么影响两种方案?
💡 参考答案
OpenVLA 号称"学术友好",但这个友好有边界。微调和预训练两边各是什么代价?
💡 参考答案
用"LLaMA 之于 GPT-3"或自己举的类比,向没学过机器人的人解释 OpenVLA 解决了什么问题。
💡 参考答案
为什么说 OpenVLA 是"另起炉灶的开源重做",而不是"把 RT-2 开壳"?用类比或自己的话说。
💡 参考答案
~6 Hz on 单 RTX 4090(无 compilation / speculative decoding)。📎推理显存 15 GB(bfloat16 无量化)。
OpenX-Embodiment 子集。筛选规则:第三人称相机 + 单臂末端控制的 manipulation 数据集。📎完整 OpenX 当时是 70+ 数据集、2M+ 轨迹,OpenVLA 筛到 970k。
能。LoRA + gradient checkpointing,单张 A100/H100。📎4-bit 量化后 RTX 4090 24GB 也能跑推理。
实测 384×384 与 224 等效但训练慢 3×。📎选 224 是性能/算力 trade-off 的最优解。
有限。256 bin 离散化精度有限,做不了精细灵巧(叠衣服、拧螺丝)。[未确认]这类任务看 π0(flow matching 连续 action)。