当前位置: 首页 > news >正文

EfficientVLA:面向视觉-语言-动作模型无训练的加速与压缩

25年6月来自上海交大、哈工大、西安交大和电子科大(成都)的论文“EfficientVLA: Training-Free Acceleration and Compression for Vision-Language-Action Models”。

视觉-语言-动作 (VLA) 模型,特别是基于扩散的架构,展现出具身智能的变革潜力,但却受到大量固有冗余和推理时间冗余导致的高计算和内存需求的严重阻碍。虽然现有的加速工作通常针对孤立的低效率问题,但这种零碎的解决方案通常无法整体解决整个 VLA 流程中的各种计算和内存瓶颈,从而限制了实际部署。EfficientVLA,是一个结构化、无需训练的推理加速框架,它通过整合利用多方面的冗余来系统地消除这些障碍。EfficientVLA 协同集成了三种有针对性的策略:(1)在层间冗余分析的指导下,从语言模块中修剪功能上不重要层;(2)通过任务-觉察策略优化视觉处理路径,该策略选择一组紧凑、多样化的视觉tokens,在任务关键性和信息覆盖率之间取得平衡; (3)通过策略性地缓存和重用关键中间特征,减轻基于迭代扩散动作头中的时间计算冗余。该方法应用于标准 VLA 模型 CogACT,推理速度提高 1.93 倍,FLOP 降低到 28.9%,而在 SIMPLER 基准测试中成功率仅下降 0.6%。

如图所示VLA 推理瓶颈和冗余分析:(a)可视化 token 剪枝对 FLOPs 和推理时间的影响,揭示了计算受限和内存受限的情况。(b)LLM 隐状态的层间余弦相似性较高,表明存在深度冗余。(c)扩散步骤中 MLP/注意特征的时间余弦相似性,表明存在计算冗余。

请添加图片描述

准备工作:视觉-语言-动作模型

视觉-语言-动作 (VLA) 模型代表一类多模态系统,旨在连接感知、语言理解和机器人动作。这些模型通常通过一系列专门的模块处理图像观测和自然语言指令,以生成可执行的动作序列。基本 VLA 模型的初始阶段采用视觉模块,该模块包含强大的预训练编码器 DINOv2 [35] 和 SigLIP [36],用于将原始视觉输入 O_img 转换为一组丰富的特征嵌入 F_V。这些视觉特征 F_V 以及token化的语言指令随后被语言模型主干网络接收。该 LLM 执行多模态融合和上下文推理,以导出面向任务的表征或条件信号 F_V L,它封装了对场景和指令目标的理解。最后,基于扩散的动作头将从输出特征 F_V L 中提取的认知特征作为输入,并预测具有 7 个自由度 (DoF) 的夹持器最终动作空间。

如图所示EfficientVLA 框架概述,这是为加速基于扩散的 VLA 而提出的无训练结构化方法。它采用以下方法:(1) 修剪冗余的语言模块层;(2) 基于 VLA 任务感知的视觉 token 选择,平衡任务相关性和信息多样性;(3) 在扩散动作头中对中间特征进行时间缓存。

请添加图片描述

视觉-语言模型剪枝

层冗余分析

VLA 模型中的语言模块(通常为多层 Transformer 解码器)对于多模态推理至关重要,但通常会带来大量的计算开销。这种 Transformer 中的每一层 l 都会通过残差变换更新其输入隐藏状态 x(l):x(l+1) = x(l) + f(x(l), θ(l)),其中 f(·) 是特定于层的函数,参数为 θ(l),d 是隐藏层维度,S 是序列长度。实证分析(如上图 (b) 所示)揭示了该语言模块组件在深度方向上存在显著的表征冗余。具体而言,对于许多层(尤其是较深的层),输入 x(l) 和输出 x(l+1) 状态之间存在较高的余弦相似度。这表明这些层赋予的有效变换 f(x(l), θ(l)) 很小,因此它们的功能不太重要,是进行剪枝以提高推理效率的主要候选,同时对任务性能的影响可以忽略不计。

重要性-驱动的非连续层剪枝

为了解决 VLA 模型语言模块中已发现的深度冗余问题,首先严格量化每层的功能重要性。其方法旨在识别对隐状态表示变换贡献最小的层,并将其作为剪枝的候选。根据以下原则为给定层 l 定义重要性得分 I(l):对其输入产生重大影响的层,比输出与其输入紧密相关的层更为重要。具体而言,I(l) 量化为, 1 减去其在一个 VLA 训练样本的代表性数据集 D 上每个样本的所有 L 个 token 位置上输入和输出隐状态之间平均余弦相似度:

请添加图片描述

一个高余弦相似度表明一个层函数 f(x(l), θ(l))的最小变换效果,造成重要性得分 I(l) 较低,表明存在功能冗余。

基于这些重要性得分,采用一个非连续的剪枝策略。对于包含 N 层的 LLM,计算每一层 l ∈ {1, …, N } 的重要性得分 I(l)。然后按升序对这些得分进行排序,得到一个有序的层索引列表 L_ranked = [l_(1), l_(2), …, l_(N)],并且 I(l_(1)) ≤ I(l_(2)) ≤ · · · ≤ I(l_(N))。随后,从该列表 {l_(1), l_(2), …, l_(n)} 中选择前 n 层从模型中删除。

任务-相关性和多样性-驱动的视觉 token 剪枝

VLA 模型处理的视觉 tokens 流尽管信息内容丰富,但经常表现出明显的冗余,从而带来巨大的计算和内存开销。这种冗余通常表现为两种主要形式:(i) 与特定 VLA 任务目标相关性较低的 tokens;(ii) 由于输入中固有的视觉相似性而导致信息重复的 tokens。为了抵消这些不同形式的冗余,引入一种无需训练的、基于 VLA 任务-觉察的视觉 token 剪枝方法。其方法策略性地蒸馏出一个紧凑但信息量最大化的视觉 token 子集 V_pruned ⊂ V,其大小为 K_final(从输入图像中派生出的初始 N_total 个 token 嵌入 V = {v_1, v_2, …, v_N_total })。实现这一目标的方法是:首先,将选择锚定在通过注意分析识别出的任务关键型 tokens 上;然后,通过合理地平衡持续的任务相关性与通过相似性度量明确提升特征多样性,从而扩充这一核心集。

量化任务相关性

为了指导视觉 token 剪枝,利用来自选定 VLM 层的交叉注意得分,量化每个初始视觉 tokens v_i(来自一组 N_total)的任务相关性。这些得分捕捉 v_i 对 L_ctx 任务定义上下文嵌入(例如,语言指令)的注意。

令 A(h)_i,j 表示从视觉 token v_i 到第 h 个注意头(总共 H 个头)中第 j 个上下文 token 的注意。计算 v_i 的原始任务相关性得分 r_i 的方法是:首先对每个视觉-上下文对 (i, j) 的所有 H head 注意贡献进行平均,然后将所有 L_ctx 个上下文元素的平均注意相加:

请添加图片描述

这些原始得分 r_i 表示每个 token 与任务上下文的整体参与度,随后将其归一化(例如,通过最小-最大规模化)为标准化得分 s_i ∈ [0, 1],以便进行稳健比较和后续的 token 选择。

关键任务相关 token 的选择

基于归一化的任务相关性得分 {s_i},剪枝的第一阶段会确定一组与 VLA 任务相关性最高的 K_key 个视觉 token(例如,经验性地设置 K_key 在 4 到 8 之间)。这些 token 构成核心且不可或缺的视觉 token 集 V_key:

V_key = {v_i ∈ V | s_i 在 {s_k}Ntotal_k+1 中 K_key 得分最高的}

V_key 中的 token 无条件地保留在 V_pruned 中,构成对任务理解和成功执行至关重要的视觉线索基础框架。剩余的候选 token 集合(需进一步考虑)表示为 V_rem = V \ V_key。

增强平衡相关性与多样性的选择

为了补充核心集 V_key 并达到目标最终 token 数 K_final,需要从 V_rem 中精心挑选额外的 K_aug = K_final − K_key 个 tokens。这一关键的增强阶段由 α ∈ [0, 1] 比率引导,该比率协调一种混合选择策略,既能持续强调任务相关性,又能引入信息多样性。

任务-驱动增强。增强配额的一部分,即 K_task = |α·Kaug| 个tokens,是通过进一步根据 tokens 的高任务相关性得分 s_i 进行优先级排序,从 V_rem 中选出的。V_task 通过合并额外的 tokens(虽然不属于初始 K_key 精英,但仍表现出强相关性信号)来强化剪枝表征以任务为中心的特性。这些 tokens 被添加到选择中,并更新剩余候选池:V_rem ← V_rem \ V_task。

