- 论文-《An Image is Worth 1/2 Tokens After Layer 2: Plug-and-PLay Acceleration for VLLM Inference》
- 代码-Github
- 关键词-多模态、推理加速、视觉、剪枝token、开源
摘要
- 研究问题-注意力低效现象
- 在流行LVLMs的深层网络中,针对视觉标记的注意力计算极其低效,这表明相较于文本数据处理,需要采用一种更为稀疏的方法。
- 解决办法-FastV
- 一种多功能的即插即用方法,旨在通过在浅层学习自适应注意力模式并在后续层中剪枝视觉标记来优化计算效率。
- 性能
- FastV能够在大幅降低计算成本(例如,LLaVA-1.5 13B模型的FLOPs减少了45%)的同时,在广泛的图像与视频理解任务中保持性能不下降。
- FastV在计算效率与性能之间的权衡具有高度可定制性且具备帕累托最优性。它能够压缩一个13B参数模型的FLOPs,使其计算成本低于7B参数模型,同时仍保持卓越的性能。
1 介绍
Large Vision-Language Models (LVLMs):视觉-语言大模型
-
LVLMs 两个尚未充分探索的关键领域
- 语言模型如何处理和解释图像
- LVLMs中的的高效训练与推理
-
本文的核心观察
- 当前的LVLMs在处理图像信息时实际上采用了一种低效的方式。
- 文本和图像之间:在像LLaVA这样的基于标记的LVLMs中,图像标记获得的注意力得分显著低于文本标记。
- 浅层和深层之间:在图像描述任务中,在著名的 LVLM(如 LLaVA 1.5)的深层(第 2 层之后),图像标记的平均注意力得分仅占系统提示词(system prompts)得分的 0.21%。相比之下,在前两层,这一比例达到了 50%。
- 这些现象引发了关于 LVLMs 是否充分利用视觉信息 的疑问。
- 当前的LVLMs在处理图像信息时实际上采用了一种低效的方式。
- 提出解释:视觉信号的高度冗余性导致自注意力机制在浅层将与图像相关、指令特定的特征聚集到某些“锚点”标记上。值得注意的是,这些锚点标记并非图像标记。在深层中,注意力集中在这些锚点标记上,从而显著减少了对图像标记本身的关注。
- 提出FastV
- 一种动态图像标记剪枝方法,以降低LVLMs的推理成本。
- FastV在LLM的某一层实施了图像标记剪枝策略。在此层之前,计算照常进行;在此层之后,根据图像标记的平均接收注意力得分重新评估它们。低于预定义注意力得分阈值的标记会在后续层中被选择性丢弃,从而专注于最具影响力的标记,简化处理流程。
- 如图1中关于LLaVA和Qwen-VL-Chat模型的实验所示
- FastV在理论上实现了FLOPs的大幅减少,同时保持了相对较高的性能。
- 具体来说,在第2层之后过滤掉50%的图像标记,不会影响一系列视觉-语言任务的平均性能,包括描述生成任务、多项选择任务、复杂具身推理任务、需要详细OCR能力的任务、更具挑战性的视频理解任务,以及更细粒度的评估任务。

2 相关工作
2.1 大型视觉-语言模型LVLM
- 大型视觉-语言模型采用了一种视觉提示生成器(Visual Prompt Generator),将视觉嵌入转换为语言模型能够理解的提示。这种方法显著增加了所需 token 的数量。处理更高分辨率的图像不可避免地需要 token 数量呈二次增长。
- LLAVA 将 336x336 分辨率的图像处理为 576 个 token,而将更高分辨率的 672x672 图像处理为 2304 个 token。
- Fuyu Bavishi et al. (2023) 将像素级的 1080x1080 图像转化为 1296 个 token。
- Video-Poet Kondratyuk et al. (2023) 和 Unified-IO2 Lu et al. (2023) 都需要在上下文中预留数千个 token,以支持多张图像或视频的理解与生成。
2.2 LLM 推理优化
- LLM 高效推理的挑战:自回归生成方式、注意力计算的二次复杂度。
- 现有研究分为两类
- 优化注意力模块内存消耗的方法,例如 FlashAttention、vLLM 和 RingAttention。
- 通过修剪冗余的注意力计算来简化计算,例如 StreamingLLM 和 FastGen。
- 尽管这些方法显著提升了 LLM 的推理效率,但它们主要针对纯文本语言模型设计,其有效性是否能够转移到视觉-语言模型(LVLMs)中仍需进一步探索。
- 此前有一些工作尝试高效处理 LVLMs 中的长上下文问题,例如 LLaMA-VID,它利用交叉注意力机制用两个关键 token 有效表示每一帧视频,但需要额外的微调阶段限制了其在不同 LVLMs 上的广泛应用。
2.3 VLMs 的 token 减少
- 在大型视觉-语言模型(LVLMs)时代之前,已有研究致力于提高视觉-语言模型(VLMs)的效率。其中大多数研究聚焦于视觉 Transformer(ViTs)中的 token 减少。
- 例如 EViT、SPViT 、Pumer 和 PYRA
- (这些是针对VLMs的,而本文是针对LVLMs)
- 本文方法-FastV
- 首个探索大型视觉-语言模型(LVLMs)中视觉 token 减少的方法,它将语言作为多种视觉-语言任务的接口。
- FastV 利用来自 LLM 的信号来指导视觉 token 的剪枝,这是一种此前未被探索的策略。
- 与以往方法相比,FastV 的另一个显著优势是其简单性:它可以直接应用于任何 LVLM,而无需重新训练模型。
3 VLLM 中的低效视觉注意力
3.1 预备知识
- 如图2所示,LVLM 的经典网络架构
- 在每个解码步骤中,输入 token 可分为四种不同的类型:系统提示(system prompt, sys)、图像 token(image tokens, img)、用户指令(user instruction, ins)和输出 token(output tokens, out)。
- 系统提示:通常继承自基础的大型语言模型(LLM),用作控制 LLM 行为的通用消息,其内容在 LLM 的指令微调阶段确定。
- 图像 token:由预训练视觉编码器转换的线性化图像特征。
- 用户指令:指定了针对给定图像的查询问题。
- 输出 token: 则是在先前 token 的条件下逐步生成的。
- 在将图像和文本 token 预处理到统一的嵌入空间后,它们被输入到 Transformer 解码器以生成输出 token。
- 在每个解码步骤中,输入 token 可分为四种不同的类型:系统提示(system prompt, sys)、图像 token(image tokens, img)、用户指令(user instruction, ins)和输出 token(output tokens, out)。

