news 2026/6/27 9:31:15

【OpenVLA】:开源视觉-语言-动作通用机器人策略的技术原理与落地实践

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【OpenVLA】:开源视觉-语言-动作通用机器人策略的技术原理与落地实践

OpenVLA:开源视觉-语言-动作通用机器人策略的技术原理与落地实践

论文信息

标题:OpenVLA: An Open-Source Vision-Language-Action Model
会议:arXiv:2406.09246v3 [cs.RO]
单位:斯坦福大学、加州大学伯克利分校、丰田研究院、Google DeepMind、麻省理工学院、Physical Intelligence
代码:https://openvla.github.io
论文:https://arxiv.org/pdf/2406.09246.pdf

一、引言:机器人“通用大脑”的破局之路

给机器人教新技能,过去的模式是“一个任务训一个模型”,就像给每个工种单独招一个工人,换个活就得重新招人。随着大模型时代到来,大家开始琢磨:能不能给机器人做一个“通用大脑”,看一眼图像、听一句指令,就能上手各种操作任务?

这个方向就是视觉-语言-动作模型(VLA)——把视觉理解、语言理解和机器人动作控制塞到一个端到端模型里,靠大规模预训练获得泛化能力。Google的RT-2系列已经证明这条路走得通,但有两个致命问题卡着行业脖子:

  1. 闭源黑箱:顶尖的VLA模型基本都不开放权重和训练细节,学术界和小公司根本碰不到;
  2. 落地困难:没人摸得透怎么把通用VLA快速适配到自己的机器人、自己的任务上,更别说用消费级显卡跑起来。

本文推出的OpenVLA,就是冲着解决这两个问题来的。它是一个70亿参数的完全开源VLA模型,在97万条真实机器人演示数据上训练而成。最夸张的是:它用比闭源标杆RT-2-X少7倍的参数量,在29个任务、多种机器人平台上,把绝对成功率拉高了16.5个百分点。同时它还支持消费级显卡微调、量化推理,把通用机器人策略的门槛直接打了下来。

下图是OpenVLA的整体定位与核心特性:

图1:OpenVLA核心定位示意。基于开源VLM主干,在大规模机器人数据集上微调,输出通用机器人控制策略,支持多机器人开箱即用与高效微调,全链路完全开源。
出处:原文Figure 1

通俗解释:
之前的顶尖VLA就像某大厂的闭源商业软件,贵还不让改;OpenVLA就像开源的Linux系统,免费给你用,还能自己改配置、装插件,普通电脑也能跑起来。性能还比商业软件强,属于典型的“开源打赢闭源”。

二、模型架构与核心数学原理

2.1 整体架构

OpenVLA的思路非常朴素:把机器人动作预测当成一个“图文生成任务”来做,直接复用成熟的视觉-语言模型(VLM)主干,只需要把动作塞进输出词汇表里就行。

整体架构分为三大模块,如下图所示:

图2:OpenVLA模型架构。输入为图像观测与语言指令,输出7维机器人控制动作;由双路视觉编码器、MLP投影层、Llama 2 7B大语言模型主干三部分组成。
出处:原文Figure 2

三个模块的分工如下:

  1. 双路视觉编码器:由DINOv2和SigLIP两个预训练视觉模型组成。同一张图片分别过两个编码器,得到的特征在通道维度拼接,兼顾细粒度空间信息(DINOv2擅长)和高层语义信息(SigLIP擅长)。
  2. MLP投影层:一个2层的多层感知机,把视觉特征映射到和语言嵌入相同的维度,让大语言模型能“看懂”图片。
  3. LLM主干:采用Llama 2 7B作为基座,负责融合视觉、语言信息,输出离散的动作token序列,最终反解为连续的机器人动作。

通俗解释:
视觉编码器相当于“眼睛”,DINOv2负责“看清楚物体在哪、长啥样”,SigLIP负责“认出这是什么东西”;投影层相当于“翻译官”,把视觉信号翻译成大脑能懂的语言;LLM主干就是“大脑”,看着图、听着指令,琢磨出下一步该怎么动。

