【论文分享】长视频大模型的“读写分离”革命:解析 Video-EMem 与自进化架构 VideoEvoHarness

在多模态长视频大模型领域,我们通常会面临一个非常棘手的矛盾:视频太长,上下文塞不下;即便勉强塞进去,每次提问都要重复扫描整部视频,算力和显存开销高得令人无法接受。

近期由 浙江大学与微软亚洲研究院(MSRA) 团队联合发布了一篇非常亮眼的前沿工作——《Write Once, Query Many: Evolving Compact Reusable Memory for Long Videos》(引入了 Video-EMem 体系),并在开源社区提供了配套的自进化脚手架框架 VideoEvoHarness。

这篇论文最吸引人的地方在于,它并没有一味追求把模型参数堆得更大,而是从经典软件架构的“读写分离(CQRS)”思想切入,提出了极具工程智慧的解决思路:

“一次写入,多次查询(Write Once, Query Many):长视频只做一次轻量化感知编译,提炼为体积削减 99.86% 的多尺度记忆;后续面对成百上千个未知问题,AI 绝不再去碰原视频,只凭精炼记忆秒级作答;更妙的是,整套记笔记与查笔记的 Python 策略代码,还能通过内置的 Coding Agent 自我演变进化!”

在这篇博客中,我们不仅会深入拆解 Video-EMem 的核心架构、双轨生成与召回率保障机制,还会结合工程师视角的深度思辨,探讨为什么学术界的自进化沙箱在生产线上不能直接动态跑,以及如何通过补齐 Embedding 环节结合 MyScaleDB 向量数据库,将这一单视频方案推向海量工业级沉睡视频流的检索实战。

论文题目:Write Once, Query Many: Evolving Compact Reusable Memory for Long Videos
作者团队:Kerui Chen, Jinglu Wang, Yun Wang, Xinjiang Wang, Yan Lu (浙江大学, 微软亚洲研究院 MSRA)
论文链接:https://arxiv.org/abs/2610.24537
arXiv HTML:https://arxiv.org/html/2610.24537
开源代码库:https://github.com/lewlh/VideoEvoHarness (原版仓库: Wei-Xin-Xu/VideoEvoHarness)


01. 行业痛点:传统长视频问答的算力泥潭

在让多模态大模型(MLLM)理解 1~2 小时长视频时,主流方案主要有两条路,但都在工程落地上面临严峻挑战:

1. 暴力抽帧输入(Dense Frame Input)

  • 做法:不管三七二十一,把视频抽出 1024 或 2048 帧,全部塞进模型的超长上下文窗口(Context Window)。
  • 代价:
    1. 显存开销与 Token 成本极其昂贵;
    2. 触发严重的 Lost-in-the-middle(中间遗忘效应),几千张图片输入后,模型极易产生注意力涣散,关键线索被海量冗余帧淹没。

2. 传统智能体检索(Agentic Search)

  • 做法:让 AI 像看录像带一样,根据当前提问反复倒带、跳转播放、放大细节。
  • 代价:用户问第 1 个问题,跑了 60 秒的视频推理;用户问第 2 个问题,又要把整套视频检索流水线重新跑一遍!计算成本随提问次数线性叠加,线上 QPS 根本做不高。
1
2
3
4
5
6
7
【传统模式:提问绑定计算】
用户问第 1 题 ──▶ 重新加载数万帧视频 ──▶ GPU满载运算 ──▶ 耗时 40s
用户问第 2 题 ──▶ 又把数万帧重新扫一遍 ──▶ GPU再次满载 ──▶ 耗时 40s (成本无法摊薄)

【Video-EMem 模式:读写分离】
视频接入 ──▶ Writer 一次性写入 ──▶ 生成轻量级 Memory (体积减少 99.86%)
用户问 N 次 ──▶ Reader 直接查轻量 Memory ──▶ 秒级回答、开销忽略不计

02. 系统设计:CQRS 读写分离与 Memory 存储模型

Video-EMem 的核心架构将“感知录入”与“问答检索”彻底解耦:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
┌──────────────────────────────────────────────┐
│ 离线阶段: Writer Pipeline │
│ (仅执行一次,提取时序因果并压缩 99.86% 存储) │
└──────────────────────┬───────────────────────┘
│
▼
┌──────────────────────┐
│ Memory Store │
│ (时间锚定多尺度图文索引) │
└──────────┬───────────┘
│ 只读访问
▼
┌──────────────────────────────────────────────┐
│ 在线阶段: Reader Pipeline │
│ (支持无限次并发查询,两阶段定位秒级出答案) │
└──────────────────────────────────────────────┘

Memory 不是死板的表格,而是“时间锚定的感知观察”

