打开网易新闻 查看精彩图片

你有没有想过,一张图片被塞进AI大模型之后,到底发生了什么?

答案是:它被切成成百上千个小碎片,叫做视觉token。每一个碎片都要经过模型里几十层网络的反复"揉搓",每一层都要重新计算一遍它和文字之间的关系。图片越大、视频越长,这个碎片数量就越夸张,动辄上千个。而模型每多一层,这些碎片就要多算一遍,成本像滚雪球一样往上涨。

于是过去两年,整个领域几乎形成了一个默契:既然token太多算不动,那就扔掉一部分。这就是"视觉token剪枝"的思路,各种方法你争我夺,谁能在保留更少token的情况下让模型表现掉得更少,谁就赢。

但这里藏着一个问题,一旦某个视觉token被剪掉,它携带的信息就永久消失了。如果后面某一层网络突然需要用到这个被删掉的细节,那就没救了,因为它已经不存在了。这就好比你在打包搬家的时候,提前把一半的箱子直接扔进垃圾桶,指望自己不会用到里面的东西。可万一某天你需要找一张旧照片,而它恰好在被扔掉的箱子里,那就真的找不回来了。

这篇来自南洋理工大学、上海交大、复旦大学等机构研究者的论文,提出了一个完全不同的思路:**能不能一个视觉token都不扔,但是让它们别再每一层都重新算一遍?**

核心问题:视觉token真的需要层层进化吗

要理解这篇论文的巧思,得先搞清楚视觉token在模型里到底扮演了什么角色。

多模态大模型*:能同时理解图片(或视频)和文字,并进行推理、问答的AI模型,比如GPT-4o、Qwen-VL系列都属于这一类。

一张图片进入模型后,先经过视觉编码器,变成一串数字向量,也就是视觉token。这些token会和文字token拼在一起,送进一个几十层的Transformer网络里。

Transformer*:目前主流大模型的基础架构,靠"注意力机制"让每个token能看到、参考其他token的信息,层层堆叠形成深度网络。

在每一层里,视觉token其实干了两件事。第一件事,它给文字token提供"背景知识",文字token通过注意力机制去"查阅"视觉token里的信息,这就好比你写论文时查资料库。第二件事,视觉token自己也在"进化",它会生成自己的查询向量,接受注意力计算,再过一遍前馈网络,变成下一层的新状态,一层一层往下传。

问题就出在第二件事上。研究者们的直觉是:视觉token真的需要在每一层都重新计算自己的状态吗?如果它的核心作用只是给文字提供背景资料,那背景资料本身是不是可以提前"准备好",而不用每次都现场重新炒一遍菜?

为了验证这个直觉,他们做了两组关键实验,结果相当有说服力。

第一组实验:视觉信息的"有效维度"远比想象中小

研究者保持视觉token的数量和位置完全不变,只是把每个视觉隐藏状态投影到一个低维子空间里,再重构回原来的维度,然后看模型表现掉了多少。

隐藏状态*:神经网络内部某一层处理数据后得到的一组数字向量,可以理解成模型对这个token"当前理解到什么程度"的快照。

结果显示,即便把原本几千维的隐藏空间压缩到只保留一百多维,模型在ScienceQA、RealWorldQA、MMStar这些评测基准上的表现依然保留了绝大部分。尤其是在LLaVA-1.5-7B这个模型上,压缩效果特别明显。

这说明什么?说明视觉信息本身携带的"有效内容"其实没那么多,模型给它分配的表示空间存在大量冗余,就像你租了一个三室两厅的房子,结果只用得上其中一个房间。

第二组实验:不同层的视觉状态居然可以被"预测"出来

更让人意外的是第二组实验。研究者针对每一层单独训练了一个轻量级的多层感知机(MLP),输入是最初的视觉embedding,输出是试图去预测这一层经过Transformer计算后得到的视觉状态。

多层感知机(MLP)*:一种最基础的神经网络结构,通常只有几层全连接层,结构简单,计算量远小于完整的Transformer层。

结果这些简单的小MLP,居然能用很高的余弦相似度和很低的重构误差,把原本需要经过几十层复杂Transformer计算才能得到的视觉状态"猜"出来。

