机器人 VLA 一个模型同时动手和动脑:动作参数只占 0.21%,万级扰动任务 85.9%

机器人策略的默认架构已经相当稳定:一个视觉语言模型看懂场景、听懂指令,再外挂一个东西把"看懂"翻译成动作。外挂有两种主流写法------把动作维度量化成词表里的 bin 用交叉熵训练,或者另起一个流匹配/扩散的动作专家生成连续轨迹。两条路都能跑,但共享同一个前提:动脑和动手该由不同的参数负责。

Concertina 这篇论文不接受这个前提。它的主张可以压成一句话:机器人的操作和认知不该被切开,应该住在同一个模型里,作者给这个形态起了名字叫 eVLM(Embodied Vision-Language Model)。具体做法是把"一个控制步的完整动作向量"压成主干隐空间里的一个连续潜动作 token,然后复用这个扩散 VLM 预训练时就在跑的掩码---重建算子把它填出来。

先把三件事报出来。统一到什么程度:动作侧专用参数只占 0.21%(9.49M / 4.46B),没有独立的动作生成层;对照是 π0 的 16.51% 与 X-VLA 的 35.10%。拿到了什么:常规 LIBERO 98.15%(2,000 episodes)、10,030 个扰动任务的 LIBERO-Plus 85.9%、CALVIN ABC--D 链长 4.142。付了什么:一块 10 步动作至少一次主干前向,中位 65.8 毫秒;想再准要 7 次前向、223 毫秒。

还有一条边界必须提前说清:论文全程是仿真 benchmark,没有真机;标题里的 cognition 在全文只作为论证与架构目标出现,没有任何 VQA、推理或规划基准的分数。它证明的是"一个扩散 VLM 能在不损失操作性能的前提下原生输出连续动作",不是"它同时会做题"。这个区别后面单独展开。

一分钟速览

  • 痛点:主流 VLA 把动作当挂件。挂成离散 token,误差几何与物理位移脱钩(单 token 出错,位移误差跨度 25.14 倍);挂成独立动作专家,专用参数吃掉 16.5%--35.1%,梯度冲突只能靠 Knowledge Insulation 掐断。
  • 主张:把操作和认知放进同一个模型,即 eVLM------动作在主干隐空间里表示、由主干的生成算子产生、在物理坐标上端到端监督。
  • 做法:一个控制步的 D 维动作向量经位置级 MLP 编码成 1 个 d 维潜动作 token,H 步轨迹占 H 个 token;块内双向、块间因果;复用 BARD-VL 的掩码块重建算子。
  • 代价:动作接口 9.49M 参数(0.21%),无外挂动作生成层;单次前向 65.8 ms 出 10 步块,折合 6.58 ms 一步。
  • 结果:LIBERO 98.15%、LIBERO-Plus 85.9%(比 EFFVLA 高 6.1 点、比 OpenVLA-OFT 高 16.3 点)、CALVIN ABC--D 4.142。
  • 审计:仅位置级接口时跨时耦合严格为 0,加一次主干前向后全路径 NLR 为 4.058%、4.103%、1.217%,耦合出现在第 27 与 35 层。
  • 反证:给同一共享隐空间再加一个绝对动作目标,梯度余弦 −0.891,CALVIN 链长从 2.970 掉到 0.237。
  • 论文没给的:真机、认知任务、显存峰值、训练墙钟、FLOPs、与自回归 VLM 的吞吐对比,以及那 65.8 ms 是在什么卡上测的。

一个模型为什么不能既动手又动脑

两种拼法,各自丢掉了什么

第一种拼法是离散化。RT-2 和 OpenVLA 把每个动作维度切成 256 个均匀 bin,塞进语言词表,用交叉熵当损失。好处是架构和训练范式一点没改,坏处是把控制从物理空间搬到了符号空间:交叉熵对"差一个 bin"和"差两百个 bin"给同样的惩罚,单位 token 误差到物理位移的映射就不再稳定。

论文用误差几何一致性(EGC = p95/p05)把这种不稳定性量了出来。512 个 CALVIN 窗口上做单 token 替换,256 桶量化后物理误差 p05 是 0.0549、p95 是 1.3804,跨度 25.14 倍(8,192 窗口扩样 25.57 倍);连续坐标监督按构造是 1.0。FAST 那种 DCT 加 BPE 更脆:单 token 替换后 82.23% 的窗口直接解不出 30×7 的形状,修复版 MolmoAct2-FAST 是 77.93%;能解出来的窗口里,一次编辑中位数扰动 30/30 个时间步,等于整段轨迹作废。

第二种拼法是外挂动作专家。π0、π0.5、SmolVLA、GR00T N1、X-VLA 都走这条路:主干出视觉语言表征,另起流匹配专家或 24 层动作 Transformer 生成连续轨迹。连续坐标保住了,代价是参数和梯度两笔账。参数账是 16.51%(π0)、19.17%(π0.5)、22.19%(SmolVLA)、35.10%(X-VLA)的容量划给动作。梯度账更麻烦:专家梯度回传冲击预训练特征,Knowledge Insulation 干脆把它挡在主干外------用架构硬隔离换训练稳定,等于把解耦钉死。

eVLM 的三条判据

作者没有停在"这样不好",而是给了三条正面理由,我认为第二条最有说服力。

  • 认知应该在每一层参与操作。抓取、放置、避障用的空间与物理线索,和场景理解用的是同一批;如果轨迹生成发生在 VLM 外面,认知就退化成一次性的条件交接,无法随动作状态在深度上互动。
  • 操作应该反过来塑造认知。机器人轨迹是 VLM 物理与空间 grounding 的主要来源;只有连续动作梯度真的更新了视觉语言参数,操作经验才能沉淀进主干的空间表征,而不是被封在外挂头里。
  • 保留主干的架构、训练范式与表征稳定性,才谈得上端到端扩展。当认知与运动模块依赖不兼容的范式时,梯度会互相拉扯,实践中的应对就是冻结或隔离主干------而这正好把感知与控制的分工永久固定下来。

