![]()
裁判吹响哨子的那一刻,你会盯着哪里?
如果你正在看一场足球比赛的回放,有人问你:"哨响之后,裁判做了什么手势?"你的注意力会立刻从"哨子响的那一秒"跳到"裁判举手的那一秒"。这两个瞬间在时间轴上根本不重叠。声音的关键信息在前面,画面的关键信息在后面。
这听起来是句废话,人本来就是这样看视频的。但如果你要设计一个AI模型,让它同时处理视频里的画面和声音,这句"废话"就变成了一个技术难题。因为现在几乎所有的做法,都假设画面和声音的"重要时刻"应该是一致的。
这篇论文要讲的,就是研究者们发现了这个假设是错的,并且找到了一个不需要重新训练模型的解决办法。
视频AI的"内存爆炸"难题
先说说为什么这件事非解决不可。
现在能同时理解视频和音频的AI模型,行话叫**全模态大语言模型**
全模态大语言模型:一种可以同时处理视觉、听觉和文字三种信息的AI模型,比如阿里的Qwen2.5-Omni,能一边"看"视频一边"听"声音,然后回答关于这段视频的问题
这类模型的工作方式是,把视频拆成一帧一帧的画面,把音频拆成一段一段的声波,分别塞进两个不同的"翻译器"里,翻译成AI能理解的**token**
Token:可以理解成AI处理信息的最小单位,一段文字、一帧画面、一小段声音,经过编码后都会变成一串token,模型就是靠处理这些token序列来"理解"内容的
问题来了:视频越长,token就越多。一部十分钟的视频,可能产生几万个token,这些token全部要塞进AI的"注意力计算"里,计算量会随着token数量的增加而急剧膨胀。这不仅让模型跑得慢、吃显存,还会让真正重要的信息被大量无关token"稀释",导致模型在长视频里抓不住重点。
于是"token压缩"就成了绕不开的一环,思路很直接:既然很多token是冗余的,能不能提前把它们筛掉或者合并掉,只留下真正有用的?
在纯视觉领域,这个方向已经研究得比较成熟了,有不少方法能把图片或视频里的冗余视觉token砍掉一大半而不影响准确率。但音频和视频要一起压缩,这个组合题目前研究得还很少。
现有的少数几个方案,采用的是一种叫"单向跨模态引导"的策略。简单说就是:让一个模态说了算,由它来决定另一个模态该保留哪些token。比如OmniZip这个方法,就是用音频的重要性打分,去指导视频token怎么砍。
这个思路听起来挺合理,声音里说了"进球了",那画面上进球那一刻的帧当然更重要嘛。但研究者们做了个实验,发现这个假设经常是不成立的。
78.3%的样本里,眼睛和耳朵根本不在同一个频道
研究团队找来1197对"问题-视频"样本,分别用CLIP(负责视觉打分)和CLAP(负责音频打分)去计算,针对同一个问题,视频每一帧的重要性分数,以及音频每一秒的重要性分数。
CLIP:一种能同时理解图片和文字的AI模型,能计算一张图和一句话的"匹配程度",分数越高说明这张图跟这句话越相关
CLAP:跟CLIP类似,只不过CLIP处理的是"图片+文字",CLAP处理的是"声音+文字",用来判断一段音频和一句话的相关程度
结果算出来的斯皮尔曼相关系数,78.3%的样本,视觉重要性曲线和音频重要性曲线之间的相关性都很弱(相关系数绝对值小于0.3)。
这个数字什么概念?相关系数接近0,意味着"视频里最重要的那一刻"和"音频里最重要的那一刻"几乎是两条互不相干的曲线,谁也预测不了谁。换句话说,绝大多数情况下,靠一个模态去猜另一个模态的重点,基本等于瞎猜。
这就是论文里说的"跨模态显著性错位"。如果你只用音频的重要性去决定该留哪些视频帧,那些音频听起来平平无奇、但画面上恰好在做关键动作的瞬间,很可能被直接砍掉。反过来也一样。
论文开头举的那个例子特别形象:裁判吹哨之后打手势判罚,问题是"哨响后裁判做了什么手势"。声音的高潮在哨声那一刻,画面的高潮在打手势那一刻,两者错开了好几秒。如果用音频引导视频压缩,哨声附近的画面帧会被留下来,但真正回答问题所需要的"打手势"那一帧,很可能因为音频当时很安静而被判定为不重要,直接删掉。答案就这么丢了。
这就像什么呢?
想象你在整理一场婚礼的照片和录音,你打算用录音的"热闹程度"来决定留哪些照片。录音里最热闹的时刻是宾客碰杯欢呼那一段,于是你把那几分钟的照片全部保留了下来。可新人交换戒指的那一刻,现场安静得只有主持人的声音,录音波形平平无奇。如果按录音热闹程度去筛照片,交换戒指这张最该保留的照片反而最容易被漏掉。你留下的是热闹,丢掉的是重点。这不是一个抽象的比喻,这就是单向引导压缩的真实代价:它优化的是"某一个模态自己觉得重要的东西",而不是"这个问题真正需要的东西"。
压缩之后,注意力去哪儿了
研究者没有止步于发现问题,他们还往深挖了一步:压缩到底会对模型内部产生什么影响?
他们跑去看了Qwen2.5-Omni-3B模型内部的注意力分布图(就是模型在处理信息时,"看"哪里更多、"看"哪里更少的可视化图)。结果发现一个很有意思的现象:在没有压缩、全token都保留的情况下,模型的注意力几乎全部集中在"局部时间窗口"内部,也就是说,模型主要在看"当前这一小段时间"里的画面和声音,很少去关联更远的时间窗口,跨模态(画面看声音、声音看画面)的关联也很弱。
但是一旦做了随机压缩,把每个时间窗口里的token数量减少,情况就变了:**跨窗口的注意力和跨模态的注意力都明显增强了**。
这个发现很关键。它说明压缩本身不是坏事,反而能激发模型去做更大范围的信息关联,本来窝在自己一小块地盘里的注意力,被逼着往外看了。问题在于,如果之前用单向引导压缩,把关键token错误地删掉了,那这股被激发出来的"往外看"的注意力,就会被导向错误的、次要的信息上去,因为真正重要的线索已经不在了。
而如果每个模态各自保留自己跟问题最相关的token,这股被压缩激发出来的注意力,就会自然而然地落在两边真正重要的线索上。
这就是整篇论文最核心的设计原则:**用同一个问题作为两个模态共享的语义锚点,但让每个模态各自独立判断自己该留哪些token,不要互相指挥。**
OmniScope:让画面和声音各自打分,互不干涉
基于上面的发现,研究团队提出了一个叫**OmniScope**的压缩框架。
OmniScope:这篇论文提出的方法名,一个不需要额外训练的、把音频和视频压缩过程"解耦"(也就是分开处理)的token压缩框架,专门用于全模态大语言模型的推理加速
它的整体思路分三步走:先给音频和视频token各自打分(同一个问题,两套独立的打分系统),再根据打分结果分别压缩视频和音频。
**第一步,查询感知打分**
Query-Aware Scoring:根据用户提出的问题(query),分别计算视频每一帧、音频每一秒跟这个问题的相关程度,作为后续决定"留多少、留哪些"的依据
视觉这边,用CLIP来算每一帧画面跟问题的余弦相似度,这个打分过程完全独立于模型本身的视觉编码器,算是一个外部裁判。
音频这边,本来想用CLAP这种专门做音频-文字匹配的外部模型,但研究者发现CLAP这类模型的时间颗粒度太粗,通常是几秒甚至更长的片段才给一个分数,而OmniScope需要精确到每一秒甚至每个token的打分,CLAP用不上。
于是他们想了个更巧妙的办法:直接用模型自己的音频编码器输出。因为这些音频token经过投影层之后,本来就已经被映射到跟文字token同一个语义空间里了,可以直接拿来跟问题文本算相似度,不需要额外引入模型。这个做法还用到了一个小技巧,词向量的模长可以反映这个词携带的信息量,越是关键词(比如"足球""进球")模长通常越大,越是虚词("的""了")模长越小。研究者用这个模长做了个"门控信号",让打分更聚焦在真正有信息量的词上。
有意思的是,同样的思路理论上也能用在视觉侧,但作者在附录里做了对比实验,发现目前模型内部的"视觉-文字对齐"精度还不够,直接拿模型自己的视觉特征打分,效果比CLIP差了将近一个百分点(3B模型上平均掉了0.8-0.9分)。所以视觉这边还是老老实实用外部的CLIP。
打完分之后,还有一步很关键的操作,叫**时间衰减传播**。因为声音是有连续性的,一个高分秒数附近的秒数,往往也带着相关信息,不该被一刀切地忽略。所以研究者给邻近高分时刻的秒数也加了个"沾光"加成,越靠近高分点加成越大,距离越远衰减越快。
**第二步,视觉端的锚点-增量交替压缩**
打完分只是知道"哪里重要",接下来要决定"具体留哪些token"。这里研究者提出了**AD-STC**
AD-STC(Anchor-Delta Spatio-Temporal Compression,锚点-增量时空压缩):一种视频帧的压缩策略,把视频帧交替分成两种角色,"锚点帧"负责保留当前画面的核心信息,"增量帧"负责捕捉相对上一个锚点帧发生了什么变化
具体来说,偶数位置的帧当锚点帧,用一种叫DPC-KNN的密度聚类方法,找出画面里那些"跟周围最不像"的token留下来(因为跟周围太像说明信息冗余)。
奇数位置的帧当增量帧,负责捕捉"相对上一帧变了什么"。这里有个很聪明的自适应设计:当压缩不算太狠(预算比较宽松)的时候,同时看这个token在本帧内部是否可替代、在上一个锚点帧里是否也能找到替代品,两个条件都满足才判定为冗余删掉;但当压缩非常狠(预算极度紧张)的时候,就简化成只看"这个位置的画面变化程度",直接留下变化最大的那些token,避免预算太少的时候信息散得七零八落。
为什么要这么麻烦地区分"预算宽松"和"预算紧张"两种模式?
这就像你打包行李。如果箱子够大,你会既带几件应急的衣服,也带几件应急以外、显得体面的衣服,追求整体的覆盖面。可如果只给你一个随身小包,你就没工夫讲究"覆盖面"了,你只会往里塞最必需的东西,比如证件、手机、钱包,追求的是"信息密度"而不是"广度"。如果预算紧张的时候还硬要追求"既要空间上分散、又要时间上分散"的覆盖策略,结果往往是每样东西都塞了一点点,但每样都不够用,信息碎片化,反而什么都说不清楚。AD-STC正是意识到了这一点,才设计了这种随预算大小切换策略的机制。
**第三步,音频端的按秒合并**
音频这边的策略跟视频不太一样。研究者观察到,声音信号有个特性叫"短时平稳性"
短时平稳性:指声音信号在很短的时间片段内变化不大,相邻的音频片段往往高度相似,但又不完全一样,带着细微的差异
正因为相邻音频片段很像但又不完全一样,直接粗暴地删掉一些token会造成时间轴上没法弥补的信息断层。所以研究者没有选择"删",而是选择"合并"。
具体做法是用**二部图软匹配**
Bipartite Soft Matching(二部图软匹配):一种token合并技术,把一组token分成两拨(比如按奇偶位置分),计算两拨之间两两的相似度,把最相似的一对对token融合成一个,从而在减少数量的同时尽量保留原始信息
在每一秒钟的音频片段内独立进行,把token按奇偶分成两组,算相似度矩阵,相似度最高的那些配对直接做平均融合。如果一次合并还不够,就迭代着再来一轮。
这个思路可以理解为拼车。视频端的AD-STC像是删除不需要出行的车次(有些帧确实信息量太少,直接不要了),而音频端的做法更像是把两趟路线几乎一样的车合并成一趟,把两车乘客都装上,你没有减少任何一个乘客(信息),你只是把运力(token数量)优化了。如果两条相似的音频片段硬生生删掉一条,就等于把一部分乘客直接甩在了路边,这些信息就再也找不回来了。
实际效果如何
论文在四个音视频理解基准(WorldSense、DailyOmni、OmniVideoBench、Video-MME)和两个模型规模(Qwen2.5-Omni的7B和3B版本)上做了系统测试。
在45%保留率(也就是砍掉超过一半的token)的情况下,OmniScope的表现几乎与完全不压缩持平,7B模型上平均准确率反而比不压缩还高出0.3分。
真正拉开差距的是在25%保留率(只留四分之一token)这种极端压缩场景下。这时候7B模型上,OmniScope相比不压缩只掉了0.35分,而目前最先进的开源方案OmniZip掉了1.55分,随机压缩掉了1.57分。
| 方法 | 保留比例 | WorldSense | DailyOmni | OmniVideoBench | Video-MME | 平均分 |
| Full Tokens | 100% | 46.0 | 62.0 | 34.1 | 63.3 | 51.35 |
| Random | 25% | 44.9 | 56.9 | 34.9 | 62.4 | 49.78 |
| FastV (A&V) | 25% | 44.7 | 58.4 | 35.6 | 63.4 | 50.53 |
| OmniZip | 25% | 44.8 | 57.8 | 33.7 | 62.9 | 49.80 |
| **OmniScope** | 25% | **45.7** | **58.8** | **35.8** | **63.7** | **51.00** |
(表格数据取自Qwen2.5-Omni-7B部分,加粗为对应指标最优)
效率方面也很实在。7B模型在25%保留率下,预填充(prefill,也就是模型开始生成答案之前处理输入的阶段)速度提升到3.53倍,GPU显存节省超过15%。而且OmniScope的音频打分是直接复用模型推理过程中本来就会产生的中间结果,不需要额外提取完整的注意力矩阵,这一点比OmniZip更省资源。OmniZip需要提取音频编码器的完整注意力矩阵来判断重要性,这个开销会随着音频长度呈平方级增长,在长视频场景下会越来越吃紧。
不过OmniScope也不是没有代价,因为多了一次CLIP打分,端到端延迟(从输入到生成完答案的总时间)在45%保留率下略高于FastV和OmniZip。但研究者算过一笔账:CLIP这部分开销是"一次性"的,随着生成文字变长,这部分占比会被摊薄,从生成1个token时占13%左右,降到生成100个token时只占7%左右。对于像视频字幕生成这种需要长输出的任务,这个固定成本会被进一步稀释,压缩带来的预填充加速和显存节省会越来越占主导。
消融实验:每个设计选择都有必要吗
研究者还做了一系列拆解实验,验证每个组件是不是真的有用。
关于查询引导打分,如果让视频和音频都用统一比例压缩(不做差异化分配),平均掉1.65分;如果只让其中一个模态做统一比例压缩,另一个模态动态分配,也会掉0.35到1.55分不等。更有意思的是,即便是让一个模态的重要性分数去"引导"另一个模态(哪怕引导方向和OmniZip不一样),照样比完全独立打分要差,这进一步证明了论文最核心的观点:一个模态的重要性分数,确实没法可靠地代表另一个模态的重要性。
关于视觉压缩策略,如果全部用锚点帧策略或者全部用增量帧策略,都会掉1.1到1.65分。这说明同时兼顾"空间上的核心信息"和"时间上的变化信息"确实是必要的,任何一个单独拿出来都不够。
关于音频压缩策略,直接丢弃token(随机丢弃或者按"能量"丢弃)效果最差,能量筛选法甚至掉了2.75分,原因是音频里的"能量大小"反映的是响度而不是语义重要性,用响度去判断"这段声音重不重要"本身就是个错误的假设。相比之下,均匀采样和平均池化虽然保留了时间结构,但没有充分利用被压缩掉的token所携带的信息。而OmniScope的合并策略把相似token融合而不是直接扔掉,效果最好。
这几组消融实验合在一起讲的是同一件事:这套方法里的每一个设计都不是随手加的装饰,拿掉任何一块,整体表现都会打折扣。
写在后面
读完这篇论文,让我印象最深的不是那个3.53倍的加速数字,而是那张注意力可视化图揭示的现象:压缩本身会激发模型去做更远距离的信息关联,这是一个副作用,但这个副作用既能被善用,也能被滥用。同样是压缩,用对了方法,模型会把新激发出来的注意力投向真正重要的线索;用错了方法,同样的机制反而会把注意力导向被误留下来的次要信息。这说明"压缩"这件事本身没有绝对的好坏,好坏取决于你怎么决定该留下什么。
另一个让我重新想了想的地方是78.3%这个数字。这个统计不是为了佐证"多模态很复杂"这种正确的废话,它其实在暗示一件更实际的事:如果你正在设计任何一个需要同时处理多种信息源的系统,不管是视频加音频,还是文本加图表,默认假设"一种信息的重点等于另一种信息的重点",大概率是错的,这个错误假设可能已经悄悄写进了很多系统的设计里,只是没人去测过这个相关系数。
论文里还有个细节值得单独说一句:作者试过让模型自己的视觉特征来打分(不借助外部CLIP),发现3B模型上效果比7B模型上更差。这暗示了一件事,模型内部"视觉和文字对齐得好不好"这件事本身是分模型规模的,规模越小,内部对齐可能越粗糙,这也许是以后调小模型时需要单独关注的一个盲点。
Q&A
Q1:OmniScope是什么?
A:OmniScope是一种针对全模态大语言模型(同时处理视频和音频的AI模型)的训练无关的token压缩方法,核心思路是让画面和声音各自独立判断重要性,而不是让一个模态指挥另一个模态该保留什么。
Q2:OmniScope和OmniZip有什么区别?
A:OmniZip是用音频重要性去引导视频token的保留策略,属于单向跨模态引导;而OmniScope让音频和视频各自独立根据问题打分、独立分配压缩预算,实验证明在高压缩比例下OmniScope的准确率下降幅度明显更小。
Q3:为什么视频和音频的重要时刻经常对不上?
A:论文分析了1197对问题-视频样本发现,78.3%的样本中视觉重要性和音频重要性之间只有很弱的相关性,这说明同一个问题下,画面的关键时刻和声音的关键时刻经常是错开的,比如裁判吹哨和打手势判罚就发生在不同时间点。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.