跳转至

ViCO: A Training Strategy towards Semantic Aware Dynamic High-Resolution

会议: NeurIPS 2026
arXiv: 2510.12793
领域: 多模态大模型
关键词: 动态高分辨率, 视觉Token压缩, 视觉一致性学习, 语义自适应路由, 多模态大模型推理加速

一句话总结

ViCO 提出视觉一致性学习与轻量级视觉分辨率路由器(ViR),依据图像 Patch 的语义复杂度自适应选择压缩率,在保留多模态大模型感知、推理与 OCR 能力的同时减少高达 50% 的视觉 Token,首字吞吐量提升近一倍。

研究背景与动机

多模态大语言模型(MLLMs)在图像理解、图表问答和视频分析等任务中取得了突破性进展,但高分辨率图像输入的引入导致视觉 Token 数量急剧膨胀,进而显著增加了推理延迟与计算成本。以 InternVL3.5 为例,在默认动态高分辨率配置下,单张图像最多被切分为 13 个 Patch(含 1 个缩略图),每个 Patch 对应 256 个视觉 Token,单图总 Token 数高达 3328 个;在处理多页文档或长视频序列时,视觉 Token 迅速占据上下文窗口的大部分,造成首字生成时间慢与显存开销居高不下的严峻瓶颈。

现有的视觉 Token 压缩策略主要存在两类局限:一类是传统的动态分辨率方法,仅依据输入图像的物理分辨率粗粒度调整 Patch 划分数量,对所有 Patch 均分配固定且高密度的 Token,无法感知 Patch 内部信息密度的差异;另一类是无需训练的 Token 剪枝或合并方法(如 FastV、SparseVLM、ToMe),通常基于注意力权重或特征相似度进行硬性剔除,但在文档理解、密集文本和精细图表等视觉敏感型任务(如 DocVQA、InfoVQA、OCRBench)中往往发生灾难性信息丢失,导致模型性能大幅退化。

这种效率与性能失衡的核心矛盾在于:图像中不同区域的语义信息密度极度不均,大面积单调背景无需占用大量表示容量,而密集文字和前景细节则需要精细表征,但现有架构缺乏一种既能保持多尺度压缩表征鲁棒性、又能自适应评估局部语义价值的协同机制。核心 idea:通过响应级 KL 散度约束最小化不同压缩率下的输出分布差异(视觉一致性学习),并引入基于模型性能敏感度的轻量级视觉分辨率路由器(ViR),实现对图像 Patch 语义复杂度的动态按需分配。

方法详解

整体框架

ViCO 包含两个递进的核心训练阶段:一致性训练(Consistency Training)与路由器训练(Router Training)。在推理阶段,输入图像经 Patch 切分后由 ViT 提取特征,轻量级视觉分辨率路由器 ViR 自适应评估每个 Patch 的语义复杂度,并决定将其路由至 64 个 Token(16× 下采样)的高压缩率连接器或 256 个 Token(4× 下采样)的低压缩率连接器;生成的变长视觉 Token 与文本指令 Token 拼接后输入语言模型进行解码。

%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
    In["输入图像与文本指令<br/>切分为 N 个图像 Patch"] --> ViT["ViT 视觉编码器<br/>提取各 Patch 特征"]
    ViT --> Des3["灵敏度驱动的视觉分辨率路由器<br/>ViR 评估语义复杂度并输出路由概率"]
    Des3 -->|复杂区域 / 文本细节| P_High["256 Tokens 高分辨率路径<br/>4× 下采样 MLP"]
    Des3 -->|平坦背景 / 简单语义| P_Low["64 Tokens 低分辨率路径<br/>16× 下采样 MLP"]
    P_High --> Concat["双速率视觉连接器与特征拼接<br/>混合速率视觉 Token 序列"]
    P_Low --> Concat
    Concat --> Des2["响应级一致性蒸馏与语言模型推理<br/>LLM 生成预测响应"]

关键设计

1. 双速率视觉连接器:构建混合粒度的视觉表示空间

传统 MLLM 通常采用单一结构的多层感知机(MLP)或像素解洗牌(Pixel Unshuffle)层对 ViT 特征进行固定比例的下采样(例如 4× 空间压缩至 256 个 Token)。ViCO 为了使模型具备处理多尺度压缩特征的能力,额外引入了一个 16× 空间下采样 MLP 连接器,将单个 Patch 进一步压缩为 64 个 Token。在模型前向传播过程中,两套连接器共享相同的 ViT 输出表征,分别映射出 256 和 64 个视觉 Token,为后续的按需动态分辨率路由提供了结构支持。