这就相当于,你原本以为写一篇论文的最终稿需要经历十几轮反复修改打磨,结果发现有个实习生只看了你的初稿提纲,就能写出和你最终稿高度相似的东西。这意味着从初稿到终稿之间,那些反复打磨的过程里,很多计算其实是可以被"跳过"或者说"预测"出来的,而不需要每次都老老实实地重新走一遍。

正是这两组实验,支撑了整篇论文的核心假设:**保留所有视觉token,同时用轻量级的方式去"预测"每一层需要的视觉状态,而不是让视觉token真的去经历每一层的完整计算。**

δ-Vision:用低秩适配器替代重复计算

基于上面的发现,研究者提出了δ-Vision。它的核心设计是,把原本视觉token要经历的"完整Transformer进化",替换成一个轻量级的低秩适配器,专门负责构造每一层所需要的"视觉记忆"。

低秩适配器*:一种参数量很小的神经网络模块,通过先降维再升维的方式(比如从2560维压到128维,再升回2560维),用很少的参数去逼近一个复杂的变换效果。

具体来说,在第l层,这个适配器接收一个输入视觉状态X,输出是X加上一个修正项。这个修正项是通过一个降维矩阵D、一个SiLU激活函数、再一个升维矩阵U算出来的,整个过程的秩(可以理解为"自由度")被限制在一个很小的数字r上,论文里默认用的是128。

秩*:矩阵能表达的独立信息维度数量,秩越小,说明这个变换能做的调整越"受限",但计算量也越小。

论文设计了两种具体的记忆构造方式。第一种叫嵌入适配器,它直接从最初的视觉embedding出发,给每一层单独学一个低维修正,每一层的记忆都是独立算出来的,互相之间不需要依赖。第二种叫循环适配器,它更接近传统Transformer的思路,让记忆像接力棒一样,一层传给下一层,但每次传递的修正量依然被限制在低维空间里。

打个比方,嵌入适配器像是给每个部门单独配了一个翻译,每个翻译都直接从原始资料出发,独立翻译出这个部门需要的版本。循环适配器则像是一个接力翻译链,第一个人翻完传给第二个人接着改,虽然也是逐层传递,但每次修改的幅度都被严格限制,不能像原来那样天马行空地大改。如果不做这个限制,循环适配器其实就退化成了普通的Transformer,又变得又贵又重。

构造好每一层的视觉记忆之后,δ-Vision不会让这个记忆去生成查询向量、去做视觉自己的注意力计算,而是只把它送进原本冻结不变的Key和Value投影层,变成文字token可以查阅的"背景资料"。文字token该怎么算还怎么算,唯一的变化是它现在查阅的视觉背景资料,是被适配器预测出来的,而不是视觉token自己一层层辛辛苦苦算出来的。

这就好比一个图书馆,原本每次有人来借书,图书管理员都要重新把整本书抄写一遍放到书架上,现在改成提前印好副本直接上架,读者该怎么借书还是怎么借,唯一的区别是背后的"制作流程"被简化了。如果不做这个简化,每次有读者来,管理员都要重抄一遍整本书,这个成本显然是不必要的重复劳动。

训练方式:用蒸馏而不是硬标签

那这套适配器要怎么训练出来?研究者选择了一种叫Supervised-KD的方案。

知识蒸馏(KD)*:让一个小模型(学生)去模仿一个大模型或原始模型(老师)的输出概率分布,而不只是模仿最终答案,这样学生能学到更细腻的行为模式。

具体做法是,原始的、没有改造过的多模态大模型作为"老师",δ-Vision作为"学生",两者接收同样的图片和文字输入,在同样的答案前缀条件下,预测下一个词是什么。训练目标是让学生预测的概率分布尽量逼近老师的分布,用的是KL散度损失。

整个训练过程中,视觉编码器、多模态投影层、语言模型主干全部冻结不动,只有这些轻量级的适配器参数在更新。论文还做了消融实验,对比了普通监督微调(SFT)、在线蒸馏(OPD)和Supervised-KD三种方案,结果Supervised-KD效果最好,平均分74.4,而且训练时间只要34分53秒,比在线蒸馏的4小时38分钟快了将近8倍。

这就好比培养一个新员工,普通监督微调相当于只给他标准答案让他死记硬背,在线蒸馏相当于让他全程跟着老员工实操每一个环节但耗时极长,而Supervised-KD则是让他观摩老员工处理问题时的完整思路和判断过程,既学得像,又不用耗费太多时间。