论文的 Table 1 把判据展开成十列,覆盖表示耦合(连续动作值、物理坐标监督)、计算与参数耦合(主干是否直接生成轨迹、有没有外挂动作生成器、有没有预训练 tokenizer 或 codec)与生成结构(单一动作表示与损失、并行生成、因果时序、迭代精化、序列长度 O(H))。Concertina 是唯一十项全过的,下面按路线归并。

路线 动作表示 谁生成轨迹 训练目标 跨时耦合在哪 动作专用参数
A. OpenVLA 类 每个坐标一个离散 bin 主干词表头 语言交叉熵 主干的因果注意力 0(复用 LM head)
B. π0 类 32 维连续向量 外挂流匹配专家 专家侧流匹配 专家内部(NLR 8.141%) 16.51%--19.17%
C. Dream-VLA 类 连续标量 共享主干 把目标换成流匹配 主干,但范式已换 少量投影层
D. Concertina 每步 1 个连续潜 token 共享主干 原生掩码块重建 + 物理坐标回归 主干第 27/35 层(NLR 4.058%) 0.21%

这篇论文真正下的赌注

看清这张表就会发现,A 和 C 已经各自放弃了一样东西:A 放弃了物理坐标,C 放弃了原生训练范式。B 保住了坐标但放弃了统一。Concertina 赌的是第四种可能------物理坐标和原生范式可以同时保住,只要你把动作的表示形式改成主干本来就吃得下的形状。

所谓"本来就吃得下",指的是 BARD-VL 预训练时处理的就是"挖掉一块、再补回来":文本和图像 token 按块组织,块内双向、块间因果,按腐蚀率随机遮蔽,模型学会从残缺序列重建完整序列。这个算子在离散 token 上已经跑通,用到连续向量上就不需要新的扩散网络、新的噪声调度、新的损失范式------只需要一个把 D 维向量塞进 d 维隐空间的位置级投影。

这也解释了论文标题里"diffusion"的位置:它不是给动作新接了一个扩散头,而是整个主干本来就是扩散式的。

图 1|四条通往机器人操作的路线:A 用词表头输出离散 bin,B 外挂独立动作专家,C 共享主干但把目标换成流匹配,D 共享主干并保留原生掩码块重建算子。

统一的那一刀:一步动作 = 一个连续 token

输出空间:H 个 token,不是 H×D 个符号

这是全篇最关键的一个设计决定,值得单独拆开。设一个控制步的动作是 a_i ∈ R^D(论文里 D = 20,单臂占前十维:3 个笛卡尔平移、6 维连续旋转表示、1 个夹爪闭合量;双臂占满二十维)。传统做法有两种粒度:离散化是每个坐标一个 token,所以一步要 D 个 token;或者干脆把 H 步摊平成 H×D 个标量符号。Concertina 选的粒度是"一步一个 token"。

一步一个 token 有三层后果。第一层是序列长度:H 步轨迹占 H 个 token 而不是 H×D 个,和多模态前缀拼起来是 P + 2H 个位置(训练时打包了腐蚀与干净两份动作)。第二层是物理耦合:平移、旋转、夹爪在同一步里本来强相关,拆成 20 个独立符号等于让模型重新学这层约束,压成一个 token 则天然保留。第三层是可监督性:一个 token 对应一个完整物理向量,损失可以直接写在归一化坐标上,不需要反量化、不需要码本。

作者还检查了这个压缩会不会把动作空间压塌。方法是看动作编码器雅可比 ∂E_ϕ/∂a ∈ R^{2560×20} 的奇异值谱:预训练全程保持 20 维满秩,有效秩从初始化的 19.78/20 降到 5k、10k、15k 步的 19.30、18.90、18.63,条件数中位数从 1.73 升到 3.22,与物理坐标的 Spearman 相关维持在 0.855--0.931。这些数字说明它是一条光滑、未退化的 20 维坐标图,不是把动作硬塞进一个低维瓶颈。

编解码器只做坐标投影

桥接物理坐标和隐空间的是两个位置级模块:动作编码器 E_φ 与动作解码器 D_ψ,都是 4 层 MLP、隐宽 1,024、SiLU、零 dropout。关键在"位置级":它们对每个时间步独立作用,不做时间混合,所有跨时依赖都交给主干。

zi=Eϕ(ai),a^i=Dψ(hi) z_{i}=E_{\phi}(a_{i}),\qquad \hat{a}{i}=D{\psi}(h_{i}) zi=Eϕ(ai),a^i=Dψ(hi)

z_i 是第 i 步的潜动作 token(d = 2560 维),h_i 是主干输出的对应位置隐状态,â_i 是还原出的 D 维物理动作。整条前向是 [H_C, H_A] = F_θ([C, Z]) 再 bA = D_ψ(H_A):前缀 C 与潜动作 Z 拼成一条序列进主干,全部位置联合上下文化,最后只在动作位置读出。本体状态也走同一个 E_ϕ,因为它共享同一套 20 维布局------论文特意强调,没有动作边界特殊 token、没有 embodiment adapter、没有 soft prompt。

意图很清楚:把"翻译"和"思考"分开。E_ϕ 与 D_ψ 只负责坐标和隐空间之间的搬运,跨模态对齐与跨时规划全在 F_θ 里。所以问"动作专用参数有多少",答案只有 9.49M,而不是几十层 Transformer。

图 2|整体结构:文本、多视图图像与状态经各自前端进入共享掩码扩散 Transformer,动作块以连续潜动作 token 的形式与多模态前缀一起过全部层,再由位置级动作解码器还原成物理坐标;右侧是块内去噪、打包训练注意力与跨块生成三个局部示意。

三张掩码与 500:10:1 的坐标权重

多 embodiment 训练是这套坐标布局最容易出错的地方,论文用三张正交的掩码解决:坐标有效性 q_{n,d} 标记这条样本的哪些维度是真的(单臂只有前十维),重建选择 m_{n,i} 标记这个槽位这一轮是否被遮蔽,时间有效性 v_{n,i} 标记这个时间步是不是补齐出来的。三者的关系是"被监督的支撑集 = v_{n,i} · m_{n,i} · q_{n,d}"。

无效坐标在输入端直接置零,并从损失的分母里剔除;无效时间步不仅不算损失,还被遮蔽成注意力 key,同时为了避免出现整行全遮的注意力(Flash/SDPA 会出问题),无效 query 只注意自己。

