5 步读懂 EM²Mem:LightMem 如何用事件中心多模态记忆框架让长视频问答又快又准
【免费下载链接】LightMem[ICLR 2026] LightMem: Lightweight and Efficient Memory-Augmented Generation项目地址https://gitcode.com/gh_mirrors/li/LightMem点击查看免费下载如果你想在长视频上实现高精度问答Video QA又不想忍受分钟级的推理延迟LightMem 系列中的EM²Mem值得一读。它是一个事件中心的轻量多模态记忆框架ICLR 2026把零散的视频帧、字幕、对话转写和图谱事实预先加工成一个个事件级记忆单元。查询时大模型只需从记忆中检索已对齐的证据而不再现场拼接碎片——准确率更高推理更快。为什么需要记忆增强的长视频问答长视频问答的痛点本质是上下文太长、证据太碎直接喂全视频给 LLM 成本极高而朴素 RAG 检索出来的片段往往是孤立的帧或句子模型还得自己拼拼图。上图直观对比了两条路线旧路线N× 循环每次查询都串行处理冗余的原始信息记忆项要么太少、要么迭代过多且更新是顺序的、频繁触发测试时延迟很长EM²Mem 路线1× 离线构建 睡眠期更新先做显著性过滤并行、主题感知地构建记忆测试时延迟大幅缩短。这就是官方文档 EM2Mem.md 中强调的核心思想把跨模态对齐的成本从查询时推理转移到离线记忆构建。视频只处理一次可以被查询无数次。核心设计一事件中心的多模态记忆单元EM²Mem 把事件Event作为第一检索单元。长视频先被切分成短事件锚点如 30 秒一个每个锚点存一个多模态记忆单元包含三类信息组成内容作用局部多模态证据关键帧说明、对话/转写上下文、代表帧、时间戳提供看得见、听得着的原始依据结构化事件字段动作、物体、场景、主题、实体、显著视觉线索方便快速筛选与打分溯源信息Provenance证据始终锚定回原始事件支持归因答案可解释这种先对齐、再检索的设计让推理阶段拿到的是已对齐的事件级证据而不是互不相关的碎片。相关实现见 MemoryCell.py 与事件记录构建脚本 build_multimodal_event_record.py。核心设计二多尺度时间上下文有些问题不只依赖单帧观察还依赖时间跨度上的连续性——比如他最近的习惯是什么任务进行到哪一步了。为此EM²Mem 在多个粒度上构建时间上下文视图Time Context Views30 秒事件 → 3 分钟窗口 → 10 分钟窗口 → 1 小时窗口。不同粒度参与事件打分时的权重不同如 30s 权重 1.01h 权重 0.3见 EM2Memory.py既保住局部细节又覆盖长程行为模式。下图是 EM²Mem 的完整架构左起依次为事件中心多模态记忆构建 → 事件关联图谱构建 → 轻量检索核心设计三事件关联的情景图与语义图单个记忆单元之外EM²Mem 还构建了两张轻量图索引情景图Episodic Graph通过共享的人物、物体、场景、主题以及时序转移把事件锚点串联起来语义图Semantic Graph沉淀反复出现的模式如习惯habits、偏好preferences、例行事务routines、稳定关系relationship等同时保留回支持性事件的链接。推理时的检索流程是三步走稠密检索先在情景/语义/视觉三个通道找出相关事件单元图扩展沿情景图拉入关联事件证据、沿语义图拉入支撑性事实LLM Selector对候选事件打分排序选出 top 单元交给答案模型。对应源码分别在 MemoryCell.py、SemanticMemory.py以及总入口 EM2Memory.py。核心设计四紧凑证据读取Compact Evidence Readout最后一步是编译一份针对当前问题的紧凑证据视图精选的说明文字、转写、结构化字段、时间摘要、语义事实和视觉证据答案模型只条件化在这份视图上而不是完整视频或一大池原始片段。查询接口也非常直观摘自 EM2Mem.md 的用法示例result em2mem.answer( queryWhat task was the person preparing to do?, choices{A: ..., B: ..., C: ..., D: ...}, until_time1123045, )快速上手EgoLife 基准 5 步跑通EM²Mem 当前集成了 EgoLife 流水线全部脚本位于 experiments/egolife/scripts/详细说明见 experiments/egolife/readme.md。cd experiments/egolife bash scripts/1_setup.sh --skip-data source .venv/bin/activate # 2. 预处理翻译稠密字幕、生成同步 EgoLife 记录 bash scripts/2_preprocess.sh --person A1_JAKE --base-dir data/EgoLife # 3. 构建事件中心多模态记忆单元 多尺度时间视图 情景图 bash scripts/3_build_multimodal_memory_cell.sh --person A1_JAKE --base-dir data/EgoLife --output-dir output # 4. 构建语义图 bash scripts/4_build_semantic_graph.sh --person A1_JAKE --output-dir output # 5. 预计算稠密 RAG 嵌入 bash scripts/5_precompute_rag_embeddings.sh --person A1_JAKE --output-dir output \ --text-embedding-model Qwen/Qwen3-Embedding-4B # 6. 在 EgoLifeQA 上评测 bash scripts/6_eval.sh --person A1_JAKE --data-dir data/EgoLife --output-dir output \ --retriever-model gpt-5-mini --respond-model gpt-5 \ --text-embedding-model Qwen/Qwen3-Embedding-4B常用参数--person被试 ID如A1_JAKE、--retriever-model检索侧模型、--respond-model答案模型、--episodic-top-k/--semantic-top-k/--visual-top-k三路检索条数默认 5/8/3。实验结果准确率与效率双赢以下结果摘自论文报告详见 experiments/egolife/readme.md 的 Results 部分EgoLifeQA 准确率对比%方法Ent.EvR.Hab.Rel.TaskAvg.GPT-547.242.147.553.655.648.6HippoRAG48.860.370.560.866.759.6WorldMM62.464.375.462.471.465.6EM²Mem60.861.163.972.874.666.0EM²Mem 在Ego-R1 Bench 上取得 67.7 的平均准确率领先 WorldMM 的 65.3在Video-MME (L) 上取得 76.8与最强基线 76.6 相当并且各项分布更均衡。推理效率对比相对 WorldMM指标WorldMMEM²Mem收益平均查询延迟459.00 s98.21 s快 4.67×输入 Token 数31.95M13.29M↓ 58.42%输出 Token 数10.08M1.99M↓ 80.29%总 Token 数42.03M15.27M↓ 63.66%写在最后EM²Mem 的价值可以总结为一句话离线把对齐做完在线只做检索 读取。它把事件中心记忆单元、多尺度时间上下文、情景/语义双图索引和紧凑证据读取组合在一起让长视频问答在准确率与延迟上同时受益——特别适合处理一次、查询多次的真实部署场景。 想进一步阅读框架总览与完整用法EM2Mem.mdEgoLife 评测流水线与结果experiments/egolife/readme.md核心记忆实现src/em2mem/memory/记忆构建、llm/提示词模板、embedding/嵌入模型LightMem 是一个 ICLR 2026 收录的轻量级高效记忆增强生成Memory-Augmented Generation项目EM²Mem 是其中面向长视频问答的成员仓库中还有 FluxMem、LightMem 主记忆系统等其他组件可供探索。赞分享【免费下载链接】LightMem[ICLR 2026] LightMem: Lightweight and Efficient Memory-Augmented Generation项目地址https://gitcode.com/gh_mirrors/li/LightMem点击查看免费下载相关推荐如何快速上手MSCKF_VIO从零开始的安装与配置教程如何快速上手MSCKF_VIO从零开始的安装与配置教程 MSCKF_VIO是一款专为快速自主飞行设计的鲁棒立体视觉惯性里程计Robust Stereo Vi机器人计算机视觉科研告别检索困境Self-RAG如何让AI回答又准又聪明告别检索困境Self RAG如何让AI回答又准又聪明 你是否遇到过这样的情况明明提供了充足的资料AI却给出答非所问的回复或者当你追问细节时它又含糊其辞示例工程Kefir.js调试技巧如何有效监控和调试数据流Kefir.js调试技巧如何有效监控和调试数据流 Kefir.js是一款强大的JavaScript响应式编程库它让开发者能够以声明式的方式处理异步数据流。然软件架构创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考