2. 响应级一致性蒸馏:消除不同压缩率下的表征偏差

若未经对齐直接在模型中混合输入不同压缩尺度的视觉 Token,会导致语言模型因特征密度失配而产生严重幻觉。为解决这一问题,ViCO 在一致性训练阶段引入冻结的参考模型 \(\pi_{\theta_{ref}}\)(始终接收未经压缩的 256 Token 完整特征输入),并让策略模型 \(\pi_{\theta_{policy}}\) 接收随机比例压缩的图像输入 \(I_\xi\)。训练通过最小化两者在文本响应生成上的 KL 散度,迫使策略模型在面对高度压缩的局部视觉表征时,仍能保持与全分辨率输入高度一致的语义理解与推理能力。

3. 灵敏度驱动的视觉分辨率路由器(ViR):基于性能衰减因子的动态自适应分配

一致性训练虽然增强了模型对高压缩特征的鲁棒性,但对细节敏感的复杂区域若强行压缩仍不可避免会导致信息损耗。为此,ViCO 构建了轻量级路由器 ViR,其网络由 ViT 特征提取、注意力池化(Attention Pooling)和单层 MLP 分类器构成。为了获取真实无偏的训练监督信号,ViCO 为每个 Patch 计算一个性能损失比值 \(r_i\):

\[r_i = \frac{\mathcal{L}_{\text{ViCO}}\big(y_i \mid I_{\frac{1}{16}}\big)}{\mathcal{L}_{\text{ViCO}}\big(y_i \mid I_{\frac{1}{4}}\big)}\]

当第 \(i\) 个 Patch 被压缩至 64 个 Token 时,若模型的预测损失相对于保持 256 个 Token 出现剧烈上升(即 \(r_i\) 偏高),表明该 Patch 包含对任务至关重要的关键视觉线索(如微小文字或复杂图元);反之若损失几乎不变(即 \(r_i\) 偏低),则表明该区域为冗余信息。ViCO 维护历史 \(r_i\) 的滑动窗口并取其第 \(k\) 个百分位数(实验中设定为第 60 百分位数)作为动态阈值 \(\tau\),生成二值监督标签:

\[y_i^{\text{router}} = \begin{cases} 0, & r_i < \tau \quad \text{(压缩影响低,采用 64 Tokens 激进压缩)} \\ 1, & r_i \ge \tau \quad \text{(压缩影响高,采用 256 Tokens 保守表示)} \end{cases}\]

一个完整示例

以一张来自 DocVQA 的复杂发票图像为例,系统将其划分为 12 个局部 Patch 和 1 个全局缩略图(共 13 个 Patch): 1. 特征提取与评估:ViT 提取各 Patch 特征,ViR 的注意力池化与 MLP 输出各 Patch 的压缩概率得分 \(p_i\)。 2. 动态路由划分: - 包含发票大标题、明细条目表格和印章的 5 个局部 Patch 及全局缩略图,其预测压缩影响高(\(p_i < \tau\)),被路由至 4× 下采样 MLP,各保留 256 个 Token,合计 \(6 \times 256 = 1536\) 个 Token; - 包含大面积空白背景及无意义页边距的 7 个 Patch,预测压缩影响低(\(p_i \ge \tau\)),被路由至 16× 下采样 MLP,各压缩为 64 个 Token,合计 \(7 \times 64 = 448\) 个 Token。 3. 序列拼接与生成:整图视觉 Token 数量由原先的 \(13 \times 256 = 3328\) 个减少至 \(1536 + 448 = 1984\) 个,削减幅度达 40.4%。语言模型在显著减少的 KV Cache 与计算量下生成答案,不仅完整辨识了发票中的金额与日期,而且首字生成吞吐提升近 1.8 倍。

损失函数 / 训练策略

