你有没有想过,为什么手机上的视频AI助手总是卡顿,或者干脆不支持太长的视频?
答案很简单,也很扎心:视频太贵了。
不是钱包意义上的贵,是计算意义上的贵。一段一分钟的视频,按每秒抽一帧算,也有60张图。每张图如果切成小方块喂给AI,可能又产生上百个"视觉词"。60帧乘以上百个词,轻轻松松就是几千甚至上万个token要塞进语言模型里处理。
**token**:可以理解成AI处理信息的最小单位,一段文字、一张图的一个小方块,都可以被切成若干个token,AI是按token数量来计算成本和时间的
而语言模型这东西,处理token的代价不是线性增长的,是接近平方增长的。token数翻倍,计算量可能翻好几倍。这就是为什么视频理解AI又慢又贵又费显存,长视频、实时视频、手机端视频理解,一直是这个领域公认的硬骨头。
最近有三位研究者,Killian Steunou、Yannis Tevissen和Mounim El Yacoubi,把这几年所有想给视频AI"省钱"的招数,系统性地梳理了一遍。他们不是提出了什么新方法,而是做了一件更累但也更重要的事:把散落在一百多篇论文里的"省钱妙招",按照它们在处理流程里起作用的位置,分门别类地摆出来,再告诉你哪些比较之间是可信的,哪些只是"自吹自擂"。
这篇文章就带你逛一逛这份"省钱指南"。
视频AI到底在哪里烧钱
要搞清楚怎么省钱,先要搞清楚钱花在哪儿了。
一个典型的视频大语言模型,干活的流程可以拆成四步。第一步,决定看哪些帧、看多大的分辨率,这叫输入构建。第二步,用一个视觉编码器把这些帧变成AI能懂的数字表示,这叫编码。第三步,把编码结果压缩、投影,塞进语言模型能接受的格式,这叫连接器阶段。第四步,语言模型拿着这些视觉信息加上你的文字提问,生成回答。
**视频大语言模型**:也叫VideoLLM,就是把视频编码器和文字语言模型拼在一起的系统,你给它一段视频加一句话,它能回答问题、写字幕、定位时间点
这四步里,每一步都可能是瓶颈。帧数越多,编码器要处理的东西越多。分辨率越高,每帧切出来的视觉词越多。连接器压缩得越狠,语言模型要处理的token越少,但也可能丢信息。语言模型内部,token数量直接决定了它算注意力的开销,还决定了它要在显存里存多少"记忆",专业说法叫KV缓存。
**KV缓存**:语言模型在处理每个token时,会算出一对叫Key和Value的数字,存起来供后面生成时复用,这个存储区就是KV缓存,视频token一多,这块显存占用就爆炸式增长
如果把这套系统比作一家餐厅,输入构建就是决定今天进货多少食材,编码器是后厨处理食材的效率,连接器是厨师把菜装盘时要不要精简摆盘,语言模型则是服务员端菜给客人还要一边记住每桌点了什么。任何一环出问题,整个餐厅的翻台率都会掉下来。如果后厨每次都把所有食材原样处理不做任何预处理,哪怕客人只点了一道菜,厨房也要把冰箱里所有东西都摆出来看一遍,那效率可想而知。
这篇综述做的事,就是把这家"餐厅"从进货到出餐的每个环节,都拎出来看看别人是怎么省成本的。
第一步省钱术:别把每帧都看一遍
视频里最大的浪费,往往发生在你根本没意识到的地方:很多帧其实长得差不多。
一段会议录像,可能连续几十秒画面几乎不变,你却要AI把每一帧都当新内容处理一遍。这就好比你在看一本书,明明很多页内容重复,你却坚持每一页都从头精读,而不是先翻一遍找出关键章节。
于是,"选帧"就成了最直接的省钱思路。最简单的办法是均匀采样,比如一分钟视频里,每隔一秒抽一帧,叫做Temporal Segment Networks,简称TSN,这是2016年就有的老办法,把视频切成几段,每段随机抽一小段代表全局。这个思路虽然简单,却出乎意料地耐用,后续很多方法还是拿它当基准线对比。
但均匀采样有个问题,它不知道内容重要不重要。于是后来的研究开始琢磨"内容自适应"选帧,比如利用动作显著性来决定哪帧更值得看,这类方法典型的有MGSampler。
再往后,研究者发现,光看视频内容还不够,还得看你问的是什么问题。这类"看问题挑帧"的方法叫查询感知选帧,代表方法AKS会综合考虑帧和问题文字的相关性,同时保证选出来的帧覆盖整个时间轴,不会全挑一个时间段的画面。
**查询感知选帧**:根据用户提出的具体问题,动态判断哪些视频帧和这个问题最相关,再挑选相关帧送进AI处理,而不是不管问题是什么都用同一套挑选逻辑
这里有个特别有意思的例子叫T*,它把"找关键帧"这个问题,从时间维度的搜索,变成了空间维度的物体搜索。论文报告说,用它精心挑出来的8帧,效果反而超过了均匀采样的32帧。这就像找钥匙,不是把整个房子翻一遍,而是先想清楚钥匙最可能出现在哪几个具体的位置,直奔那几个地方找,反而比盲目地把每个房间都搜一遍更快找到。
不过这类查询感知方法也有代价:你得先用一个小模型给每一帧打分,这个打分过程本身也要花计算。综述里特别强调,像ReFoCUS这样的方法,它的选帧策略光是打分环节,处理512帧输入就要花428万亿次浮点运算、9秒钟、5.3GB显存。如果选出来的帧带来的准确率提升,还抵不上这套打分系统本身的开销,那这笔"省钱账"其实是打平甚至倒贴的。
综述里给出了一份在同一个模型LLaVA-Video-7B上、64帧预算下的横向对比表。均匀采样在LongVideoBench基准上是58.9分,而几种查询感知方法能做到62到64分左右,其中TSPO这个方法只用了350万参数的小型选帧器,就拿到63.9分,是这批方法里表现最好的。但同一批方法放到另一个基准Video-MME上,优势基本就消失了,不同基准考验的能力不一样,选帧策略的收益也会跟着变化。
第二步省钱术:编码器本身也要减肥
选完了看哪些帧,接下来是怎么"看"这些帧。这一步的主角是视觉编码器,负责把图像变成AI能理解的数字。
早期的视频编码器,比如TSM,想出了一个几乎不花钱的办法:在卷积网络的通道之间做一个"移位"操作,不增加任何参数、不增加任何计算量,却能让网络捕捉到时间上的变化信息。这个设计聪明在哪里?普通的卷积网络看单张图没问题,但看不出动作,因为它压根不知道"前一帧"和"这一帧"的关系。TSM的移位操作相当于让网络在处理这一帧时,顺手瞟一眼相邻帧的部分信息,不用额外算力,只是重新排列了一下已有的数据。这就像你翻相册时,如果把某几张照片的边角故意错开一点点摆放,眼睛扫过去时反而更容易注意到照片之间的变化,而这个"错开摆放"本身不需要你多花一分钱。
还有一类方法走向了完全不同的技术路线:状态空间模型,代表是VideoMamba。传统的Transformer架构里,自注意力机制的计算量是随token数量平方增长的,而状态空间模型用线性时间就能处理序列,论文报告VideoMamba比TimeSformer吞吐量高6倍,显存占用低40倍。
**状态空间模型**:一种处理序列数据的数学模型,不需要像Transformer那样让每个位置都和其他所有位置计算关联,而是用一种递推的方式逐步传递信息,计算量随序列长度线性增长而不是平方增长
编码器省钱的另一条路是"瘦身",比如MobileCLIP系列,专门为手机等移动设备设计,主打的就是又快又小。而FastVLM则用了一种混合卷积加Transformer的编码器架构,大幅降低视觉token数量,论文报告它生成第一个输出token的速度,比同类小模型快85倍。
综述里做了一张图,把各种编码器架构的Kinetics-400动作识别准确率和计算量画在一起对比。结果显示,状态空间模型虽然效率不错,但截至目前没有一个能在同等计算量下超过表现最好的Transformer架构。这提醒我们,省钱的路子很多,但不是每条路都能兼顾效率和效果,选哪条路,得看你更在乎什么。
第三步省钱术:把编码结果"压瘦"再喂给语言模型
编码器处理完之后,得到的是一大堆视觉token,这些token要送进语言模型才能生成回答。但语言模型处理token的代价很高,所以这一步,很多研究都在琢磨怎么把这堆token"压缩"得更小,同时尽量不丢信息。
最直接的思路是"合并相似的token"。如果两帧画面几乎一样,那它们编码出来的token很可能也高度相似,完全可以合并成一个,不用重复存两份。这类方法里比较有代表性的是VisionZip,论文报告只保留6.6%的token,就能让语言模型的预填充速度提升7.8倍。
**预填充**:语言模型在生成回答之前,要先把所有输入内容(包括视觉token和文字提示)完整地过一遍,这个过程叫预填充,是生成第一个字之前必须完成的计算,输入越长这一步越慢
还有一类方法,思路是"分配预算"。比如DyToK,它不是对所有帧一视同仁地压缩,而是先让一个辅助模型看一眼问题,判断每一帧对回答这个问题的重要程度,再决定给每帧分配多少token预算。这就像你打包行李,如果知道接下来十天有五天要爬山、五天要开会,你肯定不会把每天的行李箱塞得一样满,爬山的日子要留更多空间装运动装备,开会的日子可以轻装上阵。如果不做这种区分,平均分配预算,结果就是重要的帧token不够用、次要的帧又浪费空间。
音频也能帮上忙。OmniZip这个方法利用音频信号来指导视觉token的压缩,判断哪些视频片段配合着重要的声音信息,值得保留更多视觉细节。论文在Qwen2.5-Omni-7B模型上测试,只保留35%的token,却实现了3.42倍的速度提升。这说明,视频理解本来就是多模态的事,声音和画面互相印证,能帮AI更聪明地决定该省哪里的钱。
综述特别提到一个细节值得警惕:很多论文报告的压缩效果,是在不同的模型、不同的基准、不同的测试协议下测出来的,直接横向比较容易产生误导。好在HoliTom这篇论文做了一个相对公平的对照实验,在同一个LLaVA-OneVision-7B模型上,用同样的32帧输入,把好几种训练无关的压缩方法拉到一起比较。结果是,在保留25%token的预算下,大多数方法的平均准确率都能保持在基线的98%以上,但DyCoke这个结合了预压缩和解码阶段管理的方法却掉到了92.6%,足足差了7个百分点。而当预算收紧到只保留10%的token时,差距进一步拉大,能显式建模时间上冗余信息的方法比如PruneVid和HoliTom,表现明显优于只考虑空间信息的VisionZip。这说明省钱这件事,预算越紧,方法设计得聪不聪明就越重要,预算宽松时大家表现都还凑合,一旦预算收紧,差距立刻暴露出来。
第四步省钱术:语言模型内部的斤斤计较
最后一步,视觉token已经进了语言模型,接下来还能怎么省?
答案是:语言模型内部的每一层,也不是所有token都同等重要。FastV这篇论文发现一个有意思的现象:视觉token在语言模型比较深的层里,受到的关注度会明显下降。既然深层网络已经不太关心这些视觉细节了,那干脆在早期某一层之后,直接把关注度最低的一半视觉token砍掉,论文报告这样能让预填充计算量减少将近一半。
这个发现挺反直觉的。你可能会以为,视觉信息一旦进入语言模型,就应该被"平等对待"、层层传递下去。但实际情况更像是,语言模型在浅层先做粗筛,把画面大致的信息提炼出来,提炼完之后,深层网络更多是在琢磨语言逻辑和推理,原始的视觉细节反而没那么重要了。这就好比你读一份长报告,前几页你会逐字逐句仔细看,抓住核心论点之后,后面几十页里那些支撑性的图表数据,你可能只是扫一眼标题就翻过去了,因为核心信息你已经在前面拿到了,后面反复呈现同样的细节对你的理解帮助有限。
还有一类方法专门针对KV缓存做手术,叫KV缓存压缩。因为语言模型在生成回答的过程中,要一直存着之前算过的Key和Value,视频token一多,这个缓存占用的显存就非常吓人。VidKV这篇论文提出用极低精度来存储这些缓存,大约1.5位存Key、1.58位存Value,论文发现视频模型和纯文本模型不太一样,视频的Value缓存用"按通道量化"效果比"按token量化"更好,几乎没有性能损失。
**量化**:把原本用较多位数存储的数字,压缩成用更少位数近似表示,比如原来用16位浮点数存一个数,现在用不到2位就能大致表示,牺牲一点精度换来存储空间的大幅减少
对于需要长时间连续处理视频流的场景,比如实时监控或长会议记录,还有一类"离线存档、按需检索"的方法。ReKV就是把历史的KV缓存搬到CPU内存甚至硬盘上存着,等真正要回答问题的时候,再去检索出跟问题相关的那部分缓存拿回来用。这就像你不可能把过去十年所有的聊天记录都摆在手机屏幕上随时刷,而是把它们存进云端,需要查某段对话时再去搜索,搜到了再加载出来。综述里的对比数据显示,ReKV在保持流式问答准确率方面表现最好,但代价是显存占用几乎没降下来,反而是InfiniPot-V这类直接设定硬性缓存上限、超了就淘汰旧数据的方法,虽然准确率牺牲了大约6个百分点,但显存能稳定控制在一个更低的水平。这暴露出一个明显的取舍:要效果好,就得多存东西、多花显存;要显存小,就得舍弃一些历史信息的完整性,这两者目前很难兼得。
省钱招数拼在一起,到底省了多少
看完这四个阶段各自的省钱招数,你可能会好奇,把它们叠在一起用,效果是不是能叠加?
综述给出的答案有点微妙:不一定。
很多2025到2026年最新的方法,已经不满足于只在一个阶段动手,而是同时在多个阶段下功夫。比如MeToM这个方法,既在编码器输入阶段合并冗余的图像块,又在语言模型内部继续合并token,论文报告综合起来能实现2.65倍的首字生成速度提升。但综述特别提醒,这种跨阶段联合优化的方法,它们报告的总体加速效果,通常没办法说清楚具体是哪个阶段贡献了多少,只有HoliTom这篇论文认真做了拆解实验,把各阶段的贡献分开测量。这就好比一个团队拿了个大奖,你只知道团队整体表现出色,但具体是谁的贡献占大头,如果没人做过细致的复盘分析,外人是猜不出来的。
综述作者还观察到一个有意思的现象:一旦你在语言模型这一端把token压缩得足够狠,省下来的计算预算,很多方法选择拿去处理更多帧,而不是简单地追求更快的速度。比如EchoPrune这个方法,靠着大幅压缩每帧的token数量,反而能在同样的计算预算下多处理20倍的帧数。这说明"省钱"这件事的终点,不一定是让AI跑得更快,也可能是让AI能"看"得更多更细,把省下来的算力重新投资到理解能力上。
写在后面
读完这篇综述,最让我有感触的一点,是它花了很大篇幅提醒读者:不要轻信论文里那些漂亮的百分比。
不同论文测试用的模型不一样、输入的帧数不一样、评测的基准也不一样,同样写着"压缩到10%的token、准确率几乎不掉",背后的测试条件可能天差地别。综述作者专门挑出那些在同一个模型、同一套测试协议下做过对照实验的少数论文,单独列出来做真正意义上的横向对比,这种谨慎的态度,在一个人人都想抢发论文、抢占叙事的领域里,其实是挺难得的。
还有一个细节我印象很深:综述提到,几乎所有效率优化论文的评测,都集中在选择题式的问答任务上,而字幕生成、检索、时间定位这些任务几乎没有人拿来验证。选择题这种任务,AI可能只需要抓住画面里的粗略线索就能蒙对答案,但要写一段准确的字幕描述,或者精确指出某个动作发生在视频的第几秒,需要的细节远比选择题苛刻得多。也就是说,现在很多"几乎不掉分"的压缩方法,可能只是在一种相对容易的任务上表现良好,换到更精细的任务上会不会一样稳,目前还是个问号。
这让我想到一个更大的问题:我们现在对"效率"的衡量标准,是不是本身就有偏差?如果整个领域都在用同一种相对宽松的尺子去量,那测出来的"进步",到底有多少是真实的进步,又有多少只是大家不约而同地选择了容易通过的考题?
Q&A
Q1:视频大语言模型为什么处理成本这么高?
A:因为视频需要抽取大量帧,每帧又要切成很多视觉token,这些token数量一多,语言模型内部的计算量会接近平方级增长,同时还要占用大量显存存储KV缓存,导致速度慢、成本高、难以处理长视频。
Q2:视频AI省钱的方法主要分哪几类?
A:综述把方法分成四个阶段:选择要处理哪些帧和分辨率、优化视觉编码器本身的效率、压缩编码后送入语言模型的token数量、以及在语言模型内部对token和KV缓存做精简管理,每个阶段都有对应的省钱技巧。
Q3:不同论文报告的压缩效果能直接比较吗?
A:不能直接比较。因为不同论文用的模型、帧数、评测基准往往不一样,直接横向对比容易产生误导,只有在同一个模型和测试协议下做的对照实验才具有真正的参考价值,综述特别整理了这类可信的对比结果。