DGP打通ViT与LLM全部层:多模态大模型看图有了新接法
sina qqZone renren ydCloud 0

论文里有一道菜单题,看着只涉及一次简单的加法:Funghi 披萨一张 6.90 欧元,Prosciutto 披萨一张 7.90 欧元,加起来是多少?
LLaVA-1.5 不光把价格读错,还多添了一份根本没点的 calzone,最后报出 26.40 欧元;DGP 则读出两个正确的价格,算出 14.80 欧元。
毛病也许不全出在「推理」这一步。模型还没开始算,手上可能就没有拿到与题目对得上、足够可靠的视觉证据。
现在不少多模态大模型的做法是:只取视觉 Transformer(ViT)最后一层或倒数第二层的特征,投影一次就送进大语言模型(LLM)。此后不管语言模型有多少层,起点都是这同一份固定的视觉表示——认小字、辨颜色、看动作、品整幅画,全挤同一个视觉入口。
可同一张图碰上不同问题,需要的视觉粒度并不一样。读菜单价格靠的是局部纹理和文字细节,理解一幅画的历史意义更依赖高层语义。ViT 的不同层本来就编码了不同粒度的信息,那为什么在进 LLM 之前只留其中一层?
西北工业大学与香港科技大学的研究团队由此提出 DGP(Dynamic Gated Pathways,动态门控路径):每个 LLM 层都能访问全部 ViT 层,再结合当前图像—问题的上下文和该语言层的语义状态,给不同视觉层动态分配融合权重。
用一句话说:DGP 并非把更多视觉层简单平均,它把「哪一层视觉信息该接到哪一层语言模型」做成了一个可学习、随语言层、任务和样本动态变化的路由问题。
在 LLaVA-1.5-7B 上,论文报告的 11 项指标 DGP 全部超过基线,SQA-I 提升 4.2 分、MM-Vet 提升 3.3 分,VizWiz 与 LLaVA-Wild 均提升 3.1 分。换到 Qwen3-VL-2B 与 LLaVA-NeXT 上,增益同样一致。

- 论文标题:Where to Connect? Boosting MLLMs via Dynamic Gated Pathways across ALL ViT and LLM Layers
- 研究团队:西北工业大学、香港科技大学
- 论文链接:https://arxiv.org/abs/2611.06844
- 代码仓库:https://github.com/YingyingYan1/DGP
核心贡献:
DGP 动的不是视觉编码器,
而是视觉信息的「接线方式」
这项工作的核心贡献,大致可以归为三点。
第一点,问题从「选哪个 ViT 层」往前推了一步,变成「ViT 层应该连到哪个 LLM 层」。
以往的讨论多集中在:用最后一层、用多个中间层,还是把多层特征提前融合。DGP 换了个提法,叫 where to connect:视觉表征分层,语言表征也分层,真正要设计的是这两套层级之间怎么连。
第二点,把事先指定的连接,扩展成覆盖全部 ViT–LLM 层对的动态路由。
DGP 把所有视觉层和所有语言层都放进候选连接空间。每个 LLM 层不再固定绑到某一视觉层,而是依据自己当下的多模态语义状态,给全部 ViT 层分配不同权重。这里的 all-to-all 指全部「层对」都能参与连接;实际路由用的是 Softmax 软加权,既不是在视觉 token 之间两两连线,也不是只留少数层的硬路由。
第三点,不只验证「能提分」,还去分析「模型到底怎么选层」。
消融实验显示,在当前设置下,直接把全部视觉层平均反而会明显掉点,学出来的动态权重才是收益的重要来源。进一步的可视化表明,路由会随 LLM 深度、任务类型、具体样本乃至同一张图上的不同问题而变化,这为性能提升提供了可解释的证据。
1. 只在开头看一次图,为什么会成为瓶颈?
ViT 并不是每一层都在重复编码同一种信息。论文对各层注意力做可视化后发现,浅层关注得更分散,落在边缘、纹理和局部结构上;网络越深,注意力越往少数语义区域集中。