ViCO 采用解耦的两阶段训练流水线:

  1. 一致性训练目标: $\(\mathcal{L}_{\text{ViCO}} = \mathbb{E}_{\xi \sim \mathcal{R}}\left[\frac{1}{N}\sum_{i=1}^N \mathrm{KL}\Big(\pi_{\theta_{ref}}\!(y_i \mid y_{<i}, I) \;\big\|\; \pi_{\theta_{policy}}\!(y_i \mid y_{<i}, I_\xi)\Big)\right]\)$ 其中 \(\xi\) 表示每张图像中被压缩 Patch 的比例,从 \(\mathcal{R}=[0, 1]\) 中均匀采样。该阶段全局 Batch Size 设为 256,最大文本长度为 32K,使用 AdamW 优化器,学习率采用余弦退火策略从 \(4 \times 10^{-6}\) 衰减至 \(1 \times 10^{-7}\),并对新初始化的 16× 下采样 MLP 预热。
  2. 路由器训练目标: 冻结 MLLM 主干与 ViT 编码器,仅训练轻量级 ViR: $\(p_i = \text{Softmax}\Big(\text{MLP}\big(\text{AttnPool}\big(\text{ViT}(I_i)\big)\big)\Big)\)$ 采用标准交叉熵损失监督 ViR 的预测概率 \(p_i\) 与伪标签 \(y_i^{\text{router}}\)。该阶段全局 Batch Size 调整为 8,基于 H200 GPU 进行轻量级微调。

实验关键数据

主实验

下表展示了 ViCO 在 InternVL3.5 系列全尺寸模型(4B 至 241B-MoE)上评测的通用多模态及 OCR 相关基准表现(MME 归一化至 0-100 分制,RWQA 代表 RealWorldQA):

模型 OCRBench ChartQA TextVQA MMStar POPE MME MMBench V1.1 RWQA MMMU 平均相对保留率 压缩 Patch 比例
InternVL3.5-4B 82.2 86.4 77.8 65.2 88.9 2272 80.3 66.3 66.6 100.0% -
+ ViCO 83.0 85.2 77.6 65.5 88.6 2239 80.5 66.5 65.9 99.7% 69.7%
InternVL3.5-8B 84.0 86.5 77.6 68.5 88.7 2380 79.5 67.5 73.4 100.0% -
+ ViCO 83.9 86.7 77.8 67.5 88.4 2381 79.8 66.8 71.9 99.6% 69.1%
InternVL3.5-14B 83.2 86.1 77.3 67.7 87.7 2398 81.5 70.5 73.3 100.0% -
+ ViCO 84.3 86.2 77.7 67.7 87.7 2392 81.0 71.0 73.2 100.2% 69.7%
InternVL3.5-30B-MoE 88.1 87.5 80.2 71.6 89.6 2461 84.8 72.3 75.6 100.0% -
+ ViCO 87.7 87.4 79.6 70.6 89.7 2462 83.8 71.8 75.9 99.6% 69.8%
InternVL3.5-38B 88.0 88.9 82.8 71.6 90.4 2492 87.3 75.9 76.9 100.0% -
+ ViCO 87.8 88.8 82.4 71.6 91.4 2496 86.8 74.8 75.0 99.6% 62.0%
InternVL3.5-241B-MoE 91.1 88.6 84.6 74.3 90.7 2525 87.4 75.2 77.7 100.0% -
+ ViCO 90.7 88.3 84.2 73.7 90.5 2527 87.2 74.6 76.9 99.6% 64.4%

消融实验

下表展示了在 InternVL3.5-8B 上对比不同 Token 压缩方法以及 ViCO 各模块设计的消融实验结果(DocVQA 与 InfoVQA 在验证集上评测):

模型配置 DocVQA ChartQA InfoVQA TextVQA OCRBench AI2D MMStar BLINK 平均相对得分 压缩 Patch 比例
Vanilla(原始基线) 91.3 86.5 79.1 77.6 84.0 84.0 68.5 59.5 100.0% 0.0%
Vanilla + ViR(未做一致性训练) 57.9 78.0 69.4 71.1 75.1 83.5 64.7 54.7 87.9% -
Vanilla 无动态分辨率 56.2 75.0 38.6 64.0 68.7 83.0 64.1 56.0 80.2% -
FastV(剪枝基线) 87.5 84.0 71.6 76.9 81.0 83.0 64.2 56.8 95.9% -
SparseVLM(稀疏化基线) 75.9 84.9 55.2 76.5 77.7 84.1 66.4 54.5 91.2% -
ViCO(全量强制压缩 16×) 85.8 84.5 68.9 74.8 80.6 83.2 66.3 55.4 95.1% 100.0%
ViCO(随机路由压缩) 88.8 85.9 73.3 76.8 83.0 83.3 66.6 57.4 97.6% 55.0%
ViCO(图像级粗粒度 ViR) 89.2 86.5 79.1 76.7 82.9 84.2 67.4 56.8 98.8% 56.9%
ViCO(Patch 级自适应 ViR) 90.8 86.7 78.6 77.8 83.9 83.7 67.5 58.9 99.6% 55.0%

