LLaVA-1.5点菜算错账?DGP架构打通ViT与LLM全部层
NeurIPS 2026|VLM架构新突破:DGP打通全部ViT与LLM层,让...
论文里有一道点菜题,看上去做一次加法就行: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层的注意力拿出来做了可视化,结果发现:浅层盯得更散,边缘、纹理、局部结构都在看;网络越深,注意力越往少数语义区域收。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 由语言层当前状态发起一次“视觉查询”
DGP 在图像和问题之后、首个答案 token 之前插入一个可学习的 glimpse token。自回归注意力有因果结构,这个位置能看见此前的图像与文本上下文;它在不同 LLM 层里的隐藏状态,也记录了该层已经形成的多模态语义。
于是,每个语言层的 glimpse 隐藏状态被 DGP 拿来当查询信号。视觉侧则取各 ViT 层的 [CLS] 表示,作为层级摘要,映射到 LLM 隐空间后充当键和值。
换个说法:语言层那边,glimpse token 说的是“眼下想找什么”;视觉层这边,各 ViT 层的 [CLS] 摘要说的则是“这一层大致能给出什么”。
2.2 给全部视觉层动态分配权重
查询和视觉层摘要先送进一个多头交叉注意力模块,该模块由所有 LLM 层共享,输出跨模态路由特征;接着,各 LLM 层用自己独立的路由 MLP,经 Softmax 算出覆盖全部 ViT 层的权重。
这种设计同时留住了两种特性:
-
各LLM层共用的交叉注意力,给出了一个统一的视觉层比较接口;而每层各自的路由器,则让不同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 配置下,表里的 11 项指标,DGP 对 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 多层视觉特征方法,GQA、SQA-I、SEED、LLaVA-Wild、MM-Vet 和 MMBench-CN 这六项上,已报告分数最高的是 DGP。
13B 配置下,11 项指标里有 10 项高于 LLaVA-1.5 基线。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。两个框架报告的四项指标全部上涨。论文测试的三种配置里,换用不同视觉编码器、语言骨干和 AnyRes 分辨率方案,DGP 都能带来增益,跨架构的可迁移性由此有了初步证据。
多看这么多层,代价有多大?
表 3:batch size 为 1 时的参数量、生成 FLOPs 与峰值显存。
7B 模型上,DGP 的参数多了 5.29%,FLOPs 多出 4.07%,峰值显存几乎没动;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 层总体上被激活得更频繁,可浅层和深层同样会被特定的语言层挑中。典型曲线往往出现好几个峰,也就是说模型是把多种视觉粒度拼起来用,并非只押在一层上。
-
任务一换,偏好也跟着换。把观察点固定在第 21 个 LLM 层上,LLaVA-Wild、VizWiz 和 SQA-I 各自形成的视觉层权重分布并不相同。
-
哪怕同属一个任务,样本与样本之间也有差别。路由上的差异不只停在数据集这一层,而是继续细到每一条输入。
更直接的证据,来自“图不变、只换问题”的对照实验。
问题问的是颜色、属性或者小片区域的细节时,路由更倾向于保留纹理和局部结构的浅层、浅中层特征;问题转到画作身份、历史意义、场景含义或动作理解,权重就挪向中深层乃至深层。碰到“详细描述图像”这种既要有局部细节又要有整体语义的问题,权重分布会铺开到更多视觉层级。
这种路由上的差别,最后也体现在融合后的空间特征上。
图 7 对比了三种做法生成的融合特征:只用 CLIP 第 23 层、把全部 24 层做平均,以及 DGP 在不同 LLM 层上的结果。
单层固定输出的空间响应偏粗,背景里干扰不少;均匀平均虽把多层信息都掺了进来,响应还是散。论文给出的 DGP 特征主体轮廓更清楚,勺子边缘、建筑边界这类局部结构也保得更好。LLM 第 1、18、28 层的融合结果各有差异,路由并没有塌缩成一套固定模板。
6. 适用边界:一条有前景的连接原则
但还称不上最终答案
目前的验证主要集中在 LLaVA-1.5 的 7B/13B 配置,另外扩展到 Qwen3-VL-2B 和 LLaVA-NeXT。30B 以上的语言模型、更多种类的视觉编码器、更大规模的多模态语料,论文都还没做系统验证。
全层动态连接还会带来额外的参数和计算开销。现有实验里这部分增量不算大,可模型层数和视觉分辨率继续往上走,扩展效率仍要再研究。
所以说,更准确的说法不是「DGP 已经解决了多模态视觉瓶颈」,而是论文用跨架构实验、消融和路由分析给出了证据:在已测试的模型和数据设置下,视觉—语言怎么接,会明显影响多项基准的表现,这是一个值得继续验证的设计维度。
结语
以往的多模态模型多把视觉编码器当成一次性的信息入口:挑一个层,产出一组视觉 token,后面的理解全交给 LLM。DGP 把视觉—语言连接从一根固定管道变成了一组动态路径,由语言层状态来掌控。
打个比方,ViT 的多层特征像一座按抽象程度排好的资料库。传统方法相当于进 LLM 之前只复印其中一页,让所有语言层反复读;DGP 则让每个语言层按当前问题,回到库里挑自己需要的页面。
这项工作带来的启示不只是一个新模块:多模态模型的瓶颈,未必总是视觉编码器不够强、数据不够多、语言模型不够大,也可能出在两种模态之间那套过于僵硬的「接线方式」上。
关键不在于让模型不加区分地看得更多,而在于让它在合适的语言层、用合适的视觉粒度,看到与当前问题真正相关的信息。