图 3|左侧是规范的 20 维动作布局(单臂占前十维、双臂占满二十维),右侧是三张正交掩码:坐标有效性 q、重建选择 m、时间补齐 v 各管一件事。

坐标权重 ω_d 是另一处容易被忽略、但消融里影响最大的设定。平移以米为单位,数值方差比归一化后的旋转和夹爪小几个数量级;如果按 1:1:1 直接回归,共享主干会系统性地低估平移精度。论文把每臂的权重设成(500, 500, 500, 10, 10, 10, 10, 10, 10, 1)------平移 500、6 维旋转各 10、夹爪 1。夹爪通道不走回归,而是先映射到规范闭合量 p = (g − g_open)/(g_closed − g_open) ∈ 0,1,再用带目标熵扣减的概率型 BCE:ρ_grip(r, p) = BCEWithLogits(r, p) − H§ = KL(Ber§ ‖ Ber(σ®))。减去 H§ 不改变梯度,但让硬 0/1 目标和中间闭合目标的最小损失都归零,正好对上不同 embodiment 里 −1,1 与 0,1 两套夹爪约定的差异。

扩散解码在动作侧:语言 token 一个都没动

训练:一条序列装下前缀、腐蚀副本与干净副本

先说清一个易误解的点:这里没有高斯噪声调度,也没有"从纯噪声逐步去噪"。腐蚀算子是遮蔽------按块抽一个腐蚀率,块内每个时间步独立地以该概率被替换成"未知动作"哨兵(实现上是零向量),再让模型重建。这是掩码扩散/吸收式扩散那一支,不是 π0 的流匹配。主干预训练时文本与图像 token 走的也是这套算子,所以语言侧在预训练阶段同样是扩散式生成;但推理时指令是给定前缀、不参与生成,真正迭代填充的只有动作槽位。

训练时的一条序列是 X_train = C, Z̃, Z:多模态前缀、被腐蚀的动作副本、干净的教师强制副本。两份动作共享位置编码但可见性不同:腐蚀分支的第 i 个查询能看到前缀、本块的腐蚀槽位、严格更早的干净块;干净分支能看到前缀与本块及更早的干净块。预测只从腐蚀分支读出,干净分支只提供块级上下文且不泄漏当前块目标。

这个打包一次前向就监督了全部 M 个块的条件分布,序列长度对 H 线性,是这套方法算力上能跑通的前提。腐蚀率按块分层采样:把 [0,1] 均分 M 段,每段均匀抽一个点再随机置换到块上,下截断 ϵ = 10⁻³,这样每次前向都覆盖整个腐蚀谱而不是碰运气。

监督写在归一化物理坐标上。每个 token 的坐标重建误差是

ℓn,i=∑d=1Dqn,d ωd ρd(a^n,i,d, an,i,d)max⁡(∑d=1Dqn,dωd, δ) \ell_{n,i}=\frac{\sum_{d=1}^{D}q_{n,d}\,\omega_{d}\,\rho_{d}(\hat{a}{n,i,d},\,a{n,i,d})}{\max(\sum_{d=1}^{D}q_{n,d}\omega_{d},\ \delta)} ℓn,i=max(∑d=1Dqn,dωd, δ)∑d=1Dqn,dωdρd(a^n,i,d,an,i,d)

其中 ρ_d 对连续位姿用 Smooth-L1、对夹爪用上面那个概率型 BCE,分母做了按有效维度加权和的归一化,δ 防止除零。整块的损失再按"被选中概率的倒数"加权:

Lact=1N∑n=1N1max⁡(∑i=1Hvn,i, 1)∑i=1Hvn,i mn,i ℓn,imax⁡(tn,b(i), ϵ) \mathcal{L}{act}=\frac{1}{N}\sum{n=1}^{N}\frac{1}{\max(\sum_{i=1}^{H}v_{n,i},\ 1)}\sum_{i=1}^{H}\frac{v_{n,i}\,m_{n,i}\,\ell_{n,i}}{\max(t_{n,b(i)},\ \epsilon)} Lact=N1n=1∑Nmax(∑i=1Hvn,i, 1)1i=1∑Hmax(tn,b(i), ϵ)vn,imn,iℓn,i

关键是那个 1/t 的权重:因为 E[m_{n,i}/t_{n,b(i)} | t] = 1,按选中概率的倒数加权之后,不同腐蚀率下的损失估计是同尺度的,梯度能干净地穿过 D_ψ、F_θ、E_ϕ 回传到整条链路上。

推理:块内并行填,块间因果推

推理比训练直观:前缀 C 进 KV cache 只做一次,然后按块顺序生成。块内动作槽位先初始化为零哨兵,再分轮提交------一个轻量风险头从 detach 的隐状态回归对数重建误差 log(ℓ + 10⁻⁶),候选槽位按负预测风险排序,高置信度的先定格;可选精修轮次把低分槽位重新遮住再预测,分数变高才接受。一块定稿后,其连续动作被 E_ϕ 重编码并追加进持久 KV cache。

text 复制代码
# 仅示意:块级闭环解码,省略张量形状与并行细节
KV ← F_θ.prefill(C)                  # 文本 + 多视图图像 + 状态,只做一次
for b in 0 .. M-1:                   # 块间因果
    槽位 ← 全零哨兵                   # 块内所有动作槽位待填
    for r in 0 .. D_prop:            # proposal 轮次,配置 D_prop = 4
        H ← F_θ(KV, E_φ(槽位))        # 只读缓存,不写
        候选 ← D_ψ(H); 风险 ← risk_head(H.detach())
        按 −风险 排序,把最高分的若干槽位定格成候选值
    for r in 0 .. R_ref:             # 精修轮次,配置 R_ref = 5
        重遮低分槽位 → 再预测 → 分数变高才接受
    A[b] ← 槽位                       # 提交该块
    KV ← KV + E_ϕ(A[b])              # 定稿动作重编码进缓存
执行 A[0 .. H_exec-1],重新观察,回到 prefill 之后

为什么不是再训一个 flow head

看到"迭代填槽"很容易反问:这和流匹配的多步积分有什么区别,为什么值得为此改掉动作表示?

