跳转至

From One-to-One to Many-to-Many: Dynamic Cross-Layer Injection for Deep Vision-Language Fusion

会议: ECCV2026
论文: ECCV 原文
代码: https://github.com/codefuse-ai/CLI
领域: 多模态VLM
关键词: 视觉语言模型, 跨层特征注入, 层级视觉特征, 门控融合, 参数高效微调

一句话总结

用 Adaptive Multi-Projection(逐层 LoRA 投影)与 Adaptive Gating Fusion(按解码上下文算门控)两个参数高效模块,把 VLM 里「视觉编码器最后一层 → LLM 第一层」的单点连接改造成「多个视觉层级 → 多个解码层」的动态多对多桥,在 LLaVA-OneVision 与 LLaVA-1.5 上的 28 个基准取得一致增益(LLaVA-OV-7B 综合 +9.7,LLaVA-W +6.5、OCR +4.7、MME +3.3)。

研究背景与动机

当前主流的视觉语言模型沿用 Flamingo、BLIP-2 确立、LLaVA 推广开的「冻结双塔 + 轻量桥」范式:视觉编码器和 LLM 都保持预训练权重不动,只训练中间一个投影器,把 ViT 最后一层输出的 token 映射到文本嵌入空间,再拼在文本 token 前面送进 LLM 做自回归解码。问题在于,ViT 和 LLM 都是逐层精化表示的层级结构,而它们之间的连接却极不对称:视觉层级的最顶端接到了语言层级的最底层,整条中间路径被一个投影器压缩掉。ViT 浅层保留的边缘、纹理、笔画与空间结构信息在这一步被整体丢弃,LLM 因此没有任何通道去「放大看细节」——它只能看到一个已经被压扁成语义摘要的图像。论文用一张冰鞋的图说明后果:只靠最终层特征的基线模型把冰鞋认成了「轮滑鞋」,因为它看不到轮子的结构,于是无法判断这双鞋是否适合滑冰。

更细看会发现,需要的不只是「浅层对浅层、深层对深层」的平行对齐。论文给出了两条方向相反的依赖:浅层 LLM 在解析名词(如 "shoe")时,需要的是深层 ViT 已经形成的高层语义概念才能正确地把词落到物体上;而深层 LLM 在做最终评判("这双鞋合不合适")时,反而要回到浅层 ViT 的细粒度结构去看轮子。也就是说,真正需要的是交叉(criss-crossed)的、并且随解码进程变化的连接。已有的尝试都不完整:DeepStack 属于 one-to-many 的暴力广播,把高分辨率视觉 token 分组后按位加进固定的若干 LLM 层,完全不感知上下文;CogVLM 的 Visual Expert 虽然每层都插模块,但所有层吃的仍是同一张最终层特征图;CogAgent 把高分辨率特征静态广播到每层,所有解码层看到的是同一层级的信息;EVLM、mPLUG-Owl3、Qwen3-VL 以及并行的 DEHVF 则都是硬接线的 one-to-one——把某几层 ViT 钉死到预先配置好的 LLM 层。这些方案不管多精细,本质上都是人工配置的静态「束身衣」,预先规定了信息该怎么流。

本文的切入点是换一个角色设定:不要人去设计连接,而要让 LLM 成为主动的观察者,在每个注入点上按当前的解码上下文去查询整个视觉层级,自己学出这一步推理需要哪一层的视觉证据。核心 idea:把视觉编码器的多个中间层采样成一个「视觉仓库」,用逐层 LoRA 投影把各层特征对齐到文本嵌入空间,再用一个由当前隐状态驱动的注意力门控,在 LLM 的多个解码层处按需、按量地把视觉信息写回隐状态,从而把 one-to-one 变成可学习的 many-to-many。

方法详解

整体框架

