Back to blog

VisCo: Leveraging Large Language Models as Intrinsic Encoders for Visual Token Compression

训练高效的自压缩框架,利用预训练 VLM 自身作为内在编码器压缩视觉 token

VisCo: Leveraging Large Language Models as Intrinsic Encoders for Visual Token Compression

一、论文概述

项目内容
标题VisCo: Leveraging Large Language Models as Intrinsic Encoders for Visual Token Compression
作者Yupeng Zheng (USTC), Kai Zou (USTC), Bin Liu (USTC), Nenghai Yu (USTC)
机构University of Science and Technology of China (USTC), Anhui Province Key Laboratory of Digital Security
论文arXiv:2607.12756
代码暂未公开
发布2026-07-14
许可arXiv 非独占分发许可
CCSComputer vision
KeywordsToken Compression, Vision Language Models, Autoencoder

二、核心思想

问题定义

Vision-language models (VLMs) 将高分辨率图像编码为大量视觉 token,显著增加了 self-attention 计算成本和 KV cache 存储开销,严重限制了 VLM 在资源受限和实时场景中的部署。

现有视觉 token 压缩方法存在两类主要局限:

  1. 免训练策略(Training-free):如 FastV、SparseVLM 依赖文本到视觉注意力进行启发式压缩,DART、VisionZip 基于特征相似度剪枝。但前者容易产生 attention shift 导致幻觉,后者无法保留文本引导的全局语义,在高压缩比下性能急剧下降。
  2. 训练型方法(Training-based):如 PruMerge、ACCM 引入轻量压缩模块但仍有限,QueCC、Matryoshka Query、VoCo-LLaMA、C&C 等方法依赖外部压缩模块或架构修改,需要昂贵的重新训练成本(重对齐、大规模指令微调),且损害了 VLM 的先验知识。

解决方案概述

VisCo 提出了一种训练高效的自压缩框架,核心思想是复用预训练 VLM 自身作为内在压缩器。具体而言:

  • VisCo 是一个不对称的参数共享自编码器(Asymmetric Parameter-sharing Autoencoder)
  • 在编码阶段引入 LoRA adapter + 少量可学习的 memory tokens,解码阶段移除 LoRA 直接复用冻结的预训练 LLM backbone
  • 通过**层级信息传递机制(Hierarchical Information Passing)**从编码器各层提取 memory token 对应的 KV 值存入 memory bank,解码时直接填充到 decoder 的 KV cache 中
  • 仅微调 memory tokens 和 LoRA 参数,保持 backbone 完全冻结

动机

有效视觉 token 压缩的关键在于强大的信息编码能力——这一能力已经存在于预训练的 VLM 中,但现有方法未能充分利用。Transformer 语言模型具有层级功能专业化特性:浅层编码表面和局部语法模式,中层关注句法结构,深层捕获语义和语篇级现象。VisCo 直接利用 VLM 自身的注意力先验让 memory tokens 聚合视觉信息,而非引入自定义交互规则。

三、技术架构

整体框架图

架构图

VisCo 是一个不对称的 VLM 自编码器,在编码阶段引入轻量可训练模块,解码阶段保持整个 VLM 冻结。

核心公式

层级 KV 记忆库构建 — 保留 memory token 对应的 key 和 value:

Kmem(l)=K(l)[Nv+1:Nv+Nm],(1a)K_{\mathrm{mem}}^{(l)} = K^{(l)}[N_v + 1 : N_v + N_m], \tag{1a} Vmem(l)=V(l)[Nv+1:Nv+Nm].(1b)V_{\mathrm{mem}}^{(l)} = V^{(l)}[N_v + 1 : N_v + N_m]. \tag{1b}

其中 NvN_v 是视觉 token 数量,NmN_m 是 memory token 数量,l=1,…,Ll = 1, \ldots, L 表示 Transformer 层数。

编码阶段建模:

Pe(Kmem,Vmem∣Xv,Xm;ΦE).(2)P_e(K_{\mathrm{mem}}, V_{\mathrm{mem}} \mid X_v, X_m; \Phi_E). \tag{2}

解码阶段建模:

Pd(y∣Kmem,Vmem,Xt;Φ).(3)P_d(y \mid K_{\mathrm{mem}}, V_{\mathrm{mem}}, X_t; \Phi). \tag{3}

其中 yy 是答案序列,XtX_t 是文本提示的嵌入序列。

教师强制损失函数:

LFT=−∑i=1Nalog⁡pθ(ai∣Kmem,Vmem,Xt,A<i).(4)\mathcal{L}_{\mathrm{FT}} = -\sum_{i=1}^{N_a} \log p_\theta(a_i \mid K_{\mathrm{mem}}, V_{\mathrm{mem}}, X_t, A_{<i}). \tag{4}