区别有三处。数量上,流匹配每步都要跑一遍专家(π0.5 常用 10 步),这里的轮数也是超参(D ≤ 4、R = 5,实测平均 7 次前向),但每步跑的是同一个共享主干、复用同一份前缀 KV cache,没有第二个网络。质量上,流匹配从噪声积分误差会累积,掩码重建是从"已知上下文 + 未知槽位"直接推断,单轮就能给可用动作------实测 D=1、R=0 就有 3.92 AvgLen。最关键的是第三处:它不需要新的训练范式。换成给共享主干接流匹配目标,就回到了路线 C 的问题------保住了主干,换掉了主干预训练时学到的生成方式。4.4 节那组反事实实验说明,换目标的代价比看上去大得多。

图 4|风险引导解码:风险头从 detach 的隐状态回归对数重建误差,据此按置信度提交候选槽位,并对低分槽位做选择性重遮与精修。

训练:80.2M 帧、两阶段预训练与四步配方

数据:146,433 条轨迹、五个来源

预训练混合一共 146,433 条 episode、80,212,225 帧,来自五个来源,采样权重和帧数并不成比例(这是刻意的重加权):

数据源 子集/视角 Episodes 帧数 采样权重
AgiBotWorld--Alpha 34 / 34 32,735 46,156,708 44.44%
DROID(30 Hz 对齐) 1 / 2 97,685 27,348,488 33.33%
RoboMIND Franka 1 / 1 5,333 943,842 11.11%
RoboMIND AgileX 1 / 1 8,906 5,387,380 7.78%
RoboMIND FR3 1 / 1 1,774 375,807 3.33%
合计 38 / 39 146,433 80,212,225 100%

DROID 的 episode 最多(97,685)却只占三分之一权重,AgiBotWorld 用 32,735 条拿到 44.44%,说明权重按任务多样性与质量调而不是按条数。清洗是离线的:校验时间戳连续、坐标范围有限、帧与动作对齐,再用末端速度、关节通道与光流三重交叉检查剔除静置片段,同时用语义规则保住"夹爪稳定""倒液体"这类功能性停顿;被剔除的片段重置局部 episode 边界,跨边界窗口用 v_{n,i} 补齐。

训练分两阶段,再各自微调:

阶段 数据 更新数 配置
Stage-1 预训练 五源混合 60,000 规范 20 维动作,H=50、M=5、K=10,有效维掩码,30 Hz 对齐
Stage-2 继续预训练 五源混合 30,000 双块 H=20、M=2、K=10,mask-only inverse-t,概率型夹爪 BCE
下游微调 CALVIN ABC--D 5,000 绝对末端动作,单块 H=10、M=1、K=10
下游微调 常规 LIBERO / LIBERO-Plus 5,000 相对末端动作,单块 H=10、M=1、K=10

算力是 8 张 GPU,预训练与 CALVIN 微调全局批 1,536(每卡 192),LIBERO 微调全局批 448(每卡 56),80 步线性 warmup,seed 42。注意:论文通篇没写 GPU 型号,这对复现和延迟解读都有影响。

K=10 的证据:动作相干性半衰期 19 帧

块宽 K 是这套方法里最"物理"的超参:块内双向意味着同一块里的动作可以互相看见、联合重建,块间因果意味着只能往前看。K 太小,正在进行的动作阶段会被切在因果边界两侧,块内看不到彼此;K 太大,双向注意力又会把过长的时间跨度混在一起,且训练时有效轨迹起点变少。

论文没有拍脑袋选 K,而是先量了动作本身的相干长度。在 34 个 AgiBot 任务、680 条 episode、999,830 帧、30 Hz 的数据上,算动作增量(平移差、SO(3) 测地旋转差、夹爪变化)的方向余弦随帧间滞后的衰减:Δt=5 时 0.775,Δt=10 时 0.663,到 Δt=19 首次跌破 0.5,Δt=27 跌破 1/e。也就是说,"伸手---对准---闭合夹爪"这类连续原语在 15--20 帧内保持强方向性。

在这个前提下把 K 从 5 提到 10,块内能圈住的相干动作质量从 9.8% 升到 21.3%(2.17 倍)。对应的闭环收益是:同样 H=50、同样 2,400 步微调预算下,M=5/K=10 在 200 个 LIBERO episode 上拿到 73.0%(146/200),M=10/K=5 只有 38.5%(77/200),整体 +34.5 点,40 个任务里 32 个提升、7 个持平、1 个下降;CALVIN 上平均链长从 0.055 涨到 1.945(35 倍),SR@1 从 5.1% 到 78.2%。

这里有个读法上的坑:73.0% 和 98.15% 不是同一件事。前者是 2,400 步短预算下的受控对照,后者是 5,000 步微调的终态成绩。拿它们对撞会得出"块宽值 25 个点"的错误结论,正确读法是"同等短预算下块宽决定了收敛速度"。

从 0.41 到 4.14:四步配方

论文最有信息量的一张图是累积配方推进:每一步只加一个改动,链长从 0.41 一路爬到 4.142。

累积改动 CALVIN 平均链长 SR@1
均匀坐标权重 1:1:1 0.41 31%
换成物理权重 500:10:1 1.09 62%
加状态掩码 + RRC 1.84 73%
60k 多块预训练(H=50) 3.54 93%
对齐执行块(H=10) 4.13 99%
再加 30k 双块继续预训练 4.14 99%

前两步最反直觉。第一步把 1:1:1 换成 500:10:1:有状态掩码时这一项单独值 +1.431(1.837 对 0.406),没有时值 +0.558(1.093 对 0.535)。第二步是"把本体状态遮掉"------训练时随机遮掉状态通道,逼主干从视觉语言上下文推轨迹而不是靠状态外推,单独值 +0.744(1.837 对 1.093),SR@1 +11.2 点、SR@5 +9.1 点。逻辑说得通:状态永远可见,模型就能学一个"状态到动作"的捷径,视觉语言那半边成了摆设;遮掉它,主干才被迫把动作锚在场景上,正好呼应"操作经验要沉淀进主干"的主张。

