DUET-VLM:面向视觉语言模型训练与推理的双阶段统一高效视觉Token压缩 DUET-VLM: Dual stage Unified Efficient Token reduction for VLM Training and Inference
通过视觉侧局部聚类+语言侧文本引导逐层剪枝的双阶段框架,实现VLM的极致token压缩
前置知识
视觉token(Visual Tokens)
视觉语言模型(VLM)中,图像经过视觉编码器(如CLIP或SigLIP)处理后,被分割成若干patch并编码为一系列向量,每个向量称为一个视觉token。例如LLaVA-1.5对每张图像产生576个token,LLaVA-NeXT在672×672分辨率下产生超过2800个token。视觉token的数量随图像分辨率的平方增长(H×W),是导致VLM计算开销(尤其是注意力机制的二次复杂度)巨大的主要原因。理解视觉token是理解本文压缩策略的起点——压缩什么、为什么压缩。
本文的核心就是如何减少视觉token数量,因此理解视觉token的产生机制和在语言模型中的角色是理解整个压缩框架的基础。
VisionZip的全局平均合并策略
VisionZip是一种视觉token压缩方法,它将视觉编码器输出的N个token分为两部分:(1) 基于视觉自注意力(V2V attention)得分选出的Top-k个主导token(dominant tokens),对应高激活区域;(2) 将剩余token全局平均合并为少量上下文token(contextual tokens)。这种策略在融合前就大幅减少了token数量,但全局平均会稀释低频但有语义信息的特征,且主导token对应的区域不一定与下游文本任务语义相关。
DUET-VLM的第一阶段正是基于VisionZip的思路进行改进,用局部聚类替代全局平均,这是本文的核心创新之一。
PyramidDrop的逐层丢弃策略
PyramidDrop是一种语言侧的视觉token压缩方法,它将语言模型的层分为多个阶段(stages),在每个阶段结束时根据文本token(通常是最后一个token)与视觉token的交叉注意力得分,对视觉token进行排名并丢弃得分低的token。随着推理深入,保留的视觉token逐渐减少,形成金字塔式的压缩结构。这种方法考虑了跨模态语义相关性,但仅使用最后一个文本token进行排名,信息利用不够充分。
DUET-VLM的第二阶段借鉴了PyramidDrop的逐层丢弃思路,但改用显著文本token(salient text tokens)替代最后一个token进行更精准的视觉token筛选。
自注意力与交叉注意力(Self-Attention / Cross-Attention)
自注意力是Transformer中每个token与序列中所有其他token计算相似度并加权聚合的机制,用于捕捉序列内部的依赖关系。在视觉编码器中,视觉token之间的自注意力(V2V attention)反映了不同图像patch之间的视觉相关性。交叉注意力则是两个不同模态序列之间的注意力机制,在VLM中体现为文本token对视觉token的注意力(T2V attention),反映了语言查询对视觉信息的聚焦程度。本文利用V2V注意力选择主导token,利用T2V注意力指导逐层剪枝。
两种注意力机制分别驱动了DUET-VLM两个阶段的压缩策略,是理解方法技术细节的关键。
Token预算与压缩比
Token预算指压缩后保留的视觉token总数,压缩比表示被丢弃token占原始token数的比例。例如原始576个token压缩到192个,压缩比为67%;压缩到64个,压缩比为89%。压缩比越高,计算节省越多但精度损失风险越大。本文探索了从67%到93.4%的极端压缩场景,证明在如此激进的压缩下仍能保持高精度。
理解压缩比是评估本文方法价值的核心——它量化了效率与精度之间的权衡。
研究动机
当前视觉语言模型(VLM)面临的核心效率瓶颈在于视觉token数量过多。以LLaVA-1.5为例,每张图像产生576个视觉token,而LLaVA-NeXT在672×672分辨率下产生超过2800个token,是伴随文本token数量的数个数量级。更关键的是,视觉token数量随图像分辨率的平方增长(H×W),使得Transformer注意力机制的二次计算复杂度($O(n^2)$)进一步恶化,导致大型VLM既受内存限制也受延迟限制。现有解决方案分两大阵营:视觉侧方法(如VisionZip、PruMerge)在跨模态融合前合并冗余token,但合并过早导致信息丢失;语言侧方法(如PyramidDrop、FastV)在语言模型中逐层丢弃视觉token,但丢弃策略过于统一,缺乏语义自适应性。更根本的问题是,这两类方法都是单向的——要么只在视觉侧压缩,要么只在语言侧剪枝,无法联合优化冗余消除和上下文感知保留,导致在激进压缩下精度大幅下降。
本文的目标是本文的目标是设计一个统一的双阶段视觉token压缩框架(DUET-VLM),在大幅减少视觉token数量(目标67%-93%的压缩比)的同时,保持接近甚至超过基线模型的精度。具体而言,在推理场景下,DUET-VLM希望用不到原始三分之一的视觉token达到99%以上的基线精度;在训练场景下,通过端到端训练使模型自适应压缩后的表征,实现训练时间的显著缩短(目标30%以上)同时保持高精度。此外,该框架需要具备通用性——不仅适用于LLaVA系列架构,还能迁移到Qwen-2.5-VL-7B和Video-LLaVA-7B等不同架构和视频理解任务。
与已有工作不同的是,本文的独特视角在于认识到视觉token的冗余性同时存在于空间维度和语义维度:空间维度上,视觉编码器输出中存在大量视觉上相似的patch,可以通过聚类合并消除冗余(视觉侧);语义维度上,随着多模态推理的深入,部分视觉token对当前文本查询不再重要,可以被安全丢弃(语言侧)。已有工作只抓住了其中一个维度,而DUET-VLM首次将两个维度的压缩统一到一个框架中,通过视觉侧的局部聚类和语言侧的显著文本引导剪枝协同工作,在不同层级上逐步消除冗余,实现比任何单一阶段方法都更好的精度-效率权衡。此外,作者还发现PyramidDrop使用的最后一个文本token并非最优的排序依据,改用显著文本token(由注意力权重选出)可以提供更精准的跨模态信号。
核心方法
DUET-VLM的设计直觉可以用一个类比来理解:想象你在整理一堆积木(视觉token)。第一阶段(视觉到视觉合并)就像先按形状和颜色把相似的积木归类,每组保留一个代表性的积木(主导token),其余相似的合并成一个综合描述(上下文token),这一步在积木还没和指令(文本)交互之前就消除了大量结构性冗余。第二阶段(文本到视觉剪枝)则像是在阅读指令后,逐步扔掉那些与当前任务无关的积木——随着你对指令的理解越来越深入,能更精准地判断哪些积木是多余的。技术路线上,输入图像首先通过视觉编码器(如CLIP)得到N个视觉token,然后进入Stage 1:基于视觉自注意力图选出Top-k₁个主导token,剩余token通过局部聚类合并为k₂个上下文token,两部分合并后送入语言模型。在语言模型中,Stage 2在预设的层(如第8、16、24层)进行检查点式剪枝,根据显著文本token与视觉token的交叉注意力得分,逐步丢弃低重要性的视觉token,最终在最深层只保留最关键的信息。
DUET-VLM最核心的创新在于两点:第一,用「局部聚类聚合」替代VisionZip的「全局平均」来构建上下文token。全局平均将所有非主导token无差别合并,会导致两个严重问题:(a) 语义不对齐——主导token对应高激活区域但不一定与下游任务语义相关;(b) 信息稀释——当残差token数量远大于上下文token数量时($|X_{res}| \gg k_2$),全局平均会稀释低频但有信息量的特征。局部聚类则将残差token分为k₂个小簇,每个簇只在局部邻域内聚合,保留了细粒度的视觉线索,同时未分配的token在进入语言模型前就被丢弃,进一步减少了计算量。以576个原始token为例,当k₁=54、k₂=10、簇宽度w=4时,有576-54-(10×4)=482个token在进入语言模型前就被移除。第二,用「显著文本token」替代PyramidDrop的「最后一个文本token」来指导语言侧的视觉token剪枝。显著文本token是根据注意力权重选出的与视觉信息最相关的文本token(如查询中的关键名词),它们提供了比单一末尾token更丰富、更精准的跨模态信号,使得剪枝时能更好地保留与当前任务相关的视觉信息。
方法步骤详情
DUET-VLM的完整流程分为两个阶段。**Stage 1:视觉到视觉(V2V)合并。** 输入为视觉编码器输出的N个视觉token $X = \{x_i\}_{i=1}^{N}$。首先从CLIP最后一层获取V2V自注意力图 $A^{v2v} \in \mathbb{R}^{N \times N}$,计算每个token的注意力得分 $s_i = \sum_{j=1}^{N} A_{j,i}^{v2v}$。基于得分选出Top-k₁个主导token $X_{dom}$,它们对应视觉上高激活、最具影响力的区域。对于剩余的残差token $X_{res} = X \setminus X_{dom}$,选择得分最高的k₂个token作为聚类中心,然后对每个中心c找到其w个最近邻token $N_c$,计算局部平均 $z_c = \sum_{j \in N_c} x_j / |N_c|$,形成k₂个上下文token $X_{comp}$。未被分配的token直接丢弃。最终输出 $X_{out} = X_{dom} \cup X_{comp}$,共$k_1 + k_2$个token。**Stage 2:文本到视觉(T2V)逐层剪枝。** 将压缩后的视觉token $X_{out}$ 通过MLP适配器投影后,与文本token一起送入语言模型。语言模型的L层被分为M个阶段(M < L),在每个阶段l的结束处,根据显著文本token S与当前保留的视觉token $V^{(l)}$ 的T2V交叉注意力得分 $A_{t2v}^{(l)}$,对视觉token进行排名,保留Top-$(1-\lambda) \cdot N_l$个token,丢弃其余。压缩比 $\lambda$ 控制每层丢弃的比例。显著文本token S通过函数 $F_S(.)$ 从文本token中选出,始终包含最后一个文本token作为sink token以稳定注意力。这一排名-丢弃过程在每个阶段重复执行,随着多模态推理的深入,逐步收窄视觉上下文,只保留语义最相关的区域。
技术新颖性
DUET-VLM的技术新颖性体现在三个层面。首先,在架构层面,它是首个将视觉侧压缩和语言侧剪枝统一到一个端到端可微框架中的方法。已有工作要么只做视觉侧(VisionZip、PruMerge、HiRED),要么只做语言侧(PyramidDrop、FastV、FitPrune),而DUET-VLM通过可微的压缩接口将两个阶段连接起来,使视觉表征和语言上下文在token减少过程中能够共同适应,维持了强跨模态对齐。其次,在视觉侧,局部聚类聚合替代全局平均是一个实质性的改进。全局平均假设所有非主导token同等重要,而局部聚类通过自注意力得分引导的邻域划分,保留了空间局部结构,使每个上下文token只聚合语义上相近的视觉信息。实验表明,即使用VisionZip的原始框架替换VLM部分,仅加入局部聚类(VisionZip (C))就能在所有token预算下获得稳定提升。第三,在语言侧,使用显著文本token(而非单一末尾token)进行视觉token排序,提供了更丰富的跨模态指导信号。消融实验证明,(C+S)变体在高压缩比下持续优于(C+all)变体(使用所有文本token),说明选择性聚焦比均匀利用所有文本信息更有效。
实验结果
DUET-VLM在多个基准测试和模型架构上展示了全面的实验结果。**在LLaVA-1.5-7B上的推理结果(Table 1)**:原始基线使用576个视觉token,DUET-VLM (C)在192个token(67%压缩)下达到99.0%的平均相对精度,在128个token(78%压缩)下达到98.1%,在64个token(89%压缩)下达到95.4%,全面超越所有基线方法。具体来看,在192个token设置下,DUET-VLM在POPE上得分86.5(超过基线85.9,达到100.7%),在SQA上得分69.6(100.1%),在TextVQA上得分57.7(99.1%),在MME上得分1817(97.6%),在GQA上得分60.3(97.4%)。即使在极端的64个token设置下,POPE仍达82.5(96.0%),SQA达68.3(98.3%),TextVQA达56.4(96.9%)。**在Qwen-2.5-VL-7B上的推理结果(Table 2)**:DUET-VLM (C)在640个token下达到99.9%平均精度(VisionZip为99.7%),在320个token下达到99.8%(VisionZip为99.1%),在160个token下达到98.4%(VisionZip为96.9%),证明方法的通用性。**训练结果(Table 3)**:DUET-VLM (C)在192个token下训练后达到99.7%平均精度,在128个token下达到99.1%,在64个token下达到97.2%,甚至在某些基准上超过全token基线(如POPE 85.5 vs 85.9,GQA 62.4 vs 61.9)。**视频理解结果(Table 4)**:在Video-LLaVA-7B上,DUET-VLM (C)在960个token(53.1%压缩)下达到100.8%平均精度(超过基线),在136个token(93.4%极端压缩)下仍保持97.6%,大幅超过FastV(45.8%)、SparseVLM(82.4%)和VisionZip(91.0%)。**训练效率(Table 6)**:DUET-VLM (C)在192、128、64个token下分别减少26%、31%、36%的训练时间,同时保持99.7%、99.1%、95.4%的精度。
查看结构化数据
| 任务 | 指标 | 本文 | 基线 | 提升 |
|---|---|---|---|---|
| LLaVA-1.5-7B 推理(192 tokens, 67%压缩) | 平均相对精度 | 99.0% | VisionZip 97.7% | +1.3% |
| LLaVA-1.5-7B 推理(64 tokens, 89%压缩) | 平均相对精度 | 95.4% | VisionZip 92.8% | +2.6% |
| LLaVA-1.5-7B 训练(192 tokens) | 平均相对精度 | 99.7% | VisionZip 98.4% | +1.3% |
| LLaVA-1.5-7B 训练(64 tokens) | 平均相对精度 | 97.2% | VisionZip 95.2% | +2.0% |
| Qwen-2.5-VL-7B 推理(160 tokens) | 平均相对精度 | 98.4% | VisionZip 96.9% | +1.5% |
| Video-LLaVA-7B 推理(136 tokens, 93.4%压缩) | 平均相对精度 | 97.6% | VisionZip 91.0% | +6.6% |
| Video-LLaVA-7B 推理(960 tokens, 53.1%压缩) | 平均相对精度 | 100.8% | PyramidDrop 100.7% | +0.1% |
| LLaVA-1.5-7B 训练效率 | 训练时间减少 | 31%(128 tokens) | 0%(576 tokens基线) | 31%加速 |
局限与改进
尽管DUET-VLM取得了出色的实验结果,仍存在以下局限性。首先,论文未报告精确的推理延迟对比数据,仅提供了token数量减少带来的理论加速比和与VisionZip可比的运行时间,缺少与其他方法(如PyramidDrop、SparseVLM)在相同硬件上的端到端延迟对比。作者也承认了这一点,表示详细的加速分析留待未来工作,需要开发优化的kernel来进一步加速推理和训练。其次,实验仅在7B规模的模型上进行验证(LLaVA-1.5-7B、LLaVA-NeXT-7B、Qwen-2.5-VL-7B、Video-LLaVA-7B),未在更大规模(如13B、34B)的VLM上测试,因此方法在更大模型上的效果存在不确定性。第三,视频理解的实验设置相对简单,仅使用8帧视频输入,未探索更长时间跨度的视频理解场景,作者也提到更长视频的训练和推理留作未来工作。第四,论文的所有实验都在AMD Instinct MI250 GPU集群上进行,缺少在NVIDIA GPU上的性能对比,可能影响方法的可复现性和广泛采用。最后,局部聚类的超参数(簇宽度w、主导token数k₁、上下文token数k₂)需要根据不同模型和token预算手动调整(见附录中的超参数表),缺少自动化的超参数选择策略。
独立分析的弱点
从独立分析的角度,DUET-VLM存在几个值得关注的弱点。**第一个弱点是超参数敏感性**:论文附录显示,不同token预算需要不同的(k₁, k₂)配置(如LLaVA-1.5-7B在192 tokens时k₁=300, k₂=7,而在64 tokens时k₁=72, k₂=30),且最优配置在不同预算间差异较大。这限制了方法的即插即用性。改进方向可以是设计自适应的超参数选择机制,例如根据视觉编码器输出的注意力分布自动确定最优的主导/上下文token比例。**第二个弱点是视觉侧压缩的静态性**:Stage 1的V2V合并是基于视觉自注意力的静态策略,不考虑具体的文本查询。这意味着无论查询是什么,被合并和丢弃的视觉token都是相同的。改进方向可以是引入轻量级的文本条件信号来指导视觉侧的聚类过程,使得合并策略能够根据查询的不同而自适应调整。**第三个弱点是压缩比$\lambda$在所有阶段统一**:当前方法在每个语言模型层使用相同的压缩比$\lambda$,但直觉上不同深度的层可能需要不同的压缩强度。论文中虽然展示了不同$\lambda$配置的结果(Fig. 5),但未探索逐层自适应压缩比的策略。改进方向可以是学习每层的最优压缩比,或者根据注意力模式的变化动态调整。**第四个弱点是缺少与最新token压缩方法的对比**:论文中对比的方法主要来自2024-2025年,但token压缩领域发展迅速,缺少与更多最新方法(如基于学习的token选择方法)的对比。
未来方向
论文作者提出了几个明确的未来研究方向。首先,开发优化的CUDA/HIP kernel来进一步加速推理和训练延迟,因为当前实现的加速主要来自token数量减少,尚未充分利用硬件层面的优化。其次,将训练扩展到更长时间跨度的视频理解任务(更多帧数),因为DUET-VLM在极端压缩下表现出的最小精度损失使其特别适合处理长视频的高token开销问题。第三,在视觉编码器中探索更强的区域提议或显著性方法(beyond V2V自注意力过滤),以实现更精确的视觉token选择。第四,将双阶段压缩范式扩展到更多模态(如音频和文本),构建真正的高效多模态系统。从本文成果可延伸的方向还包括:(1) 将DUET-VLM与模型量化(如INT4/INT8量化)结合,在减少token的同时压缩模型权重,实现双重加速;(2) 探索将局部聚类策略应用于视觉编码器本身(如ViT的中间层),在更早的阶段就开始压缩;(3) 研究DUET-VLM在长上下文VLM中的应用,利用token压缩释放的计算预算来支持更长的对话历史或更多图像输入。
复现评估
从复现角度来看,DUET-VLM的复现条件相对友好。**代码开源**:论文提供了GitHub仓库链接(https://github.com/AMD-AGI/DUET-VLM),代码已公开。**数据集**:使用的所有基准测试都是公开的标准数据集(POPE、GQA、TextVQA、MME、SQA-Image、SEED-Bench-Image、TGIF-QA、MSVD-QA、MSRVTT-QA),不需要额外的数据收集。**算力需求**:训练实验在配备8块AMD Instinct MI250 GPU的单节点集群上进行,对于7B规模的VLM来说这是比较标准的训练配置。推理实验只需要单GPU即可运行。**复现难度**:中等。方法本身概念清晰,实现复杂度不高(核心是V2V聚类和T2V剪枝两个模块),但超参数(k₁, k₂, w, λ, 阶段划分)需要根据具体模型和token预算调优,论文附录提供了详细的超参数表格(Tables 12-15),降低了复现门槛。需要注意的是,论文的实验在AMD GPU上进行,如果使用NVIDIA GPU复现,性能数字可能略有差异,但方法本身的精度表现应该是可复现的。
论文图表