其中 A={a1,…,aNa}A = \{a_1, \ldots, a_{N_a}\} 是答案 token 序列,θ\theta 是可训练参数(包括 XmX_m 和 θLoRA\theta_{\mathrm{LoRA}})。

与 Prefix-Tuning 不同,VisCo 直接使用编码器侧的 memory KV caches 作为层级 prefix,无需每层的 MLP 投影。

模型组件

组件说明关键参数
Memory Tokens (XmX_m)一组可学习的压缩 token,Nm≪NvN_m \ll N_v可学习参数
LoRA Adapter (θLoRA\theta_{\mathrm{LoRA}})应用于 Q/V 投影的轻量适配器r=64r = 64, α=128\alpha = 128
Memory Bank每层 memory token 对应的 KV 值集合Kmem={Kmem(l)}l=1LK_{\mathrm{mem}} = \{K_{\mathrm{mem}}^{(l)}\}_{l=1}^L
Encoder ΦE\Phi_E带 LoRA 和 memory tokens 的 VLM仅微调 XmX_m + LoRA
Decoder Φ\Phi冻结的预训练 LLM backbone无 LoRA,参数共享

训练流程

编码阶段:

  1. 给定图像 IorigI^{\mathrm{orig}},缩放至目标分辨率得到 II
  2. 视觉编码器 fvf_v 和多模态投影器 gg 编码为视觉 token Xv∈RNv×DX_v \in \mathbb{R}^{N_v \times D}
  3. 追加 NmN_m 个 memory tokens Xm∈RNm×DX_m \in \mathbb{R}^{N_m \times D},形成联合序列 X=[Xv;Xm]X = [X_v; X_m]
  4. 严格遵循因果掩码机制,memory tokens 位于视觉 token 之后,每个 memory token 自然可以 attend 到所有视觉 token
  5. 对每层 ll,提取 memory token 对应的 KV 值存入 memory bank
  6. 丢弃最终 encoder hidden states,仅依赖层级 memory KV caches

解码阶段:

  1. 移除 LoRA adapters,复用共享的预训练 LLM backbone
  2. 将层级 memory bank {Kmem(l),Vmem(l)}l=1L\{K_{\mathrm{mem}}^{(l)}, V_{\mathrm{mem}}^{(l)}\}_{l=1}^L 直接填充到 decoder 的 KV cache
  3. 在此 cache 上执行自回归生成

训练配置:

  • 数据集:LLaVA-665K 的 ~10% 子集(每个对话的第一轮)
  • LoRA: Q/V projections, r=64r=64, α=128\alpha=128
  • 学习率: 5×10−55 \times 10^{-5}
  • 训练 epoch: 1
  • 评估模型: LLaVA-1.5-7B, Qwen2-VL-2B, Qwen2-VL-7B

现有压缩方法对比

压缩方法对比

  • (a) Training-free: 基于注意力或相似度的启发式剪枝/合并
  • (b) External-module: 引入额外压缩模块,需要 VLM 适应
  • (c) VisCo: 复用 VLM 自身作为压缩器,仅引入 memory tokens

四、核心创新

创新点说明理论/实验依据
不对称内在自编码器仅微调编码器(LoRA + memory tokens),解码器完全冻结并复用预训练 backbone避免重新学习完整的多模态生成过程
层级 KV 信息传递从编码器每层提取 memory token 对应的 KV 值,直接作为 decoder 的层级 prefix保留多层级视觉语义,避免 collapse 为单一摘要
因果掩码下的自然注意力memory tokens 置于视觉 token 之后,利用预训练 backbone 的固有注意力模式聚合信息不引入自定义交互规则
极端压缩稳定性即使在单 token(1 token)设置下仍保留 85.3% 原始性能超越 PruMerge+ 49.9 分、VisPruner 36.5 分
互补表示发现memory tokens 与原始 token 结合时甚至提升基础模型性能证明了 VisCo+ 设计

五、实验结果

基准测试 — LLaVA-1.5-7B

LLaVA 压缩对比

方法TokenGQAMMBMMB-CNMMEPoPEMMVetAvg.
LLaVA-1.5-7B57662.064.358.31510.785.931.1100.0%
32 tokens (↓94.4%)
FastV (ECCV24)3241.537.833.2884.632.520.757.6%
SparseVLM (ICML25)3248.351.440.61046.767.918.672.6%
PruMerge+ (ICCV25)3251.156.847.0940.870.921.477.5%
DivPrune (CVPR25)3254.957.649.11284.981.526.387.2%
VisPruner (ICCV25)3252.258.452.71271.072.728.887.8%
VisCo3258.562.357.21152.981.927.991.8%
1 token (↓99.8%)
PruMerge+ (ICCV25)126.413.713.7568.940.412.535.4%
VisPruner (ICCV25)141.822.425.8764.449.012.048.8%
VisCo158.259.052.41191.278.220.785.3%

基准测试 — Qwen2-VL

