这是「流式视频理解 VLM 精读」系列第 2 篇。上一篇讲"何时开口",这篇讲**"开口时还记得什么"**——视频是无限流,但模型的注意力窗口和显存是有限的,怎么做到"几个小时后还记得之前发生的事"?
记忆问题的本质
看过几小时球赛,人记得"上半场有个越位没吹"。但 VLM 做不到直接原因有两个硬约束:
- KV-cache 是有限、且线性增长的——视频 token 持续进来,显存迟早爆掉,上下文窗口也装不下;
- 注意力在长序列上不收敛——窗口外的旧信息,模型注意力会"漂移"遗忘。
所以"长时记忆"本质是:在固定的显存/上下文预算内,最大化地保留对后续回答有用的历史信息。本仓库把它拆成了 9 条技术路线。
路线一:层级多级记忆(Hierarchical Multi-level Memory)—— 最主流
思路:模仿人类记忆,把记忆分成**短期(刚发生的、细节完整)、中期、长期(很久前、语义概括)**三级,各有策略。
- VideoLLaMB(2024.09):循环记忆桥(Recurrent Memory Bridge)——用自注意力的递归更新 + 检索注意力,把长期信息折叠进固定记忆,配合 SceneTiling 场景分割,实现线性记忆缩放(记忆开销不随视频长度爆炸)。
- StreamChat(2025.01):短时用艾宾浩斯遗忘曲线、长时用树状聚类、还挂了 FAISS 对话记忆,并把"被遗忘概率高的帧"优先抽样掉——直接把认知科学搬进模型。
- FreshMem(2026.02):脑启发的频域混合记忆——短时滑窗 + 多尺度频域记忆 + 空间缩略图记忆。
- FluxMem(2026.03):三级层次记忆(短/中/长期)+ 时间邻接选择 + 空间域整合。
- StreamFlow(2026.08):动态感知的中期记忆,编码前先做冗余过滤,加固定容量的潜在长期记忆。
- Harnessing Streaming Video in the Wild(2026.06):明确分了短/中/长期三级,支撑长达 12 小时的上下文。
- 相关的如 StreamOV(证据引导长短记忆)、CurveStream(曲率感知分层记忆)、Scaling via Visual Memory / FlexMem(双路径压缩+视觉KV记忆库)。
优点:结构清晰、符合认知直觉、多数方案无需改模型前向(工程友好)。 缺点:层级划分及其"升级/降级"策略需要精细设计;仍可能有信息丢失或在层级间"漏掉"关键细节。
路线二:滑窗 / 驱逐(Sliding-window / Eviction)
思路:最朴素的策略——维护一个定长的最近帧窗口,旧帧直接丢弃,不做额外记忆。多用于"只需关注近期上下文"的场景。
- SimpleStream(EvolvingLMMs-Lab,2026.04):固定最近帧滑窗,旧帧直接驱逐、不加外部记忆——居然能追上不少复杂方案,说明"少即是多"。
- AURA(2026.04):双滑窗(最近视频 + QA 历史),窗口外的视频块和
<|silent|>直接丢弃。 - Proact-VL(Microsoft,2026.03):双缓存滑窗,用逆向 RoPE 驱逐实现"无限流式",并且驱逐不影响已算过的位置编码——这是工程上很精妙的一招。
- STRIDE(2026.03):有界视觉缓存驱逐 + 滑窗帧保留。
优点:实现极简、显存恒定、开销最低。 缺点:会忘记窗口外的所有内容,不适合"需要长期上下文回答问题"的任务。
路线三:Token 压缩 / 剪枝(Token Compression / Pruning)
思路:不是只留"最近",而是把视觉 token 压缩成更精炼的表示,从而能装进更多历史。
- TimeChat-Online(2025.04):标题就是它的发现——"80% 的视觉 token 在流式视频里天然冗余"。用 Differential Token Drop 做主路线,FIFO 精简 token 记忆库做补充,只保留信息量大的 token。
- VideoScan(2025.03):每帧只留一个语义载体 token(平均池化 + 复用 KV + 余弦相似度动态驱逐),极大降本。
- CausalMem(2026.06):免训练、固定预算的记忆库,用在线语义基做因果视觉 token 选择。
- StreamBridge(Apple,2025.05):生产者-消费者缓冲 + 条件式轮次衰减压缩(更重视近帧)。
- Efficient Framework with Agentic Control(2026.05):主动遗忘——高保真保留近期 token、激进压缩历史 token。
优点:不丢"量"(历史都在,只是更紧),通用性强。 缺点:压缩会引入失真,需要设计好"哪些信息值得保留"的准则。
路线四:KV-Cache 压缩 / 检索 / 复用(Getter 一族的核心)
思路:直接对 KV-cache 本身动刀——压缩、按需检索、或复用历史缓存,是当前最热、也最贴近工程落地的方向。
- StreamingVLM(MIT,2025.10):有界 KV-cache 驱逐保证恒定显存,且跨窗口不重复计算——无限视频理解的工程基准。
- StreamKV(2025.11):余弦相似度做动态语义分段,做 summary-vector 代表键检索 + 引导 prompt 驱动的压缩。
- HERMES(2026.01):把 KV-cache 当层级记忆(感官-工作-长期),配指数遗忘曲线和帧级锚定 token,跨层平滑 + 位置重索引。
- MuKV(2026.05):多粒度压缩(patch/帧/段三级)+ 半分层检索。
- CoRDS(2026.05):免训练核心集选择,兼顾 K/V 覆盖、多样性与时效性保护。
- DSCache(2026.05):解耦式流式缓存——累积过去 KV + 按需即时缓存,用位置无关编码支持无限流。
- MemStream(2026.02):自适应键选择 + 训练无关的检索 MoE(reciprocal rank fusion 融合内外信号)。
- V-Rex(2025.12):软硬件协同设计——动态 KV 检索加速器,把预测-检索与 LLM 计算流水化。
- 以及 LiveStar、StreamingTOM、StreamMem、InfiniPot-V、LiveVLM、ReKV、Flash-VStream、CacheFlow、CogStream 等。
优点:直击性能瓶颈,常与推理加速配合,收益直观。 缺点:存取策略复杂,检索不准则丢关键历史,位置编码处理是难点。
路线五:检索增强记忆(Retrieval-augmented Memory)
思路:平时不常驻,回答时才按需检索历史。
- SelectStream(2026.06):惊喜驱动写入 + 优先保留的潜在记忆图 + 查询条件图检索。
- OASIS(2026.04):按需层级事件记忆,用不确定性触发受控细化——不确定时才去翻历史。
- WeaveTime(2026.02):不确定性门控的层级检索,熵阈值触发访问过去上下文。
- PEARL(2026.03):双粒度记忆(流式+概念),查询改写做个性化解耦。
- Vista(2026.02):场景感知分割 + CPU 卸载全帧 + 查询条件 top-k 召回。
优点:显存占用小(不常驻),只花必要时间检索。 缺点:检索质量决定上限,OCR/细粒度视觉细节检索难。
路线六:语义 / 文本抽象(Semantic/Textual Abstraction)
思路:把视频"翻译"成文本或轻量语义摘要存起来,大幅降低记忆成本。
- Thinking in Streaming Video / ThinkStream(2026.03):推理压缩的流式记忆——短时视觉滑窗 + 把推理 token 当长期语义锚点。
- VST(2026.03):短时视觉 + 长时"流式思考"文本记忆(FIFO 驱逐)+ 递归时序分割。
- StreamMeCo(2026.04):连通性感知压缩文本/人脸/语音记忆图节点 + 时间衰减检索。
- FOLIO(2026.07):免训练的聚焦语义记忆;Click-to-Ask(2026.03)直播助手把事件级历史字幕当记忆。
- ProVideLLM(2025.04):在线口头化——把视觉 token 转成文字摘要桥接长/短期。
优点:记忆占用极小,可读可扩展,适合"要回答语义问题"。 缺点:会丢视觉细节(颜色、运动、空间关系),不适合精细任务。
路线七:事件中心结构化记忆(Event-centric Structured Memory)
思路:以**"事件"为记忆单元**——先分割事件,再把每个事件作为一个可检索的记忆项,适合长叙事/监控/导航。
- EventMemAgent(2026.02):双层事件记忆——短时在线事件分割 + 长时结构化事件元组(STuple)。
- StreamForest(MCG-NJU,2025.09):事件树,相似度+合并次数+时间惩罚自适应合并。
- VideoScaffold(2025.12):预测引导的弹性事件分割 + 分层跨注意力事件整合。
- ObjectStream(2026.07):潜在物体锚点——跨帧关联、持续 track、保留状态变化,物体视角的事件。
- StreamArena(2026.08):层级事件记忆 + 实体关系图 + 关键帧,异步写入。
- 还有 Event-VStream、OASIS(同上也归此类)等。
优点:符合人类对"发生了什么"的认知,长叙事任务表现好。 缺点:事件分割标准需与任务对齐,"什么是事件"本身含糊。 仅次于 Route 三,这一面向 Agent/具身的记忆最有潜力。
路线八:空间 / 3D 记忆(Spatial / 3D Memory)
- OnlineSI(2026.01):固定大小的空间记忆 + 时间自适应采样,显式维护点云 + 语义记忆,用于在线 3D 理解与 grounding。
优点:为具身/导航保留空间结构。缺点:应用面窄、存储开销大。
路线九:参数化 / 快权重记忆(Parametric / Fast-weight Memory)
思路:最"革命"的一种——不用 KV-cache,把记忆写进模型权重。
- video-SALMONN S(ByteDance,2025.10):测试时训练(Test-Time Training, TTT)的快速权重 MLP 当流式记忆,配双目标(重建 + 长跨度预测)+ 余弦相似度丢弃 token。
- StreamTTT(2026.08):并行门控 TTT 快权重记忆,把长距离历史放在短滑窗注意力之外,实现在无限流中"又实时又能记"。
优点:突破 KV-cache 花销,真正做到"线性记忆、跨窗口不失忆";未来潜力大。 缺点:TTT 推理成本高、训练复杂、生态不成熟,目前偏研究前沿。
九条路线如何组合?(工程视角)
| 路线 | 记忆形态 | 显存开销 | 工程难度 | 适合 |
|---|---|---|---|---|
| 层级多级 | 多级分层 | 中 | 中 | 大多数长视频任务(主流首选,如 Harnessing、FluxMem) |
| 滑窗驱逐 | 最近帧 | 恒定极低 | 极低 | 只需近期上下文、简单场景(SimpleStream) |
| token压缩 | 压缩token | 低-中 | 中 | 追求信息密度(TimeChat-Online) |
| KV-cache | 缓存操作 | 恒定 | 中-高 | 工程落地首选(StreamingVLM、HERMES、StreamKV) |
| 检索增强 | 按需检索 | 低 | 中 | 长程需精确回忆(OASIS、SelectStream) |
| 语义抽象 | 文本语义 | 极低 | 低 | 语义问答(FOLIO、VST) |
| 事件中心 | 事件单元 | 中 | 中-高 | 叙事/监控/具身(EventMemAgent、StreamForest) |
| 空间3D | 点云语义 | 高 | 高 | 具身导航(OnlineSI) |
| 参数化TTT | 快权重 | 恒定 | 高 | 研究前沿、长程实时(StreamTTT) |
组合建议:工程上常 滑窗/驱逐做基底 + KV-cache 回收做长时 + 检索/语义做按需(如 LiveStar、Flash-VStream 都是典型组合);想做极限长程实时,看 TTT。
待办 / 观察
- "层级多级"与"KV-cache"正在融合(HERMES 把 KV 当记忆),未来边界会 blur。
- 记忆与"主动交互"强耦合:记忆决定"能不能答",主动交互决定"答不答"——两者要一起设计。
- 免训练(training-free)记忆方案(CoRDS、SelectStream、FOLIO、savemem)崛起值得关注,能直接复用到任意模型。
资源索引(Paper / Code / Demo)
下一篇进入实时推理:就算又主动又记得住,如果不快,一切归零——怎么把流式视频模型做到"足够快"?