后三步的收益来自预训练规模与执行视界对齐。最后一步只值 +0.01(4.135→4.142),但换统计口径就有意义了:多块继续预训练(H=20)比单块(H=10)高 +0.208 AvgLen(95% 配对 bootstrap CI +0.119, +0.298),而两者执行配置完全相同(H_exec=10)。说明多块预训练灌进主干的"多相动力学表征"在单块执行时也在起作用。

图 5|四个面板:(a) 块宽 K=5 与 K=10 在 LIBERO 四个套件上的成功率;(b) 动作增量方向余弦随帧间滞后的衰减,半衰期 19 帧;© CALVIN 链存活曲线;(d) 累积配方推进,从 0.41 一路加到 4.142。

评测:操作数字很硬,认知数字缺席

主结果

三个 benchmark 的口径:常规 LIBERO 每任务 50 episodes、四个套件共 2,000;LIBERO-Plus 跑全部 10,030 个扰动任务;CALVIN ABC--D 在 A、B、C 训练、在没见过的 D 上跑 1,000 条五次任务链。

方法 LIBERO 平均 LIBERO-Plus CALVIN AvgLen CALVIN SR@1 动作专用参数
OpenVLA 76.5 15.6 --- --- 0
π0-FAST 85.5 61.6 --- --- 0
π0 94.2 53.6 --- --- 16.51%
π0.5 97.5 --- --- --- 19.17%
UniVLA 95.5 42.9 4.41 98.9 ---
X-VLA 98.1 --- 4.43 97.1 35.10%
OpenVLA-OFT 97.1 69.6 --- --- 0
RIPT-VLA 97.5 68.4 --- --- ---
EFFVLA --- 79.8 --- --- ---
LLaDA-VLA --- --- 4.01 95.6 ---
Discrete Diffusion VLA 96.4 --- --- --- ---
Dream-VLA 97.2 --- --- --- ---
Concertina 98.15 85.9 4.142 98.6 0.21%

真正有说服力的是 LIBERO-Plus 那一列。15.6、42.9、53.6、61.6、68.4、69.6、79.8、85.9------跨度 70 个点的分布说明扰动泛化才是当前 VLA 的分水岭。Concertina 比第二名 EFFVLA 高 6.1 点、比 OpenVLA-OFT 高 16.3 点,四个套件全是最高的(合计 8,615/10,030)。

与专用模型的具体差距

常规 LIBERO 上 98.15% 是表内最高,但要说清三件事。

第一,这个榜已经饱和。前三名是 98.15、98.1(X-VLA)、98.0(IMLE-VLA),差 0.15 个点。这个量级上比高低没有置信区间就没意义------论文给了个别实验的 Wilson 区间(图 5a 那 200 个 episode),主表的 2,000 episodes 却没报。

第二,有几行不是自己跑的。表注写明 π0.5 与 IMLE-VLA 沿用 Hosseinkhani 等人的报告值;EFFVLA 报的是套件级 LIBERO-Plus 均值,而 Concertina 与其余行报的是官方 10,030 任务全集。作者自己标了,对账时别把两种口径直接相减。

第三,CALVIN 上它不是第一。平均链长 X-VLA 4.43、UniVLA 4.41 都更高,Concertina 的 4.142 排第三;它拿的是 SR@1 98.6%(仅次于 UniVLA 98.9%)和 SR@2 93.8%。论文摘要里写的是"second-best overall",指的是 SR 那一列,不是 AvgLen------这一点原文表述没写错,但被转述时容易变形。

认知那一半,论文没有测

这是整篇文章最需要克制的部分。论文标题是"把操作与认知具身进一个扩散 VLM",摘要反复讲 cognition 不该被 decouple,但评测里没有一个认知任务:没有 VQA,没有指令推理,没有子目标规划,没有场景问答,也没有"同一套权重在操作数据上微调后,原本的视觉语言能力掉了多少"的对照。

它给的是间接证据,而且这些证据并不弱:LIBERO-Plus 的 85.9% 说明扰动场景下的语义 grounding 还在;NLR 的层间分布说明跨时耦合确实发生在共享主干中后层而不是接口处;ASCR 的 0.21% 说明没有独立动作生成器。这三条合起来能支持"操作确实是在主干里算出来的"。

但"在主干里算"不等于"认知能力被保住了"。要证明后者,最少需要一组对照:同一个 BARD-VL 底座,一份只做视觉语言微调,一份加动作训练,在同一批 VLM 基准上看退化幅度。论文没有这一组。所以准确的说法是:它提出并实现了一种让操作与认知共用参数路径的架构,并在操作 benchmark 上验证了不弱于外挂方案;至于共用之后认知有没有变好、或至少没变差,仍是开放问题。

我认为这不是写作疏忽,而是这类工作的共同难点:一旦去测 VLM 基准,就要引入"用哪套 prompt、哪套协议"的争议,作者选择先把"不牺牲操作性能"钉死。这个取舍合理,但读者不该把"架构上统一"读成"能力上双赢"。

Action Interface Audit:把「统一」量起来

统一是个形容词,很难证伪。论文造了三个能在 checkpoint 上直接算的指标,对应三条解耦轴。

EGC:单位误差能不能稳定映射到物理位移

第一个指标是表示耦合。固定"一个单位的训练事件误差"(离散 tokenizer 是一次替换,连续头是一个单位坐标误差),看它在 512 个 CALVIN 窗口(H=30、D=7)上引起的物理误差分布,取 p95/p05 作跨度。

结果前文已给:连续监督按构造 1.0,256 桶均匀量化 25.14,FAST+ 与 MolmoAct2-FAST 分别在 82.23% 与 77.93% 的窗口上解不出合法形状。这个指标的价值是把"离散化到底损失了什么"从直觉变成一个数:损失的不是精度,是误差的可预测性。

NLR:跨时耦合长在哪一层

第二个指标是计算耦合。做法很直接:动一个输入动作坐标 (t₀, d₀),用中心差分测输出动作张量 R ∈ R^{H×D} 的响应,然后算响应能量里有多少落在"至少隔 6 步之外"的位置上。

