G2TR: Generation-Guided Visual Token Reduction for Separate-Encoder Unified Multimodal Models¶
会议: NeurIPS2026
arXiv: 2605.12309
代码: https://github.com/lijunxian111/G2TR
领域: VLM 效率(vlm_efficiency)
关键词: 统一多模态模型、视觉词元压缩、生成引导、VAE 潜在锚点、免训练
一句话总结¶
G2TR 在分离编码器统一多模态模型的 LLM 预填充之前,利用 VAE 潜在锚点选择并合并理解侧视觉词元;保留 50% 词元时,BAGEL 的理解相对平均分为 99.0%、编辑为 98.0%,预填充 FLOPs 降低约 1.94 倍,但并非所有任务都无损。
研究背景与动机¶
统一多模态模型(UMM)既回答图像问题,也根据指令编辑图像。分离编码器架构为这两种需求设置不同的入口:ViT 理解编码器提取语义特征,VAE 生成编码器提取用于重建与生成的潜在表示。分开编码缓解了“抽象语义”和“低层外观细节”对表示的不同要求,却没有消除后续 Transformer 处理大量视觉词元的成本。BAGEL 和 InternVL-U 正是本文研究的这类模型,而不是所有统一多模态架构的代表。
已有视觉词元压缩大多针对以文本回答为终点的视觉语言模型。FastV 根据 LLM 内部注意力删词元,VSCAN 结合视觉注意力和图文相似度,IVC-Prune 引入 RoPE 与图文信号。问题在于,理解侧词元不仅服务问答,也会形成图像编辑的条件:对回答不显著的颜色、纹理或背景布局,仍可能决定编辑结果是否保持原图细节。本文观察到,固定预算下不同文本中心规则在部分理解基准上的差距有限,而编辑中会出现局部细节破坏。这个观察支持换一种指导信号,但不能推广为“所有理解任务对剪枝规则都不敏感”。
生成分支恰好已经拥有经过图像重建与生成目标训练的表示,因此不必另训重要性预测器。本文把同一张输入图像的 VAE 编码作为局部参照,寻找与其一致的 ViT 特征,同时保留空间分布并回收未选中特征。核心 idea:用生成侧潜在表示约束理解侧的视觉词元压缩,使压缩后的语义条件仍尽可能携带编辑所需的视觉细节,而不是只保留最利于文本预测的词元。
方法详解¶
整体框架¶
输入是一张源图像及文本指令,输出是可送入原 UMM 的缩短理解侧序列。原 ViT 与 VAE 编码器都保持不变:完整 ViT 特征进入“潜在锚点评分”,VAE 特征作为引导;随后经过“均衡预算选择”“相似词元合并”和“序列布局重建”,才进入 LLM 预填充。
这里的“生成引导”不意味着先生成一幅图像再筛词元,只需要编码输入图像得到 VAE 表示。压缩对象始终是理解侧 ViT 词元,VAE 生成潜变量本身不被剪枝。编辑任务继续使用原来的生成路径;纯文本到图像没有源图像理解词元,因而不是本文压缩直接作用的任务。
下图全部是推理数据流,没有新增训练监督或优化回路。对于理解任务,VAE 编码提供评分信号;对于编辑任务,它还属于模型原有的源图像处理路径。
%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
I["源图像与指令"] --> V["原 ViT 编码<br/>完整理解词元"]
I --> Z["原 VAE 编码<br/>生成侧特征"]
V --> A["潜在锚点评分"]
Z --> A
A --> B["均衡预算选择"]
B --> C["相似词元合并"]
C --> D["序列布局重建"]
I -->|保留文本与图像边界| D
D --> O["原 LLM 预填充<br/>问答或编辑条件"]
关键设计¶
1. 潜在锚点评分:让重要性反映局部生成表示的一致性
ViT 词元和 VAE 潜变量的原始维度、空间粒度不同,不能直接把原始向量拿来比较。模型已有的两路投影将它们送入共同隐藏维度;论文第 4.2 节随后仍用理解词元和潜变量符号指代对齐后的特征。这依赖预训练模型已有的表示与投影,不是 G2TR 新增的对齐训练。
将两路特征恢复为二维网格后,每四个相邻 VAE 潜变量做类似均值池化的处理,得到一个潜在锚点。设 ViT 网格为 \(H_u\times W_u\),池化后的锚点网格为 \(H_g\times W_g\),则位于 \((p_i,q_i)\) 的 ViT 词元按比例映射到锚点,再以余弦相似度评分:
这里的网格尺寸以池化之后为准,向下取整的是空间映射,不是词元预算。比较对象是对应位置的局部锚点,不是与所有 VAE 词元匹配,也不是整幅图像的一条全局向量。这使每个分数都与局部结构有关,能把背景、物体边缘等对编辑有价值但文本显著性较低的因素纳入选择。
相似度高只是“与生成表示较一致”的代理信号。附录 D 明确说明它不是互信息的精确估计,也不等于有重建误差保证的最优重要性;空间对应关系的打乱消融用于验证该代理确实依赖位置,而不只是借用任意一组 VAE 向量。
2. 均衡预算选择:先找区域代表,再按真实预算截取或补齐
单纯全局 top-K 可能把大量词元集中在少数高分区域。G2TR 先在每个非空锚点所对应的 ViT 词元中选择最高分者,得到候选集,然后从候选集按分数取不超过预算的代表。预算由保留率乘原理解词元数后四舍五入得到,再受最小词元数和原词元总数约束;默认保留率为 0.5,最小词元数为 1。
必须区分两种情况。如果预算小于候选集大小,只保留其中分数最高的 K 个候选,并不保证每个锚点都被覆盖。如果预算大于候选集大小,则先保留全部区域代表,再从尚未选择的所有 ViT 词元中按分数补足差额,且只补齐一次。它不是逐轮给每个区域分配相同数量,也不强制保留低分锚点来满足全图覆盖。
这个设计让“先考虑各区域的最好代表”成为偏好,而不是绝对约束。它既避免直接全局排序完全忽略区域分布,又允许在非常紧的预算下放弃部分区域。理解这一步也就能看清其局限:降低保留率时,空间覆盖仍可能不足,并不存在无条件保持所有局部细节的机制。
3. 相似词元合并:缩短序列但不直接丢掉其余特征
完成选择后,未选中词元不再独占序列位置,但其信息可以进入保留代表。每个未选中词元按余弦相似度,在保留集合中寻找最接近的一个;这次匹配发生在理解特征空间,并不要求与代表属于同一锚点,也不是按二维坐标找最近邻。
令 \(\mathcal{S}\) 为保留集合,\(\mathcal{A}_j\) 为余弦最近邻是保留词元 \(j\) 的所有未选中词元,则原文的合并机制可写为:
这是带原代表权重的平均,不是按相似度大小给每个被合并词元加权。没有分配到其他词元的代表保持原值;分配到多个词元时,它承载的是一组相近特征的平均表示。因此序列长度保持为预算 K,不会为了回收信息重新添加位置。
平均合并减轻了直接删除的特征损失,却也可能淡化细粒度差异。论文的组件分析恰好指出,合并单独使用时对不同基准的作用不一致,与均衡选择结合后才取得最强的总体结果;不能把合并理解为任何预算下都必然提升准确率的操作。
4. 序列布局重建:让短视觉序列仍符合原模型接口
压缩后的特征不能直接填入仍按原词元数建立的 <IMG_CONTEXT> 跨度。G2TR 按保留词元的原索引顺序组成短序列,而不是按重要性分数重排;随后替换理解侧视觉跨度,保留文本、图像开始与结束标记,重建输入 ids、注意力掩码与位置 ids,并在批内重新填充。
保留原索引顺序与重建位置 ids 是不同层面的操作:前者维持视觉内容的序列顺序,后者确保文本、视觉跨度、掩码和位置布局匹配新的总长度。论文没有要求复制全部旧位置 ids,也没有改写 UMM 的注意力算子。
所有这些动作都在原 ViT 编码之后、LLM 预填充之前发生。LLM 只看到一条较短但合法的输入,不必在内部层输出注意力图供剪枝使用;原 Flash-Attention kernel 不变,KV cache 也不需要因层内动态剪枝而额外重排。这正是它比某些依赖重建显式注意力分数的实现更容易部署的原因,而不是声称其他方法绝对不能支持 Flash-Attention。
一个完整示例¶
以下数字只说明算法分支,不是论文的实验样本。假设一张图像有 12 个理解词元,池化后的 4 个非空锚点各对应 3 个词元,预算为 6。先从每个锚点取最高分者,得到 4 个代表,再从剩余 8 个词元中一次性选出最高分的 2 个,形成 6 个保留词元。
其余 6 个词元分别寻找余弦最相似的保留代表并参与平均。最终只有 6 个理解词元进入重建后的视觉跨度,文本指令和图像边界不删除,VAE 生成潜变量仍走原路径。如果把预算改成 2,算法是在那 4 个区域代表中取最高分的 2 个,而不是以 2 个词元覆盖全部 4 个锚点。
损失函数 / 训练策略¶
G2TR 没有新增损失、反向传播或微调;VAE 已经学到的生成表示提供推理时信号。默认 \(\rho=0.5\)、\(K_{\min}=1\)、\(\lambda=1.0\),各基线遵循原仓库的默认参数和剪枝层。附录 C 固定随机种子为 42;非 thinking 理解任务最大响应长度为 20,BAGEL thinking 模式为 2048。
附录 D 将保持生成相关互信息写成理想目标,实际只采用相似度代理与合并。在解码器局部 Lipschitz 的假设下,附录讨论输出扰动受词元重建误差控制;这不是已在真实模型上测得的无损界,更不能替代编辑基准中的实测下降。
实验关键数据¶
主实验¶
实验使用 BAGEL-7B-MoT(7B 活跃参数、14B 总参数)和 InternVL-U(4B),在单张 A6000 48G GPU 上各评测一次。理解覆盖 MME、MMBench dev、MMVP、RealWorldQA;编辑覆盖 GEdit-Bench 英文查询、IntelligentBench,thinking 模式还评测 RISE-Bench。下表摘录原文表 2,未纳入的基线并非没有评测。
“相对平均分”是各基准分数除以同一模型 Vanilla 分数后的算术平均,以百分比表示;不同原始量纲不能直接求平均。它也不是“全部样本准确率保留比例”。
| 模型 | 方法 | 平均视觉词元 | MME | MMBench dev | MMVP | RWQA | 相对平均分 |
|---|---|---|---|---|---|---|---|
| InternVL-U | Vanilla | 100% | 2057 | 80.5 | 46.0 | 48.8 | 100% |
| InternVL-U | IVC-Prune | 50% | 2020 | 78.4 | 39.0 | 46.0 | 93.7% |
| InternVL-U | G2TR | 50% | 2034 | 78.8 | 40.0 | 46.8 | 94.9% |
| BAGEL-7B | Vanilla | 100% | 2388 | 88.5 | 69.3 | 60.2 | 100% |
| BAGEL-7B | IVC-Prune | 50% | 2332 | 88.4 | 70.0 | 57.8 | 98.6% |
| BAGEL-7B | G2TR | 50% | 2318 | 88.5 | 70.0 | 59.0 | 99.0% |
BAGEL 的 MMBench 与 Vanilla 持平,MMVP 从 69.3 升至 70.0,但 MME 从 2388 降至 2318,RWQA 从 60.2 降至 59.0。InternVL-U 的四项原始分数全部低于 Vanilla。因此原文“does not sacrifice understanding ability”的概括应读作保持较强能力,而非没有精度损失。
编辑结果见原文表 4:BAGEL Vanilla 的 GEdit 三项 G_SC/G_PQ/G_O 为 7.36/6.83/6.52,G2TR 为 7.18/6.67/6.42;IntelligentBench 为 44.9 对 44.0。G2TR 的编辑相对平均分为 98.0%,优于其他压缩方法,但这些原始指标都下降了。本文保留原表指标名,不把未在缓存中解释的缩写扩展成猜测的评测定义。
thinking 结果见表 5:Vanilla 的 MMVP/RWQA/RISE/IntelligentBench 为 64.7/63.4/11.9/55.3,G2TR 为 66.0/63.4/9.8/54.3,相对平均分为 95.6%。其中 RISE 的下降表明,复杂编辑仍可能对压缩更敏感;它不是非 thinking 编辑 98.0% 的同一评测组合。
下表摘录原文表 3 的原始效率量;所有行均为 BAGEL-7B。FLOPs 比率是计算量指标,不是计时加速比。
| 方法 | KV cache(MB) | 平均视觉词元 | FLOPs 比率 | 预填充 FLOPs(T) | 解码延迟(ms/token) |
|---|---|---|---|---|---|
| Vanilla | 42.02 | 100% | 100.00% | 4.1325 | 49.60 |
| FastV | 22.04 | 54% | 55.10% | 2.2769 | 48.04 |
| IVC-Prune | 22.06 | 50% | 74.09% | 3.0619 | 49.30 |
| G2TR | 22.06 | 50% | 51.64% | 2.1341 | 47.88 |
G2TR 的 KV cache 从 42.02 降至 22.06 MB,对应原表约 1.90 倍减少;预填充计算量从 4.1325 降至 2.1341 T,对应约 1.94 倍减少。解码延迟只有 49.60 到 47.88 ms/token 的变化,原表报告约 1.04 倍,不能把 1.94 倍当成端到端或预填充实测延迟加速。
原表 3 的部分基线倍数标注并不一致,例如 IVC-Prune 的 FLOPs 比率列标 1.37 倍,预填充 FLOPs 列标 1.35 倍。上表保留原始量,不擅自统一作者的倍数,也不据这些标注作更强速度结论。
消融实验¶
下表对应原文表 7,各指导信号都在 ViT 编码之后比较,用来减少“剪枝位置不同”对指导源比较的干扰。
| 指导源 | MMVP | RWQA | IntelligentBench |
|---|---|---|---|
| 随机 | 65.3 | 48.2 | 40.6 |
| 基于注意力 | 68.7 | 55.8 | 42.6 |
| 文本相似度 | 68.0 | 55.2 | 41.7 |
| VAE 潜变量(G2TR) | 70.0 | 59.0 | 44.0 |
VAE 指导优于随机指导 4.7、10.8、3.4 分,分别对应三列。这支持生成侧表示不是无关的额外信号,但不能单凭这一张表推导各组件独立贡献。
原文表 6 进一步降低预算:G2TR 在 50%、37.5%、25% 保留率下,MMVP 分别为 70.0、63.3、60.0,IntelligentBench 为 44.0、42.5、42.0。25% 时 FastV/IVC-Prune 的 MMVP 为 54.7/56.0,IntelligentBench 为 40.3/41.0;G2TR 相对优势仍在,但绝对分数随预算收紧下降。
图 5 还分析了高低分删除、空间映射扰动、均衡选择和合并。缓存只有图注与文字结论,没有可可靠读取的完整组件柱图数值,因此不编造“去掉某组件下降多少”的表格。
关键发现¶
- VAE 引导在同一编码后位置比较时,理解与编辑三项指标均优于注意力、文本相似度和随机指导;重要性信号是主要证据链之一。
- 打乱或平移词元到锚点的对应关系会退化,支持局部空间一致性有效;它并不证明余弦评分等价于信息量。
- 预填充前压缩能减少整个后续输入处理的计算,比只看最终保留率更能解释效率差异;相同 50% 预算下 IVC-Prune 与 G2TR 的预填充 FLOPs 并不相同。
亮点与洞察¶
- 生成分支从“输出图像的组件”变成“判断理解特征是否应保留的参照”。复用已有表示比另训评分器更轻量,也把优化目标从单一文本回答扩展到编辑条件质量。
- 区域代表选择与特征合并分别处理空间集中和信息删除。两者并非重复设计,后者甚至不按空间分区,因此组合时既有覆盖偏好也有跨区域冗余回收。
- 部署友好来自压缩发生的位置。先完成短序列布局重建再调用原 LLM,比在层内索取注意力图或动态重排 cache 更容易保留既有推理实现。
局限与展望¶
- 适用范围依赖分离编码器及可比较的两路隐藏特征;统一编码器、视频输入和更原生的跨路径交互没有在本文中验证。理解任务额外调用 VAE 的成本也应在具体部署中计入。
- 固定预算不区分简单问答与复杂编辑;预算小于锚点数时没有全图覆盖保证。后续可研究按任务难度或局部细节分配预算,但这是展望而非已实现模块。
- 单 GPU、固定种子、单次评测,没有误差条或显著性检验。尤其 MMVP 的小幅提升和解码延迟变化不能直接视为稳定统计优势。
- 附录 D 的条件扰动论证依赖局部 Lipschitz 假设与扩展后的重建表示,没有给出真实解码器常数或对短序列编辑无损的实证保证。
- 缓存附录 C.3 的 BAGEL 编辑超参数句子未完成;第 5.2 节把编辑量化结果指向表 5,但相应非 thinking 数据实际在表 4。笔记按表格内容区分,不补猜缺失参数。
- 摘要提供代码链接,而 checklist 第 5 项仍写“录用后公开”;这里只保留论文给出的链接,未联网核实当前发布状态。
相关工作与启发¶
- vs FastV / W-FastV / PDrop:这些方法主要依据内部注意力或其变体选择理解词元;G2TR 用局部 VAE 一致性,在 LLM 前完成压缩。区别既在指导目标,也在工程插入点,不能把全部效率差异都归因于评分质量。
- vs VSCAN / IVC-Prune:它们分别利用视觉与图文信号、RoPE 与图文信号;G2TR 把生成侧信息纳入选择。表 2 中 IVC-Prune 已与 G2TR 在 BAGEL MMVP 上同为 70.0,因此优势应看多任务组合而非单项全面胜出。
- vs UniMoD 等结构稀疏化方法:结构方法调整网络深度或宽度,G2TR 保留原网络而缩短输入。两者可能互补,但叠加后的质量、计算与实现成本尚需另行验证。
评分¶
- 新颖性: 4/5 — 把生成侧局部表示用作理解侧压缩依据,问题设置比单一问答剪枝更贴近 UMM。
- 实验充分度: 3/5 — 两个模型、多类任务与指导源消融较完整,但编辑量化集中于 BAGEL,缺乏重复试验和端到端计时。
- 写作质量: 3/5 — 主流程明确,仍有表号错引、局部超参数缺句及部分倍数标注不一致。
- 价值: 4/5 — 无需训练且保持原注意力接口,适合作为分离编码器 UMM 的轻量效率基线,需接受任务相关精度下降。