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) 打开顶部抽屉并放置苹果。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/85585.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/85585.shtml
英文地址,请注明出处:http://en.pswp.cn/bicheng/85585.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

wireshark抓包分析TCP数据包

1、直接从TCP的三次握手开始说起 三次握手就是客户与服务器建立连接的过程 客户向服务器发送SYN(SEQ=x)报文,然后就会进入SYN_SEND状态服务器收到SYN报文之后,回应一个SYN(SEQ=y)ACK(ACK=x+1)报文,然后就会进入SYN_RECV状态客户收到服务器的SYN报文,回应一个ACK(AC…

同等学力申硕-计算机统考-历年真题和备考经验

同等学力申请硕士学位考试是比较适合在职人员的提升学位方式&#xff0c;了解过的人应该都知道&#xff0c;现在社会的竞争压力越来越大&#xff0c;为了提高职业生存能力&#xff0c;提升学位在所难免。 一、已有计算机统考历年真题资料 报名过同等学力申硕计算机专业的朋友都…

OSI网络通信模型详解

OSI 模型就是把这整个过程拆解成了 7 个明确分工的步骤&#xff0c;每一层只负责自己那一摊事儿&#xff0c;这样整个系统才能顺畅运转&#xff0c;出了问题也容易找到“锅”在谁那。 核心比喻&#xff1a;寄快递 &#x1f4e6; 想象你要把一份重要的礼物&#xff08;你的数据…

C++ 检测文件大小和文件传输

检测文件的大小 你可以通过标准 C/C 的文件 API 很方便地获取文件的字节大小&#xff0c;以下是几种常用方法&#xff1a; ✅ 方法一&#xff1a;使用 stat() 函数&#xff08;推荐&#xff09; #include <sys/stat.h> #include <stdio.h>off_t get_file_size(co…

Ubuntu 中修改网卡 IP

在 Ubuntu 中修改网卡 IP 地址可以通过以下方法实现&#xff0c;具体取决于你使用的网络管理工具&#xff08;如 netplan、ifconfig/ip 命令或传统 interfaces 文件&#xff09;。以下是常见方法&#xff1a; 方法 1&#xff1a;使用 netplan&#xff08;Ubuntu 17.10 及更新版…

记录学习three.js 为什么 .glTF 是更适合 Web 的 3D 模型格式?——从 .OBJ 到 .glTF 的转变⑭

在上一篇中&#xff0c;我们介绍了如何在 Three.js 中加载 .OBJ 模型。如果你没看过&#xff0c;建议先阅读一下基础内容。然而你很快会发现&#xff0c;.OBJ 虽然入门简单&#xff0c;却并不是 Web3D 场景中的最佳格式。 .OBJ 是什么&#xff1f; .OBJ 是最早期的3D交换格式之…

H递归函数.go

前言&#xff1a;递归函数是一种强大而又充满魅力的编程技巧。它就像是一面神奇的镜子&#xff0c;函数在其中能够调用自身的倒影&#xff0c;从而以一种简洁而优雅的方式解决许多复杂的问题。 目录 一、递归函数是啥玩意儿 二、递归函数的优缺点 优点 缺点 三、递归函数…

软件功能测试的测试标准

一、软件功能测试行业标准概述 软件功能测试行业标准是规范软件测试流程、方法、工具及人员资质的准则&#xff0c;是确保软件产品的功能性、可靠性、易用性等质量特性符合用户需求。这些标准不仅为测试人员提供了明确的指导&#xff0c;也为软件产品的质量控制提供了有力保障。…

EchoEar(喵伴):乐鑫发布与火山引擎扣子联名 AI 智能体开发板

随着生成式人工智能技术的快速发展&#xff0c;大语言模型 (LLM) 正逐步成为推动智能设备升级的核心力量。乐鑫科技携手火山引擎扣子大模型团队&#xff0c;共同推出智能 AI 开发套件 —— EchoEar&#xff08;喵伴&#xff09;。该套件以端到端开发为核心理念&#xff0c;构建…

图像特征检测算法SIFT

SIFT&#xff08;Scale - Invariant Feature Transform&#xff0c;尺度不变特征变换&#xff09;是一种计算机视觉领域的特征提取算法&#xff0c;具有重要的地位和广泛的应用。 算法原理 构建高斯金字塔 &#xff1a; 为了实现多尺度检测&#xff0c;SIFT 算法会构建高斯金…

光纤通道收发器:市场洞察、技术演进与未来机遇

一、引言 在数字化浪潮席卷全球的当下&#xff0c;数据存储与传输的需求呈爆发式增长。光纤通道收发器作为高速、可靠数据存储网络&#xff08;如存储区域网络 SAN&#xff09;中的关键组件&#xff0c;发挥着至关重要的作用。它通过光纤实现服务器、存储设备和交换机之间的数…

candence17.4如何设置两个焊盘之间在TOP与BOTTOM可以存在两根线

为什么要走两根线&#xff1f; 为了过大电流&#xff0c;有时候就需要我们在TOP、BOTTOM两个面走线&#xff0c;同时开窗&#xff0c;然后通过加锡的方式增加过流能力&#xff1b; 当然由于两面都有导线&#xff0c;必然会存在过孔&#xff0c;而过孔的过流能力不仅与过孔孔径…

Dify:参数调节,让LLM从能用到好用的机制

前言 随着大语言模型(LLM)在文本生成、智能对话、技术问答等前沿领域的深度渗透&#xff0c;参数精细化调节已成为开发者驾驭 AI 能力的核心必修课。 本文将系统的解释温度(Temperature)、核采样(Top - P)、截断采样(Top - K)等关键参数的底层作用机制&#xff0c;结合多种场景…

防抖不同的实现

防抖&#xff08;Debounce&#xff09;&#xff1a;在事件被触发后&#xff0c;延迟一段时间再执行函数。如果在延迟期间事件再次被触发&#xff0c;则重新计时。常用于搜索框输入、窗口大小调整等场景。 1.不安装任何依赖和库&#xff0c;编写一个防抖的函数 在utils里面增加…

MySQL 数据库索引详解

一、索引是什么&#xff1f;能干嘛&#xff1f; 类比理解&#xff1a;索引就像书的目录。比如你想查《哈利波特》中 “伏地魔” 出现的页数&#xff0c;不用逐页翻书&#xff0c;直接看目录找关键词就行。数据库里的索引就是帮你快速找到数据的 “目录”。 核心作用&#xff…

【620公司工作记录】

已有数据汇总 好的,完全同意。在编写新代码之前,清晰地盘点我们手中已有的“弹药”是至关重要的一步。 根据您提供的 test/20250610_88_100mm_frame_000.csv 文件头,我来为您完整地解析一下我们当前拥有的全部数据字段。我们的数据是以“行”为单位组织的,每一行都代表一…

SpringBoot 集成Caffeine实现一级缓存

SpeingBoot 集成Caffeine实现一级缓存使我们经常遇到的场景。今天我们具体分享一下&#xff1a; 首先 Caffeine 作为一级缓存&#xff0c;它是 Spring 5.x 默认的本地缓存实现&#xff0c;性能优于 Guava Cache&#xff0c;且支持过期时间设置。缓存执行的流程图如下&#xff…

中科米堆3D自动扫描检测系统三维数字化智能解决方案

3D自动扫描检测系统基于先进的光学、激光或结构光等测量技术&#xff0c;能够快速、准确地获取工件的三维几何数据。在检测过程中&#xff0c;系统通过向被测工件投射特定的光模式&#xff0c;利用高分辨率相机捕捉工件表面的反射光信息&#xff0c;再经过复杂的算法处理&#…

Unity3d中使用Mirror进行自定义消息通信

一、服务端&#xff1a; 1.创建服务端脚本MyServer.cs 继承自NetworkManager类 using Mirror; using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI;public class MyServer : NetworkManager {[Header(&quo…

Odoo 18 固定资产管理自动化指南

如何在Odoo 18中实现资产管理自动化 1. 创建资产模型实现资产管理自动化 使用 Odoo 18 的会计模块&#xff0c;资产的创建和确认可轻松实现自动化。这将使资产管理变得更加简单高效。使用资产自动化功能&#xff0c;一旦验证相关产品的供应商账单&#xff0c;Odoo将自动生成并…