想象你走进一家热闹的餐厅后厨。新来的机器人帮厨不会炒菜,只会像打卡机一样执行预先写好的步骤。有一天,老板把一本巨大的《米其林菜谱》(互联网图文)和几段老师傅示范视频(机器人数据)交给它。它读完菜谱后,居然能听懂“把盐罐递给颠勺师傅”,并自己安排手臂动作:向左平移、张开夹爪、放下。这就是 RT-2 的魔法。它没有学会所有动作,而是学会了“把世界描述转成动作编号”的通用语言。RT-X 则像后厨行业协会,把上百家餐厅的后厨录像汇成一本《万能操作手册》,让新来的机器人帮厨能适应不同的灶台和锅铲。这篇文章,我们就用这套“后厨”比喻,拆解 VLA 模型 RT-2/RT-X 的来龙去脉。
学透 RT-2/RT-X,你就能看懂具身智能模型如何把“视觉理解”和“动作执行”放进同一个大模型,也会用“数据-模型-落地”框架判断一个机器人项目是否值得用 VLA 做。
目录
可视化演示
展示RT-2视觉-语言-动作模型架构、7维连续动作到离散Token的量化过程、以及RT-X多机器人平台数据聚合训练通用策略。切换模式查看不同维度,拖动滑块调节量化精度。
本节配有交互动效(进入视口后自动加载,约 3KB)。
RT-2视觉-语言-动作模型架构 多模态输入:图像+语言指令经视觉编码器与文本Tokenizer统一进入LLM 动作输出:LLM自回归生成动作Token,解码为7维连续控制信号 action = decode(LLM(vision, language)) VLA模型将机器人控制统一为语言模型生成任务
模型背景:从 RT-1 到 RT-2
餐厅里最早的老帮厨只认死命令:看到“01”就去拿盐罐,看到“02”就去端盘子。一旦菜单换成“把盐递给大厨”,它就懵了。这就是 RT-1 时代的尴尬:训练时见过的指令极其有限,换个说法、换个场景就失灵。
RT-2 换了个思路:与其为每个任务写死编号,不如让机器人读“菜谱”自悟。它把自然语言指令、摄像头画面、机器人动作全部放进同一个大语言模型里,让模型学着“看完图片和文字,输出下一步动作”。这类把视觉、语言、动作统一训练的模型,就是 VLA(Vision-Language-Action)模型。
具体来说,RT-2 以 PaLI-X-55B 等预训练视觉语言模型为骨干,再用机器人操作数据做联合微调。它不再把机械臂控制当作传统控制问题,而是当作“下一个 token 预测”问题:模型看完当前画面和指令,输出一串动作 token。这个改动看似简单,却让动作输出的空间被语言模型已有的语义知识“撑大”了。
用回比喻:老板不用再给老帮厨重写操作卡,只需要给他看海量菜谱和几段示范。新一代帮厨虽然还会手忙脚乱,但至少听得懂人话、认得清食材,这正是 RT-2 带来的质变。
架构设计:视觉-语言-动作一体
大厨接单后要同时看三样东西:顾客写的订单、锅里的食材照片、以及自己下一勺该往哪放。RT-2 也一样,输入是“摄像头图像 + 文字指令”,输出是“一串动作 token”。
为了让大语言模型能处理图像,RT-2 先把图像切成块并编码成视觉 token,文字指令编码成文本 token,动作则离散成动作 token。三类 token 拼成一个长序列,交给 Transformer 主干统一处理。
这种“输入输出都是 token”的设计,使得 RT-2 能直接复用互联网上训练好的知识。它不需要一个专门的动作输出头,而是在原有语言模型词汇表上追加动作 token,让模型把“拿、放、推、转”当作词来生成。
回到后厨:帮厨不用换一套全新工具,只是把“炒菜步骤”也写进了它熟悉的菜谱语言里。视觉、语言、动作共用一本“通用语言账本”,这是 VLA 架构的灵魂。
- 图像块编码把摄像头画面切成 $N$ 个小块,每块变成一个向量 $\mathbf{v}_i$,相当于大厨先看一遍食材照片。
- 语言指令编码把订单文本拆成 $M$ 个词,每个词映射成向量 $w_j$,相当于大厨读订单。
- 动作序列编码把机器人要执行的 $T$ 步动作也写成 token $a_t$,并入同一个序列,相当于把“下一勺”变成菜牌编号。
- Transformer 统一建模$X$ 被送进 Transformer,模型在每一步预测下一个 token,最终生成动作序列。
动作标记化:把动作写成 token
告诉大厨“火大一点”,他需要知道具体到灶台旋钮的刻度,而不是抽象的词。RT-2 也是这样:机械臂真正执行的是连续的角度、速度、开合度,但大模型更擅长输出离散的单词。于是它把连续动作“切成编号”。
论文里对动作 token 的处理类似“量化”:把某维动作(比如夹爪开合、机械臂平移)的取值范围分成 $K$ 个格子,任何连续值都落到离它最近的格子里。这样动作空间从无限连续变成有限离散,动作 token 就进入了语言模型的词汇表。
执行时,模型输出 token 后再反离散化成连续命令,交给底层轨迹规划或 PID 控制器,完成真实运动。因为 token 格子数量有限,模型学到的其实是“动作词汇表”,每个 token 代表“往左再一点”“夹爪松开 30%”这类离散语义。
后厨里的大厨从不说“把火开到 273.15 度”,而是说“四档火”。动作 token 就是机器人的“四档火”,让语言模型能像说话一样生成动作。
- 平移分子$a_{\text{cont}} - a_{\min}$ 把动作最小值对齐到 0,相当于把灶台旋钮从 0 刻度开始量。
- 归一化分母除以 $a_{\max} - a_{\min}$,把动作范围压到 $[0, 1]$,相当于“旋钮转到的百分比”。
- 放大到格子乘上 $(K-1)$,把百分比映射到 0 到 $K-1$ 的刻度区间。
- 四舍五入取整加 0.5 后向下取整,就把连续值落到最近的格子编号上,得到动作 token。
联合微调:网页知识与机器人数据
光会读菜谱的大厨不一定颠得动锅。RT-2 既要保留互联网图文带来的“常识”,又要学会真实机械臂的操作习惯。它采用“联合微调”:同一轮训练里,既喂模型网页文本,也喂机器人演示数据。
联合微调比“先读菜谱、后学做菜”更稳。如果先练满互联网数据再单独练机器人数据,模型容易忘记前面学到的知识,这就是灾难性遗忘。把两类数据混在一起,模型每次更新都在兼顾“世界知识”和“操作技巧”。
RT-2 用大量互联网视觉-语言数据做预训练,再用机器人操作数据做联合微调。这样模型背过的“菜谱知识”会在生成动作 token 时被唤醒,比如看到“半熟的鸡蛋”知道接下来可能需要翻面,而不是死记硬背某个固定轨迹。
大厨学徒期每天上午读菜谱、下午练颠勺,而不是先背三年书再碰三年锅。联合微调让两种训练同时发生,才培养出“既有常识又会上手”的机器人帮厨。
- 网页损失$\mathcal{L}_{\text{web}}(\theta)$ 衡量模型在互联网图文上的预测错误,相当于菜谱阅读考试失分。
- 机器人损失$\mathcal{L}_{\text{robot}}(\theta)$ 衡量模型在真实机器人示范数据上的动作预测错误,相当于颠勺实操考试失分。
- 权重系数$\lambda$ 调节两类损失的比重;太大会让模型只会照搬演示,太小则学不会真实动作。
泛化能力:跨任务与涌现
顾客说“把红色方块放进绿色碗里”,大厨虽然只练过“拿方块”和“放碗里”,他却能组合这两个动作。RT-2 的泛化能力就来自语言模型把任务拆解、组合的能力。
RT-2 在真实机器人数据集上微调后,面对训练时没见过的指令组合,成功率明显高于 RT-1。它不再只是匹配“图像-动作”模板,而是先做语义理解:认识物体、理解空间关系、推断意图,再转成动作 token。
这种能力被称为“知识迁移”和“涌现”:模型在互联网上见过的物体、场景和动作描述,与机器人的操作目标发生交叉激活。比如它看过“杯子”的图片和“倒水”的文字,就可能把“倒掉杯子里的水”这类新指令拆成可执行步骤。
老板最惊喜的正是这一点:不需要为每个新菜品单独做培训,帮厨会自己“举一反三”。当然,这种泛化不是无限的,它建立在训练数据覆盖的组合成分之上,这也正是下一节 RT-X 强调数据规模化的原因。
RT-X 聚合:跨本体共享
各家餐厅的灶台、锅铲、抽油烟机都不一样,A 店的帮厨经验未必能直接去 B 店。RT-X 项目想做的事,就是把这些“不同后厨”的经验汇成一本通用手册。
RT-X 基于 Open X-Embodiment 数据集,聚合了来自多家机构、多种机械臂、不同摄像头视角的百万级机器人操作数据。它为不同机器人定义了统一的数据格式和动作归一化方式,最后训练出可跨本体执行的操控策略。
跨本体策略共享的关键不是“一份数据喂给所有机器人”,而是数据多样性让模型学到机械臂、夹爪、视角变化下的不变特征。比如 A 店用七轴臂、B 店用单臂加吸盘,模型仍能学到“靠近物体、抓取、移动”的通用模式。
后厨协会的成功之处,不是让每家餐厅改用同一口锅,而是让帮厨在混乱的厨房里也能找到共性。RT-X 让数据规模化成为可能,是 VLA 从实验室走向通用机器人的加油站。
- 机器人本体编号$e=1,\dots,E$ 表示参与共享的 $E$ 种或 $E$ 台机器人,相当于各家后厨的编号。
- 单个数据集$\mathcal{D}_e$ 是第 $e$ 种机器人的操作示教数据,记录“当前画面、指令、动作”。
- 取并集$\bigcup$ 把数据合并,模型在混合数据上训练,学会不同机器人形态下的共同操作规律。
落地考量:技术可行性、成本与场景适配
老板看完演示很心动,但真要换帮厨,得算一笔账:新设备能不能适配我的后厨?训练和部署要花多少钱?它做的菜是否值得投入?RT-2/RT-X 落地同样要审慎。
技术可行性上,当前 VLA 模型推理仍需较高算力,输出频率往往不足以直接充当底层伺服控制器,通常只输出高层动作目标,再由传统控制器平滑执行。部署成本包括数据采集、模型训练、GPU 推理、安全冗余等。场景适配则要看任务是否属于“视觉-语言-操作”能覆盖的范畴。
常见风险还包括:真实动作分布超出训练数据太多时性能骤降;长尾场景需要持续采数据;以及大模型推理延迟带来的安全风险。因此落地时建议先选“高频、标准、容错高”的场景,比如物流分拣、上料取放,再逐步扩展。
聪明的老板不会因为大厨是米其林大厨就立刻高薪雇佣,而是先看自家菜单是否需要他。RT-2/RT-X 的价值在于通用性,但通用性也需要数据、算力和场景匹配来兑现。
- 年节省成本机器人替代重复人工、减少误操作带来的年收益,相当于省下的帮厨工资和打碎盘子赔偿。
- 年部署维护成本算上硬件、GPU 算力、数据标注、算法团队和现场运维,等于改造后厨的总账单。
- 比值判断ROI 大于 0 才说明项目值得推进;小于 0 则说明技术能力与业务需求错配。
AI 应用场景
仓储物流混合分拣
阶段:模型微调与推理部署
解决的问题:传统分拣需要针对每个 SKU 写视觉抓取模板,换新品要重新标定;RT-2 用自然语言指令“把蓝色易碎品放到缓冲箱”,结合视觉和动作 token 直接输出抓取动作,实现新商品零编程适应。
具体案例:某电商仓有上千种小商品,使用 RT-2 的简化版本在高频货架前做视觉拣选,模型从演示数据和商品图文描述联合微调,分拣员可用语言随时下发新任务。
多形态机械臂数据托管与共享
阶段:数据治理与跨本体训练
解决的问题:不同品牌机械臂的数据格式、坐标定义不同,导致单一场景数据无法复用;RT-X 提供统一的动作归一化和数据格式,让移动底盘、单臂、双臂、吸盘等不同本体共享经验。
具体案例:某智能制造联盟把车间里 20 台不同机械臂的操作片段统一格式,训练一个共享策略,新产线机械臂第一天即可完成“上料、翻转、装配”的基本操作。
Python 演示
import math class ActionTokenizer: def __init__(self, min_val=-1.0, max_val=1.0, num_bins=8): self.min = min_val self.max = max_val self.bins = num_bins def encode(self, value): norm = (value - self.min) / (self.max - self.min) norm = max(0.0, min(1.0, norm)) token = int(math.floor(norm * (self.bins - 1) + 0.5)) return token def decode(self, token): ratio = token / (self.bins - 1) value = self.min + ratio * (self.max - self.min) return value class ToyRT2: def __init__(self, lam=0.1): self.lam = lam self.tokenizer = ActionTokenizer(num_bins=8) self.total_loss = 0.0 def web_loss_placeholder(self, score=1.5): return score def robot_loss_placeholder(self, score=0.4): return score def cofinetune_loss(self, web_score=1.5, robot_score=0.4): self.total_loss = web_score + self.lam * robot_score return self.total_loss def ask(self, instruction, joint_value): token = self.tokenizer.encode(joint_value) action_value = self.tokenizer.decode(token) return instruction, token, action_value if __name__ == "__main__": policy = ToyRT2() for a in [0.12, -0.45, 0.83, -0.02, 0.99]: inst, token, action = policy.ask("move to target", a) print("joint=%+.2f -> token=%d -> value=%+.2f" % (a, token, action)) loss = policy.cofinetune_loss(1.5, 0.4) print("co-finetune loss: %.3f" % loss)
norm = (value - self.min) / (self.max - self.min)把连续动作值归一化到 0 到 1 之间。token = int(math.floor(norm * (self.bins - 1) + 0.5))四舍五入得到离散动作 token。value = self.min + ratio * (self.max - self.min)反离散化,把 token 恢复到真实动作刻度。self.total_loss = web_score + self.lam * robot_score联合微调损失,网页损失加权重后的机器人损失。print("joint=%+.2f -> token=%d -> value=%+.2f" % (a, token, action))打印量化前后的变化,方便观察离散化误差。
常见误区
误区我以为 RT-2 就是让机械臂的每个电机直接输出连续力矩,大模型越强,控制越丝滑。
正解RT-2 输出的不是连续力矩,而是离散的动作 token;token 需要反离散化后再交给底层控制器。大模型负责“决策下一步”,不负责“电流环”。就像大厨只决定“放半勺盐”,真正把盐撒均匀的是手。
为何常见:因为“大模型”听起来像是万能的,容易忽略机器人控制链路中模型决策与底层执行的分工。
误区动作 token 和单词 token 含义相同,所以机器人真的“理解”了自然语言。
正解动作 token 只是放进语言模型词汇表的离散编号,模型自回归预测它时并不具备人类语义;它依赖联合训练中的视觉-语言表征来完成关联。token 像“菜牌编号”,服务员知道“5号菜”对应什么,但不等于懂美食。
为何常见:因为 VLA 把动作写成 token,会让人误以为模型在“说话”。
误区RT-X 只要把全世界机器人数据堆在一起训练,任何机器人立刻全能。
正解数据要先统一格式、归一化动作、筛选质量,而且不同本体差异很大时策略未必直接迁移。RT-X 的意义是让“共享经验”成为可能,不是自动万能。
为何常见:“数据规模越大越好”的直觉,忽略了跨本体的格式与语义鸿沟。
误区落地 RT-2 只要调用大模型 API,机器人和现有产线不用大改。
正解真实部署要考虑推理延迟、算力成本、安全机制和数据闭环。VLA 通常只生成低频高层动作,还需要传统控制器兜底。像请米其林大厨还要改造厨房,不是换个人就行。
为何常见:大模型 API 的成功经验,让人低估了具身系统软硬耦合的复杂度。
面试题
Q1. RT-2 最核心的架构创新是什么?
- A.增加机械臂关节数
- B.将动作做成语言token← 正确答案
- C.用强化学习做预训练
- D.去掉视觉输入通道
答案:B。RT-2 的突破在于把动作离散成 token 并纳入语言模型输出空间,从而复用语言模型的语义知识。选项 A、C、D 都不是 RT-2 的核心贡献。
Q2. RT-2 输出的动作 token 属于哪种形式?
- A.连续力矩指令
- B.离散整数编号← 正确答案
- C.图像像素坐标
- D.自然语言句子
答案:B。RT-2 将连续动作量化成有限格子的整数编号,类似“菜牌编号”,再和其他 token 一起交给 Transformer 生成。
Q3. 动作标记化时,连续动作值为何要除以动作范围?
- A.增大动作噪声
- B.将数据归一化到0-1← 正确答案
- C.让模型更快过拟合
- D.降低机械臂速度
答案:B。除以 $(a_{\max} - a_{\min})$ 是为了把动作值压到 0 到 1 之间,方便后续映射到离散格子,和过拟合、速度无关。
Q4. 联合微调公式中的 lambda 主要控制什么?
- A.学习率衰减速度
- B.机器人数据损失的权重← 正确答案
- C.图像分辨率大小
- D.机械臂运动速度
答案:B。总损失是网页损失加 lambda 倍的机器人损失。lambda 越大,模型越重视真实操作数据,类似学徒越重视颠勺实操。
Q5. RT-X 数据集的核心价值是什么?
- A.只用同一家机器人数据
- B.聚合跨本体操作数据← 正确答案
- C.消除所有视觉输入
- D.替代底层PID控制
答案:B。RT-X 的核心是融合多种机器人形态的操作数据,让策略学到跨本体通用的规律,而不是只服务单一机械臂。
Q6. 为什么 RT-2 通常不直接输出电机电流环的连续控制信号?
- A.电流环不需要反馈
- B.语言模型更擅长离散token生成← 正确答案
- C.电流环是视觉问题
- D.机械臂没有电机
答案:B。大语言模型天然以离散 token 为输出空间,直接回归连续电流既不符合建模优势,也容易引入不稳定。实际中由底层控制器完成高频执行。
Q7. 以下哪种场景最不适合优先引入 VLA?
- A.高频且动作标准的产线分拣← 正确答案
- B.需要语义理解的新任务
- C.低频容错率高的取放料
- D.长尾多变但数据稀少的装配
答案:A。高频且规范化强的产线分拣用传统视觉和控制方案更稳定便宜;VLA 的推理延迟和算力成本反而成为短板。D 虽然数据少,但 VLA 的语义泛化可能提供帮助。
Q8. RT-2 提升泛化能力的原因包括哪些?
- A.基于预训练语言模型← 正确答案
- B.动作与文本共享token词汇← 正确答案
- C.使用海量互联网图文知识← 正确答案
- D.完全放弃真实机器人数据
答案:ABC。RT-2 借助预训练语言模型、共享 token 词汇和海量图文知识实现跨任务迁移,但绝不是放弃真实机器人数据;没有操作数据,模型学不会实际执行。
Q9. 部署 VLA 项目时要考虑哪些要素?
- A.推理延迟与算力成本← 正确答案
- B.数据采集和持续更新闭环← 正确答案
- C.底层控制器的安全兜底← 正确答案
- D.只依赖宣传效果
答案:ABC。VLA 落地要同时看技术指标、数据运维、算力开销和控制安全。只看宣传效果会让技术能力与业务需求错配,是常见的失败原因。
Q10. 关于 RT-X 跨本体数据,下列说法正确的是?
- A.不同机器人的动作需归一化← 正确答案
- B.数据融合能提升通用性← 正确答案
- C.数据集必须来自同一厂家
- D.模型可学到形态无关特征← 正确答案
答案:ABD。RT-X 需要统一动作格式和归一化,让不同机器人的数据可以混合训练,从而学到与具体机械臂无关的通用特征。它恰恰欢迎不同厂家的数据参与。