论文笔记:DySL-VLA:Efficient Vision-Language-Action Model Inference via Dynamic-Static Layer-Skipping for Robot Manipulation
背景
视觉-语言-动作模型(VLA)把 VLM 的语言推理与视觉三维理解融合起来,用"动作即 token"的方式直接生成机器人控制指令。但它的推理延迟长期卡在一个尴尬的位置:RT-2 的动作生成频率只有 1–3 Hz,OpenVLA 为 3–5 Hz,而真实物理交互需要 20–50 Hz 以上。
延迟的根源高度集中。论文给出一个关键数据:LLM 骨干贡献了 OpenVLA 84.3% 的推理延迟、OpenVLA-OFT 75.4% 的推理延迟——也就是说,VLA 的慢几乎等同于其语言骨干的慢。
已有的加速手段(量化、剪枝、Mixture-of-Layers、early-exit)都有一个共同的盲点:对每个动作分配等量计算。但机器人操作里动作的重要性并不均等:抓取、释放这类关键步骤对精度要求极高,而抓取前的预位、自由空间移动等预备动作则容错度大得多。论文 Fig. 1 用加噪实验直接展示了这一点——在重要动作步上注入权重噪声,任务完成率随噪声量级下降得明显更快。
既有方法还有两个结构性问题:early-exit 要么训练多个动作头,要么引入 adapter 去逼近最终动作头;而 DeeR-VLA 走的是"大练多动作头"路线,需要12 亿可训练参数、9.2×10⁴ 步、112 GPU 小时,还可能破坏 VLA 的泛化能力。另外,在 VLA 上直接照搬 LLM 的跳层方案效果很差,因为重要动作上一点点误差就可能导致任务失败。
论文链接:arXiv:2602.22896(北京大学、北京智源等,代码开源)
中心思想
DySL-VLA 的出发点是两条观察:
- 观察 1:VLA 各层重要性差异极大。通过计算相邻层输出激活的平均余弦相似度,论文发现只有少数"信息层"会显著改变激活分布;一旦跳过这些层,性能断崖式下跌。
- 观察 2:VLA 对重要动作高度敏感。因此跳层决策不能一刀切,必须对重要动作施加更严格的保留约束。
由此得到方法主线——静态-动态分层跳层:把会显著改变激活分布的层划为静态层,推理时始终执行;其余划为动态层,可按需跳过。需要特别澄清的是:"重要动作要跑完整模型"是常见误读。重要动作走的是"静态层全保留 + 允许点后移、尽量多的动态层也被强制保留"的路径,只有先验预判为平缓的动态段才真正启用跳层;而首次检出动作变剧烈时,还会触发后验重算(见下),这一步才是"不跳过任何层"。换句话说,代价是按动作重要性分级,而不是二元开关。
方法要回答两个问题:何时跳(跳层引导)与跳哪些层(静态/动态划分)。
主要方法
1. 静态层 / 动态层划分(跳哪些层)
用相邻层输出激活的平均余弦相似度衡量每层的信息量:相似度骤降的层即为"信息层",划为静态层、永不跳过;其余为动态层。
两个设计细节值得注意:
- 整段跳过而非逐层跳过。一旦决定跳过,激活直接送往下一个静态层,而不是像 FlexiDepth 那样一次只跳一层——后者加速率低,且 controller 与 adapter 的串行开销被成倍放大。
- Adapter 补偿。被跳过的动态层并非零信息(否则精度会崩),论文为每个动态层配一个轻量前馈 adapter,用距离损失去拟合"被跳若干层之后的输出"作为下一静态层的输入。这在作者看来是合理的,因为被跳层对激活分布的改变本就在 adapter 的拟合能力之内。
静态层比例是唯一的相关超参,论文消融显示 10%–30% 区间内精度与延迟都稳定,取 20% 为宜。
2. 允许点机制 + 先验-后验引导(何时跳)
连续性定义。用最近T TT个动作的差分刻画轨迹连续性:
C t = 1 T − 1 ∑ k = t − T + 1 t ∥ A k − A k − 1 ∥ 2 C_t = \frac{1}{T-1}\sum_{k=t-T+1}^{t} \lVert A_k - A_{k-1} \rVert^2Ct=T−11k=t−T+1∑t∥Ak−Ak−1∥2
论文发现轨迹大部分时间连续性良好(遥操作者在非关键动作时倾向匀速),而在精细操作(抓取、释放)处连续性被打破——频繁的停顿、微调和犹豫把运动切成了不连续段。连续性差 ⇒ 动作重要。
允许点(skipping-allow point)。在相邻两个静态层之间定义一个允许点:允许点之前的动态层强制保留(controller 被关闭),允许点之后才由 controller 决定是否跳过。允许点位置按连续性变化自适应移动:
- 连续性下降(动作变剧烈)→ 允许点快速前移,更多动态层被强制保留;
- 连续性改善 → 允许点缓慢后退,逐步放开跳层。
这种"快进慢退"的滞后式设计(论文称之为 hysteresis-like)最大化保护了关键动作。允许点依据的是前T = 5 T=5T=5个动作的轨迹而非单步,因为连续模式下重要动作的差分值会被稀释;消融显示T = 5 T=5T=5优于 1/3/7/9,且自适应步长优于一切固定步长。
先验预判(pre-skip prediction)。仅由 controller 决定跳过并不够:由于训练中常引入归一化损失迫使 controller 多跳,实际保留的层数在所有动作上都处于很低水平,重要动作的正确性无法保证。先验预判在数据进入模型前,依据历史轨迹的连续性直接关/开各动态层的 controller——只保留"真的会跳"的那些 controller 参与推理,既提升精度又降低延迟(因为 controller 与 VLA 层是串行的,本身就是额外开销)。
后验修正(post-skip verification)。先验的局限在于:当前动作的预测必须在模型推理之前完成,因此连续性下降只能在第一个重要动作已被预测之后才被检出。为此论文加了反馈机制——一旦首次检出连续性下降,就用完全跳层重新预测当前动作,并用重算后的动作更新连续性估计,从而提升后续检测的精度。
3. Skip-aware 两阶段知识蒸馏
冻结 LLM 骨干、只训练 controller 与 adapter,可训练参数量因此骤降。但直接把两者一起训练会发散:两者都随机初始化、互相干扰——adapter 尚未收敛时,controller 会倾向于拒绝跳层以避免任务损失,这又反过来阻碍 adapter 学习。
分两阶段解决:
- 阶段一:只训 adapter。用距离损失对齐 adapter 输出与被跳过的动态层最终输出:
L 1 = ∑ t ∥ h t − 1 − L t − 2 ( … ( h t − 1 ) ) ∥ \mathcal{L}_1 = \sum_t \left\lVert h_{t-1} - \mathcal{L}_{t-2}\big(\dots(h_{t-1})\big) \right\rVertL1=t∑ht−1−Lt−2(…(ht−1))
- 阶段二:controller 与 adapter 联合训练。前向时对"跳/不跳"做概率加权的可微化:
h = P ( skip ) ⋅ h layer ( h t ) + ( 1 − P ( skip ) ) ⋅ h t − 1 ( L t − 2 ( … h t − 1 ) ) h = P(\text{skip}) \cdot h_{\text{layer}}(h_t) + \big(1 - P(\text{skip})\big) \cdot h_{t-1}\big(\mathcal{L}_{t-2}(\dots h_{t-1})\big)h=P(skip)⋅hlayer(ht)+(1−P(skip))⋅ht−1(Lt−2(…ht−1))
总损失为任务损失加上"概率加权的跳过距离项":
L 2 = L task + α ∑ t ( 1 − P t ( skip ) ) ⋅ ( h t − h ^ t ) \mathcal{L}_2 = \mathcal{L}_{\text{task}} + \alpha \sum_{t} \big(1 - P_t(\text{skip})\big)\cdot \big(h_t - \hat{h}_t\big)L2=Ltask+αt∑(1−Pt(skip))⋅(ht−h^t)
直觉是:controller 越倾向跳过,就越要求 adapter 输出逼近真实输出;越不倾向,该系数越接近 0。此外还需一个归一化损失防止 controller 永远不跳。
训练时还有一个细节:用调和衰减概率挑选本轮要训练的层,让靠前的动态层被更频繁地选中——它们的 adapter 需要概括更多被跳层。论文明确指出这与 LoRA 有本质区别:LoRA 的轻量 adapter 用于微调骨干,而这里只是补偿跳层损失。
特点(优缺点)
优点
- 在等精度下拿到显著加速。Calvin D→D 上,DySL-VLA 3B 平均成功长度 2.89 / 延迟 13.6 ms,对比完整 RoboFlamingo 3B 的 2.92 / 51.0 ms——3.75× 加速且精度不降反升;LIBERO 上 96.5% 平均成功率、27.4 ms(A6000),对比 OpenVLA-OFT 的 97.1% / 53.0 ms。
- 训练代价数量级低于同类。对比 DeeR-VLA 3B:可训练参数 14M vs 1.2B(85.7×),训练步数 6.7×10³ vs 9.2×10⁴(13.7×),同时平均成功长度还高出 2.1%。
- 消融干净地支撑了每个设计。静态层比例 10%–30% 均稳定;去掉先验预判 → 精度 2.89→2.42且延迟 13.6→20.1 ms(一举两得);去掉两阶段蒸馏 → 延迟暴涨到 74.0 ms(controller 始终关闭);自适应步长优于全部固定步长;T = 5 T=5T=5为最优轨迹窗。
- 部署友好。不需要专用 kernel(对比量化/剪枝类方法),不需要微调 LLM 骨干,不需要多个动作头,直接适配标准自回归 VLA。
- 分析扎实。明确指出既有跳层方案的两个失效模式——等间隔/全跳末尾忽略层重要性差异,以及 controller 串行带来的额外延迟——并用 Fig. 4 的对比图给出直观证据。
缺点
- 不是免训练,也不压缩模型。需要离线做层间相似度扫描、训练 controller 与 adapter;模型权重本身不变,显存占用与参数量完全不减少,只减少计算量。
- 仍有精度折损。在部分指标上未追平原模型:Calvin 上 2.89 vs 2.92,LIBERO 平均 96.5% vs 97.1%。加速与精度的权衡需要按任务标定。
- 只加速 LLM 骨干。视觉编码器未被触及,若视觉侧成为瓶颈则收益受限。
- 引导规则是启发式的。连续性阈值、允许点移动步长、轨迹窗T TT都需要调参;且连续性只是动作重要性的间接代理——某些不改变动作幅度的决策(如换抓取策略)可能检测不到。
- 仅仿真评测。实验全部在 Calvin 与 LIBERO 上进行,未给真机延迟与控制频率的实测(仅提到在 A6000 上因 action chunk 一次预测 8 个动作,控制频率可达 23.2 Hz)。
- 静态层比例需要权衡。比例越低延迟越小但精度略降,越高则延迟上升而精度几乎不再提高——20% 是折中点,但这一结论来自单一数据集。
一句话总结:DySL-VLA 把"跳层"从无差别的均匀压缩,改造成按层重要性分级、按动作重要性调节的自适应机制,用"静态层兜底 + 允许点分级 + 先验-后验引导 + 两阶段蒸馏"四个组件把加速比做到 3.75×,同时把训练成本压到同类方法的百分之一量级。