news 2026/10/15 14:47:51

论文笔记:DySL-VLA:Efficient Vision-Language-Action Model Inference via Dynamic-Static Layer-Skipping for

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
论文笔记:DySL-VLA:Efficient Vision-Language-Action Model Inference via Dynamic-Static Layer-Skipping for

论文笔记: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−11​k=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×,同时把训练成本压到同类方法的百分之一量级。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/15 14:47:36

归并排序工程实践:从分治原理到生产级实现

1. 为什么归并排序是工程师绕不开的“基本功”?——它不只是一种算法,而是分治思想的第一次实战课你可能已经背过“时间复杂度O(n log n)、稳定、非原地”的标准答案,也刷过LeetCode上那道经典的“排序链表”,但真正动手写一个能处…

作者头像 李华
网站建设 2026/10/15 14:47:23

OpenRig全解析:从硬件选型到自托管服务的家庭服务器搭建指南

OpenRig 这个项目,最早其实只是我存在备忘录里的一份装机清单。后来装机装得多了,发现清单里每一项背后都藏着一堆文档、论坛帖子和试错记录,干脆把它们整理成一套可复现的开放式工作台方案。说白了,OpenRig 就是一套你自己能看懂…

作者头像 李华
网站建设 2026/10/15 14:46:51

Python数据存储实战:NoSQL核心应用与避坑指南

做Python后端这几年,我处理过的数据存储方案不算少,从早期单库走天下,到后来在项目里大面积引入NoSQL数据库,再到现在学会把关系型和非关系型方案混着用,这个过程中踩过的坑足够写满一屏幕。今天这篇不想讲教科书式的概…

作者头像 李华
网站建设 2026/10/15 14:46:43

微信云开发校园小程序实战:从环境配置到权限模型与避坑指南

简介:面向校园场景的微信云开发小程序完整项目源码,集成了博客发布、二维码扫描与用户登录三大模块,适合在校师生、小程序初学者或需要快速搭建校园信息平台的开发者使用。资源基于微信小程序原生框架与云开发后端,利用云数据库、…

作者头像 李华
网站建设 2026/10/15 14:46:32

RxKotlin 官方指南:RxJava 的 Kotlin 扩展函数库

异步编程后端 【免费下载链接】RxKotlin RxJava bindings for Kotlin 项目地址: https://gitcode.com/gh_mirrors/rx/RxKotlin 点击查看 免费下载 导读 RxKotlin 是一个轻量级库,为 RxJava 提供便捷的 Kotlin 扩展函数。在 Kotlin 中直接使用 RxJava 虽…

作者头像 李华
网站建设 2026/10/15 14:45:45

DevExpress复合表头实现指南:BandedGridView多级表头全解析

简介:这是一份基于DevExpress控件库实现多行表头(复合表头)的完整示例工程,面向.NET WinForms开发人员,解决GridControl默认单行表头难以呈现分级分类的问题。复合表头常见于统计报表,用来展示大类别、子类…

作者头像 李华