简介:视觉语言模型处理长视频时,视觉token随帧数线性膨胀,自注意力的计算量呈平方增长,显存与延迟迅速成为瓶颈。本文对比两类主流应对思路:基于帧间差异打分的通用token压缩方案(方案A)与按“事件”组织历史记忆的取舍方案(方案B),从记忆组织粒度、重要性判断、去重逻辑、实现开销与适用场景等维度系统分析差异,并给出直播、监控、离线分析等场景的选型建议与迁移注意事项。
要理解这两类方案的差异,先要理解它们共同面对的问题。
视觉语言模型(VLM,Vision-Language Model)是能同时理解图像/视频与文字、并用自然语言回答问题的多模态模型。它“看”视频的方式,是把每一帧画面切成几十到几百个视觉token——即把图片拆分成若干小块,每块编码成一串向量,作为机器“看”世界的最小单位。
问题出在规模上:视频每多一帧,token就多几十上百个,十分钟的视频可能产生数万个token。而Transformer的自注意力机制要求每个token都去“关注”其他所有token,计算量与显存占用随token数量呈平方增长,而非线性增长。相关研究的实验显示,某主流开源多模态模型处理256帧长视频时显存已接近39 GiB,帧数翻倍后直接因显存不足(OOM)而失败。
直播类场景更棘手:流的时长不可预知,问题随时可能到达,模型无法提前规划“存多少记忆才够用”。
为缓解这一问题,业界普遍采用“压缩”思路——从海量视觉token中挑出重要的、丢弃不重要的,且多数方案不改动模型权重,属于training-free路线。这条路线内部又分化出两种代表性取向:
本文围绕这两类方案展开系统对比。
两类方案在目标与底层逻辑上高度一致:
差异主要体现在“记忆如何被组织”与“重要性如何被判断”这两个根本问题上。
方案A逐帧独立打分,保留下来的是零散的token片段。同一个正在发展中的事件,可能被切成好几段不连续的记忆,破坏了时间上的连贯性。方案B先按语义把历史内容分段组织成事件,再做取舍,记忆自带结构,能支撑跨时间段的长程推理。
方案A衡量“新鲜度”的标准较粗糙,通常只与上一帧或一个笼统的全局平均印象比较。方案B则在事件上下文内判断:当前内容是否推动了事件发展、是否提供了事件之外的新信息,判断依据更贴近语义层面。
这是方案A最典型的短板:两个长得很像但发生在完全不同时间的场景(例如每天固定时段出现的相似画面),容易被误判为重复信息而遭到合并或丢弃。方案B结合时间与事件归属做去重,能够把“相似但属于不同事件”的内容区分开,也能把“同一事件的连续画面”正确归并。
方案A实现简单,在推理流程中插入打分模块即可,额外计算开销极小,接入成本最低。方案B需要维护事件索引、在线分段与检索逻辑,工程复杂度和额外存储开销为中等水平,换来的是更强的长程一致性。
方案A适合冗余高、对时间推理要求不高的视频;一旦问题涉及“事件先后”“跨小时对比”,零散记忆容易导致答错。方案B依赖事件切分的质量,切分错误会向下游传导;在短视频等简单场景中,其收益不如方案A直接。
| 对比维度 | 方案A:通用打分压缩 | 方案B:事件记忆型取舍 |
|---|---|---|
| 记忆组织 | token/帧级零散保留 | 按语义事件分段组织 |
| 重要性判断 | 与相邻帧或全局平均的差异 | 事件内演化+跨事件比较 |
| 去重方式 | 外观相似即判重,易误删 | 时间与事件上下文感知 |
| 实现复杂度 | 低 | 中 |
| 接入改造成本 | 低 | 中 |
| 额外资源开销 | 极小 | 中等(索引与检索) |
| 长程一致性 | 较弱 | 较强 |
| 典型场景 | 离线摘要、中等长度视频 | 直播、超长视频、持续监控 |
# 方案A:帧间差异打分(示意)memory, prev_tokens = [], Nonefor frame in video_stream:tokens = encode(frame)score = distance(tokens, prev_tokens) if prev_tokens else ones(tokens)memory = merge(memory, top_k(tokens, score, token_budget)) # 预算内保留高分tokenprev_tokens = tokens# 方案B:事件组织记忆(示意)event_index = EventIndex()for frame in video_stream:tokens = encode(frame)event = event_index.match_or_create(tokens) # 命中既有事件或开启新事件event.update_or_compress(tokens) # 事件内判断新信息或合并冗余memory = event_index.select(query_time_window) # 按事件粒度取舍供推理
两类方案的分野,本质在于“记忆如何被组织”:方案A是信号层面的省内存,用局部差异决定谁留下;方案B是语义层面的做取舍,用事件结构决定记什么。选择的关键不在于“谁绝对更好”,而在于视频时长、事件结构复杂度、是否需要时间推理以及工程预算。对多数团队而言,从方案A起步、在长程一致性成为瓶颈时引入事件记忆,是一条务实的演进路径。