VLA 概览#

VLA 是什么#

VLA 通常指 Vision-Language-Action Model,可以翻译成“视觉-语言-动作模型”。

它的目标很直接:让机器人像人一样,根据看到的画面和听到的指令,输出可以执行的动作。

图像/视频观测 + 语言指令 -> 机器人动作

例如:

  • 看到桌子上有杯子,听到“把杯子放到盘子旁边”。

  • 模型理解当前场景、目标物体和任务意图。

  • 输出机械臂末端位姿、关节控制量或离散动作 token。

../../../_images/vla_overview.svg

为什么提出 VLA#

传统机器人策略往往是“一个任务训练一个模型”。例如抓杯子、开抽屉、擦桌子可能分别需要不同数据和不同策略。

这会带来几个问题:

  • 泛化弱:换一个物体、换一句指令、换一个场景,模型可能就不会了。

  • 任务接口窄:很多策略只接收状态或图像,不理解自然语言。

  • 数据利用率低:机器人数据很贵,但互联网图文数据和大模型知识很丰富。

VLA 的核心动机是把视觉语言模型的理解能力接到机器人动作上:

大模型的语义理解 + 机器人动作数据 = 能听懂指令并执行的策略

通俗地说,VLA 希望机器人不只是“会控制”,还要“知道自己在控制什么、为什么这样做”。

核心知识#

输入:视觉和语言#

VLA 一般会同时接收:

  • 相机图像或视频:告诉模型当前世界是什么样。

  • 语言指令:告诉模型要做什么。

  • 可选的机器人状态:例如关节角、夹爪开合、末端位姿。

视觉负责回答“在哪里、有什么、状态如何”,语言负责回答“目标是什么、约束是什么”。

输出:动作#

VLA 的动作输出有多种形式:

  • 连续动作:直接输出关节速度、末端位移、夹爪开合等数值。

  • 离散动作 token:先把动作离散化成 token,再像语言模型生成文字一样生成动作。

  • 轨迹片段:一次输出未来几步动作,而不是只输出下一步。

动作空间的选择很重要。动作太底层,模型学习难;动作太高层,又需要额外控制器去执行。

模型结构:把动作接到多模态模型后面#

很多 VLA 可以理解成在视觉语言模型上增加动作输出能力:

图像编码器 -> 视觉 token
语言模型 -> 语义推理
动作头/动作 token -> 机器人控制

这类路线的直觉是:大模型已经能理解图像和文字,现在需要让它学会把理解结果变成动作。

训练数据:机器人演示#

VLA 通常依赖大量机器人演示数据:

观测画面 + 指令 + 人类/专家动作轨迹

训练时,模型学习在某个场景和指令下应该输出什么动作。这和模仿学习很接近,只是输入输出更通用,模型规模也更大。

常见代表#

  • ACT:用 action chunking 一次预测一段动作,缓解逐步控制的误差累积。

  • Diffusion Policy:用扩散模型生成动作轨迹,适合表达多种可能动作。

  • OpenVLA:开放权重的通用 VLA 路线,把多模态大模型接到机器人动作。

  • π0 / π0.5 / π0.6:更强调大规模机器人数据、开放任务和可迁移策略。

  • SmolVLA:更轻量,关注部署效率和实用性。

和 World Model、WAM 的关系#

VLA 最核心的问题是:

我现在应该做什么动作?

World Model 更关心:

如果我这样做,世界会怎么变化?

WAM 则试图把两者合在一起:

同一个模型同时理解动作和世界变化

所以可以粗略理解为:

  • VLA 偏“决策/策略”。

  • World Model 偏“预测/想象”。

  • WAM 偏“把动作和世界模型联合起来”。

局限#

  • 机器人动作数据远少于互联网图文数据,数据规模仍是瓶颈。

  • 很多 VLA 是反应式策略,未必真的能长期预测动作后果。

  • 对精细接触、力控制、安全约束仍然困难。

  • 换机器人本体、相机视角、控制频率时,迁移并不容易。

小结#

VLA 的一句话理解是:让机器人根据视觉和语言直接生成动作的模型。

它把多模态大模型带进机器人控制,是具身智能里“从理解到行动”的关键路线。