CLI 的输入仍是一张图像加一段文本指令,输出仍是 LLM 的自回归解码结果,改变的是视觉信息进入语言模型的路径。图像过 ViT 后不再只取最后一层,而是从 \(L_V\) 个不同深度的层采样 token 矩阵,构成层级特征集合 \(\mathcal{V}=\{V_k\}_{k=1}^{L_V}\)(论文举例取第 1、7、14 层),这个集合充当「视觉仓库」。随后在 LLM 解码器的多个层设置注入点,每个注入点都拿到整个集合而不是某一层:先由 AMP 为每个 \(V_k\) 施加一份该层专属的低秩修正,把所有层级对齐到文本嵌入维度;再由 AGF 用当前隐状态作为查询,算出该注入点上每个层级特征该被采纳多少,把加权后的视觉信息写回隐状态中视觉 token 所在的位置。整套改造只新增 LoRA 矩阵与门控模块,不触碰视觉编码器和 LLM 主干,因此可以插件式地接到不同 VLM 上。

%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
    A["图像 + 文本指令"] --> B["多层级采样与多点注入<br/>ViT 多层 → LLM 多层"]
    B --> C["Adaptive Multi-Projection<br/>逐层 LoRA 对齐语义空间"]
    C --> D["Adaptive Gating Fusion<br/>按解码上下文门控融合"]
    D -->|每个注入层重复| E["LLM 自回归解码"]

关键设计

1. 多层级采样与多点注入:把单点连接换成「视觉仓库 + 多个查询口」

先把两种拓扑的含义说清楚,因为论文标题里的 one-to-one 与 many-to-many 指的正是连接的对应关系而非模块数量。one-to-one 有两种典型形态:一是 LLaVA 式,整个视觉层级只由最后一层的输出代表,投影一次、拼到文本 token 之前,视觉与语言之间只有一个接触点;二是 EVLM、Qwen3-VL、DEHVF 式的硬接线,把第 \(i\) 层视觉固定接到第 \(i\) 层(或某组)语言,配对关系是人写死的。one-to-many 则是 DeepStack 式,把一份视觉特征广播进多个 LLM 层。这两类方案共享同一个弱点:哪个层的信息去哪里,是设计者预先规定的,不随输入和推理进程变化。

CLI 的做法是在拓扑两端同时放开。视觉侧从 \(L_V\) 个不同深度的层采样 token 矩阵,保证仓库里同时存有浅层的结构细节(对 OCR、定位关键)与深层的语义概念(对开放式推理关键);语言侧在多个解码层设注入点,而每个注入点都能访问完整的层级集合。这样「哪一层视觉该被哪一层语言用到」就不再由人指定,而变成一个由数据去学的匹配问题。论文强调,即便是看起来更合理的「平行对齐」也不够用——上面冰鞋的例子说明浅层 LLM 有时需要深层 ViT 的语义、深层 LLM 有时需要浅层 ViT 的细节,必须允许交叉。后续门控权重的热力图(论文 Fig. 1(b))正是这一点的经验证据:深层解码层几乎均匀地查询了从浅到深的所有视觉层,学到的连接是非平行的、交叉的。

2. Adaptive Multi-Projection:用逐层 LoRA 化解「一个投影器对不上多个分布」的两难

把多层视觉特征对齐到文本空间有一个绕不开的两难。若沿用 LLaVA 那一个共享投影器,它无法同时弥合不同 ViT 层之间从低层纹理到高层语义的巨大分布差异,会造成严重的特征错位;而直觉上更自然的「给每层单独训一个投影器」又因为需要从零开始预训练而代价过高。论文的解法是让投影器「自适应」但「不重训」:保留原有的预训练 MLP 投影器 \(P\),为每个被采样的视觉层 \(k\) 额外挂一条专属的低秩分支,输出等于原投影加上该层的低秩修正:

\[\hat{V}_k = P(V_k) + B_k A_k V_k,\qquad V_k \in \mathcal{V}\]

