VisCo:以大语言模型作为内在编码器实现视觉 Token 自压缩 VisCo: Leveraging Large Language Models as Intrinsic Encoders for Visual Token Compression
复用预训练 VLM 自身做视觉 token 自压缩,轻量适配、极端压缩下仍强。
前置知识
视觉语言模型(VLM)
由视觉编码器、模态对齐模块与 LLM 主干三部分组成的多模态模型,能联合建模图像与文本,处理视觉问答、多模态推理等任务。典型代表如 LLaVA、Qwen2-VL、InternVL。高分辨率图像会被编码成大量视觉 token,导致自注意力和 KV 缓存开销剧增。
本文全部目标都是压缩这类模型里的视觉 token,理解 VLM 的三段式结构和 token 流向是读懂方法的前提。
视觉 Token 压缩
在视觉编码阶段或进入 LLM 后,把成百上千个视觉 token 裁剪/合并成少量 token,以降低推理延迟与显存。分两派:免训练方法(基于注意力或相似度的启发式裁剪,如 FastV、SparseVLM、VisionZip)和训练方法(引入外部压缩模块或重新对齐训练,如 Q-Former、VoCo-LLaMA、MatryoshkaQuery)。本文提出的 VisCo 属于轻量训练派。
本文的核心贡献就是提出一条新的压缩路线,必须先明白现有两派各自的痛点才能理解 VisCo 的差异化。
KV Cache(键值缓存)
Transformer 自回归解码时,把每层已计算过的 Key、Value 缓存复用,避免重复计算前缀。存储量与序列长度(含视觉 token 数)成正比。VisCo 的关键设计正是把编码端收集到的层次化 KV 对直接填进解码端的 KV 缓存,作为前缀复用。
论文最核心的技术机制——层次化 KV 传递——完全建立在对 KV cache 的直接操作上,不懂 KV cache 无法理解方法。
LoRA(低秩适配)
在冻结的预训练权重旁注入一对低秩矩阵 $BA$($B \in \mathbb{R}^{d imes r}$, $A \in \mathbb{R}^{r imes d}$,秩 $r$ 远小于维度 $d$),只训练这部分少量参数,从而以极低显存和算力微调大模型。本文把 LoRA(rank=64, alpha=128)仅加在编码端的 Q/V 投影上,解码端移除。
VisCo 声称的‘轻量适配’和‘主干冻结’主要靠 LoRA 实现,这是其成本可控的关键。
因果掩码(Causal Masking)
decoder-only LLM 中位置 $i$ 的 token 只能注意到位置 $j \le i$ 的 token。VisCo 巧妙地把可学习的 memory token $X_m$ 放在视觉 token $X_v$ 之后组成 $X=[X_v;X_m]$,从而在不修改任何注意力规则的前提下,让 memory token 自然能关注到全部视觉 token。
这是 VisCo 不引入任何‘定制交互规则’就能让 memory token 聚合视觉信息的设计基石。
研究动机
高分辨率图像会被 VLM 编码成大量视觉 token,从而显著放大自注意力的计算量和 KV 缓存存储,严重限制其在资源受限与实时场景下的部署。已有压缩方案可分为两类,各自有硬伤:免训练方法(FastV、SparseVLM 等基于注意力的方法)存在 attention shift 问题、易诱发幻觉,且在高压缩比下性能骤降——如图 1 所示,Qwen2-VL-7B 仅保留 9 个 token 时,SparseVLM 既丢失细节又丢失全局上下文,token 选择高度依赖问题本身;基于相似度的裁剪(DART、VisionZip)能消除局部冗余,却难以保留文本引导的全局语义。训练方法中,轻量外部模块(PruMerge、ACCM)在高压缩比下收益仍有限;强方法(VoCo-LLaMA、MatryoshkaQuery)则需要昂贵的重新对齐、指令调优或专用压缩训练,迫使 VLM 偏离原生运行方式并付出高昂重训成本。
本文的目标是作者的目标是设计一种在激进压缩比下仍保留语义保真度、同时不需要重训整个主干、还遵循 VLM 原生处理模式的视觉 token 压缩方法。具体而言:要在 8×、16× 甚至单 token 等极端设置下仍稳定(如 LLaVA-1.5-7B 把 576 token 压到 1 个仍保住 85.3% 性能);要保留预训练 VLM 的强先验而不妥协主干;只需轻量适配即可获得与重训方法相当的竞争力;并希望学到的紧凑表示能提供超越压缩本身的互补信息,即‘压缩后甚至比原模型更好’(VisCo+ 把 MMB 从 67.3 提升到 69.6)。
与已有工作不同的是,本文的独特切入角度在于一个被忽视的观察:视觉 token 压缩本质上是一个信息编码过程,而预训练 VLM 本身就已经具备强大的信息编码能力——只是被现有方法低估和浪费了。因此 VisCo 不走‘启发式裁剪规则’也不走‘强迫 VLM 适配的外部压缩模块’,而是直接把预训练 VLM 自身当作内在压缩器复用:通过少量 memory token 和轻量 LoRA 让 VLM 把自己的视觉 token 压缩成层次化 KV 表示,再用同一个冻结的主干解码。这填补了‘免训练(便宜但弱)’与‘重训(强但贵)’之间的空白。
核心方法
整体直觉是:压缩 = 强信息编码,而预训练 VLM 已天然具备该能力,因此最好的做法是顺着 VLM 原生处理流程做轻量适配,而非另起炉灶。技术路线上,VisCo 是一个参数共享的不对称 VLM 自编码器:编码端在冻结主干 $\Phi$ 上加 LoRA 适配器 $\theta_{\mathrm{LoRA}}$(rank=64, alpha=128)并引入少量可学习 memory token $X_m$;解码端直接移除 LoRA、复用同一冻结 VLM 作为解码器。编码时把 $N_m$ 个 memory token 拼到 $N_v$ 个视觉 token 之后组成 $X=[X_v;X_m]$,靠因果掩码让 memory token 关注全部视觉 token;逐层收集 memory token 的 KV 对构成 memory bank;解码时把该 bank 直接灌进解码端 KV 缓存再自回归生成。整个模型只用 teacher forcing 在 LLaVA-665K 约 10% 子集上训练 1 个 epoch,学习率 $5\times 10^{-5}$。
核心创新点与已有方法的本质区别有三处。第一,与图 2(a) 的注意力/相似度裁剪不同,VisCo 不丢弃 token 而是让 VLM 主动编码;与图 2(b) 的 Q-Former 等外部模块不同,VisCo(图 2(c))直接复用 VLM 自身作为压缩器,无需让主干强行适应新模块。第二,与同样在 VLM 内部压缩的 VoCo-LLaMA 不同,VisCo 采用不对称设计:只适配编码端、解码端完全冻结,因此是‘把已有能力适配到压缩场景’而非‘从头重学多模态生成’,训练成本显著更低。第三,最关键的技术差异是层次化信息传递:与其把编码器最终输出送给解码器(会抹平层次结构),VisCo 把编码端逐层 memory 的 KV cache 原样填进解码端 KV cache——因为编/解码共享参数与注意力先验,解码器无需任何投影即可直接复用,这与需要 $L$ 层 MLP 投影的 Prefix-Tuning 形成鲜明对比。
方法步骤详情
流程分五步。步骤 1 序列构造:对图像 $I$ 经 $f_{\mathrm{resize}}$ 缩放后,用视觉编码器 $f_v$ 与投影器 $g$ 得到视觉 token $X_v = g(f_v(I)) \in \mathbb{R}^{N_v \times D}$,再拼接 $N_m \ll N_v$ 个可学习 memory token $X_m$ 组成 $X=[X_v;X_m]$。步骤 2 因果掩码编码:用加挂 LoRA 的 $\Phi_E$ 处理联合序列,标准因果掩码让 memory token 自然关注全部视觉 token。步骤 3 层次聚合:逐层抽取 memory 对应的 KV,$K_{\mathrm{mem}}^{(l)}=K^{(l)}[N_v{+}1:N_v{+}N_m]$,$V_{\mathrm{mem}}^{(l)}=V^{(l)}[N_v{+}1:N_v{+}N_m]$,构成 memory bank $\{K_{\mathrm{mem}}^{(l)},V_{\mathrm{mem}}^{(l)}\}_{l=1}^{L}$,浅层捕纹理、深层编码语义,并丢弃编码器最终隐状态。步骤 4 层次化前缀解码:移除 LoRA、复用冻结 VLM $\Phi$,把 memory bank 灌入其 KV cache 后自回归生成 $P_d(y|K_{\mathrm{mem}},V_{\mathrm{mem}},X_t;\Phi)$。步骤 5 训练:端到端 teacher forcing 最小化 $\mathcal{L}_{FT}=-\sum_{i=1}^{N_a}\log p_\theta(a_i|K_{\mathrm{mem}},V_{\mathrm{mem}},X_t,A_{<i})$,可训练参数仅为 $X_m$ 与 $\theta_{\mathrm{LoRA}}$。
技术新颖性
技术新颖性可归纳为四点。其一,不对称内在自压缩框架:主干完全冻结,仅对编码端做轻量适配,不同于 VoCo-LLaMA 那样重学整套多模态生成流程,这是‘轻量’与‘强’兼得的根本。其二,层次化信息传递机制:直接搬运逐层 KV cache 作为前缀,免去 Prefix-Tuning 所需的 $L$ 个 MLP 投影;消融(表 3)显示 Our-HierKVPass 在 36 token 时 GQA 保持 102.2%、POPE 101.7%,而 Our-ValuePass 仅 86.6%/97.7%,差距巨大。其三,零额外预训练目标——仅 teacher forcing,训练成本极低(1 epoch、10% 数据)。其四,互补表示:memory token 并非简单摘要,VisCo+ 联合原始视觉 token 后在 MMB 上从 67.3 提升到 69.6、PoPe 81.5→84.6,说明它编码了新视角的视觉信息。这四点共同把‘复用 VLM 自身先验’这一想法落到了工程可实现的形态。
实验结果
实验覆盖 3 个主干、6 个基准,核心发现如下。LLaVA-1.5-7B(表 1):576→32 token 保持 91.8%、超 VisPriner 4.0 点;576→1 仍保 85.3%,分别比 VisPriner、PruMerge+ 高 36.5、49.9 点,并在 GQA/MMB 上超过需重训的 VoCo-LLaMA。Qwen2-VL-2B(表 2):144→36 保 95.2%(超 VisionZip‡ 4.2%),144→18 保 91.4%(VisionZip‡ 仅 76.1%、领先 15.3%)。Qwen2-VL-7B:144→36 保 94.6%、→18 保 90.4%,在已自带原生压缩的主干上仍领先 4.8%/9.1%。压缩比消融(图 4)显示对手在单 token 时塌缩趋同,VisCo 仍达 GQA 50.8/MMB 52.8。层次化消融(表 3):HierKVPass 在 36 token 时 GQA 102.2% vs ValuePass 86.6%,验证层次 KV 传递的关键作用。互补性(表 4):VisCo+ 把 MMB 从 67.3 提到 69.6、PoPe 81.5→84.6。效率(表 6、图 7):解码速度同 VisionZip、KV 缓存大幅降低,长回复比 FastV 快约 0.2s,多轮场景第 3 轮即反超。
查看结构化数据
| 任务 | 指标 | 本文 | 基线 | 提升 |
|---|---|---|---|---|
| LLaVA-1.5-7B 高压缩(576→32 token) | Avg 保持率(6 基准均值) | 91.8%(GQA 58.5、MMB 62.3、MMB-CN 57.2、MME 1152.9、PoPE 81.9、MMVet 27.9) | VisPruner 87.8%、DivPrune 87.2%、PruMerge+ 77.5%、SparseVLM 72.6%、FastV 57.6% | 比最强可比基线 VisPruner 高 +4.0 个点 |
| LLaVA-1.5-7B 极端单 token(576→1) | Avg 保持率 | 85.3%(GQA 58.2、MMB 59.0、MMB-CN 52.4、MME 1191.2、PoPE 78.2) | VisPruner 48.8%、PruMerge+ 35.4% | 比 VisPruner 高 +36.5 点,比 PruMerge+ 高 +49.9 点 |
| Qwen2-VL-2B(144→36 token,66.7% 压缩) | Avg 保持率 | 95.2%(GQA 61.1、MMB 64.0、MMB-CN 58.9、MME 1368.3、PoPE 82.9、MMVet 35.6) | VisionZip‡ 91.0%、FastV 84.2%、PruMerge+ 80.6% | 比最强基线 VisionZip‡ 高 +4.2% |
| Qwen2-VL-2B(144→18 token,88.9% 压缩) | Avg 保持率 | 91.4%(GQA 59.7、MMB 62.9、MMB-CN 57.8、MME 1358.0、PoPE 82.4) | VisionZip‡ 76.1%、FastV 70.0%、PruMerge+ 65.1% | 比 VisionZip‡ 高 +15.3%,优势在更高压缩比下显著放大 |
| Qwen2-VL-7B(144→36 / →18 token) | Avg 保持率 | 94.6% / 90.4% | VisionZip‡ 89.8% / 81.3% | 分别 +4.8% / +9.1% |
| 互补表示(VisCo+,Qwen2-VL-2B) | MMB / PoPe / MME | MMB 69.6、PoPe 84.6、MME 1491.2 | Origin MMB 67.3、PoPe 81.5、MME 1465.8;Direct SFT MMB 66.4 | MMB +2.3、PoPe +3.1、MME +25.4,证明 memory token 是互补而非冗余表示 |
| 层次化 vs 值传递(Qwen2-VL-2B,36 token) | GQA / MMB / POPE 保持率 | HierKVPass:GQA 102.2%、MMB 95.1%、POPE 101.7% | ValuePass:GQA 86.6%、MMB 88.7%、POPE 97.7% | GQA +15.6 点、MMB +6.4 点,验证层次化 KV 传递的关键作用 |
局限与改进
作者承认的局限有:固定数量的 memory token,未做自适应分配(文中明确列为未来工作);只验证到图像压缩,未扩展到更难的视频压缩场景;单轮短回复(如 MME)下,额外的 LLM 编码步骤带来可感知的压缩开销。我额外观察到几点:训练数据仅用 LLaVA-665K 的 10% 子集且只用首轮对话,对其它数据分布的泛化未经检验;尽管未用中文数据训练却拿到 MMB-CN 最佳,但这并非严格的多语言评测;图 6 的 memory token 专长可视化只基于单张图,证据偏弱;效率评测未给出显存峰值、吞吐量等更系统的指标。此外,直接操控 KV cache 属于较‘侵入式’的工程实现,在主流推理框架(vLLM、SGLang)里集成成本与兼容性未被讨论。
独立分析的弱点
第一个弱点是 memory token 数量固定,无法按图像复杂度自适应——简单场景仍保留同样多 token 造成浪费,复杂场景又可能不够,改进方向是引入基于编码端注意力熵或图像信息量的动态 token 分配。第二个弱点是单轮短回复场景的压缩开销(128 token 时压缩耗时 68.9ms),在‘一图一问’的 MME 类任务里相对 FastV 没有延迟优势,改进方向是缓存编码结果或把 memory bank 预计算复用到边缘部署。第三个弱点是评测广度不足:仅 6 个英文为主基准、单一训练集,改进方向是加入视频基准、医学/遥感等垂直域与真正的中英多语言评测。第四个弱点是 KV cache 注入依赖定制实现,改进方向是提供与 vLLM/SGLang 兼容的插件化接口或开源 reference。第五个弱点是 VisCo+ 虽能超过原模型,但只在 36 token 模型上验证且 MMVet 反而下降(37.2 < 42.5),说明互补性并非在所有能力上成立,需进一步研究何种任务受益。
未来方向
作者明确提出的方向有两条:自适应 token 分配(不同视觉输入给予不同 memory token 预算),以及把 VisCo 扩展到更挑战的视频压缩场景。基于本文成果可延伸的方向包括:将层次化 KV 传递机制迁移到其他 decoder-only 多模态架构(如 InternVL、MiniCPM-V)验证通用性;研究 memory token 的可解释性与可编辑性(图 6 显示前段 token 聚焦主体、后段聚焦背景,能否人为控制注意力区域);把 memory token 作为可蒸馏的紧凑表示用于检索增强(与 Compress & Cache 思路结合);探索与原生动态分辨率机制(Qwen2-VL)的协同优化,因为本文已证明在已紧凑表示上仍有效;以及用更大规模、更多样化数据训练以验证 memory token 是否真具备跨域互补性。
复现评估
复现难度中等偏上。训练侧信息充足且开销可控:LoRA rank=64、alpha=128、学习率 $5\times10^{-5}$,仅用 LLaVA-665K 约 10% 子集的首轮对话训练 1 个 epoch;三个主干(LLaVA-1.5-7B、Qwen2-VL-2B/7B)均为公开权重,效率评测用单卡 48GB RTX 6000 即可。难点在于工程实现:方法的核心是‘直接把编码端逐层 KV 对灌进解码端 KV cache’,这需要对 Transformer 前向做定制化的 KV cache 注入,并非标准推理框架的现成功能,缺乏开源代码时自行实现有一定门槛;6 个基准均有公开评测脚本,但 memory token 的逐层索引、LoRA 仅作用于 Q/V 投影等细节需要严格对照论文。论文未提供代码与权重链接,建议关注作者后续 release。
论文图表
对比 Qwen2-VL-7B 仅保留 9 个视觉 token 时 SparseVLM 与 VisCo 的表现。上图展示 SparseVLM 为两个不同问题保留的 token,下图展示本方法中 memory token 注意力最高的前 100 个 token。SparseVLM 丢失细节与全局上下文且选择高度依赖问题,而 VisCo 仅用极少 token 即能同时覆盖整体场景与关键区域。
这张图直观展示了免训练方法在高压缩比下的核心缺陷(注意力偏移、问题相关性强),是理解 motivation 为什么必须另辟蹊径的关键视觉证据。