多样性驱动的增强。从更新后的 V_rem 中选择剩余 K_div = K_aug − K_task 个 token,其明确目标是最大化相对于关键选定 token 的特征多样性。此步骤对于捕获更广泛的视觉信息并减少仅靠任务相关性无法解决的固有冗余至关重要。对于每个候选 token v_j ∈ V_rem,计算其与集合 V_key 的差异度。一个常用的度量是余弦距离,以确保所选 token 在嵌入空间中互不相同:

请添加图片描述

从 V_rem 中选择差异度得分最高的 K_div 个 token(即与已选定 token 差异最大的 token),组成集合 V_div。这种有针对性地纳入多样化 token 的做法,确保最终选择不会过于专业化,并保留了更丰富的上下文理解。

最终修剪后的视觉 token 集。修剪后保留的完整视觉 tokens 集是这些策略性选择的组件的并集:

V_pruned = V_key ∪ V_task ∪ V_div

最终集合 V_pruned 的基数为 K_final,随后将用于 VLA 模型中的所有下游处理。这种视觉序列长度的系统性缩短显著降低了计算需求,同时保留了关键任务特定且多样化的视觉信息。

动作预测中的中间特征缓存

使用基于扩散的 VLA 模型生成高保真动作序列涉及一个迭代去噪过程,由于在 T 个时间步上重复进行自注意和多层感知器 (MLP) 计算,该过程需要大量计算。动作生成过程中产生的中间特征具有很强的时间一致性(上图 ©),这表明跨时间步存在大量冗余。为了解决这种低效率问题并加速动作生成阶段,提出一种静态缓存机制。该策略会以固定间隔 N 定期重计算并缓存关键的中间注意和 MLP 输出,并在动作序列生成的中间时间步中重复使用这些缓存值。这种选择性计算旨在显著降低与生成动作序列相关的计算成本,同时保持其质量。

DiT 块中的特征生成和时间一致性

令 t 表示当前去噪时间步长,通常从初始 T_start 向下迭代至 1。在每个 DiT 块中,在时间步长 t 处,输入特征 z_t(可能包含来自上游 VLM 模块的认知特征 f_t 和当前噪声估计)依次由自注意模块和多层感知器 (MLP) 模块处理,以生成中间隐藏状态:

hattn_t = Self-Attn(z_t)
hmlp_​​t = MLP(hattn_t + z_t)

这些特征 hattn_t 和 hmlp_​​t 是扩散模型去噪能力的基础。它们具有高度的时间一致性——对于许多 t 和模块类型,hmodule_t ≈ hmodule_t-1——这促使它们被定期缓存和重用。

静态 N 步缓存实现

定义一个缓存区间 N (1 ≤ N < T_start)。在初始时间步 t = T_start,计算特征 hattn_T_start 和 h^mlp_T_start,并将其存储在持久缓存中,分别记为 C_attn 和 C_mlp。对于任何后续时间步 t < T_start,当且仅当 t (mod N ) = 0 时,才会重新计算这些特征并更新缓存(假设 t > 0 且 t 与所需的缓存倍数一致,例如 T_start、T_start − N、T_start − 2N,…)。因此,对于这样的重新计算时间步:

C_attn ← Self-Attn(z_t)
C_mlp ← MLP(C_attn + z_t)

此步骤的输出为 hattn_t = C_attn 和 hmlp_​​t = C_mlp。在所有其他时间步中,当 t (mod N) ̸= 0 时,计算密集型的 Self-Attn 和 MLP 操作将被完全绕过。

相反,所需的特征会直接从最近填充的缓存中检索:

hattn_t ← C_attn(当 t (mod N) ̸= 0 时)
hmlp_​​t ← C_mlp(当 t (mod N) ̸= 0 时)

此静态缓存调度有效地减少初始化后每 N 个时间步中 N - 1 个核心模块的执行,从而显著减少 VLA 动作生成组件的浮点运算和延迟。N 的选择允许在加速度和生成动作的保真度之间进行可调整的权衡,因为如果底层表示快速变化,则较长时间间隔内重复使用特征可能会引入轻微的偏差。

实验设置

