#OpenVLA 详解:开源 VLA 如何把视觉语言模型变成机器人策略
#先给结论:OpenVLA 的关键意义不是“又一个机器人模型”,而是把 VLA 路线开源化、可复现化、可微调化
OpenVLA 是 2024 年 Stanford、UC Berkeley、TRI、Google DeepMind、Physical Intelligence 等团队提出的一个 7B 参数开源 Vision-Language-Action model。它训练在 Open X-Embodiment 数据集中的约 970k 真实机器人操作轨迹上,目标是让一个视觉语言模型直接根据:
- 当前相机图像;
- 自然语言指令;
输出机器人可执行的连续动作。
如果只看模型名字,OpenVLA 好像只是 RT-2 之后的一个开源复现。但它真正重要的地方在于三点:
- 开放:此前强 VLA 代表如 RT-2 / RT-2-X 多数是闭源系统,OpenVLA 释放了 checkpoint、训练代码和 fine-tuning pipeline。
- 轻量但强:OpenVLA 只有 7B 参数,却在多个真实机器人任务上超过 55B 参数闭源 RT-2-X 的部分指标。
- 可适配:它不只强调 zero-shot generalist policy,还系统探索了如何用 LoRA、量化等方式在新机器人、新任务上微调。
所以 OpenVLA 的历史定位可以这样概括:
RT-2 证明 VLA 这条路线可行;OpenVLA 则让这条路线第一次真正变成社区可以下载、复现、微调和继续研究的开放平台。
下面按技术脉络展开。
#一、OpenVLA 之前的问题:机器人基础模型为什么需要 VLA
机器人学习长期有一个核心矛盾:
真实机器人数据很贵,但开放世界泛化又非常依赖大规模、多样化的数据。
传统机器人模仿学习可以在窄任务里做得很好,比如固定桌面、固定物体、固定动作模板。但一旦进入更开放的场景,就会遇到:
- 新物体识别困难;
- 新语言指令理解困难;
- 背景、光照、摆放位置变化导致性能下降;
- 多任务、多对象场景中容易混淆目标;
- 很难从少量新数据中快速适配新平台。
而另一方面,视觉语言模型已经在互联网规模数据上学到了大量语义知识:
- 物体类别;
- 视觉属性;
- 空间关系;
- 语言组合;
- 基础常识。
于是 VLA 的基本想法就出现了:
能不能把 VLM/LLM 已经学到的视觉语言知识,直接迁移到机器人控制里?
RT-2 是这条路线的标志性工作。它把机器人动作也表达成 token,让视觉语言模型像生成文本一样生成动作,从而把 web-scale pretraining 的语义能力带进机器人策略。
但 RT-2 / RT-2-X 的问题在于:
- 系统闭源;
- 训练细节不完全公开;
- 模型和数据规模很大,社区难以复现;
- 对新机器人如何高效 fine-tune 缺少清晰开放范式。
OpenVLA 正是在这个背景下出现的。
#二、OpenVLA 要解决什么问题
OpenVLA 的目标不是从零提出一个完全不同的机器人范式,而是解决 VLA 路线走向真实社区研究和部署时的三个关键阻塞点。
#2.1 问题一:强 VLA 大多闭源,不利于研究复现
在 OpenVLA 之前,最有代表性的 VLA 是 RT-2 / RT-2-X。它们展示了很强的机器人泛化能力,但对社区来说存在明显门槛:
- 不能直接下载模型;
- 不能完整复现实验;
- 不能系统研究架构和数据选择;
- 很难作为后续工作的统一 baseline。
OpenVLA 的第一个目标就是:
给 VLA 社区一个开放、标准、可训练、可微调的基础模型。
#2.2 问题二:机器人数据规模仍然远小于互联网数据
OpenVLA 没有假设可以重新收集一个 web-scale 级别的机器人数据集,而是利用 Open X-Embodiment 这种多机构、多机器人、多任务的开放数据集合。
它训练在约 970k robot manipulation episodes 上,覆盖:
- 多种机器人 embodiment;
- 多种桌面 manipulation 场景;
- 多种语言指令;
- 多种物体和环境变化。
这使它能学到比单一实验室数据更广的机器人操作先验。
#2.3 问题三:VLA 如果不能微调,就很难落地
机器人平台差异很大:
- 相机位置不同;
- 机械臂形态不同;
- action space 不同;
- 控制频率不同;
- 场景布局不同;
- gripper / end-effector 不同。
所以一个 VLA 即便在 OpenX 里学得很好,也不可能天然 zero-shot 到所有新机器人。
OpenVLA 因此强调:
VLA 不只是一个 zero-shot policy,更应该是一个强初始化,可以被高效 fine-tune 到新机器人、新任务。
这也是它和很多只展示泛化能力的系统相比更实际的地方。
#三、OpenVLA 的模型结构:Prismatic VLM + 机器人动作输出
OpenVLA 的结构可以拆成三层:
- 视觉编码器;
- projector;
- Llama 2 语言模型骨干;
- 动作 token 输出与解码。
它本质上是在一个预训练 VLM 基础上继续 fine-tune 成 VLA。
#3.1 基底:Prismatic-7B VLM
OpenVLA 不是从头训练一个视觉语言模型,而是基于 Prismatic-7B VLM。
这个选择的意义是:
- 先利用已有 VLM 的视觉语言对齐能力;
- 再把机器人动作作为新的输出目标引入;
- 避免在机器人数据上从零学视觉语义。
这符合 VLA 的基本范式:
机器人数据不够大,所以要继承互联网视觉语言预训练。
#3.2 视觉编码器:DINOv2 + SigLIP 融合
OpenVLA 的视觉编码器不是单一 backbone,而是融合了:
- DINOv2 ViT-L/14
- SigLIP ViT-So400M/14
这两个视觉模型的互补性比较明显。
#DINOv2 强在哪里
DINOv2 是自监督视觉表征模型,通常更擅长捕获:
- 局部结构;
- 物体形状;
- 几何与视觉细节;
- dense visual representation。
对机器人来说,这类信息很重要,因为控制不仅要知道“这是什么”,还要知道“它在哪里、姿态如何、边界在哪里”。
#SigLIP 强在哪里
SigLIP 是视觉语言对齐模型,更擅长捕获:
- 图像与语言概念之间的对应;
- 物体语义类别;
- 视觉属性和文本描述的关联。
对 VLA 来说,它帮助模型把语言指令里的概念和图像里的目标对齐。
所以 OpenVLA 融合 DINOv2 和 SigLIP,本质上是在同时追求:
- 机器人控制需要的几何/细节表征;
- 语言指令需要的语义对齐表征。
这比只用一种视觉 backbone 更适合 VLA。
#3.3 Projector:把视觉 patch embedding 映射进 LLM 空间
视觉编码器输出的是 image patch embeddings,但 Llama 2 语言模型吃的是 token embedding 空间。
所以中间需要一个 projector:
image -> visual encoder -> image patch embeddings -> projector -> LLM input embedding space
这一步的作用是让 LLM 可以把图像 patch 当作上下文的一部分处理。
从统一建模角度看,这就是把:
- 图像 token;
- 文本 token;
- 动作 token;
放进同一个 Transformer 处理流里。
#3.4 语言模型骨干:Llama 2 7B
OpenVLA 的语言 backbone 是 Llama 2 7B。
它承担的功能包括:
- 解析语言指令;
- 融合视觉上下文;
- 根据当前观测与任务目标生成动作 token。
这里一个很重要的点是:OpenVLA 不是用 LLM 做高层 planner,然后再调用低层 policy;它更接近端到端策略:
image + instruction -> action
也就是说,Llama 2 backbone 直接参与低层动作生成。
#四、OpenVLA 如何表示动作
OpenVLA 输入是图像和语言,输出是机器人动作。
根据 HuggingFace 模型卡,它预测的是归一化后的 7-DoF end-effector delta action:
(x, y, z, roll, pitch, yaw, gripper)
这表示:
- 末端执行器在三维空间中的位移增量;
- 姿态变化;
- gripper 开合状态。
#4.1 为什么要归一化动作
不同机器人和数据集的动作尺度不同,比如:
- 某些机器人用米;
- 某些机器人用归一化坐标;
- 控制频率不同导致每步 delta 大小不同;
- gripper 表示方式也可能不同。
所以 OpenVLA 预测的是 normalized action,真正执行前要根据对应机器人/数据集的统计量 un-normalize。
这就是 HuggingFace 示例里 unnorm_key="bridge_orig" 的含义:
action = vla.predict_action(**inputs, unnorm_key="bridge_orig", do_sample=False)
unnorm_key 告诉模型:
当前这个动作要按哪个机器人/数据集的统计量还原成真实控制量。
#4.2 动作 token 化的优点
OpenVLA 沿用 VLA 路线,把动作放进生成模型框架里。
它的好处是:
- 可以复用 VLM/LLM 的自回归建模框架;
- 可以把语言、视觉、动作放进统一 token pipeline;
- 训练目标更接近 next-token prediction / supervised fine-tuning;
- 工程上容易接 HuggingFace Transformers 生态。
#4.3 动作 token 化的缺点
但动作 token 化也有明显代价:
- 连续控制被离散化,会有量化误差;
- 多维动作序列化后,生成延迟会变高;
- 自回归输出可能不适合高频闭环控制;
- 动作之间的连续性和动力学约束没有天然保证。
这也是后续 OpenVLA-OFT 等工作要改进动作解码方式的原因。
#五、OpenVLA 的训练数据:970k Open X-Embodiment 轨迹
OpenVLA 训练在 Open X-Embodiment 数据集中筛选出的约 970k robot manipulation trajectories 上。
Open X-Embodiment 的价值在于,它不是一个单一机器人数据集,而是多个机器人数据集合并后的大规模 embodied dataset。
这类数据覆盖:
- WidowX;
- Google Robot;
- Franka;
- 多种桌面操作任务;
- 多种物体与场景;
- 多种语言指令。
#5.1 为什么数据多样性对 VLA 特别重要
VLA 的目标不是只在一个实验台上完成一个动作,而是成为 generalist robot policy。
所以它需要学习的不是单一 mapping:
固定场景 -> 固定动作
而是更泛化的结构:
视觉观测 + 语言目标 + embodiment context -> 可执行动作
这要求数据覆盖足够多的:
- 物体;
- 任务;
- 视角;
- 机器人;
- 动作分布;
- 失败与恢复模式。
OpenVLA 相比一些更小数据训练的策略,优势很大一部分来自 OpenX 数据多样性。
#5.2 训练成本
项目页提到,OpenVLA 在 64 张 A100 GPU 上训练 15 天。
这说明一个现实问题:
OpenVLA 是开源的,但重新从头训练并不便宜。
它的实际开放价值更多体现在:
- 可以下载 checkpoint;
- 可以做 fine-tuning;
- 可以作为 baseline;
- 可以研究架构和数据;
- 可以基于其训练代码做后续改造。
#六、OpenVLA 的实验结果:它到底强在哪里
OpenVLA 的实验主要体现三类能力:
- 多机器人 out-of-the-box 控制;
- 泛化能力;
- 新任务/新平台 fine-tuning。
#6.1 Out-of-the-box 控制多个机器人
OpenVLA 在两个代表性设置上做了直接评估:
- Bridge V2 的 WidowX robot;
- Google Robot,也就是 RT 系列论文使用的平台。
结果显示,OpenVLA 超过了:
- RT-1-X;
- Octo;
- 甚至在 29 个任务、多 embodiment 上超过闭源 55B RT-2-X 约 16.5% absolute success rate。
这点很重要,因为 OpenVLA 只有 7B,而 RT-2-X 是 55B。
它说明:
模型规模不是 VLA 唯一关键,数据多样性、视觉 backbone 选择、训练配方和开放 pipeline 同样重要。
#6.2 泛化维度
OpenVLA 评测了多类泛化:
#视觉泛化
例如:
- 未见过的背景;
- distractor objects;
- 物体颜色/外观变化。
这考验模型是否能稳定识别目标,而不是被背景和干扰物带偏。
#运动泛化
例如:
- 未见过的物体位置;
- 未见过的朝向;
- 目标初始状态变化。
这考验模型是否能把视觉定位转化成正确的动作调整。
#物理泛化
例如:
- 未见过的物体尺寸;
- 未见过的形状。
这更接近机器人控制中的真实困难,因为抓取和放置高度依赖物理属性。
#语义泛化
例如:
- 未见过的目标物体;
- 新指令;
- 来自互联网概念的任务。
这是 VLA 最有特色的部分,也是它相比传统 imitation policy 更有吸引力的地方。
#6.3 OpenVLA 的一个重要现象:会恢复一些错误
项目页提到,在某些 rollouts 中,OpenVLA 初始抓取不稳,但后续能恢复并完成任务。
这很有意思,因为它说明模型并不只是死板执行单步动作模板,而可能在视觉闭环下具备一定纠错能力。
不过这并不等于它具备完整的 long-horizon planning。更准确地说:
OpenVLA 有一定闭环反应能力,但仍然主要是视觉条件策略,而不是显式世界模型或规划器。
#七、OpenVLA 如何 fine-tune:它为什么强调可适配
OpenVLA 的一个核心贡献是系统探索 fine-tuning。
它评估了把 OpenVLA 迁移到新机器人和新任务时的表现,包括:
- Franka-Tabletop;
- Franka-DROID。
这些设置和预训练数据中的机器人/任务不同,因此更能检验 OpenVLA 作为 foundation policy initialization 的价值。
#7.1 为什么不能只靠 zero-shot
OpenVLA 模型卡明确说明:
OpenVLA 不会 zero-shot 泛化到训练混合中完全没见过的新 robot embodiment 或 setup。
这是非常重要的限制。
原因很简单:
- 机器人 action space 不同;
- 控制频率不同;
- 相机视角不同;
- 机械臂几何不同;
- 数据统计分布不同。
所以对于一个全新机器人,正确做法通常是:
- 收集一批该机器人上的 demonstrations;
- 用 OpenVLA 做初始化;
- 在新数据上 fine-tune;
- 用对应统计量 un-normalize action。
#7.2 LoRA 的意义:降低微调成本
OpenVLA 研究了 parameter-efficient fine-tuning。
结论大致是:
- 只调最后一层效果不好;
- 冻结视觉编码器也不够;
- LoRA 能在性能和显存之间取得较好平衡;
- LoRA 只训练约 1.4% 参数,就能接近 full fine-tuning 性能。
这对社区很关键,因为 7B VLA 如果每次都全量微调,成本仍然很高。
LoRA 的价值是让普通研究者可以在较少 GPU 资源下做适配实验。
#7.3 量化部署
OpenVLA 还展示了模型可以通过 quantization 更高效部署,并且不明显损失下游成功率。
这对机器人系统很重要,因为实际机器人控制不只看成功率,还看:
- 推理延迟;
- GPU 显存占用;
- 控制频率;
- 系统稳定性。
#八、OpenVLA 和 Diffusion Policy / Octo / RT-2-X 的关系
理解 OpenVLA,最好把它放进几个关键 baseline 的坐标系里。
#8.1 OpenVLA vs RT-2-X
RT-2-X 是强闭源 VLA,参数规模更大,互联网预训练和机器人数据结合得更充分。
OpenVLA 相比 RT-2-X 的优势:
- 开源;
- 参数更小;
- 可复现;
- 可微调;
- 在部分多机器人任务上效果更强。
但 RT-2-X 在一些更难的互联网语义泛化任务上仍然更强。
项目页给了一个例子:
- “Move Coke Can near Taylor Swift” 这类需要互联网概念理解的任务;
- RT-2-X 可以做对;
- OpenVLA 失败。
原因也很清楚:
OpenVLA fine-tune 时主要用机器人 action data,可能损失了一部分原始 VLM 的互联网语义知识;RT-2-X 通过 co-fine-tuning 同时保留更多 web-scale 语义能力。
这暴露出一个重要研究问题:
VLA 训练时如何在机器人动作能力和互联网语义知识之间避免 catastrophic forgetting?
#8.2 OpenVLA vs Octo
Octo 是开源 generalist robot policy,强调多机器人、多任务预训练和高效适配。
OpenVLA 相比 Octo 的核心差别是:
- Octo 更像 generalist robot transformer policy;
- OpenVLA 更明确地建立在 VLM/LLM 上,强调视觉语言预训练带来的语义能力。
在一些需要语言 grounding 的多对象任务里,OpenVLA 往往更有优势。
#8.3 OpenVLA vs Diffusion Policy
Diffusion Policy 是非常强的 imitation learning baseline,尤其擅长窄任务、高精度、连续动作控制。
OpenVLA 和 Diffusion Policy 的关系不是简单谁替代谁,而是各有强项:
- Diffusion Policy:窄任务、精细操作、单一目标任务可能更强;
- OpenVLA:多任务、多对象、语言条件任务更有优势。
项目页里也展示了这种现象:
- 在单一窄任务如 “Put Carrot in Bowl” 中,Diffusion Policy 可能成功而 OpenVLA 失败;
- 在多对象、语言条件更强的任务里,OpenVLA 更容易表现出优势。
这说明:
VLA 的优势主要来自语义和多任务泛化,而不是天然比所有低层 imitation policy 更适合精细控制。
#九、OpenVLA 的局限性
OpenVLA 很重要,但它远不是终点。它的局限恰好揭示了 VLA 路线下一步要解决的问题。
#9.1 不能 zero-shot 到完全新 embodiment
OpenVLA 明确不保证对训练混合中未出现的新机器人 zero-shot 泛化。
这说明 VLA 目前的 embodiment generalization 仍然有限。
真正的通用机器人基础模型需要进一步解决:
- action space 对齐;
- embodiment representation;
- morphology-aware policy;
- 不同控制频率和传感器布局的统一建模。
#9.2 动作 token 化仍然不够自然
OpenVLA 沿用了动作 token 生成路线。这让它能接入 VLM/LLM 框架,但也导致:
- 生成延迟;
- 控制频率受限;
- 连续动作表征不够直接;
- 精细接触控制不一定强。
这也是 OpenVLA-OFT 后续要引入:
- parallel decoding;
- action chunking;
- continuous action representation;
- L1 regression objective。
从这个角度看,OpenVLA 是一个强 base model,但它的动作头不是最终答案。
#9.3 仍然缺少显式世界模型
OpenVLA 根据当前图像和语言输出动作,但它没有显式建模:
- 动作执行后世界会如何变化;
- 哪个动作序列会导致更优未来;
- 失败后的 long-horizon recovery;
- 多步规划和信用分配。
因此它更像一个强视觉语言条件策略,而不是 WAM / model-based agent。
这也是为什么 VLA 后面会自然演进到 WAM、world model、latent planning 等路线。
#9.4 语义能力可能被机器人微调削弱
前面提到,OpenVLA 在某些互联网概念任务上不如 RT-2-X。
这说明一个很核心的问题:
把 VLM fine-tune 成 VLA 时,如何保留原始互联网知识?
如果只在机器人数据上训练,模型可能越来越会操作,但忘掉一部分 web-scale semantic knowledge。
未来可能需要:
- robot data + web VQA data co-training;
- continual pretraining;
- multi-objective training;
- knowledge-preserving regularization;
- adapter 分离语义能力和动作能力。
#9.5 训练成本仍然高
虽然 OpenVLA 是开源的,但从头训练需要 64 A100 训练 15 天。
这意味着社区真正能广泛做的是:
- fine-tuning;
- adapter 研究;
- action head 改造;
- 数据混合研究;
- evaluation benchmark;
而不是人人从头训练一个 OpenVLA。
#十、OpenVLA 对后续研究的启发
OpenVLA 的价值不只是一个模型,而是提出了一批值得继续研究的问题。
#10.1 VLA 的开放基座应该长什么样
OpenVLA 证明,一个开放 VLA 至少需要:
- 开放 checkpoint;
- 开放训练代码;
- 开放 fine-tuning script;
- 清晰的数据混合说明;
- HuggingFace 生态兼容;
- 可部署的 inference API。
这给后续 VLA 工作设定了一个社区基线。
#10.2 如何改进动作表示
OpenVLA 的动作 token 化很自然地接入 LLM,但不是最优控制接口。
后续可以探索:
- continuous action head;
- diffusion action head;
- flow matching action head;
- chunked policy;
- latent action representation;
- hierarchical action abstraction。
这也是 OpenVLA-OFT 已经开始推进的方向。
#10.3 如何结合世界模型
OpenVLA 仍然偏向 direct policy。下一步可能是:
VLA semantic grounding + world model rollout + planning / RL
也就是说:
- OpenVLA 负责理解语言和视觉目标;
- world model 负责预测动作后果;
- planner / policy improvement 负责选择长期更优动作。
这会把 VLA 从“会看会说会动”推进到“会预演、会选择、会自我改进”。
#10.4 如何做跨 embodiment 泛化
OpenVLA 的限制说明,跨机器人泛化仍然是硬问题。
可能方向包括:
- embodiment token;
- robot morphology descriptor;
- action space canonicalization;
- shared end-effector-centric representation;
- sim-to-real + real data mixture;
- meta-learning / fast adaptation。
#十一、如果要实际使用 OpenVLA,应该怎么理解它
如果你是研究者或工程实践者,我会这样定位 OpenVLA:
#适合用 OpenVLA 的场景
- 你需要一个开源 VLA baseline;
- 你的机器人或任务和 OpenX 中某些 domain 接近;
- 你有少量 demonstration,可以 fine-tune;
- 你的任务需要语言 grounding;
- 你关心多对象、多任务泛化。
#不适合直接指望 OpenVLA 的场景
- 完全未见过的新机器人,希望 zero-shot 直接跑;
- 高频、高精度、接触密集控制;
- 非常窄但要求极高成功率的单任务;
- 需要复杂 long-horizon planning 的任务;
- 对互联网概念泛化要求极强的任务。
#实用路线
更现实的使用方式是:
- 下载 OpenVLA checkpoint;
- 用目标机器人收集少量演示数据;
- 选择合适的
unnorm_key或计算目标数据统计量; - 用 LoRA / parameter-efficient fine-tuning 做适配;
- 根据控制频率需求考虑 OpenVLA-OFT 式动作头改造。
#十二、总结:OpenVLA 在 VLA 发展史中的位置
最后压缩成一句话:
OpenVLA 是 VLA 路线从闭源展示走向开放研究基础设施的关键节点。
它的主要贡献包括:
- 用 7B 开源模型实现强 generalist manipulation policy;
- 基于 DINOv2 + SigLIP + Llama 2 组合构建 VLA;
- 在 970k OpenX 机器人轨迹上训练;
- 支持多机器人 out-of-the-box 控制;
- 展示了强语言 grounding 和多任务泛化;
- 系统探索 LoRA、量化等高效 fine-tuning;
- 为后续 VLA / WAM / robot foundation model 提供开放基座。
但它的局限也很清楚:
- 不是真正通用到所有机器人;
- 动作 token 化仍有控制瓶颈;
- 缺少显式世界模型和长期规划;
- 语义知识在机器人 fine-tuning 中可能遗忘;
- 从头训练成本仍然很高。
所以更准确地说,OpenVLA 不是 VLA 的终点,而是 VLA 研究真正开放化的起点。
它之后的问题,不再只是“能不能把 VLM 接到机器人上”,而是:
如何让这种开放 VLA 具备更好的动作表示、更强的世界建模、更稳定的跨 embodiment 泛化,以及更有效的自我改进能力。
这也是为什么 OpenVLA 之后,OpenVLA-OFT、WAM、action-centered world model、model-based robot foundation model 这些方向会变得越来越重要。
#参考资料
- Kim et al., OpenVLA: An Open-Source Vision-Language-Action Model, 2024.
- OpenVLA project page: https://openvla.github.io/
- OpenVLA HuggingFace model card: https://huggingface.co/openvla/openvla-7b
- Open X-Embodiment dataset: https://robotics-transformer-x.github.io/
- RT-2: Vision-Language-Action Models Transfer Web Knowledge to Robotic Control, 2023.
- Octo: An Open-Source Generalist Robot Policy, 2024.