2.2 动作离散化:让大模型能输出动作

大语言模型天生只能输出离散的token,可机器人动作是连续值(比如位移、角度)。所以第一步要把连续动作“拆成”离散的档位,也就是动作离散化

本文对动作的每个维度独立做均匀分箱,每个维度拆成256个档位:
aibin=⌊ai−q0.01q0.99−q0.01×255⌋ a_i^\text{bin} = \left\lfloor \frac{a_i - q_{0.01}}{q_{0.99} - q_{0.01}} \times 255 \right\rflooraibin=q0.99q0.01aiq0.01×255
符号逐一解释:

  • aia_iai:第iii维的原始连续动作值(比如末端执行器的x方向位移)
  • aibina_i^\text{bin}aibin:离散化后的档位编号,取值范围是0到255的整数
  • q0.01q_{0.01}q0.01:训练数据中该维度动作的1%分位数,即去掉最低1%的异常值后的下界
  • q0.99q_{0.99}q0.99:训练数据中该维度动作的99%分位数,即去掉最高1%的异常值后的上界
  • ⌊⋅⌋\lfloor \cdot \rfloor:向下取整运算
  • 255:分箱总数减1,最终得到0~255共256个档位

和直接用最大最小值分箱相比,用分位数可以过滤掉极端异常动作,避免大部分动作挤在少数几个档位里,有效提升控制精度。

离散化之后,7维动作就变成了7个0~255的整数,刚好对应词表里的7个token。由于Llama的tokenizer只预留了100个特殊token位置,本文直接复用了词表里最不常用的256个token,把它们重定义为动作token,零成本扩展输出空间。

通俗解释:
这就像把音量旋钮从无级调节改成256格的按键调节。用分位数定范围,就是把偶尔拧到底的极端情况去掉,让中间常用的区间分得更细,调起来更精准。

2.3 训练损失函数

训练目标就是标准的下一个token预测,只对动作token部分计算交叉熵损失:
L=−1Ta∑t=1Talog⁡pθ(at∗∣o,I,a<t) \mathcal{L} = -\frac{1}{T_a} \sum_{t=1}^{T_a} \log p_\theta(a_t^* | o, \mathcal{I}, a_{<t})L=Ta1t=1Talogpθ(ato,I,a<t)
符号逐一解释:

  • L\mathcal{L}L:最终训练损失值,越小模型预测越准
  • TaT_aTa:动作token的总数量,本文中单步动作对应7个token
  • ∑t=1Ta\sum_{t=1}^{T_a}t=1Ta:对每个动作token的损失求和再取平均
  • log⁡\loglog:自然对数,用于把概率转为对数概率,优化更稳定
  • pθ(at∗∣o,I,a<t)p_\theta(a_t^* | o, \mathcal{I}, a_{<t})pθ(ato,I,a<t):给定条件下,模型预测出正确动作tokenat∗a_t^*at的概率
  • θ\thetaθ:模型的全部可训练参数
  • ooo:输入的图像观测
  • I\mathcal{I}I:输入的语言指令
  • a<ta_{<t}a<t:当前位置之前的所有动作token,利用自回归特性保证动作序列的连贯性

简单说,就是给模型看图片、读指令,让它挨个预测7个动作档位,预测错了就用交叉熵罚它,直到预测越来越准。

通俗解释:
这就像做英语完形填空,给你上下文(图片+指令+前面的动作),让你填每个空的正确单词(动作档位),填错越多扣分越多。练得多了,填得就越来越准。

三、关键设计决策与训练细节

做VLA不是把VLM拿来直接训动作就行,很多细节决定了最终效果。作者做了大量消融实验,踩了一堆坑,总结出了下面这些最佳实践。

3.1 VLM主干怎么选?