实验结果:不扔token,反而更准

理论说得再漂亮,最终还是要看数据。

在Qwen3-VL-4B这个模型上,δ-Vision在只保留5%计算预算的情况下(和只保留5%视觉token的剪枝方法计算量相当),平均分达到74.4分,比表现最好的剪枝方法DivPrune高出9.1分,比训练型方法LLaVA-Mini和EPIC分别高出9.4分和7.5分。更夸张的是,δ-Vision的表现甚至逼近了保留20%视觉token的剪枝方法的最好成绩。

| 方法 | MMStar | RWQA | GQA | MMB | MME | 平均分 |

| DivPrune(5%保留) | 42.8 | 57.1 | 45.0 | 75.9 | 74.5 | 65.3 |

| LLaVA-Mini | 40.8 | 51.1 | 47.3 | 78.2 | 70.7 | 65.0 |

| **δ-Vision(嵌入适配器)** | **54.4** | **62.9** | **56.7** | **84.5** | **80.1** | **74.4** |

| **δ-Vision(循环适配器)** | **56.9** | **64.4** | **58.4** | **85.0** | **80.7** | **75.4** |

效率方面同样亮眼。在Video-MME视频理解基准上,δ-Vision只用了原模型17.90%的计算量,和保留5%视觉token的剪枝方法(16.58%到23.90%区间)基本持平,同时实现了1.30倍的整体推理加速和1.50倍的预填充加速。

预填充*:模型处理输入提示词、把它编码成隐藏状态的阶段,是推理开始前的准备工作,这个阶段耗时通常占很大比重,尤其是输入很长的时候。

也就是说,δ-Vision在效率上和"暴力删token"打了个平手,但在准确率上碾压了对方。这在直觉上其实有点反常,因为过去几年整个领域的隐含假设是,想要省算力,就得牺牲一部分信息。δ-Vision证明了这个假设至少不是唯一答案,你可以换个方向,不砍信息,只是让信息的"加工流程"变得更聪明。

论文还测试了δ-Vision在不同规模、不同架构模型上的泛化能力,包括LLaVA-1.5-7B、Qwen3-VL-30B-A3B、Qwen3.5-4B。在Qwen3-VL-30B-A3B上,δ-Vision达到78.6分,远超DivPrune的71.3分。在Qwen3.5-4B上,δ-Vision达到71.6分,同样明显优于DivPrune的62.7分。

多图和视频场景下,δ-Vision同样表现不俗。在只用单图数据训练的情况下,平均分是49.5分,加入多图和视频训练数据后提升到52.0分,超过了表现最好的剪枝基线(50.2分)。

视觉计算到底能省多少:更深入的分析

论文的第三部分做了一些非常细致的"解剖"实验,试图弄清楚视觉计算的冗余到底藏在哪里。

研究者分析了三类和视觉token相关的计算量:查询向量、注意力矩阵QK转置、注意力输出。他们用两个指标衡量这些矩阵的"信息集中程度",一个叫r95(保留95%能量所需的最小秩),一个叫有效秩。

结果发现,视觉注意力输出在Qwen3-VL-4B上只需要38到103个方向就能保留95%的信息量,而LLaVA-1.5-7B上更少,只要29到38个方向。要知道这些矩阵原本的维度可能高达上千,这说明模型分配给视觉计算的"容量"存在大量没有被真正用上的部分。

紧接着,研究者做了一个更严格的验证:把这种低秩压缩不是孤立测试,而是让压缩后的效果一层一层往后传递,看看误差会不会累积放大。结果依然乐观。在Qwen3-VL-4B上,如果完全切断所有层的视觉信息,RealWorldQA的分数会从71.2暴跌到46.1,MMStar从64.9暴跌到25.6,基本等于瞎猜。但只要恢复128个方向的信息,分数就能回升到70.7和64.6,几乎追平原始表现。

更有意思的发现是,视觉信息的重要性在不同层之间分布极不均匀。在Qwen3-VL-4B上,阻断中间层的视觉信息造成的损害最大,而最前面几层和最后几层几乎无关紧要。这就像一场接力赛,你以为每一棒都同等重要,结果发现真正决定输赢的其实只是中间那两三棒,前面和最后的选手反而无所谓跑得快不快。

