论文笔记:SpecPrune-VLA:Accelerating Vision-Language-Action Models via Action-Aware Self-Speculative Pruning

背景

视觉-语言-动作(VLA)模型的推理瓶颈在哪里?论文先做了一轮系统的画像分析,结论相当明确:

  • LLM 骨干占了端到端延迟的 70% 以上(OpenVLA、CogACT、OpenVLA-OFT、DB-OFT 四个代表模型均如此);
  • 新一代 VLA(OpenVLA-OFT、DB-OFT)改用单步范式:一次 LLM 前向(只有 prefill 阶段)直接输出整段低层动作,token 数动辄数百;
  • 在 A800 GPU 的 roofline 模型下,这些模型的实际算术强度都落在计算受限(compute-bound)区——延迟来自计算量本身,而不是访存。

这组事实决定了加速手段的选型方向:对计算受限的模型,剪枝比 KV-cache 复用这类访存优化更对症。

但已有 VLA token 剪枝方法有一个共同缺陷:只利用了当前推理步的局部信息。EfficientVLA 用单层注意力启发式剪枝并补充多样化 patch,容易引入任务无关内容、缺乏全局视野;SP-VLA 保留视觉编码器高显著度的 token,滤不掉语义冗余。其后果是要么成功率掉 20% 以上,要么加速比上不去。VLA-Cache 虽然复用了跨步 KV,但只省 17% 计算还带来额外显存访问开销。

论文链接:arXiv:2509.05614(上海交大等,免训练推理加速插件)

中心思想

SpecPrune-VLA 建立在两条对 VLA 任务成立的经验观察上:

观察 1:层次化注意力模式。 图像到文本的注意力随深度演化:浅层广泛扫视背景与无关区域(桌面纹理),甚至漏掉任务目标;中层关注语义相关物体(即便不直接参与动作);深层聚焦动作中心(action-centric)的 token(如目标盘子)。事后剪枝实验显示:随机剪枝在 12.5% 稀疏度内不掉点,超过后断崖;浅层引导剪枝在高稀疏度下掉 10% 以上;而中层+深层组合引导在 86% 剪枝率下仍近乎不掉点——可靠信号来自中深层,而非浅层。

观察 2:时空一致性。 相邻推理步间隔极短,任务目标不变、场景大部分不变,因此上一步的全局重要 token 在这一步大概率仍然重要。论文定义"重要 token 召回率"来量化:

R e c a l l ( V t − 1 , V t ) = ∣ V t − 1 ∩ V t ∣ ∣ V t ∣ \mathrm{Recall}(V^{t-1}, V^t) = \frac{|V^{t-1} \cap V^t|}{|V^t|} Recall(Vt−1,Vt)=∣Vt∣∣Vt−1∩Vt∣​

实测在三个相机视角下平均达 75%–88%,且可视化显示相邻步的全局重要 token 高度重叠。

由此得到本文的核心主张:token 选择应把局部信息与模型的全局上下文结合起来——用上一步中/深层的全局注意力作为当前步的"先验",再加上当前步的局部信息做补充。

主要方法

方法由三层递进的组件构成,整体流程是:动作级静态剪枝(进 LLM 前)→ 层级动态剪枝(LLM 内部)→ 动作感知控制器(调度全局激进程度)。

1. 动作级静态剪枝:三个来源的 token 并集

在 LLM 前向开始前,把视觉 token 削减 60%–70%。保留集合为:

V retain = V global ∪ V dynamic ∪ V local V_{\text{retain}} = V_{\text{global}} \cup V_{\text{dynamic}} \cup V_{\text{local}} Vretain​=Vglobal​∪Vdynamic​∪Vlocal​

(a) 全局信息复用( V global V_{\text{global}} Vglobal​)。 在"视觉 token 为 query、文本 token 为 key"的注意力里,视觉 token 分给指令 token 的注意力高,说明它重要。对第 l l l 层、第 h h h 个头求所有指令 token 的平均,得到任务相关度:

S c o r e l ( V i ) = 1 H ⋅ m ∑ h = 1 H ∑ j = 1 m A l h ( V i , t j ) \mathrm{Score}^l(V_i) = \frac{1}{H \cdot m}\sum_{h=1}^{H}\sum_{j=1}^{m} A^h_l(V_i, t_j) Scorel(Vi​)=H⋅m1​h=1∑H​j=1∑m​Alh​(Vi​,tj​)

取上一步中第 15 层与第 32 层(中层与深层)得分最高的 top- K global K_{\text{global}} Kglobal​ 个视觉 token。这就是"自投机"的核心:不训练草稿模型,直接复用上一步已经算出来的注意力作为当前步的全局先验。

(b) 动态 token 补充( V dynamic V_{\text{dynamic}} Vdynamic​)。 场景里变了的部分不能沿用旧注意力。将前后两帧按 token 大小切成 N × N N\times N N×N patch,计算对应 patch 的余弦相似度:

S i m ( P m i , j , P n i , j ) = P m i , j ⋅ P n i , j ∥ P m i , j ∥ 2   ∥ P n i , j ∥ 2 \mathrm{Sim}(P^{i,j}_m, P^{i,j}_n) = \frac{P^{i,j}_m \cdot P^{i,j}_n}{\|P^{i,j}_m\|_2 \, \|P^{i,j}_n\|_2} Sim(Pmi,j​,Pni,j​)=∥Pmi,j​∥2​∥Pni,j​∥2​Pmi,j​⋅Pni,j​​

先过滤掉相似度低于阈值 τ \tau τ 的 patch,再从中选最不相似的 top- k k k 个(对应 token)保留。注意参考帧不一定是相邻帧——相邻帧易受相机噪声与光照变化干扰,论文按当前运动速度自适应回溯: T = ⌊ b + k ⋅ v ⌋ + 4 T = \lfloor b + k \cdot v \rfloor + 4 T=⌊b+k⋅v⌋+4( k = − 1 , b = 7 k=-1, b=7 k=−1,b=7),速度快时回溯更远。

© 局部信息补充( V local V_{\text{local}} Vlocal​)。 子目标会变化,所以也要看当前步自己的浅层注意力。关键发现:前两层的 top- k k k 重要 token 有 80%–90% 会在最终层重现(hit rate 实验),且单独用第一层命中率低、加第三层收益边际——因此取前两层各自的 top- K local K_{\text{local}} Klocal​ 并集作为局部信息。这也回答了"为什么不用浅层做全局引导、却能放心用它做局部补充":浅层信号对全局选择不可靠,但对识别当下任务相关 token 有用。

2. 层级动态剪枝:注意力排名 × 层置信度 × EMA

token 在 LLM 层间流动时,上下文不断丰富,重要性应随深度重估。论文每隔若干层设一个"更新层",对重要性做三件事:

排名权重。 对每个注意力头按式 (2) 的注意力分对视觉 token 排名,用 sigmoid 做平滑加权,放大头部与尾部 token 的差距:

ω rank , i ( l ) = σ ( − k ⋅ rank i ( l ) ) ∑ j σ ( − k ⋅ rank j ( l ) ) \omega^{(l)}_{\text{rank},i} = \frac{\sigma(-k \cdot \text{rank}^{(l)}_i)}{\sum_j \sigma(-k \cdot \text{rank}^{(l)}_j)} ωrank,i(l)​=∑j​σ(−k⋅rankj(l)​)σ(−k⋅ranki(l)​)​

层置信度。 注意力熵高 ⇒ 注意力分散 ⇒ 模型"不知道看哪" ⇒ 该层的判断不可靠。计算平均注意力熵:

H ˉ ( l ) = − 1 N ∑ i = 1 N ∑ j = 1 M A i j ( l ) log ⁡ A i j ( l ) , ω conf ( l ) = 1 H ˉ ( l ) + ϵ \bar{H}^{(l)} = -\frac{1}{N}\sum_{i=1}^{N}\sum_{j=1}^{M} A^{(l)}_{ij} \log A^{(l)}_{ij}, \qquad \omega^{(l)}_{\text{conf}} = \frac{1}{\bar{H}^{(l)} + \epsilon} Hˉ(l)=−N1​i=1∑N​j=1∑M​Aij(l)​logAij(l)​,ωconf(l)​=Hˉ(l)+ϵ1​

熵越低、置信度越高(即层置信度是平均注意力熵的倒数)。此值在首次推理时算一次、之后复用——因为层间熵随深度变化显著,但在整个任务过程中保持相似(Fig. 4I)。

EMA 跨层累积。 本层重要性分 s i ( l ) = ω rank , i ( l ) × ω conf ( l ) s^{(l)}_i = \omega^{(l)}_{\text{rank},i} \times \omega^{(l)}_{\text{conf}} si(l)​=ωrank,i(l)​×ωconf(l)​,与前一层累积的重要性做指数移动平均:

S i ( l ) = ( 1 − β ) ⋅ S i ( l − 1 ) + β ⋅ s i ( l ) , β = 0.2 ,   S i ( 0 ) = 0 S^{(l)}_i = (1-\beta) \cdot S^{(l-1)}_i + \beta \cdot s^{(l)}_i, \quad \beta = 0.2,\ S^{(0)}_i = 0 Si(l)​=(1−β)⋅Si(l−1)​+β⋅si(l)​,β=0.2, Si(0)​=0

在每个更新层,按累积重要性排序,剪掉得分最低的 10% token。

3. 轻量级动作感知控制器

并非所有动作对剪枝的容忍度相同。论文观察真机轨迹发现速度分布呈双峰:粗粒度阶段(大位移转移)速度高;细粒度阶段(接触、抓取、放置)平移与旋转速度都低,且 Δ z ≤ 0 \Delta z \le 0 Δz≤0。失败几乎都集中在接触类细粒度阶段——此时微小误差即导致任务失败。

控制器据此设定进入精细模式的判据(位移均经归一化,故与机器人运动学无关):

v t = ( Δ x ) 2 + ( Δ y ) 2 + ( Δ z ) 2 , v r = ( Δ α ) 2 + ( Δ β ) 2 + ( Δ γ ) 2 v_t = \sqrt{(\Delta x)^2 + (\Delta y)^2 + (\Delta z)^2}, \qquad v_r = \sqrt{(\Delta\alpha)^2 + (\Delta\beta)^2 + (\Delta\gamma)^2} vt​=(Δx)2+(Δy)2+(Δz)2 ​,vr​=(Δα)2+(Δβ)2+(Δγ)2 ​

当 v t < v t th v_t < v^{\text{th}}_t vt​<vtth​、 v r < v r th v_r < v^{\text{th}}_r vr​<vrth​ 且 Δ z ≤ 0 \Delta z \le 0 Δz≤0 时进入精细模式、保留更多 token;超出任一阈值(如抬起物体)退出。它本质上是一个基于规则的条件选择器,通过缩放各 K i = α ⋅ K i K_i = \alpha \cdot K_i Ki​=α⋅Ki​ 调节剪枝激进度,开销仅 1.5 ms。作者在 Limitations 中也承认:极高动态场景(接球、打球)下该启发式可能误判为粗粒度,留待未来用可学习的分类器改进。

特点(优缺点)