作者对比了IDEFICS-1、LLaVA、Prismatic三个开源VLM主干,结论很明确:

  • IDEFICS-1最弱,多物体场景下经常抓错东西;
  • LLaVA比IDEFICS-1强35%,语言理解能力更好;
  • Prismatic比LLaVA再强10%,核心原因是它用了DINOv2+SigLIP双路视觉编码器,空间推理能力更强,刚好适配机器人对位置精度的要求。

最终OpenVLA选择了Prismatic-7B作为基座,这也是性能和工程可用性的最优解。

3.2 视觉编码器要不要微调?

这是一个反常识的结论:普通VLM任务里,冻结视觉编码器效果更好,能保住互联网预训练学到的通用特征;但机器人VLA任务里,必须微调视觉编码器,否则效果很差。

原因很简单:通用视觉预训练只需要认出“这是个杯子”,但机器人控制需要精准知道“杯子在桌子上哪个坐标、离机械臂多远”。这些细粒度空间信息必须在机器人数据上微调才能提取出来。

3.3 图像分辨率越高越好吗?

不是。作者对比了224×224和384×384两种分辨率:

  • 精度上两者几乎没区别;
  • 训练速度上384分辨率要慢3倍。

最终选用224×224分辨率,性价比最高。当然这是当前数据规模下的结论,未来数据更多了,高分辨率可能会体现出优势。

3.4 训练超参的反常识结论

和普通大语言模型预训练相比,VLA训练有两个明显不同:

  1. 训练轮次要多很多:LLM预训练一般1-2轮数据就够了,但VLA要训27轮,直到动作token准确率超过95%,真机效果才会饱和。毕竟机器人数据量比文本小得多,需要多迭代几次才能吃透。
  2. 不需要学习率预热:固定2e-5的学习率效果最好,预热反而会掉点。

3.5 训练数据怎么凑?

OpenVLA的训练数据来自Open X-Embodiment(OpenX)数据集,这是全球几十个机构凑出来的机器人演示大合集,原始有200多万条轨迹。作者做了两轮筛选:

  1. 只保留单机械臂、有第三人称摄像头的操作任务,保证输入输出格式统一;
  2. 沿用Octo的数据混合权重,给多样性高的数据集更高权重,给单一任务的数据集降权,避免模型偏科。

最终训练集包含97万条机器人演示轨迹,覆盖多种机器人、多种场景、多种任务。

有趣案例:
这就像练武功,只练一套拳法容易走火入魔,得百家拳都练一点,基础才扎实。数据混合权重就是给厉害的拳法多安排点课时,给花架子少安排点课时,最后练出来的底子最均衡。

四、开箱即用:通用机器人性能评测

第一部分实验测试“零样本直接用”的能力:不做任何额外微调,直接把模型放到新机器人上跑,看泛化能力有多强。测试了两个主流平台:WidowX机械臂(BridgeData V2基准)和Google移动操作机器人。

4.1 WidowX平台:五维度泛化大比拼

BridgeData V2的测试覆盖了5类泛化能力,每类都对应真实场景里的常见挑战:

  • 视觉泛化:背景变了、多了干扰物、物体颜色变了
  • 运动泛化:物体放的位置、朝向没见过
  • 物理泛化:物体大小形状变了
  • 语义泛化:完全没见过的新物体、新指令
  • 语言对齐:多个物体摆在一块,能不能准确抓起指令说的那个

结果如下图所示:

图3:BridgeData V2 WidowX机器人评测结果。从左到右依次为平均成功率、视觉泛化、运动泛化、物理泛化、语义泛化、语言对齐能力。
出处:原文Figure 3

详细数据汇总如下表:

方法参数量平均成功率视觉泛化运动泛化物理泛化语义泛化语言对齐
RT-1-X35M18.5%8.0%25.0%25.0%26.7%26.3%
Octo93M20.0%29.0%7.5%26.3%38.8%36.3%
RT-2-X55B50.6%52.0%55.0%60.0%76.7%38.8%
OpenVLA7B70.6%87.0%60.0%70.7%70.7%90.0%

表1:BridgeData V2各维度泛化成功率对比
出处:根据原文Figure 3与Table 4整理