这种层级分工说明,每一层都有自己的用处:
- 浅层留住的局部线索更多,比如边缘、颜色、纹理;
- 中间层更擅长表达物体结构以及局部与整体的关系;
- 越往深处走,越偏向抽象语义和全局概念。
不过,主流 MLLM 通常只挑一个固定的 ViT 层,把它投影成视觉 token,在 LLM 输入端注入一次就完事。此后视觉信息只能跟着隐藏状态在语言模型里逐层往下传。LLM 各层本来承担着不同阶段的表征更新,却缺少一条直接回到完整视觉层级、按需重新挑选信息的通路。
已有的多层视觉特征方法,大致走了两条路:
- 一条是先融合、后输入:在视觉编码器那一侧把多个 ViT 层压成一个表示,再送进 LLM。信息来源是多了,可所有 LLM 层拿到的仍是同一份融合结果。
- 另一条是预定义跨层连接:把若干视觉层接到指定的语言层上。这种做法开始顾及两侧的层级结构,但连接位置或候选视觉层,通常还是人工事先定好的。
DGP 的不同之处在于:它不替模型预先决定哪些层值得连,而是把全部 ViT–LLM 层对都开放出来,让模型依据当前的语义状态去学连接强度。

图 2:从固定单层、编码器侧融合和预定义连接,到 DGP 的全层动态连接。
2. DGP 如何让每个 LLM 层按需「翻阅」视觉层级?
DGP 的整体流程可以拆成三个动作:先判断当前需要什么,再选择相应视觉层,最后把融合结果写回当前语言层。

图 3:DGP 框架。每个 LLM 层都对全部 ViT 层生成一组路由权重,并通过门控残差连接更新视觉 token。
2.1 用语言层的当前状态发起一次「视觉查询」
在图像和问题之后、首个答案 token 之前,DGP 插入了一个可学习的glimpse token。自回归注意力的因果结构决定了这个位置能看见此前的图像与文本上下文;而它在不同 LLM 层里的隐藏状态,又记下了该层已经形成的多模态语义。
于是,DGP 拿每个语言层 glimpse 的隐藏状态当查询信号。视觉侧则把各 ViT 层的 [CLS] 表示作为层级摘要,映射到 LLM 隐空间后充当键和值。
换句话说,glimpse token 说明的是「这一语言层眼下想找什么」,而各个 ViT 层的 [CLS] 摘要说明的是「这一视觉层大体上能给出什么」。
2.2 为全部视觉层动态分配权重
视觉层摘要和查询先一起送进多头交叉注意力模块,这个模块由所有 LLM 层共用,由此得到跨模态路由特征;接着每个 LLM 层各自用独立的路由 MLP,经 Softmax 算出权重,覆盖全部 ViT 层。
这一设计同时保留了两种特性:
- 共享交叉注意力提供统一的视觉层比较接口;
- 层特定路由器允许不同 LLM 层形成不同的视觉偏好。
也就是说,图不变、问题换了,路由就会跟着变;哪怕图和问题都一样,不同 LLM 层挑出的视觉层组合也可能不同。所谓「动态」,指的是权重会随图像—问题样本和 LLM 层不同而变化;至于答案生成时每产生一个新 token 就重算一次路由,论文目前的实现里并没有这么做。
2.3 在相同空间位置融合,并以门控残差写回
拿到路由权重后,DGP 在相同 patch 位置上对各 ViT 层的特征做加权求和:
当前语言层的融合 patch = Σ(该语言层分配给第 k 个 ViT 层的权重 × 第 k 层对应位置的 patch)
由此既能搭配不同的语义粒度,又保住了 patch 之间的空间对应关系。融合后的结果再交给当前 LLM 层专属的投影器,经过一个可学习的标量门控,以残差方式写回这一层的视觉 token。
整个流程大致是这样跑通的:
语言层状态先产生查询,再对全部视觉层做动态加权,随后按位置把 patch 融合起来,最后经门控注入当前 LLM 层
视觉信息因此不再只在输入端露一次面,而是会一直参与 LLM 逐层的表示更新。
2.4 熵正则:拦住路由过早「只认一层」
候选连接全部放开,模型未必就会主动用上。训练早期路由要是很快扎堆到少数几个视觉层,DGP 照样可能退化成接近固定连接。
论文的办法是在预训练阶段引入熵正则,把每个 LLM 层在一个 batch 上的平均路由分布熵做大,让不同视觉层都有机会被探索。约束的对象是 batch 平均分布,并不要求每个样本都均匀铺满所有层,所以单个问题还是能形成自己的明确偏好。
预训练时正则系数取 0.01;转到指令微调阶段就把它关掉,让路由继续往具体任务需要的视觉粒度上专门化。
3. LLaVA-1.5-7B 上 11 项指标齐涨,
换两种框架后增益同样复现
实验先从 LLaVA-1.5 起步,覆盖 Vicuna-7B 和 Vicuna-13B 两个规模。评测任务包括 GQA、SQA-I、VQAv2、VizWiz、SEED、LLaVA-Wild、MM-Vet、MMBench 和 POPE 等,涵盖通用视觉问答、细粒度感知、指令跟随与幻觉评估。