NLR=∑∣t−t0∣≥6∥Rt,:∥22∥R∥F2 \mathrm{NLR}=\frac{\sum_{|t-t_{0}|\geq 6}\left\|R_{t,:}\right\|{2}^{2}}{\left\|R\right\|{F}^{2}} NLR=∥R∥F2∑∣t−t0∣≥6∥Rt,:∥22

在 4.46B 的 checkpoint 上(H=50、36 层、float32、确定性 SDPA),只跑位置级接口 D_ψ∘E_ϕ 时 NLR 严格为 0------它是逐点作用的,物理上不可能有跨时响应。加一次主干前向后全路径 NLR 变成 4.058%(60k 预训练)、4.103%(CALVIN)、1.217%(LIBERO),离时能量 23.4%--34.0%;ε 从 0.01 换到 0.02、0.04 数值几乎不动,说明不是差分噪声。

更有说服力的是层间分布:第 0 层 0.19%--0.34%,第 9 层 0.29%--0.50%,到第 27 层升到 4.66%--9.93%,第 35 层 3.03%--7.42%。跨时耦合不是接口给的,是在共享主干的中后层自己长出来的。

对照组的关键在于位置:π0 与 π0.5 的全路径 NLR 是 8.141% 与 7.141%,比 Concertina 更高,但这些响应全部产生在外挂的流匹配专家内部。X-VLA 更极端,跳过那个外挂的 24 层动作 Transformer 后,只剩 3.72% 的同维动作能量。也就是说,外挂式方案不是没有跨时耦合,而是把耦合搬到了一个 VLM 看不见的房间里。

ASCR:0.21% 是怎么算出来的

第三个指标是参数耦合,定义简单粗暴:只服务于动作生成的参数占总参数的比例。Concertina 的 4.46B 里,动作编码器 E_ϕ 是 4,744,704 个参数、解码器 D_ψ 是 4,742,164 个,合计 9,486,868,占 4,447,963,669 的 0.213%;把 660,993 个参数的风险头也算进去是 10,147,861,占 0.228%。没有独立的动作 Transformer,外挂生成器容量 0%。

对照组的 16.51%(π0)、19.17%(π0.5)、22.19%(SmolVLA)、35.10%(X-VLA)就是"78×--167×"的来源。这个数字好看,但要读准:它衡量"专供动作的容量",不是总容量。外挂方案的主干一样大,只是把动作计算分散在主干与专家两处,ASCR 只统计后者。所以 0.21% 的正确读法是"不在主干之外另建一套动作机器",不是"用 0.21% 参数做完了动作"。

反事实证明:加第二个目标为什么把 2.970 打成 0.237

这是整篇论文里我最看重的一个实验,因为它回答的是"为什么不干脆多目标一起上"。

设定:拿一个 8.35B 的共享主干 checkpoint(H=25),模型与优化设置全不变,只改监督目标------单目标版只监督相对动作,双目标版额外挂一个冻结的辅助解码器监督绝对动作,权重 0.5,21/21 个主动作接口张量按位一致初始化。

结果很难看:八个固定 CALVIN 窗口上,主相对目标与辅助绝对目标在共享隐状态上的梯度余弦是 −0.891,99% 的动作槽方向相反;权重只有 0.5,辅助梯度范数仍是主梯度的 0.881 倍,把合梯度与主目标的对齐度压到 0.474。参数更新更清楚:26 个可训练层里两边幅度几乎一样(总范数比 1.003×),但更新方向余弦从第 2 层 0.604 掉到第 22 层 0.138(池化 0.225)------正是轨迹耦合所在的中后层。

后果是读出全面退化:教师强制主损失 5.12 倍、单次位置误差 2.47 倍、归一化 MAE 1.60 倍,闭环 CALVIN 链长从 2.970 掉到 0.237,−92.0%。

意义不在于"多目标不好",而在于它证明共享隐空间不是被动的特征缓冲:往里接任何坐标读出,都在改这块空间的优化几何。所以"统一"不是把两个东西放进一个模型就完事,动作表示与监督目标必须当成一个接口一起设计。这也解释了为什么只监督相对动作------不是不想多监督,是试过发现会互相拆台。

图 6|审计四面板:(a) 单 token 扰动下的物理误差跨度与结构解码失败率;(b) 连续动作编码器雅可比的奇异值谱,保持 20 维满秩;© 跨时耦合随层出现的位置,接口单独为零;(d) 各架构的动作专用参数占比。

图 7|共设计的四个证据:(a) 主目标与辅助绝对动作目标的梯度余弦 −0.891;(b) 逐层参数更新方向余弦从第 2 层 0.604 跌到第 22 层 0.138;© 读出退化与闭环崩塌,2.970 掉到 0.237;(d) 2×2×2 因子实验,夹爪 BCE 平均 +0.427。

顺带说一个容易被忽略的正向结果:那组 2×2×2 因子实验(每臂 5,000 次更新,共 8,000 条 CALVIN 链)显示,当动作接口与夹爪目标设计对了之后,把 36 层主干全部端到端训练(3.525 AvgLen、92.7% SR@1)和只冻结最前两层(3.535、92.6%)几乎一样好,都不需要 Knowledge Insulation。这是"统一不会毁掉主干"最直接的一条证据:主干可以全放开,只要接口设计对。

统一 vs 拼接:什么时候一个模型更划算

先算延迟:扩散多步到底几步

"扩散"在这里不是必须多步。三种解码预算在同一 checkpoint 上的实测:

解码策略 平均主干前向次数 延迟 p50 CALVIN AvgLen LIBERO-Spatial 成功
D=1, R=0(单次并行) 1.00 65.8 ms 3.92 50/50(100%)
D≤4, R=0(只做候选) 2.00 91.7 ms 3.90 ---
D≤4, R=5(风险精修) 7.00 223.0 ms 4.04 50/50(100%)

单次前向出一整块 10 步动作,65.8 ms,折合 6.58 ms 一个控制步。按 30 Hz 算,一个控制步的实时预算是 33.3 ms,所以单次前向留了约 5 倍余量,7 次前向也还有约 1.5 倍。

