南理工团队推出NEO-VLA:原生视觉语言模型直出机械臂动作
MMLab@NTU提出原生具身模型NEO-VLA:从像素直出动作
机械臂要把网球稳稳搁到易拉罐上,得先认出物体,再判断球有没有对准罐口,还要拿捏松爪的时机。这些看着不复杂的动作,背后靠的是很细的视觉信息。那么,动作模型能不能把这些信息吃透?
围绕这个问题,南洋理工大学 S-Lab、商汤研究院与 Ropedia 的研究团队近日拿出了 NEO-VLA,把原生视觉语言模型带进机器人动作学习。图像先经轻量卷积层转换,再和语言指令一起送进主干网络;生成动作的模块直接从主干不同深度读取表征。整条视觉通路不依赖单独的预训练视觉编码器。
设计定下来后,团队依次追问了四件事:原生主干是不是更适合学动作?动作专家最倚重哪些层的信息?保住多模态理解能力,对动作训练意味着什么?模型在常规任务和场景变化下又表现如何?他们用一系列对照实验,加上仿真与真机测试,逐一作答。论文已在 arXiv 公开。
-
论文题目:From Pixels to Actions - Towards Native Vision-Language-Action Policies
-
Paper:https://huggingface.co/papers/2611.06918
-
WebPage:https://www.lmms-lab.com/posts/neo_vla/
-
Github:https://github.com/EvolvingLMMs-Lab/NEO/tree/main/VLAKit
-
Model:https://huggingface.co/weepiess2383/NEO-VLA
-
DataSet:https://huggingface.co/datasets/weepiess2383/NEO-VLA-Action-Pretrain
动作模型要拿到操作所需的视觉细节,路径怎么走?
眼下大多数视觉语言动作(VLA)模型走的是同一套路子:先用 CLIP、SIGLIP、DINOv2 这类预训练视觉编码器把图像特征抽出来,再交给语言主干和动作模块。动作决策的起点,往往就是编码器的输出。
可抓取、对齐、插入这些操作,靠的是物体边缘、局部几何、深度,还有夹爪和物体之间那些细微的状态变化。视觉信息一层层被抽象之后,跟精细操作相关的线索就有可能不好用了。
此前的研究已经发现,视觉模块对 VLA 的表现影响很大,对模型剪枝也比较敏感;动作微调还可能把预训练好的视觉表征弄坏。这些现象说明,视觉和动作之间的接口本身就该重新看看。
NEO-VLA 于是抛出一个问题:要是动作模块能直接拿到视觉计算过程中形成的不同层次表征,能不能把其中跟操作有关的信息用得更好?
让动作模块直接读取不同深度的视觉语言表征
按视觉处理方式和动作输出形式来分,相关设计可以归成三类。下图画出了它们的差别。
差别在于,编码器式 VLA 就算去读语言主干的不同层,用到的视觉信息也已经被独立编码器处理过一遍。NEO-VLA 则不一样,视觉和语言从主干第一层起就一起建模,动作模块因此能接触到视觉表征逐层形成的过程。「读哪一层」也就成了一个可以单独拿出来研究的设计问题。
NEO-VLA 是怎么从观测生成动作的
NEO-VLA 的底座是 NEO-2B。这个原生多模态主干有 40 层,参数量在 20 亿左右,视觉通路里既没有单独的视觉 Transformer,也没有自编码器或离散视觉码本。主干之外还接了一个动作专家,其网络宽度偏小,从随机初始化开始训练。
多视角图像、指令和机器人状态被组织成统一输入。
前一时刻和当前时刻的观测会一起送进模型,每个时刻最多有三个相机视角。单个视角的输入包括相机标识、相机内参与旋转信息,外加图像分块后得到的视觉词元。各视角、各时刻共用一个图像嵌入层;图像按原始宽高比保留,每个视角的视觉 Token 上限为 88 个。
视觉输入后面跟着一段结构化提示词,用来说明控制频率、机器人类型、夹爪配置、动作参考坐标系和任务指令。两只手臂与身体在前一时刻、当前时刻的状态,则由 6 个状态词元表示。机器人没有的部件,对应输入会被屏蔽,这样一套接口就能套用到单臂、双臂以及带移动底盘等不同配置上。
动作专家读取哪一层,由层映射配置决定。
动作专家的每层都对应主干中指定的某一层,并读取该层缓存的 KV 表示。论文对比了四种层映射方案:
-
first-28:读取第 0 至 27 层,主干也截断到前 28 层。
-
skip-28:主干 40 层全部保留,从中近似均匀地挑出 28 层。
-
end-28:主干 40 层不动,只读取第 12 至 39 层。
-
full-40:40 层全部读取,动作专家也用 40 层。
前三种方案的动作专家规模相同,都是 28 层。skip-28 和 end-28 保留的主干深度也一样,区别只在读取位置,因此是分析浅层信息作用时最直接的对照。first-28 把主干也缩短了,计算量随之改变;full-40 则属于动作专家容量更大的配置,单独拿出来讨论。
动作通过流匹配一次生成,连续 30 步。
动作专家走的是流匹配路线,单次预测就能给出含 30 个时间步的动作块,把双臂和身体的动作放在同一套表示里。推理时默认用 10 步欧拉法求解来生成动作。主干网络只算一遍,之后每步采样都复用同一份 KV 缓存。
动作训练分三个阶段推进。先从适配动作专家做起,再一步步放开整个模型,同时引入内部采集的机器人数据。
头一个阶段把预训练主干冻住,只练动作专家和条件编码模块,一共走了 113,400 步,全局批量大小为 8,192。
到第二阶段,全模型解冻,在同一份机器人数据集上接着训练 75,000 步。为了不丢掉视觉语言理解能力,每隔一个优化步骤就掺进一批多模态理解样本。
第三阶段拿第二阶段的模型当起点,用内部数据再做 75,000 步全参数训练,其余训练配置与第二阶段保持一致。
不同机器人之间靠统一的数据格式打通。
九类公开数据集汇到一起,共 223 万条轨迹。
预训练语料取自九类公开数据集:AgiBot-World、Bimanual YAM、RoboCOIN、Open X-Embodiment、Galaxea Open-World、RoboMIND、RH20T、DROID,外加仿真数据 InternData-A1。论文给出的完整语料合计 2,231,583 条轨迹、约 9.28 亿条数据记录,涉及 2,704 个场景、7,444 个相机视角,已统计时长接近 1 万小时,单臂、双臂等多种机器人配置都在其中。
表 1 预训练语料构成及训练采样占比
各本体的动作被映射到同一种格式。
各家机器人记录动作的格式并不统一。NEO-VLA 在联合训练时把这些动作转成同一种格式,再用有效性掩码标出每台机器人真正拥有的通道。
单只手臂占 26 个维度:7 个关节目标、3 维末端平移增量、3 维旋转向量增量、1 维夹爪状态,另有 12 个手部关节目标。身体部分则是 8 个维度,对应 3 维底盘运动、3 维躯干动作和 2 维头部动作。
末端平移增量以厘米计、旋转增量以弧度计,二者可在相机坐标系或机器人基座坐标系下表达;关节与手部目标取绝对值,身体动作走基座坐标系。
动作按本体各自归一化。碰到不存在的部件、缺失的时间步或无效通道,模型用掩码把它们挡在训练损失之外。
数据异常分层处理,有效信息尽量留住
公开机器人数据的采集方式、标注质量参差不齐。团队为此设了五类质量检查,按异常所处层级分别处置读数、通道、动作目标、轨迹和标定信息,这样即便局部出问题,整条仍有价值的轨迹也不会被丢掉。
冻结的原生主干已能支撑动作学习
原生主干给出的表征,是不是更利于动作学习?团队让 NEO-2B、Qwen3-VL-2B 和 Gemma-3-4B 配上设计相同的动作专家,在 Open X-Embodiment 上以相同设置预训练 75,000 步,随后比较三者在 LIBERO 上的表现。
表 2 列出的是不同主干在 LIBERO 上的受控对比结果。
只冻结主干、仅训练动作专家的情况下,NEO-VLA 的平均成功率达到 90.9%,Qwen3-VL 为 79.5%,Gemma-3 为 84.5%,NEO-VLA 明显领先。后两者全量微调之后的成绩分别是 90.8% 和 91.0%,NEO-VLA 冻结主干就已接近这一水平;LIBERO-Long 上,冻结主干的 NEO-VLA 拿到 85.4%,同样高于这两者全量微调后的结果。换句话说,NEO 预训练学到的表征迁移到动作任务上已经比较顺利。
表 3 对比的是让 Qwen3-VL 的动作专家直接读取视觉中间特征之后的表现。
这种领先是不是只靠读取视觉中间特征就能拿到?研究团队在 Qwen3-VL 上补做了一组对照:把动作专家里的 13 层直接接到视觉编码器的中间特征上,参数量不增加。冻结主干时,这么接反而让成功率从 79.5% 掉到 64.9%;全量微调之后,新旧两种接口的结果非常接近,分别为 90.9% 和 90.8%。
可见,单让动作模块碰到中间特征,并不足以复制同样的提升。结果指向一点:原生视觉语言预训练形成的表征对动作学习更友好,表征怎么学、怎么读,得放在一起看。
当然,不同主干的预训练数据和模型容量本来就有差别,全部收益不能都算在“去掉视觉编码器”这一结构改动头上。不过在这组对照里,原生主干不管是冻结还是全量微调,动作迁移能力都表现得不错。
动作预测对浅层信息尤其敏感
动作专家到底在用哪些层的信息?团队先对比了各种选层策略,也看了冻结 backbone 带来的影响,结论是浅层连接很关键。
要进一步锁定哪些信息在影响动作,研究者就在动作专家的各个读取位置上分别做了干预。
第一步,把某个读取位置的 KV 表示换成另一条观测的表示。替换落在第 0 至 10 层时,动作平移的预测误差涨得最厉害。作为对照,研究者加入了幅度匹配的噪声扰动,误差和没干预时相差不到 0.004 厘米。可见模型对这些层的敏感,主要跟表征内容有关。
这些结果说明,动作相关信息并非集中在主干某一处,而是分布在不同的深度上。冻结主干时,浅层表征的作用尤其突出;一旦全量微调,把多个深度的信息结合起来效果会更好。语言、外观和几何信息对动作预测的影响,同样表现出各自的深度分布特征。
动作后训练阶段,理解数据仍不能丢
模型学会动作之后,原本的多模态理解能力会怎样变化?团队为此对比了两种后训练方案:一种只用动作数据,另一种把动作数据与通用多模态理解语料放在一起联合训练,参照对象则是后训练开始前的模型。
表 4 给出理解与动作联合训练同仅用动作数据训练的比较。后者无法生成有效文本,五项理解基准的结果以「—」标示。
联合训练之后,模型在 MMBench-EN、RealWorldQA、AI2D、TextVQA 和 ChartQA 五项理解基准上总体保持稳定。四项的降幅都不超过 1.5 个百分点,RealWorldQA 反而涨了 1.6 个百分点;与此同时,RoboTwin 2.0 Clean2Rand 的动作成功率达到 69.4%。
反过来看,只用动作数据做后训练的模型已经写不出有效文本,论文里五项理解基准的结果一律标为「—」;其 Clean2Rand 动作成功率也掉到 10.7%。
这组结果说明,多模态理解与稳健的动作能力之间关系紧密。动作后训练中继续掺入理解数据,主干原有的理解能力得以保住,策略对随机化场景的适应也能得到帮助。
从标准基准到场景变化,再到真机操作
此前的受控实验用来剖析模型设计,接下来要看完整模型在各任务中的表现。各工作的模拟器版本、相机配置、训练数据和评测协议并不完全一致,所以跨论文的成绩只能作参考,不能当成同等条件下的严格对照。
LIBERO
完整模型在 LIBERO 评测中平均成功率达到 97.4%。眼下不少方法在这个基准上的成绩已经相当接近,因此这一结果主要说明 NEO-VLA 的分布内操作能力仍然较强。该结果与前文主干对照实验所用的训练和评测设置并不相同。
表 5 列出了完整模型在 LIBERO 基准上的成绩。
为考察模型在七类扰动下的鲁棒性,研究团队用 LIBERO-Plus 做了检验。表 6 给出的是这七类扰动条件下的具体成绩。
从结果看,观测方式与图像条件发生变化时,NEO-VLA 的适应能力更强。这一点和前文对浅层视觉表征的分析能够对上。相比之下,本体配置或空间配置一旦改变,问题就棘手得多。
LIBERO-Pro 则把空间泛化与任务泛化的难点摆了出来。在这项基准上,指令语义发生变化时 NEO-VLA 拿到 98.0;物体外观变化时为 84.3。可一旦物体位置或任务目标被改动,它的表现就明显下滑——其他方法在这两类测试里同样普遍吃力。这个落差说明,感知和语义层面的鲁棒性做得不错,并不等于就能灵活适应空间与任务的变化。
表 7 汇总的是 LIBERO-Pro 上外观、位置、语义与任务四类泛化测试的成绩。
RoboTwin 2.0 用来检验随机化环境中的表现。在官方 2,500 条示范轨迹的设置下,NEO-VLA 的 Clean 测试成绩为 75.78;换到随机化场景的 Clean2Rand 测试,仍达到 69.40,下降了 6.38 个百分点。
表 8 展示的是 RoboTwin 2.0 在干净场景和随机化场景下的成绩。
真机微调阶段,每个任务各用 50 条示范完成。
真机一共设了三个任务,分别对应精确放置、多步操作和物体姿态调整。第一个是把网球放到易拉罐上;第二个先往碗里放胶带卷,再把网球放进胶带卷里;第三个要把横放的易拉罐立起来,再插进胶带卷。每个任务都拿 50 条示范做微调,之后测 20 次,分布内和分布外的初始配置各占 10 次。
真机数据相同、后训练配置各按推荐设置的情况下,NEO-VLA 三个任务分别成功 12 次、17 次和 13 次。StarVLA 对应成功 1 次、2 次和 0 次,π0.5 则是 10 次、14 次和 13 次。三个任务里,NEO-VLA 的成功次数都没有低于 π0.5。
表 9 列出三个真机任务的成功次数,每项测试 20 次。
三项定量任务之外,团队还演示了倒水,以及从混合寿司里把四个军舰寿司逐个挑出来摆进盘子。这两段补充演示用来看模型能完成哪些类型的操作,没有算进前三项任务的成功率统计。
在 Pika 真机系统上,团队还测了推理延迟:策略跑在一张 24 GB 显存的 RTX 3090 上,精度用 BF16,每次请求回一个含 30 步的动作块。执行时直接跑预测动作,没有启用 RTC。单张 RTX 3090 返回一个动作块大约 0.26 秒。
表 10 给出的是模型前向与真机请求链路的延迟,单位毫秒。
让感知与理解转成更灵活的动作。
从 NEO-VLA 的实验看,动作学习一方面受视觉表征怎么形成的影响,另一方面也取决于动作模块能不能读到视觉计算不同阶段的信息。原生主干冻结之后仍能有效支撑动作学习,对浅层表征的访问尤其关键。反过来,直接拿传统视觉编码器的中间特征来用,并没有得到同样的好处。这些结果说明,表征怎么学、又怎么交给动作模块用,得放到一块儿考虑。
模型对外观和观测条件变化的适应能力已有一些体现,可一旦碰上新的空间布局和任务目标,挑战依然明显。下一步要解决的,是怎么把已经有的感知与理解能力变成更灵活的动作,让机器人在几何关系或任务意图变了之后,还能调整操作策略。