在 Memory 存储层,论文摒弃了容易受限的硬编码关系表,设计了一种 “自由文本(Free-form Text)+ 稀疏关键帧(Sparse Keyframes)” 的多尺度混合存储模型:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
{
"video_id": "vid_2026_demo",
"metadata": { "duration_sec": 7200, "compression_ratio": "99.86%" },
"timeline_observations": [
{
"scale": "coarse", // 宏观粗粒度(长跨度主线叙事)
"start_time": 0.0,
"end_time": 600.0,
"semantic_summary": "团队在会议室讨论第三季度预算方案,张总指出供应链成本过高。"
},
{
"scale": "fine", // 微观细粒度(关键事件切片)
"start_time": 142.5,
"end_time": 155.0,
"semantic_summary": "李工走到白板前画了一张架构图,右下角标出了核心服务器 IP 列表。",
"sparse_keyframes": [
{
"timestamp": 148.0,
"image_ref": "storage/keyframes/vid_demo_f4275.jpg",
"salient_entities": ["白板", "架构图", "文字表格"]
}
]
}
]
}
  • 为什么能缩小 99.86%? 绝大部分平缓没有信息增量的视频帧被自然语言以极高密度概括;只有在检测到显著场景切换或高密度微观视觉细节时,系统才保留一张稀疏关键帧。

03. 核心机制剖析:Writer 怎么写?Reader 怎么查?

1. Reader 绝不是把整个 Memory 塞进 Prompt

很多初读者容易产生误解,以为问答时是把上述整份 JSON 当成 Prompt 输入给大模型。这是完全错误的!
若视频长达数小时,整份 JSON 依然很长。Reader 实际上是一个两阶段的查字典流水线:

  1. 证据定位(Evidence Localization):先查粗粒度目录,将提问范围锁定在特定的局部时间区间,再从细粒度记录中精准抽出 2~3 条相关描述 与 1~2 张目标关键帧;
  2. 证据利用与推理(Evidence Utilization):最终进入大模型 Prompt 的,仅仅是被精准切片出来的几行证据和目标图片。

因此,每次问答所消耗的上下文极短,几乎不产生多余的 Token 浪费,保证了毫秒级至秒级的响应。

2. 召回率生命线:Writer 如何保证不漏掉细节?

在完全未知用户未来会提什么问题的前提下,如果 Writer 漏记了关键信息,后续搜索召回率(Recall)必定为 0。Video-EMem 通过四大手段兜底:

  • 多尺度重叠切片(Overlapping Multi-scale):微观时间窗之间保留时序重叠,防止关键动作正好在切片边界处被生硬切断;
  • 双轨分离感知:Text-Writer 负责用自然语言搭建因果与语义骨架,Image-Writer 基于视觉显著性抽取稀疏代表帧锚定视觉实体;
  • Consolidation 融合去重:利用 LLM 算子进行时序事件对齐、代词消歧与重叠去噪,保证高信噪比;
  • Free-form Text 开放性:拒绝死板的 Schema,任何微小细节(如“远处有狗叫”、“桌角有半杯水”)都能被自由文本自然记录。

04. 灵魂机制:VideoEvoHarness 与解耦自进化

为什么这篇论文能引起开源社区的巨大反响?因为它的核心不是手工调出来的死板 Prompt,而是引入了 VideoEvoHarness 自进化治理框架。

1. 模型权重完全冻结(Frozen)

重新微调千亿多模态模型成本过高,且容易导致通用能力遗忘。VideoEvoHarness 的核心哲学是:模型权重不动,只让外部编排算子的代码与 Prompt 自我重构!

2. 解耦的反馈回路(Decoupled Feedback Loops)

严禁使用具体的业务问答题去指导 Writer 记笔记! 否则 Writer 会严重过拟合测试集。论文设计了两个完全独立的诊断机制:

1
2
3
4
5
6
7
【Writer 诊断: 独立于具体问答】
├── Source Coverage (覆盖度): 原视频有场景突变/剧烈动作,Memory 里是否漏记?
└── Source Fidelity (保真度): Memory 里写的文字,反向比对视频帧是否出现模型幻觉?

【Reader 诊断: 业务问答驱动】
├── 定位错误 (Localization Failure): 找错了时间范围,没捞出正确证据切片。
└── 利用错误 (Utilization Failure): 证据捞对了,但最后 MLLM 推理答错了。

3. Coding Agent 的自动变异与回滚

当诊断器跑出问题后,内置的 Coding Agent 介入:

  1. 自动修改 Python 算子中的参数、时序切分步长或 Prompt 模板;
  2. 在验证集上自动运行回归测试(Regression Test);
  3. 指标提升则合并保存 Checkpoint,指标劣化则自动触发 Rollback(回滚),若陷入瓶颈则注入探索突变。

05. 实验数据:反超“暴力喂 2048 帧”的惊人结果

在权威长视频评测集 EgoSchema 和 LongVideoBench 上,论文基于 Qwen3-VL-30B 等基础模型进行了严格测试:

评测维度 传统暴力抽帧 (Dense Frames) 智能体重复搜索 (Video-Agent) Video-EMem (本文方案)
物理存储占用 几 GB ~ 几十 GB (原视频)
单次查询延迟 高 (输入大量 Token) 极高 (40s ~ 120s 重复搜索) 极低 (秒级快速检索)
问答准确率 容易受噪点干扰出现中间遗忘 较高但极其耗时 最高 (超越直接喂 2048 帧原图)

关键实验结论:为什么给的信息少了,准确率反而更高?
因为喂给大模型几千张图片会导致注意力严重分散;而 Video-EMem 经过 Reader 精准过滤后,只把最关键的 1~2 张图和精准切片送给回答模型,模型注意力高度集中,推理表现反而大幅提升!


06. 深度思辨:学术原型走向工业落地的工程改造

虽然论文与开源项目展现了惊艳的架构设计,但从软件工程落地角度审视,原设计仍存在两大“现实鸿沟”。在我们的交流中,推导出了两项关键的工业化改造方案:

思辨 1:Coding Agent 线上运行时绝对不能动态写代码

在实际生产系统中,如果让 Agent 在线上针对每个传入视频动态写代码并运行,会带来远程代码执行(RCE)安全漏洞、系统非确定性、以及无法排查运维 Bug 的灾难。

  • 工业化定位:Coding Agent 只能充当“离线编译器 / 自动化超参优化器”。
  • 工程最佳实践:在离线研发期,给 Agent 50~100 个典型样本视频,让它在沙箱中演进迭代出最佳的 Python 策略代码;一旦指标收敛,将最优代码固化并打包成标准的 Docker 镜像上线部署。线上生产只跑确定性、高吞吐的只读流水线。

思辨 2:缺失 Embedding 环节?引入 MyScaleDB 升级为海量沉睡视频检索

原论文的视角局限于“单视频内的 JSON 推理”。但在现实工业场景(如智慧城市、海量监控视频、全量会议归档)中,我们需要在成千上万个沉睡视频流中跨视频秒级检索。

如果让大模型去读十万份 JSON,系统依然会瘫痪。缺失 Embedding 环节,是学术原型跨越到海量检索的最大断层!

商业级多模态 Video RAG 落地架构

我们可以对开源项目 VideoEvoHarness 进行工程升级,结合 MyScaleDB 向量关系型数据库,打造海量视频检索底座:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
[海量视频流批量接入]
│
▼
[固化的高效 Writer 流水线]
├── Text-Writer 生成多尺度结构化事件
└── Image-Writer 抽取微观高质关键帧
│
▼ (⚡ 工业级改造: 引入 Dual-Embedding 算子)
├── 文本 Dense Vector (BGE / Qwen-Embedding)
└── 图像 Dense Vector (SigLIP / CLIP)
│
▼
[写入 MyScaleDB 数据库]
├── 结构化字段: video_id, camera_id, start_time, end_time (SQL 时空过滤)
├── 密集向量字段: text_vector, image_vector (高维 ANN 向量搜索)
└── 关键帧路径: s3://bucket/keyframe.jpg
│
▼
[在线查询: SQL + Vector 混合检索]
SELECT video_id, start_time, end_time, keyframe_url, summary
FROM video_events
WHERE camera_id = 'cam_01' AND event_time >= '2026-10-20'
ORDER BY distance(event_embedding, :query_vec) ASC
LIMIT 10;
│
▼
[Reader 算子做时序聚类与 MLLM 最终核验] ──▶ 秒级精准定位目标视频与答案

Coding Agent 在此架构下的进化方向

在新的架构下,基础数据库驱动和 Embedding 模型是固定的安全底座,而 Coding Agent 的自进化能力被释放到了极具价值的算法策略层:

  1. Query Expansion & Rewriting:如何将用户口语化的模糊查询改写为高质量检索向量;
  2. 混合检索加权调优:动态探索文本向量与关键帧图像向量的 α\alpha 混合权重与 Top-K 截断;
  3. 时序聚类重排(Temporal Re-ranking):自动编写算法将检索出的相邻片段聚类合并,消除冗余;
  4. 评估指标升级:以 Recall@K 和 MRR 为导向驱动 Agent 持续优化检索代码。

07. 总结与展望

这篇论文与其配套的 VideoEvoHarness 框架,为长视频理解与多模态智能体演进提供了极具启发性的思路:

  1. 架构层面:用 “读写分离(CQRS)” 的软件工程思想破解了长视频多模态计算的算力难题;
  2. 算法层面:用 “多尺度图文混合记忆 + 独立于提问的 Coverage/Fidelity 诊断” 牢牢守住了搜索召回率底线;
  3. 系统层面:用 “代码化策略 + Coding Agent 闭环演进” 替代了传统脆弱的手工调参。

将这套优雅的视频紧凑表征方案,与工业级的向量数据库(如 MyScaleDB)相结合,从“单视频问答”演进到“海量沉睡视频库的毫秒级多模态检索”,将是未来视频 AI 落地中最具商业潜力的技术方向之一。非常推荐各位对视频大模型、Agent 架构和向量数据库感兴趣的工程师深入研读与实践!