表 1:DGP 与主流 MLLM 以及多层视觉特征利用方法的对比。
7B 配置下,DGP 在表内 11 项指标上相对 LLaVA-1.5 全部上涨:
- SQA-I 从 66.8 升到 71.0,涨 4.2 分;
- MM-Vet 从 30.5 升到 33.8,涨 3.3 分;
- VizWiz 从 50.0 升到 53.1,涨 3.1 分;
- LLaVA-Wild 从 63.4 升到 66.5,涨 3.1 分。
和表里其他 7B 多层视觉特征方法比,DGP 在 GQA、SQA-I、SEED、LLaVA-Wild、MM-Vet、MMBench-CN 六项上拿到已报告的最高分。
13B 配置下,DGP 有 10 项指标压过 LLaVA-1.5 基线,11 项里只丢了 1 项。VizWiz 涨 3.8 分,MMBench 涨 2.4 分,GQA 涨 2.2 分。
视觉编码器、语言骨干、分辨率策略全换掉,DGP 依然管用
为确认 DGP 不是只认 LLaVA-1.5,团队把它接进了两个差别不小的框架:
- Qwen3-VL-2B:SigLIP2-L 加 Qwen3-1.7B;
- LLaVA-NeXT:CLIP-L 加 Vicuna-7B,用的是 AnyRes 高分辨率切片。

表 2:DGP 在 Qwen3-VL-2B 与 LLaVA-NeXT 上的结果。
两个框架报出的四项指标都在涨。Qwen3-VL-2B 的 SQA-I 由 85.3 升到 86.9;LLaVA-NeXT 的 SQA-I 从 69.5 升到 72.3,MMBench 从 66.5 升到 68.7。论文测的三种配置里,DGP 在不同视觉编码器、语言骨干和 AnyRes 分辨率方案下都拿到了增益,跨架构可迁移性算是有了初步迹象。
多接这么多层,开销到底涨了多少?

表 3 记录的是 batch size 为 1 时的参数量、生成 FLOPs 与峰值显存。7B 模型上,DGP 带来 5.29% 的参数增幅和 4.07% 的 FLOPs 增幅,峰值显存几乎没动;13B 模型上参数多了 4.27%,FLOPs 实测值大致持平,峰值显存则上升 4.13%。说到底,它不是零成本的模块,但多出来的开销还在比较有限的范围里。
分数之外,再看具体回答:先看清楚,才谈得上答对

论文给出的案例里,LLaVA-1.5 会看漏菜单上的价格、凭空编出并不存在的菜品,也没法把图里的文字、动作、表情跟问题对上号。换成 DGP,相关视觉证据的还原明显更准:
- 菜单那道题,它读出了 6.90 与 7.90 欧元,算出正确的总价 14.80 欧元;
- 多步动作图里,它认出了「打响指后单脚跳」;
- 经典的猫咪表情包,它把人物情绪和猫的神态之间的反差解释得更完整。
当然,这些例子不足以单独证明所有错误都出在视觉连接方式上。但它们直观地摆出了一条链条:问题相关的视觉证据更可靠了,后续推理踩在错误前提上的机会就会少一些。
4. 关键消融:视觉层更多,不等于有效信息更多
DGP 的收益,究竟来自动态路由,还是仅仅因为模型多看了几层 ViT?
研究团队做了一个直接对照:不学路由权重,改为把全部 24 个 ViT 层均匀平均。结果不但没涨,多数指标还明显掉到单层基线以下。