3.2 实验设置
token 和注意力分类
为了探索 LVLM 如何处理图像标记,首先从视觉语言任务的组合中随机采样 N 个图像-文本对 D = \{(d_1,t_1), ..., (d_N, t_N)\},包括图像标题 (Flickr30K)、具身推理 (PCA-Bench)、视觉问答 (A-OKVQA)、多模态理解和推理 (MMMU),然后提示 LVLM 生成 N 个响应 \hat{Y}= \{ \hat{y}^1 , ... , \hat{y}^N \}.
在一个响应的解码过程中,作者收集了不同层中每个输出 Token 的注意力分数分布 \alpha,并针对不同类型的输入 Token 进行汇总。也就是说,对于第 i 个 Token 第 j 层,计算 \alpha^{i,j}_{sys} \ \alpha^{i,j}_{img} \ \alpha^{i,j}_{ins} \ \alpha^{i,j}_{out} \ 来表示当前标记对系统提示、图像标记、用户指令和输出标记的总注意力分数。注意,四者的和为1。
总注意力分配 λ
计算总注意力分配 λ 来表示在一层中收到的一种类型的 token 的总注意力分数。例如,第 j 层系统提示符的总关注度为:
其中 n 是响应中的令牌数。最终的注意力分配是采样的 N 个图像-文本对中所有注意力头的平均值。
注意力效率 ε
接下来,定义度量注意力效率 ε,以表示在一个响应的解码过程中,在一层中接收到的每种类型的标记的平均注意力分数。例如,第 j 层中图像 Token 的注意力效率为:
其中 |img| 是图像 token 的数量,n 是响应中的令牌数量。最终的注意力效率是采样的 N 个图像-文本对中所有注意力头的平均值。
3.3 结果
- 对不同类型输入 token 的注意力分配(λ)和注意力效率(ε)的统计。结果如图3。
- 注意力分配与效率的不平衡性 :无论是注意力分配还是注意力效率,都表现出不同程度的不平衡性,这种不平衡性与网络层深度相关。在浅层中,输出 token 更倾向于关注先前的输出 token;而在深层中,它们更倾向于关注系统提示。
- 图像 token 的低效率问题 :图像 token 在浅层和深层中的注意力效率均为最低。系统提示在深层中的注意力效率极高,是图像 token 的 472 倍,占据了总注意力分数的 85%。

3.4 洞察
- 尽管图像 token 在输入中占据了大多数比例,但它们获得的注意力却显著较少。相反,系统提示(system prompt)虽然提供的语义信息最少,却吸引了最多的注意力分数。
- 为了深入研究该现象,作者分析了模型响应解码过程中第一层、中间层和最后一层的注意力图,如图4。
- 在浅层中,注意力分数在不同 token 之间的分布较为平滑。而在深层中,出现了垂直的强线(集中在系统提示上),占据了大部分注意力分数。
- 这也解释了在统计中发现的高度不平衡的注意力效率:一小部分“锚点 token”聚合了所有输入 token 的信息,而模型在深层中更倾向于关注这些锚点 token。

该发现也与 Wang 等人 (2023) 所发现的大型语言模型的信息流动模式一致。
4 FastV
4.1 动态修剪 Vision Token
- 图 5 展示了 FastV 的核心思想
- 关键在于图像 token 的重新排序与过滤模块。该模块由一个排序函数 f_\phi 和两个参数组成:过滤层 K 和过滤比例 R%。
- 即在 LVLM 的第 K 层,对输入 token 进行排序,根据某种重要性标准 \phi 对它们进行排序,排序后最不重要的 R% 的 token 将在后续层中被剪枝掉。
- 简单地将每个 token 从其他所有 token 接收到的平均注意力分数作为标准 \phi_{attn} 。

