CARES: Context-Aware Resolution Selector for VLMs¶
会议: ACL2026
arXiv: 2510.19496
代码: https://mkimhi.github.io/CARES/
领域: 多模态VLM / 推理效率 / 自适应分辨率
关键词: 分辨率选择、视觉token压缩、VLM推理加速、ANLS、连续路由
一句话总结¶
CARES 在目标 VLM 前增加一个轻量 query-aware 分辨率选择器,用低分辨率图像和文本问题预测“足够回答”的最小输入分辨率,在 9 个多模态 benchmark 上基本保持准确率,同时平均节省约 65–85% 的 prefill 计算成本。
研究背景与动机¶
领域现状:通用 VLM 为了覆盖 OCR、文档理解、自然图像问答、图表推理等任务,通常默认使用高分辨率或 AnyRes/tiling 输入。分辨率越高,视觉 token 数越多,prefill 阶段视觉 token 甚至可占总 token 的 99%。
现有痛点:许多用户问题并不需要高分辨率。例如“狗是什么品种”可能低清图即可回答,而“项圈上写了什么名字”才需要高分辨率。现有 token pruning、pooling、merging 多发生在视觉编码之后,已经付出了高分辨率 tokenization 成本,而且通常不了解当前文本 query。
核心矛盾:VLM 需要高分辨率来保证困难样本质量,但把所有样本都按最高分辨率处理会浪费大量算力。真正可控的杠杆在 tokenization 之前:先决定该用多少像素。
本文目标:学习一个放在任意 VLM 前的预处理模块,根据 image-query pair 预测最小充分分辨率,减少 visual tokens、FLOPS、TTFT 或 API 成本,同时不改目标 VLM 架构和权重。
切入角度:作者不直接预测“难/易”,而是用目标 VLM 在多分辨率 rollout 下的真实回答质量生成 supervision:哪个最低分辨率已经达到足够质量,就把它作为标签。
核心 idea:把 VLM 推理效率问题前移到输入分辨率选择,用 query-conditioned sufficiency label 学会“够用就好”的像素分配。
方法详解¶
CARES 的主版本是一个 discriminative selector:用截断后的 SmolVLM-500M 在低分辨率下联合编码图像和问题,取中间层最后 token 表示,接轻量分类头预测 384/768/1024 三个分辨率类别,再在推理时通过概率加权得到连续分辨率。
整体框架¶
训练前,作者先对样本 (x,q,gt) 做多分辨率标注:把图像分别 resize 到候选分辨率,送入固定 VLM 得到答案,用 ANLS 或相应指标评估答案质量,选择最小充分分辨率作为标签。训练时 CARES 只看低分辨率图像和 query,学习预测该标签。部署时,CARES 输出连续分辨率,目标 VLM 只处理被缩放后的图像和原 query。
关键设计¶
-
多分辨率充分性标注:
- 功能:为每个样本生成“最低够用分辨率”的监督信号。
- 核心思路:在离散集合 \(\mathcal R_d=\{384,768,1024\}\) 上运行目标 VLM,并计算 \(u_k=ANLS(F(x^{(r_k)},q),gt)\);选择满足 \(u_k\ge \tau\) 且更高分辨率提升不超过 \(\delta\) 的最小 \(r_k\),默认 \(\tau=0.85\)、\(\delta=0.1\)。
- 设计动机:直接搜索连续最优分辨率成本太高;离散 rollout 能给出稳定标签,同时保留“性能收敛即停止”的含义。
-
轻量上下文感知 selector:
- 功能:在调用大 VLM 前,用小模型判断当前 image-query 需要多少视觉细节。
- 核心思路:采用 SmolVLM-500M 并移除后半层,只使用到 layer 16 的中间表示;给定 \(r_{min}\) 下的图像和文本 query,取最后 token hidden state 接分类器,输出三档分辨率概率。
- 设计动机:中间层往往保留更丰富的感知和语义信息,且只跑半个小 VLM 额外成本低。query-aware joint encoding 也比 SigLIP 这类双塔特征更适合判断“这个问题需要哪些视觉细节”。
-
离散训练、连续部署:
- 功能:避免部署时只能在粗糙分辨率档位之间跳变。
- 核心思路:分类器输出概率 \(p=softmax(\ell)\) 后,用 \(\tilde r=\sum_k p_k r_k\) 得到连续分辨率,再按目标 backbone 支持的输入尺寸向上取整。
- 设计动机:离散标签便于标注和训练,连续输出则能利用模型不确定性做更细粒度的 compute-quality trade-off。
损失函数或训练策略¶
CARES 使用 80K 训练集,来自 TextVQA、ChartQA、DocVQA、LLaVA-Multi 各 20K,覆盖文档和自然图像。主 selector 训练 6 epoch,学习率 \(10^{-3}\),batch size 32,用 cross-entropy \(\mathcal L(\theta)=CE(f_\theta(z),r^*)\) 监督三档分辨率分类,并加入 0.05 label smoothing 以支持连续分辨率部署。作者还实现了 Granite-Docling-258M 的 autoregressive 版本,用 LoRA rank 8 训练 3 epoch,让模型预测 <1>/<2>/<3> 分辨率 token。
实验关键数据¶
主实验¶
| Target VLM | Native 平均分 | CARES 平均分 | 平均成本变化 | 说明 |
|---|---|---|---|---|
| Granite-Vision-2B | 0.59 | 0.60 | -63% | 小模型上准确率略升且成本大降 |
| InternVL3-8B | 0.77 | 0.77 | -64% | 多 benchmark 保持性能 |
| Qwen2.5-VL-72B | 0.79 | 0.80 | -70% | 大模型上仍能迁移 |
| GPT-4o | 0.69 | 0.68 | -55% | API 成本下降,质量基本持平 |
| Benchmark 范围 | 指标 | CARES 设置 |
|---|---|---|
| Ai2D / ChartQA / SeedBench-2 | exact-match accuracy | 评估自然图像、图表和通用视觉问答 |
| DocVQA / OCRBench | ANLS | 检验文档/OCR 场景是否仍需高分辨率 |
| MMMU / RealWorldQA / InfoVQA / MathVista | task score | 检验跨领域泛化 |
| DocVQA latency frontier | TTFT / TFLOPs | CARES 用约 2.58 TFLOPs 接近 native,而 native 约 7.5 TFLOPs |
消融实验¶
| 配置 | 关键指标 | 说明 |
|---|---|---|
| SigLIP v2 feature | 56.1% resolution accuracy | 双塔特征不如联合 VLM 编码 |
| SmolVLM Mid | 63.3% / 0.35B params | 默认选择,效率和准确率平衡最好 |
| SmolVLM Last | 62.3% / 0.5B params | 最后一层略弱且成本更高 |
| Qwen2.5-3B Mid | 67.2% / 2.3B params | 分辨率分类最准但更重 |
| 二档分辨率 | 96.2% 分类准确率 / 0.76 downstream | 标签更简单但控制太粗 |
| 三档分辨率 | 67.2% 分类准确率 / 0.80 downstream | 分类更难,但下游效果更好 |
| Continuous routing | Granite/InternVL FLOPS -63% | 比 discrete -46% 更省,分数基本不掉 |
| Label smoothing | OCRBench 0.821 vs 0.811 | 改善连续分辨率概率校准 |
关键发现¶
- 目标 VLM 不同,CARES 仍能迁移:Granite、InternVL、Qwen2.5-VL、GPT-4o 上都能以小于 1 个百分点的平均质量变化换来大量 prefill 节省。
- 充分分辨率标签不是单一 teacher 的偶然偏好:Granite-Vision-2B 和 Qwen3-VL-235B 在 1000 个样本上 95% 以上标签一致,Pearson 相关 0.908。
- 连续分辨率不是装饰项。离散预测已经省算力,连续预测进一步降低 FLOPS,同时能避免硬分类边界附近的过度升档。
亮点与洞察¶
- CARES 的最大亮点是把效率控制放在“像素进入 VLM 之前”。相比 token pruning,它避免了先高分辨率编码再删 token 的先付费后节省问题。
- 用多分辨率 rollout 生成 sufficiency labels 很实用:它不需要人工判断“这题需要多清楚”,而是让目标模型自己的性能曲线定义够用阈值。
- query-aware 是关键。单看图像无法判断分辨率需求,同一张图在粗粒度分类和 OCR 问题下需要完全不同的像素预算。
局限与展望¶
- 训练标签需要对大量样本做多分辨率 VLM rollout,离线标注成本不低;如果目标模型频繁升级,标签可能需要重建或校准。
- 当前主要处理单图静态输入,视频、多图推理、交互式检索场景下的分辨率选择会更复杂。
- CARES 只选择输入分辨率,不处理视觉 token 在模型内部的冗余;它和 token pruning/merging 可互补,但组合后的误差累积需要进一步研究。
- 对极端小文字、稀疏细节或安全关键任务,过低分辨率的风险更高,部署时可能需要任务级安全下限或置信度回退。
相关工作与启发¶
- vs HiRED / SparseVLM / PyramidDrop / VTW: 这些方法在 tokenization 或编码之后减少视觉 token;CARES 在 tokenization 前决定图像分辨率,避免不必要的高分辨率输入成本。
- vs TokenFLEX / Matryoshka / LLaVA-Mini: 这些方法训练模型适配不同 token budget;CARES 不改目标 VLM,可作为前端和弹性 token 模型叠加。
- vs AnyRes / tiling: AnyRes 通过更多 tile 保留细节,CARES 则按 query 判断是否需要这些细节,对 coarse query 可以直接绕开高成本 tiling。
评分¶
- 新颖性: ⭐⭐⭐⭐☆ 分辨率选择本身不新,但 query-aware sufficiency rollout 在 VLM 推理前端很实用。
- 实验充分度: ⭐⭐⭐⭐⭐ 覆盖 9 个 benchmark、4 类目标 VLM、AR 版本和多项消融,证据充足。
- 写作质量: ⭐⭐⭐⭐☆ 方法动机和算法很清楚,表格稍密但关键信息完整。
- 价值: ⭐⭐⭐⭐⭐ 对 VLM 实际部署、成本控制和动态视觉计算非常有价值。