
读这篇综述之前我其实带着一个很实际的问题现在的机器人控制到底卡在哪做传统感知-规划-控制pipeline做了很多年仿真里跑得飞起一到真实世界就变脆。视觉模块识别得好好的语言指令也解析得清清楚楚可到了执行层整个系统就像换了个人——死板、脆弱、不能通融。VLA模型的出现本质上是在回答一个问题能不能让机器人像人一样看到场景、听懂指令、直接动手不再把感知、规划、控制切成三段各自为战。这篇综述的核心内容就是系统梳理Vision-Language-Action模型视觉-语言-行动模型从模型架构、训练数据、动作表示到真实世界部署的全部关键问题并结合大量现有工作总结了VLA在走向实际应用过程中的瓶颈和突破口。我读完之后最大的感受是这套东西不是换个模型结构那么简单它背后牵扯到数据策略、动作表征、实时推理、安全干预一整条链路的设计取舍。这篇文章就围绕综述里的核心结论结合我自己做机器人部署的一些碎片经验把VLA这条技术路线掰开揉碎讲清楚。1. 先搞清楚VLA到底改变了什么从串行pipeline到端到端闭环传统机器人系统是典型的串行结构视觉感知模块先输出检测框或分割掩码语言模块再解析指令意图然后运动规划模块做路径搜索最后底层控制器执行轨迹。每一层都有自己的中间表示比如3D bounding box、语义地图、cost map。模块之间可以单独调试但问题也很明显信息在传递过程中不断丢失和变形而且每个模块的错误会向下游累积。VLA模型的思路完全不同。它把视觉输入、语言指令和机器人本体状态关节角度、夹爪开合、力反馈等丢进同一个大模型里直接输出可执行的动作。中间不经过显式的语义地图或轨迹规划层。这个思路在直觉上非常接近人类的行为模式——你让我“把桌上那瓶水拿起来”我不需要先在心里构建一个几何模型再做一条轨迹规划直接伸手、抓取、收回就完了。1.1 为什么传统方案在真实场景里越来越吃力过去几年在机械臂抓取这个任务上传统pipeline的局限性暴露得特别明显。视觉检测模块在环境变化下很容易掉点——光照变了、物体换了个角度、背景多了点杂讯检测框就开始抖。语言解析模块如果做成固定的槽位填充比如“动词物体位置”碰到没见过的说法就歇菜。规划模块依赖精确的环境建模模型一旦和真实世界对不上整个系统就崩。这不是某一个环节能单独解决的问题。感知、语言、规划、控制之间的接口是人为设计的而这些接口恰恰是错误放大的地方。VLA把中间环节压缩掉让模型直接从高维输入映射到动作输出本质上是在绕开这些脆弱的人工接口。综述里反复强调的一个点就是VLA模型的泛化能力很大程度上来自于它学到的不是“规则”而是“行为模式”——它见过海量的图文数据和机器人交互数据学会了在从未见过的场景里做合理动作。1.2 一个直观的对比理解VLA的核心价值我用一个很常见的场景来说明。让机器人执行“把红色杯子放到蓝色托盘里”这个指令传统方式视觉模块先要找杯子、识别颜色、定位托盘然后语言模块要把“红色”“蓝色”“放到”这几个词绑定到具体目标上规划模块再根据物体位姿计算抓取姿态和放置路径。期间任何一步出错后续全部作废。VLA方式模型直接看到图像理解“红色杯子”指代哪个物体看到托盘位置直接输出一串动作指令控制机械臂完成抓取和放置。整个过程是一个条件生成问题——给定视觉和语言条件生成动作序列。综述里把后者称为“行为条件的动作生成”模型学到的是一种从感知到动作的直接映射。这种映射在训练数据充足的情况下对场景变化、指令措辞变化都有更强的鲁棒性。2. VLA核心架构拆解三件套、动作头和训练配方综述对VLA的架构梳理得比较清晰我把它拆成三个层面输入端的多模态编码、中间的模型主干、输出端的动作解码。这三个层面看似简单但每一个都有大量的设计细节和权衡取舍直接在真实部署时影响性能。2.1 输入端设计视觉编码器与语言tokenizer的现实选择VLA的输入端需要同时处理图像和文本。图像侧主流做法是用一个预训练的视觉编码器比如类ViT架构把像素变成token序列语言侧则使用语言模型的tokenizer把指令变成文本token。两者在进入模型主干之前会通过投影层对齐到同一个嵌入空间。这块看起来常规但实际部署时有两个容易忽略的坑。第一是图像分辨率对算力的影响——视觉编码器处理高分辨率图像非常吃显存而机器人场景往往需要看清小物体上的纹理或抓取点分辨率太低模型就瞎了。第二是视觉token和语言token的序列长度差异——图像咬进来的token数量远超文本如果不对序列做降采样或池化模型输入长度会爆炸直接影响推理速度。我用过一个视觉编码器输出的token特别密集的方案对着桌面场景推理一次显存占用直接爆表。后来换了更小的patch size加池化压缩推理耗时从800ms降到了400ms左右精度损失可接受。这说明输入端的选择不只是精度问题它直接决定了你是否能在真实机器人上实时跑起来。2.2 模型主干用双塔还是用统一Transformer综述把主干模型大致分成两类路线一类是双塔结构视觉和语言各自编码后在一个融合层汇合再交给动作头另一类是统一序列建模把视觉token、语言token和动作token全部拼在一个序列里交给一个参数量巨大的Transformer做自回归生成。统一序列建模是目前更被看好的方向原因很直接它可以在互联网规模的图文数据上做预训练然后迁移到机器人控制任务上做微调。这种预训练-微调范式的意义是巨大的——机器人操作数据极其稀缺但互联网图文数据几乎是无限的。模型先看遍世界的样子再在真实操作数据上学会“动手”这正好解决机器人数据不足的痛点。但统一建模也有代价。序列变长之后注意力计算的复杂度急剧上升推理更慢而且模型容量变大之后在小规模机器人数据上微调容易过拟合。综述里提到一个业界常见的做法是把视觉编码器冻结只微调主干和动作头这能显著降低微调成本也能保留视觉特征的泛化性。2.3 动作头设计离散token、连续输出与混合方案的取舍这是VLA里最有机器人特色的部分也是综述着墨较多的地方。动作输出到底用什么形式直接决定了控制精度和训练难度。离散动作token是当前比较流行的做法——把连续动作空间量化为一个个离散的bin让模型用预测下一个token的方式生成动作。这种做法最大的好处是和预训练语言模型的next-token prediction范式完全兼容训练起来特别稳。但缺点也很明显离散化会损失控制精度。机械臂末端位置差几毫米可能没关系但如果你要插一个USB接口离散化误差就直接导致失败。连续动作输出则保留完整的精度信息但训练难度更大因为回归连续值和分类token的损失函数性质不同放在同一个模型里需要小心平衡。综述里提到了一些混合方案——比如粗动作用离散token细调动作用回归补全或者预测动作分布而不是确定值用概率采样的方式输出动作。这个领域的工具还在快速演进中。我自己在做实操的时候感觉如果任务本身是粗粒度搬运、摆放离散token完全够用但如果涉及到精密装配或工具操作连续输出或混合方案几乎是必须的。这也意味着动作头的选择本质上取决于你要解决的真实任务类型不是在实验室里拍脑袋定的。3. 数据是真正的胜负手VLA训练数据的三层结构综述里有一个判断我非常认同VLA模型的性能上限很大程度上由训练数据的天花板决定而不是模型结构。数据策略是VLA走向实际应用中最关键、也最容易被忽视的部分。3.1 三层数据配方互联网图文、仿真数据和真实操作数据VLA的训练数据大致可以分成三层。第一层是互联网规模的图文数据用于预训练视觉-语言对齐能力让模型理解世界知识和语义关系。第二层是仿真环境里大规模生成的机器人操作数据用于学习动作控制的基本规律。第三层是真实机器人上的遥操作数据用于校准仿真和真实的差异。这三层数据各司其职但当前最大的瓶颈在第三层——真实操作数据获取成本太高。人类遥操作一个机械臂完成一套复杂任务可能需要几十秒到几分钟的示范再加上清洗、标注、格式化的时间几天才能攒几千条高质量数据。这和互联网图文数据动辄几十亿条的数量级完全不在一个水平线上。综述总结的现有工作里主流方案都是围绕如何在稀缺的真实数据上做文章要么用仿真数据做大规模预训练再用少量真实数据微调要么利用多机器人共享数据的跨具身学习把不同形态机器人的操作数据统一处理要么用数据增强、动作平滑等手段提升单条数据的价值。3.2 仿真数据是否可靠从sim-to-real gap说起仿真数据简直是VLA训练里最纠结的一个话题。用仿真生成数据便宜、速度快、可规模化但仿真和真实世界之间永远存在差距——物理引擎模拟的摩擦、柔性物体变形、光照变化和真实世界差别很大。电池模型的机械臂可能在仿真里能完美抓取但到了真实环境因为接触力学不一致直接失败。我在仿真里跑得好好的模型放到真实机械臂上试了十几次抓取成功率从95%掉到60%以下非常典型。综述里提到的对策主要是域随机化——在仿真里随机各种环境参数光照、纹理、物体重量、摩擦系数让模型学到对环境变化鲁棒的策略。这个方法确实有效但增加了训练难度和成本成功率提升也不是线性的。对做落地项目的人来说我的建议是把仿真数据主要用来学动作模式用来校准真实操作数据的模型冷启动问题但不要指望纯仿真模型能直接上真实机器。最后的模型必须在真实数据上做精调这个步骤省不掉也不该省。3.3 跨具身数据数据共享可能比想象中复杂VLA模型的一个潜在红利是如果表达方式统一不同机器人的操作数据可以合并训练。你有一台六轴机械臂的数据另一台是七轴协作臂的数据如果动作表示不统一这些数据没法直接混训。综述里提到了一个做法使用末端执行器位姿作为统一动作表示有的模型用关节角度有的用末端笛卡尔坐标。末端位姿的好处是没有运动学结构的依赖——不管你是几轴机械臂末端在空间里的position和orientation都是一组6D向量。这个统一性就是跨具身数据共享的基础也是当前VLA领域能形成“规模效应”的关键技术前提。但统一表示也会带来限制——比如某些需要精确关节控制的技能如柔软物体操作、关节限位规避用末端位姿表示就不够。综述在这一段点破了一个趋势未来VLA很可能会发展出分层动作表示宏观上使用末端位姿做任务规划微观上再映射到具体的关节空间兼顾通用性和精度。4. 评估方法与基准实测仿真和真实世界之间的落差论文综述本身当然不只有架构和数据它还用了较大的篇幅梳理评估体系。这一部分对想复现和做对比的读者特别有价值。4.1 评估维度怎么划分指令跟随、泛化能力与操作效率综述把VLA的评估大致分成三个维度。指令跟随考察模型能不能准确理解用户语言并执行对应动作泛化能力考察面对未见过的物体、场景、甚至未训练过的语言表达时模型能否迁移过去操作效率则关注完成任务的成功率、完成时间、动作平滑度等和真实部署相关的指标。这三个维度经常互相制约。一个模型可能指令跟随做得很好但泛化能力差换个背景就崩另一个模型泛化能力强但成功率低老是抓不到位。评估指标的选取而不只是精度——如果你的目标任务是日常生活服务成功率和泛化能力优先如果是工业固定产线操作指令跟随精度和稳定性优先。评估体系必须和目标场景深度绑定这个道理很简单但很多团队实际操作时容易犯“一把尺子量所有东西”的毛病。4.2 实测下来仿真基准和真实环境的相关性不能高估综述梳理了当前常用的仿真评估基准——比如长程多步操作任务、桌面操作任务等——每一个基准在学术界都很有影响力论文刷分也很热闹。但它们和真实世界表现的相关性其实并没有想象中那么高。这里有个深层原因。仿真评估环境本身是有限集合物体种类、布局方式、光照条件都是预设的。模型在仿真环境里拿高分可能说明它对这组特定的场景分布拟合得很好并不能证明它对“开放世界”足够鲁棒。另一方面仿真评估通常忽略了真实部署中的工程复杂度——模型推理时间有没有超过控制周期有没有连接失败的高障率这些在仿真基准里根本不会被考察。我见过一个模型在某仿真基准上把SOTA刷高了十个百分点但拿到实际机器人上跑因为推理延迟太高效果反而不如一个老旧但轻量的方案。所以我的建议是仿真基准适合做模型对比和迭代的方向筛选但真正判断一个VLA模型能不能用必须放到真实机器人上做任务测试哪怕任务数量少、测试规模小都比一大张仿真指标表有说服力。4.3 现实评估需要一把“自定义尺子”这也是综述回顾真实世界应用时强调的一点评估框架要从“benchmark导向”转向“任务导向”。对一个特定的落地场景真正重要的是这个模型在那个场景里的成功率、安全性和稳定性而不是在通用基准上排名第几。我给一个初步验证VLA模型是否值得上真实机器的评估方案固定一组代表性任务比如20个不同摆放位姿的抓取任务、5个多步操作任务、3种指令措辞变化每种任务循环执行20次以上记录成功率、失败模式分布、平均完成时间记录模型在高频控制回路中的推理延迟、间歇性卡顿次数再加一组泛化测试改变光照或加入背景遮挡看成功率如何退化这套方案本质上就是在复现综述里提到的“任务成功率鲁棒性实时性”三元评估结构。也是我在真实项目里筛模型的一套组合拳。5. 真实世界应用综述提炼的七个落地难题综述最扎实的部分我认为不是前面那些架构分析而是它对VLA模型走向真实世界应用所面临挑战的系统性总结。这一部分干货密度很高。下面是我认为最关键的几个问题按对落地影响排序。5.1 推理速度与高频控制周期的矛盾这是VLA落地最硬的一道坎。机器人底层控制器通常运行在几十到几百赫兹的控制频率下但VLA模型因为序列长、参数量大单次推理往往要几百毫秒甚至数秒。你让模型直接生成高频控制指令那不现实。现有的应对方案基本是分层处理VLA模型以较低频率生成宏观动作意图比如下一个目标位姿或动作片段底层的传统控制器负责在两次推理之间执行平滑插值和轨迹跟踪。综述里管这叫“action chunking”——模型一次预测一小段时间窗口内的动作序列而不是单个控制信号。这个思路我用过实测效果不错它把高层的语义智能和底层的运动控制解耦了。但即便用上action chunking模型推理延迟依然是把模型部署到真机时必须优先优化的指标。常见的优化手段包括模型量化、小视觉编码器、减少序列长度、token剪枝等。综述提醒得对一个精度再高的模型如果推理跑不动在实际场景里就是废的。5.2 数据稀缺导致的长尾问题真实世界里总有模型没见过的物体、没碰到过的场景。互联网预训练给了VLA模型丰富的常识但常识不直接等价于操作能力。模型知道杯子是用来装水的不等于知道怎么在模糊光照下抓稳一只半满的玻璃杯。综述里有个判断非常准确“VLA模型是在数据分布上做插值而不是外推。”这意味着模型表现最好的永远是训练数据分布中心的情况越往长尾走性能下降得越厉害。解决思路不是一味加数据——边际收益递减——而是要设计更聪明的数据采集策略聚焦那些失败率高的场景、变体、边缘情况把这些数据补进去比盲目扩大数据量更有效。5.3 安全性和可干预性机器人执行错误动作造成人身伤害或财产损失这个风险在真实应用中是不可接受的。VLA模型本质上是黑盒它为什么决定做某个动作内部推理链条很难追踪。综述指出当前的主要防线不是让模型“更透明”而是增加外部安全层——硬性的动作限制器、速度限制器、力限制器再加上人类操作员的紧急干预机制。我自己在实际测试中的做法是给VLA模型的输出加了一个规则校验层模型生成的每个动作目标都先经过碰撞检测和关节限位检查通过后才会发送给底层控制器。这个额外的安全层大概只增加了几个毫秒的延迟但避免了多次潜在碰撞事故。对VLA这类生成式模型外部安全机制不是可选项是必需品。6. 常见认知误区与实操避坑建议读这篇综述和我自己动手试过的经验放在一起有几个误区特别值得单独拎出来说。有些坑文献里不会写但做项目的人一定会踩。6.1 误区一VLA模型可以完全替代传统控制栈这个误区在刚接触VLA的人里非常普遍。模型能端到端输出动作那我是不是可以把传统控制器全部扔掉我的经验是短期内在大多数任务里做不到也不该做。底层的高频稳定控制、安全限制、精确插补传统方法仍然有很大优势。VLA更合适的定位是作为“大脑”——负责理解任务、生成宏观动作意图然后交给一个可靠的运动执行层去完成。综述里提到的分层结构其实也是在反复印证这一点。真把VLA模型直接接到电机驱动器上你的机械臂会在碰撞边缘走钢丝。6.2 误区二训练数据越多模型一定越强这句话只对了一半。数据量上去了模型能力确实能提升但前提是数据质量和覆盖面也要跟上。一堆重复度高、场景单一、动作模式雷同的数据对模型泛化能力的提升非常有限。有一个数据混合的点特别容易出错当规模差距悬殊的互联网图文数据和机器人操作数据一起训练时如果不做采样比例控制模型会被互联网数据“淹没”机器人操作能力学不好。综述里提到的做法是给两类数据设定不同的采样权重甚至动态调整——操作数据权重在前几个epoch拉高之后再逐步降低。这个细节直接决定模型到底是“有常识的机器人”还是“只会背书的呆子”。6.3 误区三万事俱备才上真实机器这是我在很多团队里看到的心态问题。仿真里刷到满意的精度就想着再刷高一点然后才上真机。但仿真指标和真实表现的相关性有限在仿真里过度调参有时候反而会让模型对仿真环境的分布过拟合到了真机表现更差。我的建议是尽早让模型接触真机哪怕以较低的成功率、较高的犯错误率开始尽早暴露问题比让问题藏在仿真里好得多。这个思路和综述里强调的“现实应用评估”是一脉相承的——VLA的很多问题只有在真实环境中才会被真正看到。7. Beyond the Review从模型到产品还有多远综述最后的部分其实在讨论一个更大的问题VLA模型从今天的技术Demo到真正稳定的商业产品中间还差哪些东西。这个问题我的看法是比模型本身难度更大的是系统工程。模型能力是地基但上面还要搭建数据管道、部署框架、安全机制、远程升级方案、操作员培训体系。任何一环有短板产品整体就不可用。综述里提到VLA模型可以从单步操作扩展到多步长任务配合大语言模型的子任务分解这个方向很值得关注。比如给机器人一个“收拾餐桌”的高层指令模型可以把任务拆成“擦桌子”“收餐具”“清理垃圾”等子步骤再逐步执行。这种从自然语言到高层任务规划再到底层动作执行的完整链路才是VLA最终的产品形态。我个人体会最深的是VLA模型的最佳使用节奏是“分段微调持续迭代”——初始用通用模型打底再在目标场景的具体任务上做定向微调然后在真实运行中持续采集反馈数据定期重新训练更新。这个过程和软件产品的迭代节奏非常像只是每一个周期更长、成本更高。做VLA这一年多踩过的坑不少但也明显感觉到这条路正在从实验室走向工厂车间、仓库和家庭。也许再过几年我们手里的机械臂就不再需要人为编写一大串状态机和if-else逻辑只需要一句“帮我把这堆零件按顺序放到料盘里”剩下的交给模型。到那一天今天这篇综述里讨论的很多问题就都变成了行业的基础常识。