在 LMDeploy 部署测试中,Token 压缩对语言模型首字吞吐量产生了显著提速:在 10 个视觉 Patch 配备 64 文本 Token 的场景下,50% 压缩率时 8B、30B、38B 和 241B 模型的相对吞吐加速比分别达到 1.97×、1.99×、1.99× 和 2.00×;在 75% 压缩率下加速比均超过 3.76×。

关键发现

  • 一致性训练是混合压缩表征的基础:若直接在原始模型上使用 ViR 路由器(Vanilla + ViR),DocVQA 暴跌 33.4 分(91.3 降至 57.9),平均保留率仅剩 87.9%,证明未经对齐的模型无法适应不同密度的交错视觉 Token。
  • 语义路由器显著优于均匀压缩与启发式剪枝:全量压缩(All Compress)和随机路由分别导致 4.9% 和 2.4% 的性能损失,而基于损失比值监督的 ViR 保持了 99.6% 的性能;对比训练无关剪枝方法 FastV(95.9%)与 SparseVLM(91.2%),ViCO 在细粒度 OCR 任务上几乎无衰减。
  • Patch 级粒度显著优于图像级粒度:图像级路由虽然平均得分达到 98.8%,但由于缺乏局部语义感知,在数据分布间极不稳定(InfoVQA 仅压缩 12%,而 BLINK 压缩 88%),而 Patch 级路由能精确剔除局部背景冗余。

亮点与洞察

  • 损失比值敏感度监督:巧妙地利用不同压缩率下的相对损失退化量 \(r_i\) 作为路由器的监督信号,直接建立了局部表示压缩与模型整体回答质量之间的因果关联,避免了人工手工启发式规则的盲目性。
  • 分布对齐解决表征漂移:通过一致性训练蒸馏参考模型输出,使多模态语言模型彻底摆脱对单一连接器尺度的依赖,为支持任意混合压缩率的动态 Token 输入铺平了道路。
  • 推理开销极小:ViR 在 1B-30B 模型上仅约 50M 参数,在 38B-241B 模型上约 490M 参数,且注意力池化计算复杂度与序列长度呈线性关系,额外引入的推理时延基本可以忽略不计。

局限与展望

  • 离散尺度选择受限:当前方法仅在 64 Token 与 256 Token 两个离散等级之间进行二值路由决策,未来可探索连续变长 Token 压缩或支持更多级联压缩档位(如 32、64、128、256)。
  • 监督生成依赖多次前向计算:在路由器训练阶段,为获取每个 Patch 的敏感度标签需要分别计算 4× 与 16× 压缩率下的损失比值,构建伪标签数据的阶段存在一定的算力开销。
  • 跨模型泛化性验证:目前实验主要基于 InternVL3.5 架构,将其推广至其他主流多模态大模型体系(如 Qwen2-VL、LLaVA-NeXT 等)仍待进一步实验验证。

相关工作与启发

  • vs FastV / SparseVLM: 后者属于免训练的 Token 剪枝/稀疏化方法,严重依赖注意力权重先验,在 OCR 和图表等细节密集场景下掉点严重(DocVQA 降至 75.9-87.5);ViCO 结合了一致性训练与路由器,不仅保留了 90.8 的高精度,还可跨模态任务自适应调节压缩率。
  • vs 传统动态分辨率策略(如 UReader, InternVL 默认):传统方法根据图像输入宽高比和分辨率切块分配相同密度的 Token,忽视了语义复杂度的非均匀性;ViCO 将动态高分辨率的粒度从“图像物理尺寸级”下沉到“Patch 语义内容级”。

评分

  • 新颖性: 4.5/5 创造性地将一致性蒸馏与性能敏感度路由引入动态多模态 Token 分配
  • 实验充分度: 5.0/5 覆盖 4B 至 241B 全尺寸模型,在通用、OCR、多图、视频及真实吞吐测试中全面验证
  • 写作质量: 4.5/5 逻辑清晰,公式推导严谨,架构与实验设计阐述透彻
  • 价值: 5.0/5 实用价值极高,在维持 99.6% 顶级精度的同时削减 50% Token 并使吞吐翻倍,对工业界部署极具启发