一句话理解 VLA
VLA = 看得懂图(Vision)+ 听得懂话(Language)+ 会做动作(Action)
VLA(Vision-Language-Action)模型把视觉理解、语言推理和动作执行统一到一个端到端的神经网络里。它不是三个模块的简单拼接,而是一个模型直接从「图像+指令」输出「动作」。
理解 VLA 的关键在于它把大语言模型(LLM)的推理能力引入了控制问题——模型不仅能识别"前方有行人",还能推理出"行人正在看手机、可能横穿马路,所以我应该减速",并直接输出刹车/转向指令。
🚗 为什么自动驾驶需要 VLA?
传统模块化架构的瓶颈
传统自动驾驶是模块化流水线:
摄像头 → 感知 → 预测 → 规划 → 控制
这套架构成熟、可解释性强,但有三个硬伤:
- 信息丢失:每个模块只把有限结果(如目标框、轨迹)传给下一级,原始像素中的丰富信息层层衰减,下游永远看不到上游"看到的一切"。
- 无法理解"语义":感知模块能识别"前方有锥桶",但不懂"因为施工所以要变道"这种需要常识和因果推理的判断。
- 长尾场景弱:遇到规则库里没定义过的复杂路况(如前方货车掉落货物、临时交通管制),规则系统容易失效,且难以泛化到新城市。
VLA 的破局思路
VLA 的核心思路是引入大语言模型的推理与常识能力,让系统真正"看懂"场景、“想明白"该怎么做,并且把整条链路压进一个可端到端训练的网络里。这样梯度可以从最终动作误差直接回传到视觉编码器,避免模块间的信息割裂。
🏗️ VLA 的典型架构
一个 VLA 模型通常由三部分组成:
视觉编码器 → 语言模型(LLM) → 动作头(Action Head)
| 组件 | 作用 | 典型实现 |
|---|---|---|
| 📷 视觉编码器 | 把摄像头图像编码成 token 序列 | ViT、SigLIP、CLIP、DINOv2 |
| 🧠 语言模型 | 融合视觉与语言 token,进行推理决策 | LLaMA、Qwen、InternLM、Gemma |
| 🎯 动作头 | 把推理结果转成可执行的动作向量 | Diffusion、Flow Matching、回归头 |
三大组件的协同
- 视觉编码器输出图像 token(通常经过一个投影层对齐到 LLM 的嵌入空间),连同文本指令的 token 一起送入 LLM。
- LLM 在统一的 token 空间里做跨模态推理,可以输出**思维链(Chain-of-Thought)**解释决策依据。
- 动作头接收 LLM 的隐状态(或中间特征),生成最终的低层控制信号(方向盘转角、油门、刹车,或机械臂关节角)。
关键创新:Action Head 的设计演进
动作头是 VLA 区别于普通 VLM(如 GPT-4V)的关键——它必须输出可执行的连续控制量。这部分的设计直接决定了精度、速度和表达能力,目前主要有三大流派。
🎯 Action Head 设计详解
Action Head 要解决的核心问题是:如何从一个高维语义特征,生成精确的低层动作? 这个看似简单的问题,因为动作分布的多模态性(同一场景下可能有多个合理动作,比如左绕或右绕障碍)而变得棘手。下面三种方案各有取舍。
方案一:动作离散化为 Token(Action Tokenization)
代表工作:RT-2、OpenVLA
把每个动作维度(如转向角、油门)独立离散化成若干个 bin(典型 256 个),每个 bin 对应词表里的一个 token。于是动作变成一段"伪文字”,模型用自回归方式逐 token 生成动作。
- ✅ 优点:完全复用 LLM 的自回归生成机制和交叉熵训练,实现最简单;动作和语言共享同一套解码器。
- ❌ 缺点:量化误差(连续值被强行压进有限 bin);自回归生成长动作序列时延迟高;难以表达多模态分布。
- 🎯 定位:早期验证 VLA 可行性的方案,实现门槛低,适合研究和快速复现。
方案二:连续动作回归(Continuous Regression)
在 LLM 末端接一个 MLP/Dense 头,直接回归出连续动作向量。
- ✅ 优点:推理极快(一次前向就出结果),实现简单,没有量化误差。
- ❌ 缺点:当训练数据中存在多个合理动作时,回归会倾向于取平均(mode averaging),导致输出一个"谁都不像"的折中动作,在多模态场景下表现差。
- 🎯 定位:适合动作空间相对确定、单模态的任务,或对延迟要求极端苛刻的部署。
方案三:扩散 / Flow Matching 生成(Diffusion / Flow Matching)
代表工作:π0、Diffusion Policy、DiffusionDrive
把动作生成建模成一个生成式采样过程。扩散模型从噪声出发,逐步去噪得到动作;Flow Matching 则学习一个把简单分布"流"到动作分布的速度场。它们可以一次性生成一整段动作序列(action chunk)。
- ✅ 优点:天然支持多模态动作分布;精度高;可生成未来若干步的动作(action chunking),减少高频推理开销。
- ❌ 缺点:推理需要多次迭代去噪,计算开销大;训练和调参更复杂。
- 🎯 定位:当前精度和表达能力最强的方案,是研究和工业界的主流方向。
三种方案对比
| 方案 | 精度 | 速度 | 多模态支持 | 实现难度 | 代表工作 |
|---|---|---|---|---|---|
| 离散化 Token | 中(有量化误差) | 慢(自回归) | 弱 | 低 | RT-2、OpenVLA |
| 连续回归 | 中 | 快 | 弱(mode averaging) | 低 | 早期 SFT 头 |
| 扩散/Flow Matching | 高 | 慢(可优化) | 强 | 高 | π0、DiffusionDrive |
💡 实践技巧:为缓解扩散头的延迟问题,业界常用 action chunking(一次生成未来 N 步动作,按需执行)+ 模型蒸馏(把扩散老师蒸馏成一步回归学生)+ 异步推理流水线来逼近实时性。
🧪 VLA 的训练流程
一个完整的 VLA 训练通常分三个阶段,和 LLM 的训练范式高度对齐,但数据形式不同。
阶段一:视觉-语言预训练(Pretraining)
目标是让模型学会"看图说话"。通常用海量互联网图文对做对比学习或生成任务,建立视觉 token 和语言 token 的对齐。
- 数据:网络爬取的图文对(如 LAION)、VQA 数据集。
- 方法:冻结/部分冻结 LLM,训练视觉编码器和投影层。
- 产出:一个通用的 VLM(如 PaLI、LLaVA 系列)。
阶段二:动作指令微调(Instruction Tuning / SFT)
这是 VLA 真正"学会做动作"的阶段。用 (图像, 指令, 动作) 三元组进行监督学习。
- 数据构建:
- 机器人:遥操作采集的示教轨迹(teleoperation demos)、仿真数据。
- 自动驾驶:人类驾驶日志中切片出的 (多视角图像, 导航指令, 方向盘/油门/刹车标签)。
- 关键技巧:加入思维链标签——除动作外,还标注中间推理过程(“前方有行人 → 行人正在靠近车道 → 减速”),让模型学会"想清楚再做"。
- 损失:动作头用回归/MSE 或扩散去噪损失;语言部分用交叉熵。
阶段三:偏好对齐(RLHF / Preference Optimization)
用强化学习或偏好数据,把模型对齐到安全、舒适、符合人类直觉的行为。
- 奖励来源:人类标注的轨迹偏好对(A 比 B 好)、基于规则的安全 shield(碰撞/违规给负奖励)、仿真器回放。
- 常用算法:PPO、DPO(Direct Preference Optimization,免显式奖励模型,更稳定)。
- 自动驾驶特殊性:安全相关约束通常用硬约束 + 规则后处理兜底,不完全依赖 RL 学出来的软偏好。
三阶段对比
| 阶段 | 目标 | 数据 | 典型方法 |
|---|---|---|---|
| 预训练 | 视觉-语言对齐 | 海量图文对 | 对比学习、生成 |
| 指令微调 | 学会做动作 | (图, 指令, 动作) 三元组 | SFT + 思维链 |
| 偏好对齐 | 安全/舒适/符合直觉 | 偏好对、安全规则 | RLHF、DPO |
🏆 代表性 VLA 工作详解
VLA 的发展先在机器人领域爆发,再延伸到自动驾驶。下面按领域梳理代表性工作。
机器人领域
| 模型 | 团队 | Action Head | 核心特点 |
|---|---|---|---|
| RT-1 | 离散 token | 早期 Transformer 控制策略,验证大规模示教数据可泛化 | |
| RT-2 | Google DeepMind | 离散 token | 首个真正把 VLM 直接变 VLA 的工作,动作复用词表 |
| OpenVLA | Stanford/Berkeley/TRI | 离散 token | 开源标杆,基于 Llama 2 + SigLIP,可复现可微调 |
| Octo | Berkeley | 扩散头 | 通用机器人策略,支持多种机器人本体 |
| π0 / π0.5 | Physical Intelligence | Flow Matching | 通用 VLA,跨本体跨任务,动作头用 Flow Matching,目前能力天花板之一 |
自动驾驶领域
| 模型 | 团队 | 核心特点 |
|---|---|---|
| DriveVLM | 清华/上交 + 蔚来 | 首个把 VLM 用于自动驾驶空间推理,引入思维链(场景→关键对象→动作) |
| EMMA | Wayve | 基于 Gemini 的多任务端到端,统一感知+规划+预测,单模型多输出 |
| DriveVLM-Dual | 上海交大 + 蔚来 | 双系统:快思考(小模型实时)+ 慢思考(大模型推理),兼顾速度与深度 |
| DiffusionDrive | 华中科大等 | 扩散头做规划,建模多模态轨迹分布 |
| SparseDrive | 稀疏化设计,提升端到端规划效率 |
关键定位解读
- RT-2 的贡献是证明了可行性:VLM 可以直接输出动作,不需要单独的控制模块。它的离散化方案简单但奠基。
- OpenVLA 的贡献是民主化:把一个完整的 VLA 训练 recipe 开源,让学术界能快速跟进。
- π0 的贡献是生成式动作头的天花板:Flow Matching 让它在精细操作和长程任务上远超离散化方案,是通用具身智能的代表。
- DriveVLM 的贡献是把 VLM 推理搬上车:首次展示思维链能提升复杂场景(如施工、拥堵)的决策质量。
- EMMA 的贡献是多任务统一:一个 Gemini 风格模型同时输出感知、预测、规划,验证了 VLA 在车端的多任务潜力。
⚖️ 自动驾驶 VLA vs 机器人 VLA
虽然都叫 VLA,但两个领域的约束差异巨大,直接照搬机器人的方案上车往往行不通。
| 维度 | 自动驾驶 VLA | 机器人 VLA |
|---|---|---|
| 实时性 | 极严苛,需 10Hz+(<100ms) | 较宽松,1–5Hz 常可接受 |
| 安全等级 | 安全关键(safety-critical),出错可能致命 | 容错较高,可重试 |
| 动作空间维度 | 低维(方向盘、油门、刹车,约 2–3 维) | 高维(7 自由度臂 + 夹爪,>7 维) |
| 动作分布 | 相对单模态(多数场景有"标准答案") | 高度多模态(多种抓取/放置方式) |
| 数据获取 | 车队海量日志,但"有趣"场景稀缺 | 实验室/仿真采集,规模有限 |
| 传感器 | 多相机 + LiDAR + 雷达,时序要求高 | 少量相机/深度相机 |
| 场景开放性 | 开放道路,长尾无穷 | 工作空间相对受限 |
| 延迟确定性 | 必须硬实时,错过 deadline 即危险 | 软实时,偶尔慢一拍可接受 |
三个核心差异的深入分析
1. 实时性是车端的生死线。 机器人手臂慢 100ms 几乎无感,但汽车以 30m/s 行驶时,100ms 就是 3 米。这要求自动驾驶 VLA 必须做激进的模型压缩、量化、action chunking 和异步推理,而机器人 VLA 可以放开手脚用更大的模型。
2. 安全性要求截然不同的验证方法。 自动驾驶需要**形式化验证、海量仿真回归、影子模式(shadow mode)和规则安全盾(safety shield)**做兜底——VLA 的输出经常要过一个硬规则过滤器才会下发。机器人则更多依赖任务级成功率指标。
3. 动作空间维度相反。 自动驾驶动作维度低但精度要求极高(方向盘差 1° 可能偏离车道),且常常是单模态,所以连续回归/action chunking 更实用;机器人动作维度高且多模态,更依赖扩散/Flow Matching 来表达多样性。
💡 因此,自动驾驶 VLA 不能照搬机器人方案,而要针对低延迟、高安全、低维高精度重新设计 Action Head 和推理流水线。
📊 VLA vs 传统端到端
| 维度 | 传统端到端 | VLA |
|---|---|---|
| 推理能力 | 弱(黑盒映射) | 强(可链式推理) |
| 可解释性 | 差 | 较好(可输出思维链) |
| 泛化性 | 依赖数据分布 | 借助 LLM 预训练知识 |
| 实时性 | 快 | 较慢(LLM 推理开销) |
| 训练成本 | 中等 | 高(需要大规模数据+算力) |
| 数据需求 | 中 | 大(且要带推理标签) |
当前最大挑战:如何让 LLM 的推理既准又快,满足车端实时性要求。
🧭 当前挑战与未来方向
主要挑战
- ⏱️ 实时性:数十亿参数的 LLM 推理延迟难以压到 100ms 以内。方向:模型蒸馏、量化、KV-cache 复用、action chunking、专用加速芯片。
- 🛡️ 安全性验证:如何为一个"会推理的黑盒"提供安全保证?方向:形式化方法、对抗场景测试、规则安全盾、不确定性估计。
- 📦 数据效率:带思维链标注的驾驶数据极其昂贵。方向:世界模型生成数据、主动学习、仿真闭环训练。
- 🔗 多模态融合:如何同时利用多相机、LiDAR、雷达、历史帧时序?方向:3D/BEV token 化、时序注意力、跨模态对齐。
- 🌍 长尾泛化:罕见场景(事故、极端天气)下仍需可靠决策。方向:合成数据、LLM 常识迁移、检索增强。
未来趋势
- 世界模型 + VLA 结合:世界模型预测未来,为 VLA 提供仿真训练环境和"想象"能力。
- 快慢双系统:小模型做实时反应,大模型做慢思考,按需触发(如 DriveVLM-Dual)。
- 端云协同:车端跑蒸馏后的小 VLA,云端大 VLA 做难例推理和持续学习。
- 跨本体/跨车型统一:一个 VLA 适配多种车型/机器人(类比 π0 在机器人侧的通用性)。
🎓 如何入门 VLA 研究
推荐学习路线
LLM 基础 → 多模态 VLM → VLA 经典论文 → 动手复现 → 选方向深挖
- 打基础:理解 Transformer、自回归生成、对比学习、指令微调、RLHF/DPO。
- 学 VLM:读 CLIP、BLIP、LLaVA,搞懂视觉-语言对齐机制。
- 进 VLA:按下面论文清单顺序读,先离散化、再扩散/Flow Matching。
- 动手:跑通 OpenVLA 或 LeRobot 的 demo,做一次微调。
- 深挖:在 Action Head 设计、训练范式、或自动驾驶适配中选一个方向。
推荐论文清单
机器人 VLA(按时间线):
- RT-1(Google, 2022)— 大规模示教数据驱动的控制策略
- Diffusion Policy(2023)— 扩散动作头的奠基工作
- RT-2(DeepMind, 2023)— VLM 直接变 VLA
- OpenVLA(2024)— 开源 VLA 标杆
- π0 / π0.5(Physical Intelligence, 2024)— Flow Matching 通用 VLA
- Octo(2024)— 通用机器人策略
自动驾驶 VLM/VLA:
- DriveVLM / DriveVLM-Dual(上交+蔚来)— 思维链 + 双系统
- EMMA(Wayve)— 多任务端到端
- DriveGPT4、LMDrive — VLM 辅助驾驶的早期探索
开源代码与资源
| 资源 | 说明 |
|---|---|
| OpenVLA | https://github.com/openvla/openvla — 完整开源 VLA,首选复现对象 |
| LeRobot | HuggingFace 出品,含数据集+模型+训练流水线,对新手友好 |
| Octo | 通用机器人策略,支持多本体 |
| Diffusion Policy | 扩散动作头参考实现 |
| π0 (公开说明) | Physical Intelligence 发布的技术报告与部分实现 |
💡 新手建议:先从 LeRobot 起步,它的抽象层次高、文档完善,能让你在一周内跑通一个完整 VLA demo,再逐步深入到 OpenVLA 和扩散头。
✅ 小结
VLA 不是某个具体模型,而是一种新范式:用大模型的通用理解与推理能力,重新定义"感知 → 决策 → 动作"的链路。它代表了自动驾驶从"规则驱动"走向"理解驱动"的方向。
记住三个要点:
- 架构 = 视觉编码器 + LLM + 动作头,其中动作头的设计(离散 / 连续 / 扩散)是性能 trade-off 的核心。
- 训练 = 预训练 + 指令微调 + 偏好对齐,数据构建(尤其思维链标签)是关键。
- 上车 ≠ 照搬机器人,必须针对实时性、安全性、低维高精度重新设计。
下一篇我们聊世界模型——它解决的是 VLA 训练中"数据从哪来"的问题。
💡 觉得有用?这系列会持续更新,点个关注不迷路。