Token Compression for Vision Domain_Generation
文章目录
- Image Generation
- Token Merging for Fast Stable Diffusion, CVPRW 2023.
- Token Fusion: Bridging the Gap between Token Pruning and Token Merging, WACV 2024
- ToDo: Token Downsampling for Efficient Generation of High-Resolution Images, IJCAIw 2024.
- Turbo: Informativity-Driven Acceleration Plug-In for Vision-Language Models, ECCV 2024.
- Importance-Based Token Merging for Efficient Image and Video Generation, arXiv 2025.
- Token Merging for Training-Free Semantic Binding in Text-to-Image Synthesis, NeurIPS 2024.
- Video Generation
- Object-Centric Diffusion for Efficient Video Editing, ECCV 2024.
Image Generation
Token Merging for Fast Stable Diffusion, CVPRW 2023.
paper|code
ToMe 能显著提高图像生成的速度,同时又不会影响质量。此外,其优点还能与现有的方法(如 xFormers [8])相叠加。借助 ToMe 和 xFormers 的结合,在一台 4090 显卡上,仅用 28 秒就生成了这幅 2048×2048 的图像,比原始模型快了 5.4 秒。
通过将 ToMe 应用于Stable Diffusion来进行测试。初始应用下,它可以将扩散速度提高多达 2 倍,并减少 4 倍的内存消耗,但生成的图像质量却大打折扣(图 3)。为了解决这个问题,我们引入了新的token分区技术(图 5),并进行了多次实验来决定如何应用 ToMe(表 3)。结果是,我们能够保持 ToMe 的速度并提高其内存效益,同时生成的图像与原始模型极其接近。此外,这种速度提升与诸如 xFormers(图 1)等实现方式相结合。
对源数据(src)和目标数据(dst)进行分区。ToMe将源数据中的标记合并到目标数据中。(a)默认情况下,ToMe 交替使用源数据和目标数据的标记。在我们的例子中,这会导致目标数据形成规则的列,从而产生不良的输出(鱼的形状不佳)。(b)我们可以通过使用二维步幅(例如 2 2)对目标数据进行采样来改进生成过程,但这仍然形成了规则的网格。(c)我们可以通过随机采样来引入不规则性,但这可能会导致目标数据标记出现不期望的聚集现象。(d)因此,我们在每个 2x2 区域中随机选择一个目标数据标记。
在提出的方法中,Attention以及MLP前后均有一次合并以及拆分,这是因为U-Net的核心是编码器(下采样路径)和解码器(上采样路径)之间的跳跃连接。编码器某一层的输出特征图,需要与解码器对应层的特征图进行拼接,尺寸必须匹配。
Inspiration:根据任务及模型特点 1. 设计新的token分区技术。2. 模型里的哪些block是需要ToMe的?
Token Fusion: Bridging the Gap between Token Pruning and Token Merging, WACV 2024
paper|code
Token Fusion(ToFu),这是一种融合了 Token 剪枝和 Token 合并优点的方法。
- 当模型表现出对输入插值的敏感性时,token剪枝被证明是有利的,而当模型表现出接近对输入的线性响应时,token合并是有效的。
- 解决了平均合并的局限性,它不保留内在特征范数,导致分布偏移。为了缓解这种情况,引入了 MLERP( 球面线性插值)合并,这是 SLERP(SLERP的多线性扩展)技术的一种变体,专门用于合并多个令牌,同时保持常数分布。
- 模型能学习A和B,但是学习不了介于A和B之间的对象,这就是对输入插值敏感,此时应该剪掉其中某个对象。模型对学习范围内的对象满足可加性和齐次性,这就是表现出线性响应,此时应该合并其中某些对象。
- 首先要清晰范数代表什么,在向量空间中,范数(或模长)||t|| 代表了向量的“长度”或“强度”。在深度学习中,特征向量的范数往往也编码了重要的信息,比如特征的显著性。模型在训练时,看到的都是范数在某个范围内(比如接近1)的Token。而经过多层平均合并后,深层网络的Token范数变得越来越小。这就是分布偏移,测试时的数据分布与训练时不同了。
顶图:两个输入点 x1 (蓝色) 和 x2 (红色)连接它们的彩色直线代表了 x1 和 x2 之间的线性插值 (linear interpolation)。紫色星号代表了 x1 和 x2 的简单平均值
底层四张图:分别展示了将顶图中的整条彩色线作为输入,送入ViT模型中不同深度(第1到第4层)的MLP模块(表示为f1到f4)后,得到的输出是什么样的。
(左)在 ViT 主干网络内部的令牌融合集成。每个 Transformer 块都包含一个令牌缩减操作,用符号 R 表示。在该图示中,R 在多层感知机(MLP)之前被调用。通过二分软匹配(BSM),每个 R 都会识别出相似度最高的 r 个索引,例如,在此图示中 r = 2。值得注意的是,层的深度决定了所选择的合并策略:早期层使用剪枝合并,而后期层则过渡到平均(或 MLERP)合并。这种动态方法加快了 ViT 的运行速度,同时仍能保留完整令牌推理的大部分性能。(右)将两个特征(x1 和 x2)组合在一起的不同合并方法的可视化。所有方法都可以适应合并更多的特征。
ToDo: Token Downsampling for Efficient Generation of High-Resolution Images, IJCAIw 2024.
paper|code
图像中的相邻像素往往与它们的邻近像素具有相似的值。因此,我们采用了降采样技术来减少Token数量,类似于图像处理中的网格式采样。
原始的 ToMe 方法基于在输入到注意力层之前通过合并相似的向量来减少计算量。这一过程包括计算一个相似性矩阵,其中相似度最高的token会被合并。随后,解合并过程旨在将合并后的token信息重新分配回原始token位置。
然而,这种方法引入了两个关键的瓶颈:
- 计算复杂度:相似性矩阵的计算(O(n²)复杂度)本身就很昂贵,尤其是在整个过程的每个步骤中都需要进行计算的情况下。
- 质量下降:ToMe 中固有的合并-解合并循环会导致图像细节的显著损失,尤其是在合并比例较高的情况下。
具体实现:
Optimized Merging Through Spatial Contiguity. ToMe计算所有token对内容的相似度,认为相似的token应该被合并,复杂度O(n²)。ToDo认为空间上相邻的令牌就是相似的,使用下采样计算,复杂度O(n)。
Enhanced Attention Mechanism with Downsampling. 将合并(下采样)操作直接嵌入到了注意力计算的内部。保持 Q (Queries) 不变,对 K (Keys) 和 V (Values) 进行下采样:
因为 Q 是完整的,所以注意力机制的输出结果仍然是针对所有原始令牌位置的。每个原始令牌 q 会根据它与下采样后的 D(K) 的关系,去有选择地从下采样后的 D(V) 中提取信息。这个过程是“多对少”的信息聚合,而不是粗暴的“反向合并”,因此自然地将信息聚合到了原始分辨率上,保留了图像的完整性。
Turbo: Informativity-Driven Acceleration Plug-In for Vision-Language Models, ECCV 2024.
paper|code
设计了一个由信息度指导的即插即用 Turbo 模块应用于VLM。信息度考虑了两个关键因素:相互冗余和语义价值。具体来说,前者评估顺序token之间的数据重复;而后者则根据每个token对整体语义的贡献来评估。因此,具有高信息度的 Token 具有较少的冗余和更强的语义。
-
信息度计算。采用了二分图匹配策略,计算每个token 与其他token的余弦相似度,最大的相似度作为互冗余度R。token的语义价值 A 定义为 [CLS] token 在注意力计算中分配给 xi 的注意力权重。两者融合得到信息度
-
根据下游任务选择合并策略
VLMs理解对像素级的精细信息要求不高
1)Atten之后执行Turbo
2)计算E并排序
3)选择分数最低的 r 个 token将它们合并到它们各自最相似的 token 中
VLMs生成对像素级的精细信息要求高
1)在进入 VLM 的每一个 block 之前,Turbo 模块根据信息度 E 合并冗余的 token,缩短序列长度。
2)合并后的token进入attn计算
3)在 block 计算完成之后,Turbo 模块需要将之前合并的 token “恢复”回来,以保持序列的原始长度和结构,供下一层使用或最终生成图像。
Importance-Based Token Merging for Efficient Image and Video Generation, arXiv 2025.
paper|code
在合并过程中保留高信息的token——那些对于语义保真度和结构细节至关重要的令牌——会显著提高样本质量,产生更精细的细节和更连贯、更逼真的生成结果。提出了一种基于重要性的token合并方法,在计算资源分配中优先考虑最关键的token
- 使用classifier-free guidance计算每块token的重要性。
- 构造important token pool。直接选择Top-K个最重要token作为合并目标(即“锚点”)存在两个问题:冗余和不重要的独立token。重要的token在空间上接近且特征相似,锚点集中产生冗余,不重要的独立token与其他token无法合并,导致计算浪费。
- Token Merging Process. 随机选择目标token dst,确定源token src,保留独立token ind,将其他token都合并到dst中
CFG的本质
最终的噪声预测 = 无条件的噪声预测 + w * (有条件的噪声预测 - 无条件的噪声预测)
Token Merging for Training-Free Semantic Binding in Text-to-Image Synthesis, NeurIPS 2024.
paper|code
现有的模型难以将文本中的对象与其属性或相关子对象正确关联,表现为错误的绑定或者属性的丢失。我们将这一问题称为语义绑定(Semantic Binding)。比如当提示词为“一只戴着帽子的狗和一只戴着太阳镜的猫”时,生成的图像可能会出现帽子戴在猫头上,太阳镜戴在狗头上的错误情况。
Video Generation
Object-Centric Diffusion for Efficient Video Editing, ECCV 2024.
paper|code
如何在不牺牲视频编辑质量的前提下,大幅提升扩散模型进行视频编辑的速度并降低计算成本?
Motivation
- 高昂的计算和内存成本:1)扩散反演 (Diffusion Inversion):先将原始视频“编码”回噪声,并保存大量的中间激活和注意力图,这会占用巨大的存储空间。2)跨帧注意力 (Cross-frame Attention):在生成时,让每一帧的注意力计算都参考其他帧,这导致计算量随着帧数的增加而急剧增长。3)大量的采样步数 (Sampling Steps):高质量的生成需要很多次的去噪迭代,非常耗时。
- 计算资源分配不合理:现有模型对前景和背景一视同仁,将大量的计算资源浪费在了不那么重要的背景区域上。
以物体为中心 (Object-Centric),将计算资源智能地、不均衡地分配给前景和背景,从而实现大幅加速。
Method
Object-Centric Sampling.
- 分离前景和背景: 首先利用一个前景蒙版 (foreground mask, m) 将潜在空间的噪声图 z_t 分离成前景部分 z_f 和背景部分 z_b。
- 差异化采样: 对前景和背景采用不同的去噪策略。前景区域: 使用正常的、较多的采样步数进行去噪,以保证编辑质量。背景区域: 使用一个加速因子 φ,大幅减少采样步数(例如,前景走3步,背景才走1步),因为背景通常不需要编辑或改动很小。
- 融合与平滑: 在去噪过程的某个中间时间点 T_γ(例如,总步数的25%处),将前景和背景的潜在表示重新合并,并用剩余的少量步数对整个图像进行联合去噪,以平滑两者边界处的伪影,保证最终结果的自然过渡。
Object-Centric Token Merging.
加权相似度引导 ToMe:
- 检查待合并的token是否属于前景
- 计算它与目标token的相似度 Sim(x_i, x_j) 时,引入一个权重因子 η。背景相似度计算不变,前景相似度乘η。
- spatio-temporal volumes. 同时在空间和时间维度上合并令牌,以最大化地利用视频中的时序冗余。