4.2 计算开销估计
- 图 6 中绘制了一个三维图,展示了 FLOPs 减少量如何随着 FastV 的参数 K 和 R 的变化而变化。

5 实验
- 评估任务:图像描述(image captioning)、视觉问答(VQA)、多模态推理(multimodal reasoning)、视频问答(video QA)以及细粒度基准测试(如 MME Fu et al., 2023)
- 模型
- 对于图像理解任务,使用 LLaVA1.5-7B、LLaVA1.5-13B 和 Qwen-VL
- 对于视频理解任务,使用 VideoLLaVA
5.1 主要结果
5.1.1 图像理解
- 性能
- 实验结果在表 1 中,展示了通过 FastV 将 FLOPs 比例从 19% 调整到 100% 时,不同类型和规模模型的性能趋势。
- 图 1 中绘制了 FLOPs 减少量(1-FLOPs 比例)与平均性能之间的关系。
- 结果表明,**FastV(K=2,R=50%)可以在不牺牲性能的情况下,为不同的 LVLMs 实现约 45% 的 FLOPs 减少。**


- 延迟测试
- 如表4所示,一个使用 FastV 的 13B 模型在 A-OKVQA 上可以达到与 7B 模型相当的推理速度,同时性能更优。

- 细粒度分析
- 如表5所示,在PCA-Bench 和 OCR-VQA 中,这些任务对感知P、认知C、行动A和OCR能力进行了细粒度分析。
- 结论:**FastV(K=2,R=50%)能够在显著减少 FLOPs 的同时保持子分数的稳定。**

5.1.2 视频理解
- 如表 6 所示
- 任务:TGIF、MSVD、MSRVTT
- FastV 不仅能够节省 40% 以上的计算量,还能普遍提升视频问答任务的性能,尤其是在 TGIF 任务上表现更为显著。(分析原因在于:删去了冗余的token信息)

5.1.3 细粒度基准测试与更多模型
- 如表2和表3所示
- 模型:InstructBLIP
- 测试集:SciQA-IMG 、SeedBench 、MMVet 、 MME 和 AI2Diagram
- 注意,在相同的 FastV 配置下,InstructBLIP 的性能下降略高于 LLaVA。这是由于 Q-Former 在初始阶段减少了图像 token,导致直接的信息损失。当 K = 5 时减少了信息的损失,性能下降收缩。


5.2 消融实验
5.2.1 成本与性能之间的平衡
- 图7,研究 K 和 R 对加速效果和下游任务性能的影响
- 任务:OCR-VQA
- 结果分析:当 K 较小时,降低 R 可以在较小的 FLOPs 减少量下提升性能。相比之下,当 K 较大时,调整 R 对整体性能的影响很小。
- 进一步证明:在深层中,图像 token 存在高度冗余性

5.2.2 使用更少的 Token 进行训练
- 两种减少 token 的方法比较
- 法一:在推理阶段通过剪枝 token 来减少计算需求(FastV)
- 法二:在训练阶段降低输入分辨率来训练 LVLM(例如:对视觉编码器的输出进行池化操作)
- 比较两种方法
- 结果表7
- 为了进行公平比较,作者重新训练了两个 LLaVA1.5-7B 模型,严格遵循原始的预训练和监督微调协议。第二个模型的训练过程中唯一的修改是在 Clip 编码器后加入了一个平均池化层(步幅为 2),从而在训练期间将图像 token 数量减少了 50% (表7(a))。
- 表 7 中 (a) 和 (b) 行的对比表明,直接在训练期间降低输入分辨率会导致性能下降,而 FastV 不会。

5.2.3 剪枝 token 策略
- 证明图像 token 的注意效率较低
- 如前面表7中的 (d) 和 (f) 所示,作者特别剪枝了系统提示(system prompt)和指令 token(instruction tokens),导致了显著的性能下降。
- (c) 行随机丢弃视觉 token ,而不是基于注意力排序,性能相比于 (b) 产生了下降。
- 比较 (d) 和 (e) 行的结果,可以看到系统提示的头部 token 对模型性能具有主导性影响。
- (g) 行直接应用与 StreamingLLM 相同的稀疏注意力模式会导致 LVLM 性能的显著下降。这表明图像 token 和文本 token 在 LLM 的信息处理中存在根本性的差异。
怎么感觉 (c) 和 (b) 差距不是很大。。。随机丢弃似乎也挺好的
6 总结
在本文中,作者提出了 FastV ,一种即插即用的大型视觉-语言模型(LVLMs)推理成本优化方法。FastV 的设计灵感来源于观察:尽管视觉 token 在输入中占据了很大比例,但在流行的 LVLMs 的深层中,对视觉 token 的注意力计算效率极低。FastV 根据注意力得分排名剪枝掉不必要的视觉 token,从而显著降低了推理成本,同时不会牺牲模型性能。