基线模型方法压缩比GQAMMBMMB-CNMMEPOPEMMVetAvg.
Qwen2-VL-2BOrigin144 tokens (100%)59.867.361.81465.881.542.5100.0%
VisCo36 tokens (↓66.7%)61.164.058.91368.382.935.695.2%
VisCo18 tokens (↓88.9%)59.762.957.81358.082.428.991.4%
Qwen2-VL-7BOrigin144 tokens (100%)64.876.171.61664.882.656.1100.0%
VisCo36 tokens (↓66.7%)62.674.070.01551.083.340.494.6%
VisCo18 tokens (↓88.9%)61.870.068.81496.581.739.290.4%

定性评估

高压缩比定性对比

  • 在 8× 和 16× 压缩比下,传统方法丢失细粒度细节,复杂推理失败
  • VisCo 在感知和推理任务上均正确回答
  • 即使仅 1 个 token,VisCo 仍能生成包含详细物体级别描述和连贯全局语义的 caption

消融实验

(1) 层级 KV 传递 vs 值传递

压缩率方法GQA Acc.GQA ScoreMMB Acc.MMB ScorePoPE F1PoPE Score
36 tokens (↓66.7%)ValuePass51.886.6%59.588.7%79.697.7%
HierKVPass (Ours)61.1102.2%64.095.1%82.9101.7%
18 tokens (↓88.9%)ValuePass49.682.9%54.481.1%77.695.2%
HierKVPass (Ours)59.799.8%62.993.5%82.4101.1%
2 tokens (↓98.6%)ValuePass45.876.6%50.174.7%74.991.9%
HierKVPass (Ours)50.884.9%53.379.2%79.797.8%

层级 KV 传递显著优于直接值传递,证明层级信息传播确实大幅提升了模型性能。

(2) 压缩率消融

压缩率消融

随着压缩率增加(保留 token 减少),VisCo 性能下降平缓,而其他方法急剧恶化。

(3) Memory Token 重要性分析

方法MMBMMB-CNGQAMMEPoPe
36 token (全量)64.058.960.11395.482.9
drop(0,17) 前18个55.752.956.81305.676.2
drop(18,35) 后18个60.056.257.01375.681.6

前 18 个 memory tokens 更重要,因为它们更密集地 attend 到图像主体对象;后 18 个则关注背景区域和局部细节。

(4) Memory Tokens 作为互补表示 — VisCo+

方法MMBMMB-CNGQAMMEPoPeMMVet
Origin67.361.859.81465.881.542.5
Direct SFT66.462.257.11354.582.640.3
VisCo+69.667.859.91491.284.637.2

VisCo+(memory tokens + 原始 token 联合使用)在所有基准上超越原始模型,且增益不是来自额外的 fine-tuning。

效率分析

Token方法压缩时间 (ms)解码时间 (ms/token)推理时间 (s)KV Cache (MB)
576Origin-21.25.5288.0
128FastV-20.35.278.8
VisionZip‡-19.65.072.0
VisCo68.919.65.072.0
32FastV-19.45.026.4
VisionZip‡-18.64.818.0
VisCo63.718.64.818.0

多轮对话效率

多轮效率

  • VisCo 一次性压缩图像并缓存表示,在多轮对话中复用
  • FastV/SparseVLM 每次查询需重新压缩视觉 token
  • 仅需 3 轮对话,VisCo 的平均响应时间就超过 FastV

六、总结

核心贡献

  1. 不对称内在自编码器:利用 VLM 自身压缩视觉 token,保持 backbone 冻结,仅需轻量微调(LoRA + memory tokens)
  2. 层级 KV 信息传递机制:从编码器各层提取 memory token 对应的 KV 值,直接作为 decoder 的层级 prefix,保留多层级视觉语义
  3. 全面评估与极端压缩下的强性能:在 3 个 VLM backbone 和 6 个 benchmark 上,VisCo 一致超越现有方法,尤其在 1-token 极端设置下表现突出
  4. 互补表示发现:memory tokens 不仅压缩视觉信息,还捕获与原始 token 互补的表征,联合使用时甚至提升基础模型性能
  5. 效率优势:显著减少 KV cache 存储,在多轮对话场景中具有明显加速优势

技术影响

VisCo 证明了利用预训练 VLM 的内在先验可以实现鲁棒的视觉 token 压缩,仅需轻量训练即可在紧致的 token 预算下取得竞争性性能。这种方法保留了 VLM 的灵活性和即插即用特性,同时避免了外部模块带来的高昂重新训练成本。

局限性

  • 当前评估主要在 LLaVA-1.5-7B 和 Qwen2-VL (2B/7B) 上进行,未来将扩展到更多 VLM 架构
  • 单 token 设置在 MMB/MMB-CN 上仍有约 10% 的性能损失
  • 压缩阶段引入额外开销(~64ms),但在长回复和多轮对话场景中被解码加速所抵消

七、参考资源