资讯动态

RT-2:视觉语言动作模型如何让机器人学会举一反三

发布时间:2026/10/17 11:16:11 来源:尧图企业网站定制
说实话我第一次看到RT-2这篇论文标题时第一反应是又一个把大模型往机器人上硬套的工作。但等我把它从头到尾读了两遍又对照RT-1的实验设置仔细捋了一遍之后才意识到这件事比表面看起来要有意思得多。做机器人操作的人应该都有这种体会模型在固定场景里跑得再好换一张背景、换一个没见过的物体颜色成功率立刻跳水。RT-2这篇论文全名是Vision-Language-Action Models Transfer Web Knowledge to Robotic Control它的核心野心就是解决这个换个环境就失灵的泛化难题——而且它走了一条跟我们习惯的路线完全不同的路既然机器人的演示数据那么少不如把互联网上图文的常识直接搬过来用。这篇东西我会从模型思路、架构设计、数据配方、训练部署、实验结果、常见坑这么几个角度来拆尽量用我能找到的最朴实的语言讲清楚也会分享一些我实际调研和复现过程中觉得值得注意的细节。适合正在做机器人学习、多模态模型落地或者单纯对大模型到底能不能控制机械臂感兴趣的朋友。1. 先用一句话说清楚RT-2做了什么1.1 传统机器人控制为什么总在换场景上翻车传统机器人操作不管是用运动规划还是模仿学习方法本质上都在做同一件事从有限的机器人状态里学一个从状态到动作的映射。这条路的瓶颈很直接——你训练的分布基本决定了能泛化的范围。我见过不少模仿学习项目在训练时用红色杯子、固定光照、固定桌面纹理模型成功率能做到95%以上可一旦把杯子换成蓝色的、桌面换一块桌布、或者把相机角度稍微偏几度成功率能掉到一半以下。根本原因是模型缺少对世界语义的理解。它看到的是一堆像素它不知道红色杯子和蓝色杯子是同一类东西也不知道把杯子放到盘子旁边这句话跟图像里的区域应该怎么对应。这里的关键词是语义。传统控制方法里语义理解往往是后加的——先做目标检测、再绑一个语言指令模板、最后让规划器去执行。链条一旦拉长每个环节的误差都会累积而且对没见过的新表达方式几乎束手无策。1.2 把动作当成语言的token是整篇论文最核心的一步RT-2的做法说实话是挺暴力的它把一个视觉-语言模型VLM直接拿来当机器人控制器。模型输入的是相机画面和文本指令输出的不是一段描述文字而是一串动作token。这些动作token原本不属于自然语言是论文自己定义的一组特殊符号每个token对应机械臂某个维度的量化位置或夹爪的开合状态。这个设计的妙处在于既然大模型善于预测下一个词那如果我们把动作也表达成词那机器人的控制问题就变成大模型最擅长的next-token prediction问题了。模型不需要单独设计一个连续的回归头不需要为动作单独搭一个策略网络所有东西都在同一个transformer里用同一个交叉熵损失训练。这也是RT-2全名里Vision-Language-Action Models的由来视觉、语言、动作三者统一到了一个序列建模的框架里。1.3 和RT-1相比RT-2到底改了什么很多人一看到RT-2以为它就是把RT-1的模型换大一点。实际上差别不是量而是质。RT-1本身是一个专门为机器人动作设计的Transformer它只在机器人数据上训练模型没有见过互联网图片所以它学到的知识被严格限制在机器人演示数据集内部。RT-1能把见过的任务做得不错但面对没见过的物体、没听过的语言表达几乎没有还手之力。RT-2的底座换成了在大规模图文数据上预训练好的VLM比如PaLI-X和PaLM-E。这些模型早就看过无数张猫、狗、杯子、汽车、电视的图片知道可乐罐通常是红色圆筒状物体、香蕉是黄色的、弯的这类常识。RT-2在保留这些知识的同时把机器人的动作任务作为额外的微调目标重新训练一遍相当于让一个见多识广的人去学开机械臂而不是让一个从没出过家门的人从零学起。与其说RT-2是RT-1的升级版不如说它开启了一个新的模型家族VLAVision-Language-Action Model。2. 模型结构拆解VLM是怎么被改造成动作模型的2.1 底座模型PaLI-X与PaLM-E论文里用了两个不同的VLM作为底座来做实验一个是PaLI-X另一个是PaLM-E。两个模型都是数十亿到上百亿参数级别的多模态大模型但它们的架构路线略有不同。PaLI-X走的比较典型的多模态路线图像编码器负责把图片变成视觉token然后跟文本token拼在一起送入一个大语言模型。PaLM-E则更强调具身这个概念它直接把机器人状态、图像、文本全部当作token序列的一部分让大模型统一处理。RT-2的贡献在于它在这些VLM的基础上加了一个新东西动作token。动作token和普通文本token一样有自己独立的embedding和输出映射模型训练好之后当输入序列里出现指令和图像它就能在输出端生成对应的动作token序列。这里我多说一句选择VLM作底座不是随意的。如果直接用一个纯语言模型模型根本没有视觉感知能力你让它看图像它只能靠猜如果用一个没经过互联网预训练的视觉模型那它又缺乏语义常识。VLM正好两边都占——既懂图像、又懂文本、还背了一肚子世界知识这三点恰好都是机器人操作泛化所需要的。2.2 动作token是怎么塞进词表的这是整个设计里最值得琢磨的部分。机械臂的动作通常是连续值比如末端执行器的x坐标是0.312米y坐标是-0.145米夹爪开合度是1.0。大模型输出的是离散token怎么把连续动作映射过去论文的做法是做量化。它会把每个动作维度的取值范围划分成若干个离散bin模型预测的是bin的编号而不是精确的连续数值。比如某个维度的范围是0到1米如果划分成256个bin那每个bin大概代表约4毫米的位移。把所有动作维度分别量化之后每个维度对应一个或多个token模型逐维输出最后再反量化回连续值。这个过程和图像生成里的VQ-VAE有异曲同工之处——把连续信号离散化从而适配自回归模型的输出空间。代价是精度损失但是换来的是模型可以在预训练的语义空间里做推理。还有一点细节值得注意动作token虽然被加进了词表但模型仍然要能区分生成自然语言和生成动作这两种模式。论文的做法是让动作token带有一个特殊的前缀标记比如输入序列中会出现一个动作起始符告诉模型接下来要输出的是动作不是文本。这样模型在推理时就能在合适的时机切换输出空间。2.3 一次完整的输入输出长什么样我们举个例子让机器人执行把红色杯子放到蓝色盘子里这个任务。输入部分包括一张或几张来自机械臂相机的图像图像被切成patch后经过视觉编码器变成视觉token一段文本指令被分词器变成文本token比如把红色杯子放到蓝色盘子里可能还有一小段最近的历史动作序列帮助模型理解机器人当前的状态这些token拼接在一起形成一个很长的序列送入transformer。模型自回归地输出token前几个token可能是动作起始符然后是一个个动作维度的量化值。比如输入[图像token] [把] [红色] [杯子] [放] [到] [蓝色] [盘] [子] [里] [动作起始符] 输出[base_x42] [base_y37] [arm_x120] [arm_y64] [arm_z88] [gripper0] [结束符]这里每个动作token对应一个离散bin编号。得到这一串token之后控制程序会把它反量化成具体的动作向量再下发到底层控制器执行。这里我发现一件很有意思的事因为模型是用文本生成的思路在做动作输出它顺带获得了多步推理后再动手的能力。你可以在指令里告诉它先关掉电源再取零件模型理论上会把这两步都编码进动作序列里。3. 数据配方网络常识和物理动作怎么混在一起3.1 机器人演示数据从哪来RT-2使用的机器人数据主要是RT-1数据集里面有十多万条真实机械臂演示轨迹覆盖几百种桌面操作任务比如抓放物体、打开抽屉、把物体放进碗里、叠毛巾等等。这些轨迹由远程操作员采集每条轨迹都包含图像序列、文本指令和对应的机械臂动作。但说实话十几万条轨迹听起来不少如果放到互联网图文数据的规模面前连零头都算不上。一个在大规模图文上预训练过的模型看到的图文对数量往往是十亿级别的十几万条演示只是很小的一块补充数据。这就带出了一个核心矛盾机器人数据少且贵网络数据多但跟物理动作没有直接关系。RT-2的解决方法非常务实——两个都要混在一起训练。3.2 网络数据解决什么问题网络图文数据解决的是语义理解的问题。比如模型在预训练阶段看过无数张锤子的图片知道锤子通常有一个金属头和木柄可以在物体被卡住时用来敲击。当机器人任务变成把钉子钉进木板时如果训练数据里没有出现过锤子模型仍然可能通过语义关联推理出应该去拿那个像锤子的工具。这正是RT-2与其他机器人学习方法最大的不同它不要求演示数据覆盖所有物体只要求底座模型在预训练时已经理解这些物体机器人数据则负责教模型理解如何把这些常识转化为动作。论文里的一组实验非常直观让机器人执行把罐子推到标有百事可乐标志的位置这个任务在演示数据里完全不存在但RT-2成功完成了因为它知道百事可乐标志长什么样并且知道罐子应该被推到标志处。这种能力只能用知识从网络数据迁移到了动作控制来解释。3.3 混合训练的顺序和比例RT-2没有采用先预训练VLM、再单独在机器人数据上微调的两阶段方案而是把机器人数据和视觉问答、图文理解等任务数据放在一起联合训练。原因是它踩过灾难性遗忘的坑如果只在机器人数据上微调模型很快就会忘掉预训练阶段学到的语言和视觉知识导致它在真实世界的语义理解能力急剧下降。联合训练时每个batch里既有机器人任务样本也有视觉问答样本。模型在同一个优化过程中同时学习两种任务语言知识被不断复习机器人任务则负责教它动作输出。这个思路其实很像多任务学习它的核心就是不让你为了学新技能把老知识全部丢掉。对于混合比例论文没有给一个万能公式但基本原则是机器人数据占比不能太高否则语义知识会流失。具体比例往往需要根据机器人任务难度和底座模型的规模反复调整。4. 训练、推理与部署的实操要点4.1 训练流程可以分成两个阶段严格来说RT-2的训练可以拆成两个大阶段。第一阶段是VLM的基础训练。PaLI-X和PaLM-E在海量的图文数据上进行预训练学习图像与文本的对应关系。这个阶段成本极高普通团队基本没有能力复现通常是直接加载开源权重或调用已有API。第二阶段是联合微调。在这个阶段加载预训练好的VLM权重加入动作token把机器人数据和其他视觉语言任务数据混合在一起训练。值得注意的是动作token的embedding是随机初始化的模型一开始完全不知道这些token的含义需要通过机器人数据的梯度信号一步步学到。所以严格讲RT-2不是从零训练了一个动作模型而是把一个大VLM改造成了一个能输出动作的VLA。这也是它能以小博大、用相对较少的机器人数据获得泛化能力的原因。4.2 推理时如何从token还原成机械臂动作推理时稍微有点讲究。模型输出的是离散token编号代码要做的第一件事就是把每个token对应到该维度实际的物理值上。比如模型的输出层预测出base_x42那就要查表看第42号bin对应的实际位移是多少米再把这个值传给控制器。这里有两个细节比较容易踩坑。第一反量化后的动作通常是目标位置或者目标速度不是关节力矩。RT-2是在任务层面给动作目标底层还得靠一个传统PID或阻抗控制器去执行。换句话说RT-2是大脑底层控制器是小脑。第二如果模型一次输出多个动作维度解码时要注意对齐顺序。动作token的顺序必须和训练时完全一致否则输出的动作可能张冠李戴。我在调研时看到有人把维度顺序搞错结果机械臂动作完全混乱折腾了很久才发现是token对应关系写错了。还有一点RT-2的自回归推理速度相对较慢。大模型每生成一个token都要过一遍transformer生成一整个动作序列可能要几百毫秒甚至几秒。对需要高频反馈的精细操作来说这个速度是不够的。实操中常见做法是降低RT-2的推理频率比如每秒只推理1到3次底层控制器在两次推理之间做插值平滑。4.3 部署环节的速率问题和low-level控制器实际部署时RT-2很少直接高频控制机械臂更多是作为决策层给出阶段性目标再由一个高速底层控制器来执行。这个分层思路我在很多机器人项目里都用过它本质上是在模型智能和控制实时性之间做折中。你可以把RT-2想成一个每隔一段时间看一眼全局、给出下一步方向的指挥官而底层控制器是那个每秒执行几百次精确动作的执行官。指挥官不需要事无巨细地管到每一毫秒执行官的决策空间很小但响应速度要快。如果你打算在真机上复现类似的VLA方案我建议先把底层控制接口写好确认底层接受的是位置增量还是速度指令再让模型输出对齐到这个接口上。4.4 计算资源的大致需求RT-2论文里的模型规模是几十亿到上百亿参数训练用的算力一般是几十到几百块TPU或GPU。这个量级对个人开发者来说基本没法完整复现所以我建议有条件的团队先做缩小版RT-2的验证用一个中等规模的VLM底座比如7B到13B级别的开源模型只在部分动作token上做联合微调在仿真环境里跑通整个流程后再决定要不要上更大规模。另外现在开源社区已经有不少VLA相关的项目和权重直接拿来在模拟器或者小型真机上做二次开发比从头训练要划算得多。我这里特别想强调不要一开始就追求复现论文的完整效果先把数据管线、动作token编解码、推理链路这三件事跑通后面换模型底座只是换个backbone的问题。5. 实验结果那些能证明知识真的迁移了的瞬间5.1 未见过物体上的泛化RT-2的评估包含了很多训练时完全没见过的物体和任务。比如训练数据里有一堆移动罐子的样本但评估时会换成不同颜色、不同标签的罐子甚至换成香蕉、苹果这些完全没在机器人演示里出现过的物体。结果让人印象深刻的不是那些训练过的任务而是在没见过的任务组合上RT-2的表现明显比RT-1高出一大截。按论文报告的数据RT-2在涌现任务上的成功率相比RT-1有接近一倍的提升。RT-1面对没见过的物体组合时基本靠瞎猜而RT-2能靠着语义理解猜个八九不离十。这说明互联网知识确实被转移到了动作决策上。模型看到了一个可乐罐虽然它从没见过可乐罐应该被推到这个位置这样的机器人演示但它理解可乐罐是一种饮料容器、饮料和标志存在关联这些常识所以能推理出正确的动作方向。5.2 涌现能力不是玄学RT-2论文里最出圈的其实是那组emerging capabilities实验。比如给机器人一个把橙色物体放到蓝色物体旁边的指令但训练数据里根本不存在颜色匹配类任务。模型需要自己在图像里识别出哪个是橙色、哪个是蓝色然后生成对应的动作序列。这种能力在经典模仿学习里几乎不可能出现。传统方法需要你预先定义好颜色这个属性再单独训练一个颜色分类器。但RT-2不需要因为底座VLM在预训练阶段早就学会了颜色和物体之间的对应关系。另一个很典型的例子是多语言指令。模型能听懂英文、中文甚至混合语言的指令去执行同一类任务这在单语种机器人数据集上是学不出来的只能来自预训练阶段的语言知识。我读论文时最大的感受是所谓涌现能力说白了就是底座模型本来就会的东西只不过换了一个输出通道从说变成了做。5.3 和基线方法的对比怎么看看实验结果的时候有一点要特别小心RT-2在已见任务上的成功率不一定会比专门训练的RT-1高。这是正常的。RT-1只在机器人数据上训练任务模式高度专一在背题这件事上自然更擅长RT-2要同时兼顾多个任务和语义理解相当于一个全科生去跟单科生比单科成绩被反超并不奇怪。所以评估VLA模型时不能只看见过的任务一定要看没见过的任务组合和语义理解类任务。这才是这类模型存在的意义。如果把RT-1比作一个练熟了固定套路的人那RT-2就是一个读过很多书、能举一反三的人。前者在熟悉的流程里又快又准后者面对新情况时的处理能力明显更强。做机器人落地时你要根据场景需求去权衡这两者。6. 我觉得最值得注意的坑6.1 灾难性遗忘远比想象中常见很多人以为用VLM底座再微调一下机器人任务就完事了结果训练到后面发现模型在机器人任务上表现还行但在原本的视觉问答上彻底崩了。这就是灾难性遗忘。RT-2用联合训练缓解了这个问题但并没有完全消除。实操中如果只给机器人数据、不混其他任务模型多训几个epoch之后语言能力依然会退化。我见过一些开源复现项目在机器人任务上效果不错但一问到开放词汇指令就答非所问多半就是遗忘问题没处理好。解决思路是跟论文一样做混合batch并在训练过程中定期抽几个旧任务样本做验证。一旦发现旧能力下降明显就要降低机器人数据的采样比重。6.2 离散化带来的动作精度问题动作token化虽然让模型输出变得简单但也牺牲了精度。划分bin的粒度直接决定了动作分辨率。bin太多输出类别数太大分类任务变难bin太少动作精度不够机械臂很难做精细插入这类任务。如果做的是拧螺丝、插拔连接器这类高精度操作纯离散token的方式会非常吃力。一个可行的折中方案是两阶段输出先用RT-2类模型预测一个粗略目标再用一个连续回归的小模型或传统控制器做精细修正。这也是很多落地项目实际采用的做法。6.3 模拟器里一切正常真机上却翻车我见过不少项目在仿真环境里VLA模型跑得很顺一上真机就各种问题。原因主要有三个一是仿真图像分布和真实相机图像分布差异太大二是真机的执行延迟导致动作token解码后过期三是底层控制器的响应特性没有建模进训练数据。解决第一个问题最好在采集真机数据之前先做相机标定和图像预处理让输入分布尽量接近训练分布。解决第二个问题可以把模型推理时间考虑进控制循环里提前补偿延迟。解决第三个问题最简单的方法是让底层控制器在训练阶段就固定下来推理时不要随意换控制器参数。6.4 复现RT-2时最容易忽略的细节最后分享几个我在调研复现过程中最容易忽略的小细节。第一动作token的词表不能乱扩容。如果加进去的token数量太多模型在预训练阶段学到的输出分布会被大幅干扰初期训练会非常不稳定。第二图像的分辨率和输入方式必须和底座模型的要求一致。很多VLM有自己固定的图像预处理流程你如果直接resize到别的尺寸视觉token的信息量会发生不可预期的变化。第三历史动作序列的编码方式要统一。RT-2在部分设置里会利用动作历史来稳定输出历史序列的格式一旦和训练时不符模型会非常困惑。第四也是最重要的训练时如果发现loss不降先别急着调模型结构回头检查动作token和目标token对不对齐。这类问题通常不是模型学不会而是数据管线的编码错误。真要说我对RT-2最大的感受倒不是它的模型设计有多精巧而是它重新定义了机器人数据和互联网知识的关系。以前我们觉得让机器人学会一个新技能就必须采集这个技能对应的演示数据但RT-2证明了一件事——只要底座模型理解世界少量机器人数据只需要充当翻译官把理解翻译成动作。如果你现在准备入门VLA方向我建议先从复现动作token的编解码和联合训练这两块入手不要一上来就冲大模型。先把数据管线吃透再谈模型效果这个顺序能帮你省掉大量冤枉时间。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