这个发现直接催生了论文里的一个延伸实验:既然不同层重要性不同,那δ-Vision的适配器是不是也没必要在每一层都部署?研究者试着跳过前5层和后10层的适配器,平均分只从74.4微降到73.3,计算量却从17.90%进一步降到15.64%,推理速度提升到1.35倍。跳过前10层和后10层,分数降到71.9,但速度进一步提升到1.37倍。

这套"分层重要性"的发现,在混合注意力架构的Qwen3.5-4B上也得到了验证。这个模型混合使用了Gated DeltaNet(一种线性注意力机制)和传统全注意力层。研究者分别测试了切断线性注意力层里视觉信息的"写入"和切断全注意力层里视觉信息的"读取",结果发现,切断全部24个线性注意力层的视觉写入影响很小,但只切断其中两个全注意力层(第11层和第15层)的视觉读取,就会造成大幅度性能下滑。这再次印证了一个结论:视觉信息真正被大量使用的地方,往往只集中在网络里很小的一部分层,而不是均匀分布在所有地方。

和token剪枝方法能不能"强强联合"

一个自然的问题是,δ-Vision这种"压缩表示维度"的思路,和传统的"删减token数量"的思路,能不能同时使用?

研究者做了组合实验,在δ-Vision的嵌入适配器基础上,再叠加DART或DivPrune做token剪枝。结果显示,当剪枝保留50%的视觉token时,平均分只从74.4微降到73.2左右,几乎没什么损失。当剪枝力度加大到只保留20%甚至5%的token时,分数开始明显下滑,降到61左右。

这说明δ-Vision解决的冗余问题(计算维度上的冗余)和token剪枝解决的冗余问题(序列长度上的冗余)其实是两个不同性质的问题,某种程度上可以叠加使用,但叠加到一定程度后,两种压缩的负面效应也会开始叠加。这就好比减肥,你既可以少吃饭(削减输入量),也可以提高代谢效率(优化处理过程),两者可以同时做,但都做到极限的话,身体还是会吃不消。

写在后面

读完这篇论文,最触动我的其实是那个第二组实验的结果。一个简单的MLP,只看初始视觉embedding,居然能高相似度地"猜"出模型经过几十层复杂计算后得到的视觉状态。

这让我想到一个问题:如果一个几十层的深度网络在处理某类信息时,其实存在着一个"可预测的轨迹",那这是不是说明,我们过去默认的"深度等于表达能力"这个假设,在某些具体场景下被高估了?深度确实带来了强大的建模能力,但这篇论文提醒我们,不是所有信息都需要用满全部深度去反复咀嚼。

另一个让我觉得有意思的细节是分层重要性的发现。视觉信息的作用高度集中在少数几层,这个现象在纯Transformer架构和混合线性注意力架构上都成立,尽管两种架构的内部机制完全不同。这种跨架构的一致性,让我怀疑这可能不是某个具体架构的偶然特性,而是多模态信息融合本身的一个更普遍的规律。如果真是这样,未来是不是可以设计出一种"自动探测重要层"的机制,而不需要像本文这样靠人工分组做实验去摸索?

这也是这篇论文留下的一个开放问题:视觉token不需要处处进化,但具体哪几层该保留完整计算,目前还是靠实验试出来的,而不是靠一个原理性的判据自动确定的。如果能找到那个判据,或许省下的就不只是17%的算力了。

Q&A

Q1:δ-Vision是什么?

A:δ-Vision是一种多模态大模型加速方法,它不删除任何视觉token,而是用轻量级的低秩适配器直接预测每一层需要的视觉状态,从而替代让视觉token在每一层反复经过完整Transformer计算的过程。

Q2:δ-Vision和传统的视觉token剪枝方法有什么区别?

A:剪枝方法通过永久删除部分视觉token来省算力,但被删掉的信息之后无法再被访问。δ-Vision保留全部视觉token,只是简化了它们在每一层的计算方式,文字token依然可以查阅到所有视觉信息。

Q3:δ-Vision的效果如何?

A:在Qwen3-VL-4B上,δ-Vision在和保留5%视觉token的剪枝方法计算量相当的情况下,平均分达到74.4,比最强剪枝基线高9.1分,同时在Video-MME上实现1.30倍整体推理加速和1.50倍预填充加速。