但 7 次前向换来的很薄:AvgLen 从 3.92 到 4.04,LIBERO-Spatial 上 50/50 没变。风险精修确实在 25/32 个 CALVIN 窗口和 25/32 个 LIBERO 窗口上降低了离线 MAE,但闭环收益远小于算力代价。按每个控制步的延迟预算选,D=1, R=0 是默认答案,精修只在离线数据生成或高精度场景才值得开。

与 π0.5 的 flow steps 对账

更公平的比较是同一任务上换不同生成方式。LIBERO-Spatial 的 50 个 episode:

方法 解码预算 块长 执行视界 成功率 平均步数
Concertina 1 次前向 10 10 100%(50/50) 102.40
Concertina 7 次前向 10 10 100% 102.84
Concertina 7 次前向 10 1(每步重规划) 92.0% 118.82
π0.5 流匹配 2 步 50 10 98.0% 105.92
π0.5 流匹配 10 步 50 10 96.0% 115.26
π0.5 流匹配 10 步 50 50(不重规划) 84.0% 133.60

两个结论。第一,生成范式不是主要矛盾:π0.5 把流匹配从 10 步砍到 2 步只掉 2 个点,说明流匹配的步数早就不是瓶颈;差距在 96% 对 100%。第二,执行视界比生成方式更值钱:每步重规划掉到 92.0%,50 步不重规划掉到 84.0%,两端都不如"执行一个完整 K=10 块再重观察"。这跟块宽实验是同一个故事的两面------块内一致性本身就是信息,别在解码阶段把它拆散。

显存账:省的是一个网络,不是数量级

论文没给峰值显存、激活占用或 KV cache 大小,只能按结构推,结论比宣传口径保守。

  • 确定能省的:外挂专家那份参数与优化器状态。按 ASCR,π0 是 16.51%、X-VLA 是 35.10%,换算到 4.46B 量级就是 0.7B--1.6B 的差别;推理省权重显存,训练再省一份梯度和两份优化器状态。
  • 不一定省的:主干本身一样大,它省的是"第二个网络",不是"大模型"。
  • 可能更费的:KV cache 生命周期更复杂------前缀只读、块定稿后重编码再追加,实现上多一层状态机。

一句话:显存优势就是把 ASCR 那份省掉,量级是总参数的 16%--35%;瓶颈若来自高分辨率视觉输入或长指令 KV cache,换架构救不了。

维护账:一套算子 vs 两套目标

拼接要维护两套目标:主干的预训练范式(交叉熵或掩码重建)和专家的(流匹配或扩散),也就是两套超参、两套调参经验,外加一个永远存在的梯度冲突隐患。Knowledge Insulation 本质是给这个隐患上保险------既然会冲就别让专家梯度进主干;保险上了,架构也就焊死了。

统一的代价是这套算子必须同时吃离散 token 和连续向量:腐蚀率分层、逆概率加权、坐标归一化、夹爪概率化都不难,但整套是新东西。夹爪从 Smooth-L1 换成概率型 BCE 就值 +0.427 AvgLen,说明细节调校空间很大。

维度 拼接(外挂专家) 统一(共享主干) 判断依据
参数与显存 多 16.5%--35.1% 动作专用容量 0.21%,省一个网络 显存吃紧且模型不大时统一更划算
单步延迟 专家前向 + 主干前向 主干前向,可单次出整块 延迟敏感选统一,但要盯块长
训练稳定性 需梯度隔离或冻结,否则退化 放开全部 36 层也稳(接口设计对时) 想端到端扩展选统一
工程复杂度 两套范式、两套超参 一套范式,但腐蚀/掩码细节多 已有流匹配积累时拼接起步更快
认知侧收益 认知被冻结在交接点 动作梯度真的更新主干 想用操作数据反哺 VLM 才值得换

三条分界线

线一:要不要用操作数据反哺 VLM。要,就只能选统一------拼接方案的主干要么冻结要么被梯度隔离,操作经验上不去;不要(只想让现成 VLM 驱机械臂),拼接成熟得多。

线二:瓶颈在延迟还是泛化。延迟上两者已打平,泛化上统一在 LIBERO-Plus 这种扰动基准领先 6 个点以上。如果你的场景是分布内的重复任务,这 6 个点买不到什么;如果是开放环境,它值钱。

线三:有没有能力做接口设计。共享隐空间对监督目标极其敏感(−0.891 就是证据),统一方案典型的失败不是"跑不动",而是"能跑但悄悄退化",要靠 EGC、NLR 这类审计才看得见。没有这套诊断能力,很容易掉进"loss 正常但闭环崩了"的坑。

局限与失效场景

证据边界:三个仿真 benchmark,零真机

第一个也是最硬的限制:全部实验在仿真里。三个 benchmark 都是桌面操作的标准仿真环境,动作是末端位姿增量或绝对位姿,没有真实传感器噪声、标定误差、执行器延迟与物体形变。

这不是吹毛求疵。"物理坐标监督让误差几何稳定"是核心主张之一,而仿真里的物理坐标是干净的;真机末端位姿通常带毫米级标定误差,EGC = 1.0 会被传感器噪声重新定义。65.8 ms 同理,它不含真实感知栈的图像传输与预处理。

会崩的输入与设置

按论文自己的数据和结构,我能指出三类高风险场景。

  • 控制频率偏离 30 Hz 时块宽要重扫。K=10 的依据是"动作相干性半衰期 19 帧 @30 Hz"。如果换到 10 Hz 或 100 Hz 的控制器,同一个物理时间窗对应的帧数完全不同,K 必须重标定,否则块内双向圈住的可能是几个不相关的动作阶段。论文没有给这个重标定的方法。
  • 多目标扩展会互相拆台。4.4 节已经证明:往共享隐空间加第二个绝对动作目标,链长掉 92%。这意味着"同时学相对动作和绝对动作""同时学操作和导航"这类多任务扩展,不能简单加损失,必须重新设计接口。论文只做了单目标的验证。
  • 双目标实验用的是 8.35B 的 checkpoint(H=25),不是主实验的 4.46B(H=50)。这个不一致论文没解释。它不影响定性结论(梯度冲突是结构性的),但意味着 −92.0% 这个具体数字不能直接搬到主模型上。

复现门槛

