高效VLM:VisionZip

论文:[2412.04467] VisionZip: Longer is Better but Not Necessary in Vision Language Models

github:https://github.com/dvlab-research/VisionZip

LLaVA论文:https://arxiv.org/abs/2310.03744

LLaVA仓库:https://github.com/haotian-liu/LLaVA?tab=readme-ov-file

1.内容概括:       

         LLMs的发展推动了VLMs的发展,现有的VLMs为了把视觉信号与文本语义连接起来,通常采用顺序视觉表示,将图像转换为视觉tokens并通过LLM解码器处理。通过模态对齐和指令调优,这些VLM利用LLM的感知和推理能力,使其适应视觉领域【传统处理方法】。         

        VLM模型性能依赖于视觉token的数量,但是通过增加视觉token的长度(比文本token长度还要长)使得模型性能提升,这种方式显著增加了计算成本,限制了模型在边缘计算、自动驾驶和机器人等实际应用场景中的发展【传统方法的局限性】【问题1:计算成本】。有研究表明:图像中的信息更加稀疏。而现有的最先进的 VLMs 的视觉 tokens 数量远远超过文本 tokens。“所有视觉 tokens 都是必要的吗?”,而经过实验证明CLIP和SigLIP生成的视觉token存在冗余问题2token虽然长,但不都是有用的】。

        如图所示就是改论文所作的实验,左侧的实验是注意力权重分布图,可见高注意力权重(如 0.05–0.10 区间)的标记概率密度低,即此类标记数量少;大量标记的注意力权重集中在 0 附近(概率密度高),说明多数标记未被关注,进一步验证视觉标记冗余现象。

        在两张图片中,高亮度区域是高注意力权重的视觉token,可以看见在整张图中,高注意力权重的区域非常小,那么也就是说视觉token的冗余现象非常严重。而且还可以看见一个现象就是高注意权重的视觉token区域并不在图像的主要目标物体中,例如图中的人物或者出租车,而是出现在了马路上,这种高注意力权重视觉token的偏移现象似乎也能解释为什么在LLM阶段根据文本与图像之间的对应关系筛选主导token时可能性能下降比较明显:因为与文本对象关联的视觉主体上的视觉token权重并不高,这样筛选出的视觉token会丢失大量的图像原本的信息。

        VisionZip的解决方案:选择一组信息丰富的 tokens 作为语言模型的输入,减少视觉 tokens 的冗余,提升效率的同时保持模型性能。VisionZip可广泛应用于图像和视频理解任务,尤其适合多轮对话等实际场景,而此前的方法在这些场景中表现欠佳【优势】。 

A: 性能对比雷达图

        对比使用 VisionZip 优化的LLaVA-1.5模型与当前高效VLM模型优化方法(如 FastV、SparseVLM 等)在 11 个基准测试(如 LLaVA-Bench、MME、TextVQA、VQAV2 等)上的性能表现。VisionZip 在仅使用 10%tokens的情况下,实现了接近当前最优模型95% 的性能。

B: 预填充时间对比柱状图

       基座模型选择LLaVA-NeXT,7B是70亿参数版本。VisionZip 大幅优化了预填充效率,将 LLaVA-NeXT 7B 模型的预填充时间从 218ms 减少至 27ms,实现了8 倍的时间缩减(Reduction: 8x),同时可以达到基座模型性能的95%

C: 推理时间与性能对比柱状图

       三个模型:LLaVA-NeXT 13B,经过VisionZip优化的13B模型,LLaVA-NeXT 7B,内容:在 11 个基准测试中的 GPU 推理时间与性能。经过VisionZip优化的13B模型推理时间上是原本13B模型的1/2,性能可以达到96.5%,比7B模型的推理时间还少,性能却更好(96.1%)。

2.方法总结:

        VisionZip方法总结起来就是删去无用的视觉token以达到提高推理速度的作用。这种类型的方法在此之前已经出现过,比如FastV、SparseVLM这类,但是他们主要在VLM的LLM阶段(Vision Encoder->MM->LLM)对视觉token进行处理,在这个过程中操作较为复杂而且性能损失较大。VisionZip选择的道路是在VisionEncoder之后就对视觉token进行处理,主要的处理分为两个步骤:

2.1:保留主导token:

        这一块的主要思路是确定一个阈值k,即我们要保留多少高注意力权重的视觉token,然后根据CLS标识得到所有视觉token的注意力得分,然后选择其中最高的k个做保留即可。

2.2:合并其余token:

        这一块的主要思路是在剩余的视觉token中,可能他们所携带的信息量并不多,但是完全删去他们可能会损失模型的性能,因此对于剩余的token要做一定的合并处理,首先给定一个阈值M,即要合并出多少个token,之后将剩余的视觉token分割为两部分,一部分是目标token,一部分是合并token,计算出合并token与目标token之间的余弦相似度,此时,对于每一个合并token来说,只保留与他相似度最大的目标token的索引,然后统计针对每一个目标token,有哪些合并token要与他合并,最后进行求和相加即可完成合并工作。 

3.实验思路:

实验思路:

        该论文提出的实验思路有三种应用:

        第一种是无训练方法,即只需要在推理时在Vision Encoder之后进行视觉token筛选即可。

        第二种是高效微调方法:视觉token经过了压缩之后出现了一个问题,那就是经过信息性视觉token压缩后,输入到大语言模型的视觉token长度显著减少,这可能导致原本在完整视觉token上训练的视觉语言模型难以适应这种变化,使得视觉和大语言模型空间之间出现差距 ,即两者在信息表示和处理方式上不太匹配。解决方法是通过微调多模态投影器,让它适应减少后的视觉token输入,从而增强视觉和语言空间之间的对齐。具体操作中,只对多模态投影器进行微调,保持模型的其他组件(如视觉编码器、大语言模型主体等)不变。

        第三种方法是从头开始训练:全新训练,整合 VisionZip 方法到模型构建中,从初始训练就应用标记优化策略。

实验结果:

        通过在 Mini - Gemini(基于 ConvNeXt - L)上应用 VisionZip,观察其性能变化,证明 VisionZip 不仅适用于基于 Transformer VLM(如 LLaVA 系列),还能在基于 CNN VLM 中发挥作用,从而验证其跨架构的普适性。如果在 ConvNeXt - L 生成的视觉标记中同样存在冗余,并且 VisionZip 能够有效减少冗余并提升效率,这将进一步证明视觉标记冗余是一个普遍现象,而非特定架构的问题。 

分析:

视觉 tokens 冗余的原因:

注意力跨层变化分析

  • 早期层(如视觉编码器初始层)
    注意力在图像上广泛分布,模型此时在捕捉图像的基础特征(如边缘、颜色、简单形状等),尚未聚焦到特定区域或物体,属于对图像整体信息的初步感知阶段。
  • 中间层
    注意力突然收敛到少量标记(token)。这表明模型在中间层开始筛选关键信息,过滤掉冗余细节,逐步明确对图像中重要内容的关注,是从底层特征向高层语义过渡的阶段。
  • 深层(如第 23 层,用于为大语言模型提取视觉标记,作为VLM的视觉编码器的输出
    注意力和信息高度集中在一小部分 “主导token” 上,达到集中化的峰值。此时模型已识别出图像中最核心、最具信息量的部分,这些主导标记承载了图像的关键语义,是后续大语言模型处理的核心视觉输入。
  • 最后一层(如第 24 层)
    注意力分布更分散。因为最后一层的标记需通过对比损失(contrastive loss)与 CLIP 文本分支对齐,这种对齐操作会让标记更偏向语言空间的特征,而非单纯表示原始图像内容,从而限制了其对原始图像细节的精准表达。

 Softmax 函数的梯度特性会加剧视觉标记冗余:

        当输入值 zi​ 增大时,softmax梯度呈指数上升趋势。在模型训练中,这种梯度特性会让模型更倾向于关注少数响应值高的标记(对应图像中的局部区域),而忽略其他标记的信息。长期训练后,大量标记因未被充分利用成为冗余,仅少数标记承载主要信息。

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

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

相关文章

华为设备OSPF配置与实战指南

一、基础配置架构 sysname HUAWEI-ABR ospf 100 router-id 1.1.1.1area 0.0.0.0network 10.1.1.0 0.0.0.255 # 将接口加入区域0 interface GigabitEthernet0/0/1ospf enable 100 area 0.0.0.0 # 华为支持点分十进制区域号bandwidth-reference 10000 # 设置10Gbps参考带宽…

区块链架构深度解析:从 Genesis Block 到 Layer 2

# 区块链架构深度解析:从 Genesis Block 到 Layer 2 目录 一、Genesis Block:区块链的起点 二、Layer 0:区块链的底层网络架构 三、Layer 1:核心协议层 🚀 四、Layer 2:扩展性解决方案 五、未来展望&a…

【位运算】丢失的数字(easy)

34. 丢失的数字(easy) 题⽬描述:方法一:排序解法(位运算):C 算法代码:Java 算法代码: 题⽬链接: 268. 丢失的数字 题⽬描述: 给定⼀个包含 [0, n…

如何通过RL真正提升大模型的推理能力?NVIDIA提出长期强化学习训练框架ProRL

原文:https://mp.weixin.qq.com/s/QLFKvb8Ol3CX9uWKBXSrow 论文:ProRL: Prolonged Reinforcement Learning Expands Reasoning Boundaries in Large Language Models Abs:https://arxiv.org/abs/2505.24864 权重下载:https://hugg…

ORM 框架的优缺点分析

ORM 框架的优缺点分析 一、ORM 框架概述 ORM(Object-Relational Mapping)是一种将关系型数据库与面向对象编程进行映射的技术框架。它通过将数据库表映射为编程语言中的类,将记录映射为对象,将字段映射为属性,实现了用面向对象的方式操作数据库。 核心价值:ORM 在数据库和…

1. 数据库基础

1.1 什么是数据库 ⭐ mysql 本质是一种网络服务, 是基于 C(mysql) S(mysqld)的 网络服务. 存储数据用文件就可以了,为什么还要弄个数据库?文件保存数据存在以下缺点: 文件的安全性问题。文件不利于数据查询和管理。文件不利于存储海量数据。…

go语言学习 第5章:函数

第5章:函数 函数是编程中不可或缺的一部分,它封装了一段可重复使用的代码,用于执行特定的任务。在Go语言中,函数同样扮演着重要的角色。本章将详细介绍Go语言中函数的定义、调用、参数传递、返回值处理以及一些高级特性&#xff…

MapReduce 分布式计算模型

what:分解大数据集,并行处理,汇总结果(分解组合思想) 目的:SQL查询转换为MR,理解MR更好优化SQL 优点: 只需关注业务逻辑(自定义函数map,reduce&#xff09…

RDMA简介3之四种子协议对比

RDMA协议共有四种子协议,分别为InfiniBand、iWARP、RoCE v1和RoCE v2协议。这四种协议使用统一的RDMA API,但在具体的网络层级实现上有所不同,如图1所示,接下来将分别介绍这四种子协议。 图1 RDMA四种子协议网络层级关系图 Infin…

LabelImg: 开源图像标注工具指南

LabelImg: 开源图像标注工具指南 1. 简介 LabelImg 是一个图形化的图像标注工具,使用 Python 和 Qt 开发。它是目标检测任务中最常用的标注工具之一,支持 PASCAL VOC 和 YOLO 格式的标注输出。该工具开源、免费,并且跨平台支持 Windows、Lin…

系统架构设计论文

disstertation 软考高级-系统架构设计师-论文:论文范围(十大知识领域)、历年论题、预测论题及论述过程、论文要点、论文模板等。 —— 2025 年 4 月 4 日 甲辰年三月初七 清明 目录 disstertation1、论文范围(十大核心领域&#x…

数学复习笔记 26

5.25:这题还是有点难度的。主要是出现了新的知识点,我现在还没有那么熟悉这个新的知识点。这块就是,假设一个矩阵可以写成一个列向量乘以一个行向量的形式,这两个向量都是非零向量,那么这个矩阵的秩等于一。这个的原理…

[Java 基础]注释

注释在编程中扮演着非常重要的角色,它们是写给人类阅读的,而不是给计算机执行的。良好的注释可以极大地提高代码的可读性和可维护性。 为什么需要注释? 提高可读性: 注释可以解释代码的功能、实现思路、特殊处理等,帮…

TortoiseSVN账号切换

SVN登录配置及账号切换 本文主要为了解答svn客户端如何进行账号登录及切换不同权限账号的方式。 一、环境准备与客户端安装 安装TortoiseSVN客户端 ​​下载地址​​:TortoiseSVN官网 ​​安装步骤​​: 双击安装包,按向导完成安装后&#x…

5分钟了解JVM运行时数据区域

点击蓝字,关注我们 在 Java 程序运行期间,JVM 会划分出几块重要的内存区域,用来支撑类加载、方法调用、对象分配、线程执行等一切运行时行为。 这些区域构成了 JVM 的“运行时数据区”。 一、运行时数据区域概览图 二、Java 堆(H…

深入理解CSS浮动:从基础原理到实际应用

深入理解CSS浮动:从基础原理到实际应用 引言 在网页设计中,CSS浮动(float)是一个历史悠久却又至关重要的概念。虽然现代布局技术如Flexbox和Grid逐渐流行,但浮动仍然在许多场景中发挥着重要作用。本文将带你深入理解…

Spring Bean 为何“难产”?攻克构造器注入的依赖与歧义

本文已收录在Github,关注我,紧跟本系列专栏文章,咱们下篇再续! 🚀 魔都架构师 | 全网30W技术追随者🔧 大厂分布式系统/数据中台实战专家🏆 主导交易系统百万级流量调优 & 车联网平台架构&a…

华为云Flexus+DeepSeek征文|实战体验云服务器单机部署和CCE高可用的架构AI赋能

前引:“在数字化浪潮汹涌澎湃的今天,企业对云计算服务的需求已从基础架构支撑,逐步转向更深层次的AI赋能与业务创新驱动。面对复杂多变的市场环境,选择一个强大、可靠且具备前瞻性的云服务伙伴,无疑是企业实现高速增长…

雷卯针对易百纳G610Q-IPC-38E 模组防雷防静电方案

一、应用场景 1、智能监控 2、智能家居 3、工业自动化 4、机器人 5、智能交通 6、医疗影像 7、教育科研 二、 功能概述 1 HI3516CV610(ARM Cortex-A7 MP2) 2 AI算力 1Tops 3 模组集成 4M30FPS Sensor,支持最高 6M30fps 的 ISP 图像…

生成对抗网络(GAN)基础原理深度解析:从直观理解到形式化表达

摘要 本文详细解析 生成对抗网络(GAN) 的 核心原理,从通俗类比入手,结合印假钞与警察博弈的案例阐述生成器 与 判别器 的对抗机制;通过模型结构示意图,解析 噪声采样、样本生成 及判别流程;基于…