其中 \(A_k\)\(B_k\) 是为第 \(k\) 层单独训练的低秩矩阵。这样每一层都有自己的一小块参数去适配自身的特征分布,而共享的 \(P\) 继续提供预训练带来的通用对齐能力,总参数量只增加百分之几(消融中 AMP 方案为基线的 104.37%,而全量微调投影器加 AGF 为 110.07%)。对集合中每个 \(V_k\) 做一遍,就得到一套已经落在文本嵌入维度上的层级 token 集合 \(\hat{\mathcal{V}}\),可以直接供门控模块消费。这一步的意义不只是省参数——它把 AMP 与 AGF 的关系变成「先把各层特征整理到同一个尺度上,再让门控去挑」,消融里两者合用比单用任一个都好,正说明干净的输入让门控更有效。

3. Adaptive Gating Fusion:让 LLM 自己决定注入什么、注入多少

对齐之后不能直接相加。LLM 的隐状态 \(h_t\) 本身已经携带了上下文信息,粗暴地叠加外部特征会破坏它已经学好的表示——DeepStack 的实验结果(在 0.5B 上总分掉 50.7、7B 上掉 39.1)就是这种「无筛选注入」的代价。AGF 因此把注入设计成一次带门控的选择性更新,并且让门控的开关由当前解码状态决定,而不是一个固定权重。具体地,每个注入层引入两个可学习的 query 向量作探针:\(q_v\) 去层级视觉特征里取要点,\(q_h\) 去当前隐状态里取要点,都用多头注意力蒸馏成上下文向量:

\[att_v=\text{MHA}(q_v,\hat{V}_k,\hat{V}_k),\qquad att_h=\text{MHA}(q_h,h_t,h_t)\]

两个上下文向量拼接后过一个线性层加 Sigmoid,得到门控权重 \(W\in[0,1]\)。为防止污染文本位置,再用一个二值 mask 标出 \(h_t\) 里哪些位置属于视觉 token:非视觉位置原样保留,视觉位置按门控权重做加权更新(原文该式在 PDF 提取时已损坏,此处只保留机制语义,⚠️ 精确形式以原文为准):