表 4:平均融合、动态门控路由与熵正则的组件消融。
- MM-Vet 从基线的 30.5 掉到 25.3;
- MMBench 从 64.3 掉到 57.6;
- LLaVA-Wild 从 63.4 掉到 56.3。
原因其实不难想:浅层、中层、深层的特征本就处在不同的语义粒度上,不加区分地叠在一起,互补信息也可能混成噪声。
换成动态门控路由之后,MM-Vet 和 MMBench 分别回到 32.4 和 65.6;再叠上熵正则,两个数字进一步升到 33.8 和 66.7,SQA-I 也从 70.5 提到 71.0。
这组消融给出的解释,比「用的层多所以更强」更有说服力:
在当前的 LLaVA-1.5-7B 设置下,单纯增加或平均视觉层并不足以提升性能;学习到的层级权重是收益的重要来源。
5. 路由可视化:同一张图,
问题一变,模型挑的视觉层也跟着变
如果 DGP 真在按需路由,学到的权重就不该永远压在最后一个 ViT 层上,也不该退化成均匀平均。

可视化结果正好对上了这个预期:
- 不同LLM层的偏好并不一致,中间ViT层整体上被激活得更频繁,浅层与深层同样会被特定语言层挑中。典型曲线往往出现多个峰,这说明模型是在组合多种视觉粒度,并非只靠某一层。
- 落到具体任务上,偏好又会变。把观察点固定在LLM第21层,LLaVA-Wild、VizWiz和SQA-I会给出各自不同的视觉层权重分布。
- 再细到单个输入,差异依然存在——路由的变化不只停在数据集这个层面,而是继续下沉到每一条样本。
更直观的证据,来自「固定图像、只换问题」的对照实验。

问题问的是颜色、属性或某个小区域的细节时,路由会更多偏向保留纹理与局部结构的浅层、浅中层特征;问题一旦转到画作身份、历史意义、场景含义或动作理解,权重就移向中深层乃至深层。碰上「详细描述图像」这种既要局部细节又要整体语义的提问,权重分布会铺开到更多视觉层级。
这种路由差异,最后也会体现在融合后的空间特征上。

图7:固定使用CLIP第23层、对全部24层取平均,以及DGP在不同LLM层生成的融合特征。
固定单层时空间响应偏粗,背景里干扰较多;均匀平均虽然把多层信息加了进来,响应依旧比较分散。对比之下,论文展示的DGP特征主体轮廓更清楚,勺子边缘、建筑边界这类局部结构也保留得更好。LLM第1、18、28层的融合结果互不相同,说明路由并没有塌缩成一套固定模板。
6. 适用边界:这是一个有前景
的连接原则,但还不是最终答案
DGP目前的验证主要围绕LLaVA-1.5的7B/13B配置展开,并延伸到Qwen3-VL-2B与LLaVA-NeXT。至于30B以上的语言模型、更广范围的视觉编码器以及更大规模的多模态语料,论文还没有做系统验证。
另外,全层动态连接会带来额外的参数与计算开销。现有实验里这部分增量不算大,可随着模型层数和视觉分辨率继续往上走,它的扩展效率仍需要进一步研究。
所以更准确的说法是:论文用跨架构实验、消融和路由分析拿出了证据——在已测试的模型与数据设置下,视觉—语言怎么连会明显影响多项基准表现,这是值得继续验证的设计维度;而「DGP已解决多模态视觉瓶颈」这样的结论并不成立。
结语
以往的多模态模型,多把视觉编码器当成一次性的信息入口:挑一个层,产出一组视觉token,后面的理解全交给LLM。DGP把视觉—语言的连接从一根固定管道,改成了一组由语言层状态控制的动态路径。
打个比方,ViT的多层特征像一座按抽象程度排好的资料库。传统做法是在进LLM之前复印其中一页,让所有语言层反复读;DGP则让每个语言层按当前问题,回到资料库里挑自己需要的那几页。
这样一来,这项工作的启示就不止于一个新模块:多模态模型的瓶颈,未必总出在视觉编码器不够强、数据不够多或语言模型不够大,也可能是两种模态之间的「接线方式」太僵硬。
关键不在于让模型无差别地看得更多,而在于让它站在合适的语言层、用合适的视觉粒度,看到与当前问题真正相关的信息。