按论文给的信息,复现这件事的门槛比数字看上去高。

  • 数据拿不到全量。AgiBotWorld、DROID、RoboMIND 都是公开数据集,但 80.2M 帧的混合、清洗、静置片段剔除、语义阶段保留规则,论文只给了原则没给代码;这类清洗的影响在别的论文里往往是几个点。
  • 算力没写清。8 张 GPU,型号未给;60k + 30k 次更新、全局批 1,536、4.46B 参数,这个量在 H100 上是周级,换卡可能翻倍。65.8 ms 同理,没有硬件标注就没有可比性。
  • 主干是别人的。BARD-VL-B4-Mask-4B-Instruct 是 Chen 等人 2026 年的工作,Concertina 的"复用原生算子"这个核心卖点完全依赖于这个主干的存在。如果 BARD-VL 权重或代码不可得,这套方法就没法照搬:换成自回归 VLM,"同一个 mask-and-reconstruct 算子"的论证就失效了。
  • 关键超参没做敏感性分析。K=10 有相干性统计支撑,但腐蚀率分层、逆概率加权的 ϵ、风险头的损失权重 0.05、proposal 预算 4 与精修 5 这些,论文没给扫描曲线。

落地判断

值得试的团队

  • 手里已有扩散式 VLM 底座、想让它出动作的团队。边际成本最低:不用新训专家,只要两个 4 层 MLP 加一套腐蚀调度。
  • 对泛化比对绝对精度更敏感的团队。LIBERO-Plus 那 +6.1 点是这篇论文最实的收益。
  • 想做"操作数据反哺 VLM"的团队。这是统一架构唯一无法被拼接替代的价值。
  • 有诊断能力、愿意做审计的团队。EGC、NLR、ASCR 本身就可以拿来评估任何 VLA。

别碰的团队

  • 需要真机部署、延迟预算紧到 10 ms 级的团队。论文全部延迟数据来自仿真路径,没有硬件标注,也没有真机闭环。
  • 底座是自回归 VLM 的团队。抄不了:合法性来自"主干预训练时就在做掩码块重建",换成自回归底座只会得到一个没有预训练支撑的怪异目标。
  • 想做多任务统一的团队。单目标才稳,加第二个坐标目标直接 −92%,这条路目前封死。
  • 只想复现数字、不打算改架构的团队。清洗配方、BARD-VL 权重、8 张卡的预算,缺一样就复现不了 98.15%。

最小验证路径

如果你想在自己的栈上验一遍这个想法,我建议按这个顺序,每一步都能独立证伪:

  1. 先只验表示:动作从"每坐标一个 token"改成"每步一个连续 token",位置级 MLP 编解码,损失仍写在物理坐标上。看 EGC 是否变成 1.0、序列长度是否降到 H。不改主干与范式,风险最低。
  2. 再验算子:把动作槽位接进主干现有的遮蔽---重建流程,先只做单块(M=1)、单次前向(D=1, R=0)。单次前向就能出可用整块,说明块内双向在你手上成立。
  3. 然后验块宽:按自己的控制频率算相干性半衰期,取 K 覆盖 1--2 个动作原语,别照抄 10。
  4. 最后验审计:跑 NLR,看跨时耦合是否出现在主干中后层。若仍集中在接口,说明实现退化成了隐式动作头,退回第 1 步查编码器是否真的位置级。
  5. 全程用短预算对照(如 2,400 步)比较块宽与权重,别拿终态成绩做消融。

术语速查表

术语 原文 一句话解释
VLA Vision-Language-Action Model 把视觉观测与语言指令直接映射成动作序列的策略模型
eVLM Embodied Vision-Language Model 本文提出的形态:操作与认知共用一套参数、一套生成算子、一套目标
潜动作 token continuous latent action token 把一个控制步的完整 D 维动作压成主干隐空间里的一个 d 维向量
掩码块重建 masked block reconstruction 主干预训练时的生成方式:按块遮蔽再补回,块内双向、块间因果
腐蚀率 corruption rate, t_{n,b} 一个块里被替换成未知动作哨兵的时间步比例,按块分层采样
逆概率加权 inverse-t weighting 按 1/t 加权被遮蔽位置,使不同腐蚀率下的损失同尺度
打包教师强制 packed teacher forcing 把前缀、腐蚀副本、干净副本拼成一条序列,一次前向监督所有块
块宽 K 一个块里的动作步数,本文取 10
EGC Error-Geometry Consistency 单位训练误差到物理误差的跨度 p95/p05,越接近 1 越好
NLR non-local response ratio 响应能量里落在 6 步之外的比例,用来定位跨时耦合发生在哪
ASCR Action-Specific Capacity Ratio 只服务动作生成的参数占总参数比例
风险头 token-risk head 从 detach 的隐状态回归对数重建误差,给解码槽位排优先级
相干性半衰期 coherence half-life 动作增量方向余弦首次跌破 0.5 的帧间滞后,本文测得 19 帧
Knowledge Insulation --- 挡掉动作专家梯度、保护主干的做法,本文证明设计对了就不需要
相关推荐
lisw051 小时前
基于神经网络的机器人导航系统的设计与执行!
神经网络·机器人·自动化
敢敢のwings2 小时前
机器人如何通过触觉认识物体:从材质分类到接触状态判断
分类·机器人·材质
米糕闯编程15 小时前
鱼香ros2(二十五)导航
机器人·slam·ros2·launch·navigation2
猫先生Mr.Mao1 天前
RoboRSI详解:机器人自进化为什么需要任务结构和技能边界
机器人·多智能体·论文解读·具身智能·自进化·roborsi
敢敢のwings2 天前
RPV-SemNav 深度解析:让机器人先理解房间,再决定去哪里找目标
机器人
DUTBenjamin2 天前
论文阅读笔记:GPT-6-Astra Lights Up Embodied Navigation
论文阅读·具身智能·vln
好悬给我拽开线2 天前
RoboJEPA:扩展机器人潜在世界模型
机器人
硅谷秋水3 天前
AgenticRoboRL:将“编程智能体”后训练引入智能体化机器人领域
人工智能·机器学习·语言模型·机器人
敢敢のwings3 天前
SimpleMemVLA 深度解读:把原生视频上下文变成机器人的记忆
数码相机·机器人·音视频