优点

  • 免训练、即插即用。 不训练任何模块、不改动模型权重,只在推理管线里做 token 筛选,可直接套到 OpenVLA-OFT、DB-OFT、CogACT 三类不同架构(自回归、线性 expert、扩散 expert)与 A800/3090/4090 多平台。
  • 加速与精度的平衡拿捏得当。 LIBERO 上平均加速 1.46×、FLOPs 降到 43%,成功率 96.6% → 96.1%(降 0.5%);SimplerEnv 上 1.34×、FLOPs 42%、70.4% → 70.1%;真机四任务 96.7/82.0/90.0/95.0% vs 基线 96.7/85.0/91.7/95.0%,1.70× 加速。RTX 3090 上 LLM 推理 2.09×、端到端 1.57×。
  • 同类方法中几乎唯一不掉点的激进剪枝。 在可比 token 预算下,FastV 93.3%、DivPrune 89.4%、EfficientVLA 88.9%,本文 96.1%(vs 基线 96.6%)。FastV 用浅层注意力缺全局上下文;DivPrune 保多样性却忽略任务相关性——两条失败路径恰好是本文两个观察的反面印证。
  • 消融链条完整。 去掉全局注意力复用:recall 92%→84%、SR 96.1%→93.4%;去掉熵加权改平均权重:recall 88%→66%、SR 96.1%→92.0%;三个技术逐项叠加 SR 97.6→97.6(Tech1)→96.8(Tech1&2)→97.4(全量),控制器只花 1.5 ms 却把 SR 从 96.8% 拉回 97.4%。 K global = 30 , K local = 24 , K dynamic = 20 K_{\text{global}}=30, K_{\text{local}}=24, K_{\text{dynamic}}=20 Kglobal​=30,Klocal​=24,Kdynamic​=20 由 Recall 指标系统扫描确定,不是拍脑袋。
  • 只剪视觉 token,不动文本与状态 token,任务指令通道保持完整。

缺点

  • 不是无损加速。 LIBERO 平均仍降 0.5%(96.6→96.1),真机 TransferTube 降 3.0%(85.0→82.0)、PickUpCup 降 1.7%——对成功率敏感的产线场景仍需逐任务验证。
  • 控制器是硬编码规则。 双峰假设与 Δ z ≤ 0 \Delta z \le 0 Δz≤0 的判据来自特定机器人平台(Flexiv Rizon4)的轨迹统计,迁移到运动模式不同的本体(如高速抛接)需要重新标定;作者自己也在 Limitations 承认这一点。
  • 依赖"上一步"的全局注意力,冷启动与突变场景是弱点。 第一步没有先验可用;观察 2 的 75%–88% 召回率也意味着 12%–25% 的 token 重要性会跨步漂移,动态补充( V dynamic V_{\text{dynamic}} Vdynamic​)只能部分兜住。
  • 需要为每个模型重新标定一堆超参: K K K 值三件套、阈值 τ \tau τ、回溯窗口系数 k , b k, b k,b、速度阈值 v t th , v r th v^{\text{th}}_t, v^{\text{th}}_r vtth​,vrth​、剪枝比 α \alpha α。论文是按 Recall 最大化的准则系统扫出来的,但这套流程换模型/场景就得重做。
  • 层置信度在首步固定后不再更新。 论文依据是"层间熵在任务过程中相似"(Fig. 4I),这本身是一条经验观察,若任务中段模型注意力模式突变,固定权重可能失准。
  • 剪枝只作用于视觉 token、只加速 LLM 骨干。 对视觉编码器成为瓶颈、或动作头占比高的模型(如 DB-OFT 的 10 步去噪循环),整体加速比被摊薄——DB-OFT 上 1.34× 就明显低于 OpenVLA-OFT 的 1.46×。

一句话总结:SpecPrune-VLA 把"自投机"从投机解码移植到 token 剪枝——不训练草稿模型,直接复用上一步中/深层的全局注意力作为当前步的先验,再以动态 patch 比对和浅层注意力补齐时空两条腿,最后用速度规则把"该省的时候省、该保的时候保"工程化;换来 1.5×–1.7× 加速与不足 1% 的成功率损失,代价是一套需要按平台重新标定的启发式超参。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