\[h'_t = h_t \odot (1-\text{mask}) + \text{mask} \odot (W \odot \hat{V}_k)\]

关键在于 \(W\) 由「当前解码到哪一步、当前层正在算什么」共同决定:面对 OCR 类问题,门可以放大浅层的高频笔画信息;面对开放式推理,门可以调到深层的语义概念;当某个层级的低层特征对当前任务无益时,门可以把它压下去。这正是消融里单加 AGF 就能把总分从 366.72 抬到 370.60(+3.88),而单加 AMP 只有 367.89(+1.17)的原因——能否动态地选,比能否看到更重要。门控与写回在多个注入点重复执行,模型在生成过程中会反复以不同粒度「重看」视觉证据,形成对视觉理解的迭代精化。

损失函数 / 训练策略

方法不引入新的损失项,完全遵循 LLaVA-OneVision 与 LLaVA-1.5 各自的原始训练协议,只训练新增模块(每层 LoRA 投影矩阵与门控模块)。两个模型的配置与初始化策略有意区分以保证结论可信:LLaVA-OneVision 版以 Qwen-2 系列为 LLM、Siglip-so400m-patch14-384 为视觉编码器、两层 MLP 为投影器,并从其「High-Quality Knowledge Learning」阶段之后的公开 checkpoint 开始微调,以避免数据污染、保证比较公平;LLaVA-1.5 版以 Vicuna-7B 为 LLM、CLIP-Large 为视觉编码器、带 GELU 的两层 MLP 为投影器,从预训练 checkpoint 出发并使用与 LLaVA-1.5 完全相同的训练数据。详细超参见原文附录 A,指令微调数据取自 LLaVA-OneVision 的单图数据集,评测统一走 LMMs-Eval 框架。

实验关键数据

主实验

在 LLaVA-OneVision 的 0.5B 与 7B 两个规模上,用同一份数据重训的单层投影基线(Baseline Projector)作为对照,与 DeepStack、Shallow-Layer Injection(SLI,把以步长 8 采样的 n 个视觉层一对一接到前 n 个解码层)在九个基准上比较,并列出更大规模模型作为参考。

模型 AI2D ChartQA DocVQA InfoVQA LLaVA-W OK-VQA GQA 总分(9 项)
VILA-13B 57.6 32.8 20.0 10.0 58.6 1.6 17.6 240.5
IXC-2.5-7B 39.1 81.2 90.3 68.1 63.2 29.2 57.7 574.8
InternVL-2-8B 82.2 82.5 90.0 66.5 72.7 52.1 62.7 660.9
InternVL-2-26B 83.0 84.4 90.4 68.9 90.6 48.3 65.1 686.7
LLaVA-OV-0.5B 56.5 64.5 64.1 47.5 61.7 48.4 53.7 541.2
+ DeepStack 53.2 54.0 54.6 41.0 57.1 46.2 53.3 490.5 (−50.7)
+ SLI 57.2 64.7 63.6 46.6 55.2 48.8 54.5 534.7 (−6.5)
+ CLI 56.7 65.2 64.7 47.1 61.1 48.6 53.7 542.9 (+1.7)
LLaVA-OV-7B 77.5 78.5 82.5 69.5 68.0 58.5 59.4 650.9
+ DeepStack 76.0 63.8 72.6 62.2 70.3 58.3 58.5 611.8 (−39.1)
+ SLI 77.6 77.3 79.9 67.6 68.5 58.4 59.3 645.8 (−5.1)
+ CLI 77.9 78.7 82.8 70.5 74.5 59.2 59.7 660.6 (+9.7)

感知与多学科推理的另外九个基准(MathVerse、MathVista、MMBench、MME、MMStar、MMMU、MMVet、SeedBench、ScienceQA)上,同样的排序重复出现:0.5B 规模下 Baseline 391.0、DeepStack 380.9、SLI 393.7、CLI 395.6;7B 规模下 Baseline 556.2、DeepStack 539.3、SLI 551.1、CLI 559.4,其中 MME 88.4(+3.3)、MMStar 56.5(+2.4)、MMMU 47.6(+0.6)是主要来源。加上 CLI 后的 LLaVA-OV-7B 把总分推到 660.6,逼近体量更大的 InternVL-2-8B(660.9)。

架构无关性用 LLaVA-1.5-7B 验证(换 LLM、换视觉编码器、换预训练流程):

模型 文档理解 4 项 partial sum 推理/感知 5 项 partial sum
LLaVA-1.5-7B 468.0 433.8
+ CLI 475.5 (+7.5) 442.4 (+8.6)

其中 OK-VQA +5.2、LLaVA-W +3.0、MMBench +2.0、MMVet +3.3 提升明显,说明 CLI 不仅能锦上添花,也能补偿基础模型原有的视觉-语言对齐弱点。

消融实验

组件消融在 LLaVA-OV-0.5B 上、用 50% 指令微调数据完成(该配置的合理性由原文附录 E.1 的规模分析支撑),因此绝对分数低于主表中的同规模结果,只能横向比较:

配置 九项总分 参数量 说明
Baseline 366.72 100.00% 单层投影基线
w/ AMP 367.89 102.25% 只加多层投影,几乎无收益
w/ AGF 370.60 102.12% 只加门控,+3.88,收益主要来源
w/ AMP + AGF 371.51 104.37% 两者协同,再涨 0.91
w/ Full AMP 367.74 107.95% 全量微调投影器,仍无收益
w/ Full AMP + AGF 407.01 110.07% 上限更高,但参数代价大

计算开销(MMBench 单样本,训练与推理):

方法 推理时间 推理显存 推理 FLOPs 训练显存 训练 FLOPs
Baseline 0.66 s 241.2 MB 3.7 T 251.3 MB 5.46 T
CLI 0.77 s 244.4 MB 5.0 T 277.6 MB 7.42 T

关键发现

  • 门控是收益的主引擎,对齐是它的前置条件。 单加 AMP 只涨 1.17 分,单加 AGF 涨 3.88 分,两者合用涨 4.79 分;而全量微调投影器单独用同样没有收益(367.74)。这组数字把两个模块的分工讲得很清楚:AMP 不是收益来源,它负责把各层特征整理到可比的尺度,让门控能有效判别。
  • 无筛选的注入会掉点,而且是大幅掉点。 DeepStack 在 0.5B 上掉 50.7 分、7B 上掉 39.1 分,SLI 也分别掉 6.5 与 5.1 分;在九项与九项两组基准共 18 个任务上,CLI 是唯一稳定超过基线的深融合方案。这直接反驳了「多给视觉信息总不会更差」的直觉。
  • 增益来自架构而非参数量。 作者构造了参数量与 CLI 相当的对照模型 Parallel,用静态一对一(第 i 层视觉 → 第 i 层解码器)实现:该模型在 LLaVA-Wild 上掉 6.5 分,在 MME、MMStar 上也没有显著收益,与 CLI 的 +6.5 分形成超过 13 分的差距。排除了「只是参数变多」的解释。
  • 注入密度上存在一个反直觉的非单调现象。 单点注入一致最差,印证了信息瓶颈确实存在;高密度(在多层频繁注入)整体最好,符合「随时可访问完整视觉层级」的设计主张;但中等密度反而不如更稀疏的配置。作者的解释是间歇性更新会引入「认知开销」——LLM 被反复打断却得不到高密度那种近乎连续的上下文支撑。
  • 不同任务类型的收益分布有明显规律。 开放式推理与细粒度感知收益最大(LLaVA-W +6.5、OCR +4.7),多学科理解次之(MME +3.3、MMStar +2.4、MMMU +0.7),文档理解的小幅累计增益为 0.5B +1.1、7B +1.9;只有极少数任务轻微下降(MathVerse −1.7、ScienceQA −0.8),作者归因于门控在低层特征有害时能抑制干扰。整体 28 个基准的累计增益为 +19.06。
  • 迁移到 LLaVA-1.5 的增益反而更大(两类 partial sum 分别 +7.5 / +8.6,而 LLaVA-OV 上是 +9.7 / +3.2),说明基础模型原有的视觉-语言对齐越弱,多层门控注入能补偿的空间越大。
  • 成本可控但并非免费。 推理显存只涨 1.3%(241.2 → 244.4 MB),推理时间 0.66 → 0.77 s,但推理 FLOPs 从 3.7T 涨到 5.0T、训练 FLOPs 从 5.46T 涨到 7.42T,计算开销的增加比显存开销更值得注意。

亮点与洞察

  • 把设计对象从「投影器」换成「连接拓扑」。 过去几年改进视觉-语言桥的思路几乎都是在设计更好的投影模块,本文把问题重述为「谁在什么时候向谁查询」,于是投影器退化成一个对齐工具,真正的决策权交回给 LLM。这个视角转换解释了为什么它比堆模块的方案涨得更多。
  • 逐层 LoRA 是化解层级投影两难的一个漂亮取巧。 它同时避开了共享投影器的分布错配和逐层全量投影器的预训练成本,用 4.37% 的额外参数换到了接近全量微调的收益下限(371.51 vs 407.01 的对照给出了明确的上限参照,作者也诚实地承认全量方案分数更高但性价比不划算)。
  • 门控权重可以直接当作可解释性工具。 论文把学到的门控权重画成热力图,直观给出「深层解码层查询全部视觉层」的 criss-cross 证据。这是少数把「设计动机 → 机制 → 可视化证据」闭环做完整的工作,也让「为什么需要 many-to-many」这个论断有了可检验的支撑,而不只是一句动机。
  • 可迁移性很强。 任何形如「层级编码器 → 层级消费者」的架构都能直接套用 AMP + AGF 替代单点投影:视频编码器到 LLM、音频编码器到 LLM、乃至多层感知机式的其他模态前端。尤其视频场景天然有更多层级上的时序结构,浅层查细节、深层查语义的分工可能更明显。

局限与展望

  • 数学与符号推理没有改善。 MathVerse 下降 1.7 分,MathVista 的增益也很有限,说明多层视觉信息主要帮助的是需要视觉证据的任务,对需要抽象符号操作的推理帮助不大;论文没有对此做深入分析。
  • 消融的覆盖面偏窄。 组件与注入密度的实验都在 0.5B 模型加 50% 数据上完成,注入点具体放在哪些层、采样层数 \(L_V\) 取多少、采样层号如何选(论文只举例 1/7/14)都缺少系统搜索,工程上复现时需要自己再调。
  • 计算开销随视觉 token 数增长。 每个注入层都要对完整层级集合重算门控,FLOPs 增加约 35%。在高分辨率或长视频场景下视觉 token 大幅增加,这个开销会被放大,论文只在单图 MMBench 上报告了效率数据,没有给出高 token 预算下的成本曲线。
  • 门控的建模粒度较粗。 \(W\in[0,1]\) 且对每个视觉层级独立计算,层级之间是否相关、是否应该联合建模(例如让门控看到「其它层被选了多少」)没有被讨论。
  • 部分结果只有图没有表。 OCR 与 RefCOCO/+/g 的九项结果只以柱状图和增量图(Fig. 4、Fig. 5)给出,没有独立数值表,严格复现需要以原文附录为准。此外与 Qwen3-VL 等把 one-to-one 做到极致的大模型缺少同等训练预算下的对比,跨论文比较需谨慎。

相关工作与启发

  • vs LLaVA 式单层投影:他们只把 ViT 最后一层投影一次、拼在文本 token 之前,视觉与语言之间只有一个接触点;本文从多个深度采样并在多个解码层注入,且每个注入点都能访问完整层级,把视觉信息从「一次性摘要」变成「可反复查询的仓库」。
  • vs DeepStack:它是 one-to-many 的暴力广播,把高分辨率 token 分组后按位加进固定层,不感知上下文,实验中几乎全面掉点;本文用 AGF 做选择性融合,是唯一在 18 个任务上稳定超过基线的深融合方案。
  • vs CogVLM / CogAgent:Visual Expert 在每层都插模块,但所有层吃的仍是同一张最终层特征图;CogAgent 把高分辨率特征静态广播到每一层。两者都让所有解码层看到同一层级的信息,本文则让不同层按需看到不同层级。
  • vs EVLM / mPLUG-Owl3 / Qwen3-VL / DEHVF:都是硬接线的静态 one-to-one,把特定 ViT 层钉到预设 LLM 层(DEHVF 甚至用刚性分组映射)。本文把对齐关系交给 LLM 自己学,且不限定每个注入点只能用某一层,二者在「谁决定配对」这一点上根本不同。
  • vs FUSION:它用可学习 token 让文本与视觉递归交互,加深了融合但仍在单一层级的视觉表示上操作,没有触及层级选择问题。

评分

  • 新颖性: ⭐⭐⭐⭐ 把「视觉层级未被充分利用」这一共识问题从模块设计重构为连接拓扑设计,many-to-many + 上下文门控的组合是首次被系统提出并可视化验证;但 AMP 的 LoRA 投影与 AGF 的注意力门控本身都是成熟组件,创新在于组合与定位。
  • 实验充分度: ⭐⭐⭐⭐ 28 个基准、两种 VLM 架构、等参数对照与训练/推理效率分析齐备,DeepStack/SLI 的对照实验尤其有说服力;扣分在于消融只在 0.5B 加半个数据集上做,注入位置与采样层数的选择缺少系统实验。
  • 写作质量: ⭐⭐⭐⭐ 动机链条清楚(冰鞋失败案例开场、门控热力图收束),失败对照也如实报告;但多处公式在版式中已损坏影响复现,LLaVA-1.5 的结论依赖 partial sum 这类聚合指标,颗粒度偏粗。
  • 价值: ⭐⭐⭐⭐ 插件式、参数高效(+4.37%)、显存几乎无感(+1.3%),可直接套到其它 VLM;对「视觉编码器的层级信息该怎样进入 LLM」给出了可复现且带经验证据的答案。