结果分析:

  1. 全面碾压闭源大模型:OpenVLA参数量只有RT-2-X的1/7,平均成功率高出20个百分点,在视觉泛化、物理泛化、语言对齐三个维度上优势尤其巨大。
  2. 唯一短板是语义泛化:只有在完全没见过的新概念、新物体上,RT-2-X略占优,毕竟它用了更大规模的互联网预训练数据。但这个差距很小,完全在可接受范围内。
  3. 小模型完全不够打:RT-1-X和Octo这种几千万参数的模型,在强泛化任务上成功率普遍只有百分之二三十,基本没法实用。

通俗解释:
这就像考试,RT-2-X是个550斤的大胖子学霸,OpenVLA是个80斤的普通体型学霸,结果门门科目OpenVLA分更高,只有最偏的冷门题胖子稍微多对两道。性价比差了不是一点半点。

4.2 Google机器人平台:分布内与分布外双测

Google机器人平台测试了12个任务,分为两类:

  • 分布内:训练数据里见过类似的物体和任务
  • 分布外:完全没见过的物体、场景、指令

结果如下图所示:

图4:Google移动操作机器人评测结果。左为平均成功率,中为分布内任务,右为分布外泛化任务。
出处:原文Figure 4

数据汇总:

  • 平均成功率:OpenVLA 85.0% vs RT-2-X 78.3% vs Octo 26.7% vs RT-1-X 33.3%
  • 分布内任务:OpenVLA 88.0% vs RT-2-X 72.0%
  • 分布外任务:OpenVLA 82.9% vs RT-2-X 34.3%

最夸张的是分布外泛化:OpenVLA只掉了不到5个点,而RT-2-X直接腰斩,从72%掉到34%。这说明OpenVLA的泛化鲁棒性比闭源模型强得多。

五、下游适配:微调与轻量化落地

通用模型再强,也得能适配自己的机器人、自己的任务才算能用。这部分实验回答两个核心问题:微调效果怎么样?消费级显卡能不能跑?

5.1 全量微调对比:吊打从零训练

测试在Franka机械臂的7个任务上做微调,对比三类方法:

  • Diffusion Policy:从零开始训的当前最优模仿学习方法
  • Octo:开源通用策略微调
  • OpenVLA:本文模型微调

结果如下:

方法单指令任务平均多指令任务平均整体平均
Diffusion Policy61.0%32.7%45.4%
Octo(微调)52.4%40.1%46.2%
OpenVLA(微调)63.8%53.7%58.3%

表2:Franka平台微调任务成功率对比
出处:根据原文Table 7整理

结果分析:

  1. 简单任务各有千秋:单一物体、单一指令的简单任务,Diffusion Policy和OpenVLA差不多,毕竟扩散模型在单任务精度上确实有优势。
  2. 复杂任务拉开差距:多物体、多指令、需要语言理解的复杂任务,OpenVLA比Diffusion Policy高出21个百分点。这就是预训练的威力——大模型见过的场景多,理解语言指令更准。
  3. 整体提升20.4%:平均下来,微调后的OpenVLA比从零训练的Diffusion Policy成功率高20.4%,是目前数据高效模仿学习的新标杆。

5.2 参数高效微调:消费级显卡也能训

全量微调7B模型需要大显存服务器,普通人玩不起。作者测试了LoRA(低秩适配)这类参数高效微调方法,结论非常乐观:

  • LoRA只训练不到1%的参数,就能达到全量微调95%以上的性能;
  • 其他PEFT方法(比如前缀微调、适配器)效果都比LoRA差不少。

这意味着什么?一张24G显存的消费级显卡(比如RTX 4090),就能给OpenVLA做微调,适配自己的机器人任务。这在以前是想都不敢想的事。

通俗解释:
全量微调就像让学霸重新从小学学起,费钱费时间;LoRA就像给学霸补一门专业课,只学新知识,旧知识不动,花很少的时间就能考高分。

5.3 量化推理:显存砍半,性能不掉

