MLLM轻量化论文阅读2
Efficient Video Sampling, EVS
这篇文章发行较早,在2025.10

动机:从图像到视频,视频是连续的帧,在连续帧之间存在大量的空间冗余,想通过在连续帧之间保持不变的空间区域,从而减少冗余
方法:将每一帧划分成大小相同但不重叠的patch,对于同一空间位置的patch,如果相同则冗余,那么直接pruning掉。计算相同位置相邻帧的差值,给差值(可以理解成变化率)进行排序,根据预设的剪枝率保留变化率靠前的,所以不同帧可能保留的token数是不一样的。
1.在计算差值
在原始像素空间上,首先将每一帧划分为不重叠的patch_size*patch_size的小块,然后对于每一帧在对应的块上做一个差分。这样做不需要过encoder,但是只是在像素级别做,缺乏语义。
在视觉特征空间上,如果在正常过encoder后得到的Embedding空间,考虑了语义
文章里面对这两种方法也做了个消融,的确过encoder之后的效果更好。
2.保留原始位置 ID

如上图所示,第二种是按顺序编号,会丧失原来的空间顺序,第三种就是保留原始的position ID,但是论文经过对比得到了一个结论
- 直接 plug-in 使用时,Sequential 和 Position-preserving 差距不大,有时 Sequential 更稳;
- 经过 uptraining 后,Position-preserving 明显更好,因为模型学会了利用稀疏位置 ID
这个uptraining可以理解成增量训练,目的是让 VLM 适应 EVS 造成的稀疏视觉 token 输入。
总结(来自G老师)EVS 是一个基于相邻帧 patch 变化量的视频视觉 token 剪枝方法:它保留第一帧和后续帧中变化明显的 patch,删除时间上静态重复的 patch,并通过保留原始 position id 与可选 uptraining,让 VLM 在更少视觉 token 下保持较好视频理解性能
CVPR2026

评估token重要性 文本引导下的注意力分数,和multi-head的多注意力头的权重不同
文章认为在注意力层中,多头注意力的不同head之间权重应该是不一样的,可能在有些感知任务或者其他特定的任务上面,一些head至关重要,所以哪些head是重要的,这个是需要进行前期评判确定的。
如何判断head的重要性呢?文章是在常见的几个benchmark上面,采用消融实验的方式,注意力头都在时的最后效果,去掉一个注意力头时的效果,这就知道该注意力头本身对于任务的重要性,最后进行归一化的,得到该注意力头权重。
对于文本引导的注意力,为了消除位置偏差并确保注意力仅取决于文本与视觉之间的语义对应关系,作者省略了RoPE操作,计算位置无关的注意力矩阵,

上图比较清晰明了,head_weight是根据前面对每个head的消融提前计算出来的,首先这个计算是存疑的,不同任务需要关注的地方不同,有些任务侧重全局,有些任务侧重局部或者是纹理,这个head_weight很难说是不是所有任务都能迁移。这个文本引导去掉了ROPE,抹除了位置误差,ROPE本身是给 q k 矩阵注入了绝对位置信息,用文本的q去查询每个vision token的 k,那么最后得出的注意力本身其实是不仅是文本对于vision token的注意力,还会掺杂着一些位置信息(这个我之前看过有大佬在写数学公式推导,但是的确没看太明白),所以把ROPE去掉,那么存在的就是文本引导下的注意力分布,规避了位置的影响。这个作者也后面做了消融实验,的确不加ROPE,效果会更好一些。
最后计算每个token在每个head注意力权重以及对应文本引导下的注意力得分进行加权,得出每个token的得分,设定个剪枝率,得分排序后进行pruning。


以下是实验结果
作者比较的是几个典型的方法,包括基于注意力,基于相似度,基于注意力和相似度的


相信相信的力量!不断积累!加油!坚持!
更多推荐




所有评论(0)