Back

流式视频理解 VLM 精读②:长时记忆——无限视频流怎么记住?

这是「流式视频理解 VLM 精读」系列第 2 篇。上一篇讲"何时开口",这篇讲**"开口时还记得什么"**——视频是无限流,但模型的注意力窗口和显存是有限的,怎么做到"几个小时后还记得之前发生的事"?

记忆问题的本质

看过几小时球赛,人记得"上半场有个越位没吹"。但 VLM 做不到直接原因有两个硬约束:

  1. KV-cache 是有限、且线性增长的——视频 token 持续进来,显存迟早爆掉,上下文窗口也装不下;
  2. 注意力在长序列上不收敛——窗口外的旧信息,模型注意力会"漂移"遗忘。

所以"长时记忆"本质是:在固定的显存/上下文预算内,最大化地保留对后续回答有用的历史信息。本仓库把它拆成了 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)

工作 Paper Code Demo
VideoLLaMB 2409.01071 bigai-nlco/VideoLLaMB —
StreamChat 2501.13468 hmxiong/StreamChat —
FreshMem 2602.01683 — —
FluxMem 2603.02096 YiwengXie/FluxMem —
StreamFlow 2608.10949 — —
Harnessing Streaming Video in the Wild 2606.08615 — —
StreamOV 2605.25621 — —
CurveStream 2603.19571 — —
FlexMem 2603.29252 city1517/FlexMem —
savemem 2605.07897 wuhang03/savemem —
WAT 2603.13412 — —
HERMES 2601.14724 haowei-freesky/HERMES —
Venus 2512.07344 — —
StreamAgent 2508.01875 — —
StreamVLN 2507.05240 InternRobotics/StreamVLN —
SimpleStream 2604.02317 EvolvingLMMs-Lab/SimpleStream —
Proact-VL 2603.03447 microsoft/AnthropomorphicIntelligence —
STRIDE 2603.27593 interlive-team/STRIDE —
AURA 2604.04184 aurateam2026/AURA —
TimeChat-Online 2504.17343 yaolinli/TimeChat-Online —
VideoScan 2503.09387 LyliAgave/VideoScan —
CausalMem 2606.25658 hktk07/CausalMem —
StreamBridge 2505.05467 apple/ml-streambridge —
Agentic Control 2605.17921 — —
StreamingVLM(MIT-HAN) 2510.09608 mit-han-lab/streaming-vlm —
StreamKV 2511.07278 sou1p0wer/StreamKV —
MuKV 2605.22269 IMBALDY/MuKV —
CoRDS 2605.14310 ailarmhz/CoRDS —
DSCache 2605.01858 pangzhan27/DSCache —
MemStream 2602.18434 vatsalag99/MemStream —
V-Rex 2512.12284 — —
LiveStar 2511.05299 sotayang/LiveStar —
StreamingTOM 2510.18269 YIGE24/StreamingTOM —
StreamMem 2508.15717 — —
InfiniPot-V 2506.15745 aiha-lab/InfiniPot-V —
LiveVLM 2505.15269 — —
ReKV 2503.00540 Becomebright/ReKV —
Flash-VStream 2506.23825 IVGSZ/Flash-VStream —
CacheFlow 2511.13644 — —
SelectStream 2606.16353 — —
OASIS 2604.17052 Solus-sano/OASIS —
WeaveTime 2602.22142 zhangyl4/weavetime —
PEARL 2603.20422 Yuanhong-Zheng/PEARL —
Vista 2602.08448 — —
ThinkStream 2603.12938 johncaged/ThinkStream —
VST 2603.12262 1ranGuan/VST —
StreamMeCo 2604.09000 Celina-love-sweet/StreamMeCo —
FOLIO 2607.13298 — —
Click-to-Ask 2603.18649 — —
ProVideLLM 2504.13915 dibschat/ProVideLLM —
EventMemAgent 2602.15329 lingcco/EventMemAgent —
Event-VStream 2601.15655 — —
StreamForest 2509.24871 MCG-NJU/StreamForest —
VideoScaffold 2512.22226 zheng980629/VideoScaffold —
ObjectStream 2607.28312 DMK041218/ObjectStream —
StreamArena 2608.05703 — —
OnlineSI 2601.16538 StoreBlank/online-spatial-intelligence —
video-SALMONN S 2510.11129 bytedance/SALMONN —
StreamTTT 2608.13416 — —

下一篇进入实时推理:就算又主动又记得住,如果不快,一切归零——怎么把流式视频模型做到"足够快"?

评论