推理侧也做了轻量化验证:4位量化、8位量化对成功率几乎没有影响,但能大幅降低显存占用、提升推理速度。

不同显卡上的推理速度如下图所示:

图6:不同型号GPU上的推理速度对比,单位为每秒输出动作数。蓝色为bfloat16精度,深蓝色为8位量化,绿色为4位量化。
出处:原文Figure 6

关键数据:

  • RTX 4090上,bfloat16精度就能跑到6Hz,完全满足机器人闭环控制的要求;
  • 4位量化后,显存占用从15GB降到不到8GB,普通游戏本都能跑;
  • 服务器级H100上能跑到每秒5个以上动作,延迟完全可控。

六、核心代码实现

下面给出基于HuggingFace的OpenVLA核心推理代码与LoRA微调代码,可直接用于实际部署。

6.1 开箱即用推理代码

importtorchfromtransformersimportAutoModelForVision2Seq,AutoProcessorfromPILimportImage# 加载模型和处理器model_name="openvla/openvla-7b"processor=AutoProcessor.from_pretrained(model_name,trust_remote_code=True)model=AutoModelForVision2Seq.from_pretrained(model_name,trust_remote_code=True,torch_dtype=torch.bfloat16,load_in_4bit=True# 开启4bit量化,显存不够就打开).to("cuda")# 准备输入image=Image.open("robot_observation.jpg")# 机器人摄像头图像instruction="把红色的瓶子放进锅里"# 构造提示词prompt=f"What action should the robot take to{instruction}? A:"# 预处理输入inputs=processor(prompt,image).to("cuda",dtype=torch.bfloat16)# 预测动作withtorch.no_grad():action_tokens=model.predict_action(**inputs)# 反解为连续动作action=processor.decode_action(action_tokens)print(f"预测7维动作:{action}")# 输出格式: [delta_x, delta_y, delta_z, delta_roll, delta_pitch, delta_yaw, gripper]

6.2 LoRA微调核心代码

importtorchfromtransformersimportAutoModelForVision2Seq,AutoProcessorfrompeftimportLoraConfig,get_peft_modelfromdatasetsimportload_dataset# 加载基础模型model_name="openvla/openvla-7b"processor=AutoProcessor.from_pretrained(model_name,trust_remote_code=True)model=AutoModelForVision2Seq.from_pretrained(model_name,trust_remote_code=True,torch_dtype=torch.bfloat16,load_in_4bit=True).to("cuda")# 配置LoRAlora_config=LoraConfig(r=16,lora_alpha=32,target_modules=["q_proj","v_proj"],# 只微调注意力的Q/V矩阵lora_dropout=0.05,bias="none",task_type="CAUSAL_LM")model=get_peft_model(model,lora_config)model.print_trainable_parameters()# 输出: trainable params: ~0.1% of all parameters# 加载自定义数据集dataset=load_dataset("your_custom_robot_dataset")# 训练配置training_args=TrainingArguments(output_dir="./openvla-lora-finetuned",per_device_train_batch_size=4,learning_rate=2e-5,num_train_epochs=10,fp16=True,logging_steps=10,save_strategy="epoch")# 开始训练trainer=Trainer(model=model,args=training_args,train_dataset=dataset["train"],data_collator=lambdabatch:processor([f"What action should the robot take to{x['instruction']}? A:"forxinbatch],[x["image"]forxinbatch],actions=[x["action"]forxinbatch],return_tensors="pt"))trainer.train()# 保存LoRA权重model.save_pretrained("./openvla-lora-finetuned")

代码说明:

  • 推理代码支持4位量化,单张消费级显卡即可运行;
  • LoRA微调仅训练极少量参数,24G显存显卡即可完成7B模型的微调;
  • 完整的训练、数据处理、部署代码可参考官方开源仓库。

七、总结与展望