模拟实现细节。为了评估 VLA 模型,利用 SIMPLER 环境 [23],这是一个基于模拟的桌面操作基准测试。SIMPLER 旨在紧密模拟 Google 机器人和 WidowX 等机器人的真实世界动态,展现了模拟结果与真实世界性能之间的稳健一致性。此设置中的 VLA 模型以 224×224 的 RGB 图像观测值和自然语言任务指令(例如“拾取可乐罐”)作为输入,并在 7 自由度笛卡尔空间中输出一系列动作。SIMPLER 支持两种评估配置:视觉匹配(优先考虑与真实世界外观的逼真度)和变体聚合(融合多种条件,例如光照、背景和表面纹理的变化)。对于 Google 机器人,SIMPLER 提供两种评估设置,每种设置都包含相同的四项任务:1) 拾取可乐罐;2) 靠近; 3) 打开/关闭抽屉;以及 4) 打开顶部抽屉并放置苹果。成功率作为评估指标。

基准。对 EfficientVLA 的主要实验验证是在 CogACT [37] 上进行的,它集成强大的视觉编码器(DINOv2 [35] 和 SigLIP [36])、用于多模态推理的 Llama2-7B [15] 语言模块以及用于生成动作轨迹的扩散 transformer (DiT)。以相关的基准方法为基准,其中包括一种随机丢弃方法,其中 112 个视觉 token 被均匀地随机保留,以评估引导式视觉 token 修剪的优势。进一步将其与 FastV [38](一种著名的方法,专注于通过修剪冗余视觉 token 来加速推理)和 VLA-Cache [22](利用时间分析跨时间步缓存静态 token)进行比较。

实现细节。对于 EfficientVLA,除了层修剪之外,还采用 PruneNet [39] 配置进行 LLM 压缩,进一步压缩模型参数。具体而言,对所有 Transformer 模块的 MLP 层应用 25% 的稀疏度。对于视觉 token 修剪,从第二层 Transformer 层开始,对于关键任务 token,其比例 α = 50%,K_key = 4。此外,缓存间隔设置为 5。所有实验均在 NVIDIA A40 GPU 上进行,推理时间以平均单步推理时长来衡量。

SIMPLER 环境

SIMPLER 模拟环境是评​​估 VLA 模型的主要基准。它经过专门设计,能够紧密反映现实世界的机器人设置,从而促进更真实的评估,并弥合真实与模拟之间的控制和视觉差距。

SIMPLER 提供两种不同的评估设置:
• 视觉匹配 (VM):此设置通过最小化模拟环境与真实环境之间的差异,优先考虑真实世界外观的保真度,从而紧密复制真实世界的任务。
• 变型聚合 (VA):此设置以视觉匹配为基础,通过引入背景、光照、干扰项和桌面纹理等元素的变化,挑战模型在不同条件下的泛化能力。
对于谷歌机器人设置,SIMPLER 提供两种评估设置,每种设置都包含相同的四项任务:1) 拾取可乐罐;2) 靠近;3) 打开/关闭抽屉;4) 打开顶部抽屉并放置苹果。

相关文章:

  • Linux——linux的基本命令
  • 全面掌握 C++ 基础:关键特性与进化
  • 深入理解 Git:从版本控制原理到企业级实践
  • 医疗AI大数据处理流程的全面解析:从数据源到应用实践
  • 【世纪龙科技】智能网联汽车装调仿真教学软件数智化赋能实训教学
  • 有方 N58 LTE Cat.1 模块联合 SD NAND 贴片式 TF 卡 MKDV1GIL-AST,打造 T-BOX 高性能解决方案
  • 解锁数据宝藏:数据挖掘之数据预处理全解析
  • react扩展
  • Flutter ListTile 深度解析
  • 一[3.4]、ubuntu18.04环境 利用 yolov8n-seg实现“列车轨道”区域分割,并提取正确的轨道线【全网最详细】
  • 退出python解释器的四种方式
  • Flang:LLVM Fortran 前端简介
  • IPv4编址及IPv4路由基础
  • python画三维立体图
  • 【支持向量机】SVM线性可分支持向量机学习算法——硬间隔最大化支持向量机及例题详解
  • 用Zynq实现脉冲多普勒雷达信号处理:架构、算法与实现详解
  • Github 热点项目 [特殊字符]PHP性能革命!FrankenPHP让Laravel/Symfony飞起来!
  • 【郑州轻工业大学|数据库】数据库课设-酒店管理系统
  • C# winform教程(二)----GroupBox
  • Laravel框架的发展前景与Composer的核心作用-优雅草卓伊凡
  • 怎么做网站关键词搜索/上海百度seo
  • 做网站的经历感想/微信管理系统软件
  • 网站推广公司大家好/成都seo网络优化公司
  • 网站制作价格表模板/外链大全
  • 手表网站欧米茄官方/怎么样把自己的产品网上推广
  • 网站自动采集系统/网络营销常用的工具