VLA-Adapter 详解(上):小模型真正缺的不是参数,而是一座从感知到动作的“桥”

本文是 VLA-Adapter 系列解读的上篇。本文只结合论文与官方项目主页讨论研究动机、问题定义、总体框架和条件选择。下篇将继续拆解 Bridge Attention、训练目标、实验、消融与方法边界。
过去两年,Vision-Language-Action(VLA)几乎成了机器人学习中最热的关键词之一。它的目标听起来很直接:机器人看到图像,读懂自然语言指令,然后输出能够执行的动作。可一旦真正把这三个模态连起来,问题就远没有“给 VLM 接一个动作头”那么简单。
VLA-Adapter 的切入点非常特别。它没有继续追问“怎样得到更大的 VLM”“怎样收集更多机器人数据”,而是把目光放在一个长期被默认、却很少被系统研究的问题上:视觉—语言模型内部已经包含大量信息,但这些信息究竟应该以什么形式、从哪些层、以多大强度送入动作策略?
这也是理解这篇工作的关键。VLA-Adapter 的核心贡献不是单纯压缩模型,也不是给某个 7B VLA 加一个参数高效微调模块,而是重新设计了从 VL(Vision-Language)到 A(Action)的桥接范式。论文表明,当这座桥设计得足够好时,一个没有经过机器人数据预训练的 0.5B 级骨干,也能达到甚至超过许多更大 VLA 的表现。
论文为《VLA-Adapter: An Effective Paradigm for Tiny-Scale Vision-Language-Action Model》,作者来自北京邮电大学、西湖大学、浙江大学、OpenHelix Team 等机构。论文于 2025 年 9 月提交,并在同月更新到 v2。官方材料见论文页面与项目主页。
一、先别急着看 Adapter:VLA 到底难在哪里?
一个典型 VLA 可以粗略拆成两部分:
VLM 负责感知与语义理解:输入第三视角图像、腕部或夹爪图像以及任务指令,得到多模态表征;
Policy 负责控制:把多模态表征、机器人本体状态等条件转换为连续动作或动作序列。
从模块图看,这像是很自然的上下游关系。然而,“VLM 输出”并不是一种唯一、标准化的东西。一个 24 层 VLM,每一层都产生一组隐藏状态;图像 token、文本 token、附加查询 token 又承载着不同性质的信息。Policy 如果只接最后一层,就可能拿到更强的语义,却丢失局部视觉细节;如果把所有特征不加选择地灌进去,又可能把冗余和噪声一起带入动作空间。
因此,VLA 真正面对的是一个表征接口问题:
VLM 学到的是“看懂场景、理解指令”的表示,Policy 需要的是“下一步手臂往哪里动、夹爪何时闭合”的表示。两者相关,但并不天然同构。
例如,“把黑色碗放到盘子上”包含至少三类信息:
高层语义:目标物体是黑色碗,目标位置是盘子;
中层视觉关系:碗相对盘子、抽屉、桌面的空间位置;
低层控制条件:机械臂当前关节状态、夹爪状态、末端执行器应采用的运动方向。
VLM 的深层通常擅长第一类信息,但 Policy 要完成动作,还必须保留第二类乃至与第三类对齐的细节。VLA-Adapter 所谓“从 VL 到 A 的 gap”,本质上就是这些表征之间的偏差。
二、传统路线为什么依赖大模型和机器人预训练?
现有 VLA 常用的思路是:先拿一个大规模 VLM,再用 Open X-Embodiment、DROID 等机器人数据进行预训练或对齐,最后连接动作生成模块。这样做的好处很明显——经过大规模机器人数据训练后,VLM 的隐藏表示会逐渐适应动作域,最后一层特征也更容易被动作头解码。
但代价同样明显:
骨干模型大,训练显存高;
机器人数据预训练昂贵,数据质量和硬件平台差异又很大;
微调速度慢,普通实验室很难快速迭代;
推理延迟高,不利于闭环控制;
模型对某种预训练配方产生依赖,换骨干后性能可能显著下降。
项目主页用 OpenVLA-OFT 做了一个很直观的对照:如果只是把其桥接方式原封不动地接到更小、且没有机器人预训练的 Prismatic VLM 上,性能会明显受损。也就是说,直接缩小 backbone 并不能自动得到一个好用的小型 VLA。
这一步实验很重要,因为它排除了一个容易产生的误解:VLA-Adapter 的效果并非来自“Qwen2.5-0.5B 本身就足够强”,而是来自一个更适合小骨干的 VL→A 接口。论文在 LIBERO-Long 上比较了三种骨干:
骨干 | 是否经过机器人数据预训练 | OpenVLA-OFT 式桥接 | VLA-Adapter 式桥接 |
|---|---|---|---|
Prismatic + Qwen2.5-0.5B | 否 | 85.8% | 95.0% |
Prismatic + LLaMA2-7B | 否 | 87.5% | 95.2% |
OpenVLA-7B | 是 | 94.5% | 95.4% |
表中最值得注意的不是 95.0% 这个绝对值,而是增益的分布:
在没有机器人预训练的 0.5B 骨干上,改桥接方式提升 9.2 个百分点;
在没有机器人预训练的 7B 骨干上,提升 7.7 个百分点;
在已经经过机器人预训练的 OpenVLA-7B 上,只提升 0.9 个百分点。
这组结果说明:机器人预训练已经在一定程度上完成了“表征向动作域适配”;当没有这种预训练时,桥接设计就变得格外关键。换句话说,VLA-Adapter 的价值并不是否定大规模预训练,而是证明更好的接口可以替代一部分由模型规模和预训练数据承担的工作。
三、从离散动作 token 到连续动作 Policy:桥接范式是怎么演化的?
早期 VLA 经常把连续动作离散化成 token,让语言模型像生成文本一样自回归生成动作。这种做法统一了输出形式,但量化会带来信息损失,逐 token 解码也会增加延迟。近来的方法更倾向于使用连续动作空间,再由独立 Policy 生成动作 chunk。
当 VLM 与连续动作 Policy 分离后,“如何传条件”就成了架构核心。论文把代表性方案归为四类:
桥接方式 | 代表方法 | Policy 接收的信息 | 潜在问题 |
|---|---|---|---|
最后一层 Raw features | RoboVLMs 等 | VLM 最深层原始隐藏状态 | 语义强,但细粒度视觉信息可能被压缩 |
中间层 Raw features | GR00T N1 等 | VLM 某个中间层的隐藏状态 | 需要人工选择“最佳层”,跨骨干未必稳定 |
所有层 Raw features | π0 等 | 多层隐藏状态 | 信息丰富,但并非所有特征都适合直接注入动作空间 |
最后一层额外 Query | OpenVLA-OFT 等 | 可学习查询 token 的深层表示 | Query 更贴近任务,但只取末层可能未充分利用层级信息 |
这里的 Raw features 可以理解为 VLM 正常处理图像和文本后产生的隐藏状态;ActionQuery 则是额外插入的一组可学习 token。它们没有固定的自然语言含义,而是在训练过程中学习“怎样从图像与指令中收集对动作有用的信息”。
两者的区别可以用一个类比解释:
Raw features 像 VLM 正常上课时留下的整本课堂笔记,信息丰富,但并非每一页都直接服务于机器人控制;
ActionQuery 像 Policy 提前派出的 64 名“专门调查员”,它们进入 VLM 的注意力计算,主动汇聚与动作有关的证据。
VLA-Adapter 并没有先验认定哪种一定最好,而是先搭建统一实验框架,将“层数”和“特征类型”两个因素拆开研究。这一点比模块本身更值得重视:论文不是从一个结构直觉直接跳到最终模型,而是先回答接口设计问题,再根据结论搭建架构。
四、VLA-Adapter 的输入与总体数据流
论文采用 Prismatic-VLMs 风格的视觉语言骨干。默认语言骨干为 Qwen2.5-0.5B,视觉侧使用 DINOv2 与 SigLIP 提取图像 embedding。时间步 $t$ 的 VLM 输入包括:
$$
{X_t^v, X_t^g, L_t, AQ_t}
$$
其中:
$X_t^v$:第三人称相机图像;
$X_t^g$:夹爪或腕部相机图像;
$L_t$:自然语言指令;
$AQ_t$:额外的 ActionQuery token。
VLM 每一层会产生两类条件:
$C_t^R$:Raw latent,即正常图像—文本 token 的隐藏表示;
$C_t^{AQ}$:ActionQuery latent,即 ActionQuery 在该层聚合后的隐藏表示。
Policy 的层数与 VLM 层数相同。默认 Qwen2.5-0.5B 对应 24 层,于是第 $i$ 层 Policy 可以接收第 $i$ 层 VLM 的条件。这种“一层对一层”的设计,让动作表征可以逐层吸收从浅到深的多模态信息,而不是等 VLM 全部算完后,只拿最后一层做一次简单映射。
Policy 还接收机器人本体状态 $P_t$,以及一个长度为 $H$ 的初始动作序列。默认 $H=8$,初始动作全部置零,随后经过 LayerNorm 和 MLP 映射为动作 latent。经过多层 Bridge Attention 和 FFN 后,Policy 一次输出 8 步动作 chunk。
从信息流角度看,VLA-Adapter 不是一条“VLM → MLP → action”的单线管道,而是两条并行桥梁:
Raw 路径保留原始视觉—语言表征中的细节;
ActionQuery 路径专门聚合面向动作生成的多模态信息,并与本体状态结合。
后续的关键不只是“两条路径都用”,而是两条路径不能以相同方式、相同强度注入 Policy。这正是下篇要讲的 Bridge Attention。
五、作者首先回答:VLM 的哪一层对动作最有用?
为了避免不同 Policy 结构干扰结论,论文在统一 Policy 框架下研究四种条件组合:
单层 Raw features;
单层 ActionQuery features;
全层 Raw features;
全层 ActionQuery features。
测试使用 LIBERO-Long。这个套件比简单抓取更适合作为“放大镜”,因为它包含多阶段长时序任务,例如“把两个摩卡壶都放到炉子上”“把杯子放进微波炉并关门”。如果条件中缺少物体关系、任务阶段或细粒度视觉信息,失败更容易暴露出来。
5.1 Raw features:中层比最后一层更适合控制
不同层 Raw features 的平均成功率并非越深越高:
Raw feature 来源 | LIBERO-Long 平均成功率 |
|---|---|
第 1 层 | 87.6% |
第 9 层 | 89.8% |
第 13 层 | 88.4% |
第 17 层 | 84.4% |
第 21 层 | 83.2% |
第 24 层 | 85.8% |
第 1—24 层全部使用 | 90.6% |
第 9 层优于第 24 层,正好反映了 VLM 表征的层级变化:浅层更接近局部视觉和词法信息,中层开始融合图像与语言,深层则越来越偏向最终语义任务。对于动作生成,“把指令理解正确”只是前提;Policy 还需要知道物体在哪里、相互关系如何、机器人现在处于哪个操作阶段。中层恰好可能保留更多这类细节。
因此,论文的关键发现 1 是:对于 Raw features,中间层通常比深层更有效;最后一层不是天然最优接口。
这对 VLA 设计有很强的启发性。很多系统默认把 VLM 最后一层当作“最好的特征”,其实是从分类、问答或文本生成习惯迁移来的假设。机器人控制不只依赖抽象语义,它还依赖尚未被深层表示压缩掉的空间与状态信息。
5.2 ActionQuery:越到深层,才越像“动作接口”
ActionQuery 的趋势恰好相反:
ActionQuery feature 来源 | LIBERO-Long 平均成功率 |
|---|---|
第 1 层 | 78.2% |
第 13 层 | 76.6% |
第 17 层 | 86.8% |
第 21 层 | 88.8% |
第 23 层 | 89.6% |
第 24 层 | 90.2% |
第 1—24 层全部使用 | 92.6% |
为什么 Raw features 是中层更强,ActionQuery 却是深层更强?关键在于两者的来源不同。
Raw features 本来就是 VLM 为视觉—语言理解形成的通用表示,深层可能越来越语义化;ActionQuery 则从随机初始化开始训练,它存在的目的就是聚合多模态信息。随着层数加深,ActionQuery 经过更多轮注意力交互,逐步把视觉、指令和上下文压缩成更适合下游 Policy 的表示。因此,深层 ActionQuery 比浅层更成熟。
论文的关键发现 2 是:对于从头训练的 ActionQuery,深层表示通常更有效,因为它需要多层交互才能完成多模态聚合。
5.3 全层条件优于单层条件
Raw features 的最佳单层结果为 89.8%,全层为 90.6%;ActionQuery 的最佳单层结果为 90.2%,全层为 92.6%。这带来关键发现 3:多层特征整体优于单层特征。
这不仅是性能结论,也是工程结论。只选一个中间层,往往需要针对骨干、数据集和 Policy 反复搜索;使用逐层对齐的条件后,系统可以同时获得浅层细节、中层融合信息和深层语义,不再把全部希望押在某个手工选择的层上。
不过,“全层更好”不等于“把所有隐藏状态一次性拼接起来”。VLA-Adapter 采用的是对应层注入:第 $i$ 层 VLM 条件服务第 $i$ 层 Policy,让表征迁移本身也形成一个逐层演化过程。
六、ActionQuery 更强,为什么还要保留 Raw features?
从平均值看,全层 ActionQuery 达到 92.6%,高于全层 Raw features 的 90.6%。如果只看平均性能,似乎直接抛弃 Raw 路径最简单。
论文没有这么做,因为按子任务分析后会发现:平均值掩盖了两类特征的互补性。例如在 LIBERO-Long 的个别困难子任务中,中层 Raw features 明显优于多种 ActionQuery 条件。论文表 1 给出的例子包括:
子任务 7:第 9 层 Raw feature 达到 90%,而不同层或全层 ActionQuery 为 66%—76%;
子任务 9:第 13 层 Raw feature 达到 84%,全层 ActionQuery 为 78%。
这说明 ActionQuery 虽然更善于汇聚任务相关信息,却不一定完整保留所有细节。Raw features 像一条“信息保真度更高但噪声也更多”的通道;ActionQuery 像一条“压缩程度更高、目标导向更强”的通道。最终模型需要同时使用两者。
然而,互补并不意味着等权。Raw features 中混有面向语言建模的语义和与控制无关的内容,如果全部强行注入,可能干扰动作表征;ActionQuery 本就是为动作条件而学习,可以更充分地进入 Policy。VLA-Adapter 因而采用了“ActionQuery 全量注入、Raw features 门控注入”的策略。
这也把我们带到论文真正的结构创新:Bridge Attention。
七、如何理解 VLA-Adapter 的“Adapter”?
这里的 Adapter 不应只按大语言模型中的“小型瓶颈层”理解。VLA-Adapter 更像一套跨模态接口协议:
它规定应该从 VLM 取什么:Raw 与 ActionQuery 两种条件;
它规定应该从哪里取:使用所有层,并与 Policy 逐层对应;
它规定如何送入动作空间:用两路 cross-attention 和一路 self-attention;
它规定送入多少:ActionQuery 充分注入,Raw features 通过可学习门控控制。
所以,“0.5B 小模型达到 7B 级表现”只是结果,论文更深层的观点是:VLA 的容量不只由 backbone 参数量决定,也由感知表示到动作表示之间的有效带宽决定。 如果接口太弱,大模型内部已有的信息到不了 Policy;如果接口设计合理,小模型的有效信息利用率反而可能更高。
这一点与传统模型压缩思路有本质区别。模型压缩通常从一个已经很强的大模型出发,通过蒸馏、剪枝、量化降低成本;VLA-Adapter 则试图让小骨干从一开始就拥有更高效的动作接口。它降低的不是某个已训练模型的参数,而是对“大规模机器人预训练 + 大 VLM”这条路线的依赖。
八、上篇小结:真正值得记住的四句话
读完上篇,可以先记住四个结论:
VLA 的难点不只是看懂图像和语言,而是把 VLM 表征转换成可控制的动作条件;
对 Raw features 来说,最后一层未必最好,中层往往保留更多动作需要的视觉—语言细节;
对从头学习的 ActionQuery 来说,深层更强,因为它需要多层交互来聚合多模态信息;
最优方案不是二选一,而是利用全层 Raw features 与全层 ActionQuery 的互补性,并控制二者的注入方式。
下篇将继续回答几个更具体的问题:
Bridge Attention 的两次 cross-attention 分别在做什么?
为什么 Raw features 要乘一个从零开始学习的 $\tanh(g)$,ActionQuery 却直接注入?
为什么论文最终选择 L1 动作回归,而不是 DiT/扩散策略?
97M Policy、197.2M 可训练参数和 0.5B backbone 分别是什么意思?
97.3% 的 LIBERO 平均成功率、219.2 Hz 吞吐、冻结骨干仍有 86.4% 成功率,应该怎样正确解读?
这篇工作有哪些真正成立的贡献,又有哪些实验边界和仍未解决的问题?
这些问题共同决定了 VLA-Adapter 究竟只是一个漂亮的小模型结果,还是一种可迁移的 VLA 设计范式。