核心结论

  1. 开源VLA首次超越闭源标杆:OpenVLA用1/7的参数量,在29个任务上全面超越55B的RT-2-X,把通用机器人策略的性能和可及性都推到了新高度。
  2. 微调落地路径跑通:从全量微调到LoRA高效微调,再到量化推理,整条落地链路都验证过了,消费级硬件就能用,不再是实验室专属玩具。
  3. 设计经验可复用:双路视觉编码器、微调视觉主干、分位数动作离散化、多轮训练这些最佳实践,给后续做VLA的研究者踩平了很多坑。

未来方向

  • 更大规模数据与模型:现在还只有不到一百万条机器人数据,未来数据量上去后,更大的模型应该还能继续涨点;
  • 多模态输入扩展:现在只用了单目RGB,未来可以加入深度图、力觉、语音等更多传感器输入;
  • 强化学习对齐:现在还是纯行为克隆,未来结合RLHF或者在线强化学习,有望进一步提升任务成功率和鲁棒性。

总的来说,OpenVLA不是终点,而是开源通用机器人策略的一个坚实起点。它把高高在上的VLA技术拉到了普通人能碰得到的位置,接下来整个领域的迭代速度肯定会越来越快。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/27 9:29:37

大学生必懂的AI就业方向

计算机专业&#xff1a;三大AI技术就业方向 计算机、软件工程、大数据、人工智能等专业&#xff0c;可直接切入AI技术赛道&#xff0c;按“门槛高低、就业难度、市场需求”分为三类&#xff0c;覆盖从顶尖研发到主流就业的全路径。 1 AI技术核心岗方向 这是AI领域的顶尖岗位&am…

作者头像 李华
网站建设 2026/6/27 9:28:02

终极指南:使用KMS智能激活脚本安全免费激活Windows和Office系统

终极指南&#xff1a;使用KMS智能激活脚本安全免费激活Windows和Office系统 【免费下载链接】KMS_VL_ALL_AIO Smart Activation Script 项目地址: https://gitcode.com/gh_mirrors/km/KMS_VL_ALL_AIO KMS_VL_ALL_AIO是一款基于微软官方KMS协议开发的智能激活脚本&#x…

作者头像 李华
网站建设 2026/6/27 9:26:50

掌握AI员工核心技能:小白程序员必看,收藏提升职场竞争力!

本文探讨了AI员工的概念及其在企业管理中的应用。AI员工不仅是简单的问答工具&#xff0c;而是能理解任务、拆解流程、调用工具、访问系统并输出结果的“能干活的员工”。文章分析了AI员工与企业内部重复性工作的契合点&#xff0c;并强调了AI员工落地需明确岗位、权限和结果验…

作者头像 李华
网站建设 2026/6/27 9:10:52

国内易切削钢厂分布在哪些地方?

易切削钢是自动车床、精密切削加工的专用棒材&#xff0c;通过添加硫、铅、铋、钙等元素改善切削性能。其下游覆盖汽车零件、家电轴芯、液压接头等场景&#xff0c;国内生产集中在少数几个特钢产区。 华东&#xff1a;江苏常州-南京带 华东是国内易切削钢最重要的产区之一。常州…

作者头像 李华
网站建设 2026/6/27 9:09:37

ALVR无线VR串流:如何彻底摆脱线缆束缚,享受自由VR体验?

ALVR无线VR串流&#xff1a;如何彻底摆脱线缆束缚&#xff0c;享受自由VR体验&#xff1f; 【免费下载链接】ALVR Stream VR games from your PC to your headset via Wi-Fi 项目地址: https://gitcode.com/gh_mirrors/alvr/ALVR 你是否曾在激烈的VR游戏中&#xff0c;因…

作者头像 李华
网站建设 2026/6/27 9:01:28

馈线和跳线:DAS链路里最不起眼但最容易出问题的一环

做室内分布系统&#xff0c;大家习惯把注意力放在功分器、耦合器、合路器这些“核心器件”上。馈线和跳线呢&#xff1f;很多人觉得不就是一根电缆嘛&#xff0c;能有什么技术含量。但实际工程里&#xff0c;出问题最多的往往就是这根“不起眼的线”。接头没拧紧、弯曲半径不够…

作者头像 李华