字节 & 南洋理工最新论文:当 Memory 遇见视频生成
用「陌生领域类比法」把视频生成当成 LLM 来读 StoryMem 论文:负数 RoPE 位移如何告诉模型「这是过去」,语义与审美双重过滤如何决定存什么,记忆池加滑动窗口如何决定忘什么。
TL;DR
两篇论文恰好从理论和实践两个维度讲了记忆工程: 一篇是十五所高校联合的万字综述《Memory in the Age of AI Agents》,给出了形式—功能—动态的三维分类; 另一篇是字节联合南洋理工的 StoryMem,用记忆外挂解决长视频生成的一致性难题。 因为我对视频领域的概念不熟,就用了「陌生领域类比法」: 把视频生成模型当成预测下一帧的 LLM,把长视频生成当成长文本写作,把 StoryMem 当成 RAG。 它最巧的一招是给记忆帧分配负数时间索引,在数学层面告诉模型「这些画面发生在过去」, 从而解决了记忆的时序干扰问题。 写入端则有两道关卡:CLIP 做语义查重,HPSv3 做审美质检—— Agent Memory 通常只在乎事实对不对,这里还得在乎好不好看。
目录
之前在上下文不等于记忆里提到:我们必须跨越上下文工程,正式迈入记忆工程。Context 不等于 Memory,正如书包不等于知识。
近期,两篇高质量论文恰好从理论与实践两个维度讲解了关于记忆工程的研究:
- 新加坡国立、人大、复旦等 15 所顶尖高校联合发布的万字综述《Memory in the Age of AI Agents》,指出了记忆与上下文的区别,并构建了完整的记忆分类学框架。
- 字节跳动联合南洋理工大学发布的《StoryMem: Multi-shot Long Video Storytelling with Memory》,用「记忆外挂」解决长视频生成的一致性难题。
其中 StoryMem 是一篇非常典型的「将记忆机制引入新领域」的应用型论文,可以把它当作一个案例研究:当上下文太长、计算太贵时,如何设计一个显式的记忆模块来解决问题?
一、概念映射:陌生领域类比法
(如果对视频领域很熟悉可以跳过这一部分。)
我对视频领域的一些公式、概念不是很熟悉,比如看到 DiT 架构、VAE 编码器这些词会产生畏难情绪。为了不让这些成为阅读论文的障碍,我用了「陌生领域类比法」:建立一个心理模型,把陌生的视频概念映射到熟悉的 Memory 和 LLM 概念上,把视频生成模型看作一个黑盒,将注意力集中在「记忆是如何被构建、管理和使用」的架构设计上。
1、把视频生成模型想象成 LLM。LLM 的核心工作是预测下一个 Token,视频生成模型(Video DiT)的核心工作是预测下一帧。它们面临着同样的困境——灾难性遗忘:就像 LLM 写小说写到第 10 章忘了主角名字一样,视频模型生成到第 5 秒时,往往也忘了第 1 秒主角穿的是什么衣服。
2、把长视频生成想象成长文本写作。目前的视频生成模型通常是单镜头生成的,要把它们变成能讲故事的长视频模型,就像是要求一个只能写短句的 AI 去写长篇小说。
3、把 StoryMem 想象成 RAG 或 Agent Memory。这是理解它的核心。StoryMem 不是把所有历史视频帧都塞进模型(Context 太长,算不动),而是挑几张最重要的关键帧存起来,构建一个外部记忆库。当生成新镜头时,模型会去这个库里看一眼,回忆一下主角长什么样,然后继续生成。
从记忆的视角看,只需要关注三个环节:输入是文本剧本加记忆库;写入是怎么挑出这几张图;读取是怎么把这几张图喂给黑盒子。
二、记忆的需求
之前提到过一个观点:大多数 Agent 的失败,不是推理的失败,而是记忆的失败。这篇综述与 MongoDB 演讲者的很多观点相似,并且为记忆提供了更精密的三维地图:形式—功能—动态。
论文给出了一个清晰的定义:Agent Memory 是一个持久的、自我演化的认知状态。它不同于 RAG(那只是外挂的图书馆),也不同于上下文工程(那只是临时的备忘录)。真正的记忆,是能够随着交互动态积累、更新甚至遗忘的系统。
(1)形式:记忆到底存在哪里?
前几天有读者问我「AI 的记忆存储在哪里?」,当时我脑海中第一个冒出来的回答是「在数据库里」。但事实上记忆的存在形式远比这丰富。
Token 级记忆(可读的):这是目前最主流的形式,无论是扁平的对话日志还是结构化的知识图谱,它们本质上都是外部可见、可编辑的文本流。优势是透明、人类可读、可以随时把写错的记忆删掉;劣势是读取慢,且占用宝贵的 Token 窗口。
参数化记忆(刻在脑子里的):通过微调将知识内化为模型权重的数值。内部参数是通过全量微调直接改变大脑结构,外部参数是挂一个 LoRA 或 Adapter,像给大脑插个 U 盘。
潜在记忆(Latent Memory):人类看不懂但机器读取极快的记忆,以 KV Cache 或向量的形式存在。它不再是具体的词,而是压缩后的思维切片。
有个比喻我觉得挺贴切:如果 Token 级记忆是文字笔记(谁都能看懂,也好修改),参数记忆是肌肉记忆(不需要思考,但很难改),那么潜在记忆就像是脑海中模模糊糊的一个念头或一段残影——虽然说不出来它具体长什么样,但它确实影响了当下的思考过程,且极其迅速、直观,只是别人(包括自己)很难去检查这个念头到底对不对。
(2)功能:为了什么而记?
常说记忆就是要「记住用户偏好,理解用户」,但记忆不止这些。事实记忆回答「我是谁、我知道什么」,不仅要记住用户的名字,还要记住世界运行的规律,这是 Agent 保持一致性的基石。经验记忆回答「我如何进步」,记住「上次我用这个工具报错了」从而在下一次自动修正,这种从历史轨迹中提炼出的程序性记忆,是 Agent 从新手变老手的核心。工作记忆回答「我现在在做什么」,对应当前的上下文窗口,用完即弃。
(3)动态:记忆是活的
记忆不是写进数据库的死数据,它有一个鲜活的生命周期:形成(通过摘要和提炼把海量对话压缩成精华)、演化(整合新旧知识、修正错误认知,以及最重要的遗忘)、检索(在对的时间,想起对的事情)。
三、StoryMem:当记忆遇见视频生成
字节团队挑战了记忆机制的一个极高难度副本:长视频生成。传统的解法要么太贵(联合建模,试图一次性生成所有帧,显存直接爆炸),要么太割裂(先生成图再生成视频,缺乏时序连贯性)。
StoryMem 的核心思想非常符合上面的理论:不追求无限 Context,而是构建一个显式的、可视化的记忆库。
1、给模型挂一个「视觉海马体」
StoryMem 提出了一个名为 M2V(Memory-to-Video)的核心模块,任务是让模型在生成当前视频时能「看到」并「参考」过去的记忆。
(1)记忆的形式:潜在记忆与 Token 级记忆的融合
StoryMem 维护了一个 Memory Bank,里面存的不是所有视频帧,而是精心挑选的关键帧。在输入模型时,这些图片不是以像素形式存在的,而是被 VAE 编码器压缩成了 Latent(潜在向量)。
但论文里提到,如果发现模型生成的视频有错误,可以人为地删除记忆中的错误帧。既然可以人为删除,为什么又说潜在记忆是人类看不懂的方式存储?
这个矛盾恰恰揭示了它的双层结构:StoryMem 是一个以 Token 级记忆为表现形式、以潜在空间注入为核心算法的混合系统。它之所以被关联到潜在记忆,是因为它不像传统 RAG 那样把信息转化为文本描述,而是直接在模型原生的潜变量层面上传递信息,从而保留了极高的视觉保真度。
打个比方,这就像一个幻灯片投影仪系统:记忆库是幻灯片,人类可以一张张翻看,觉得哪张拍坏了就直接从盒子里扔掉,这是 Token 级记忆;M2V 机制是光束和镜头,投影仪工作时把实体的幻灯片变成了墙上的光影信号(潜变量),内部的各种精密调节是在光影信号层面进行的。
能删除幻灯片,是因为它物理存在且可读;模型能利用它,是因为它被转化成了光影信号注入了计算过程。
(2)核心技术:负数 RoPE 位移
这是 StoryMem 的技术核心,也是处理时序记忆的神来之笔。
视频生成模型是强时序的。如果直接把记忆帧拼进去,模型会困惑:这几张图是现在发生的,还是未来发生的?为什么要我看这张图?
StoryMem 的做法是给记忆帧分配负数的时间索引。假设当前生成的视频时间是 0 到 5 秒,记忆库里的历史帧时间戳就被强行标记为 -5、-10、-15。
这是一种非常巧妙的相对位置编码应用,它在数学层面上告诉模型:这些画面发生在「过去」,是必须遵守的历史。这完美解决了记忆的时序干扰问题,让模型在统一的时间空间内无缝地关注过去。
(3)LoRA 微调:教会画家看参考图
有了 M2V 的架构还不够。原始的视频生成模型是单镜模型,以前只学过生成孤立的短片,面对突然被塞进来的带负数索引的记忆帧,它的第一反应是困惑:这些奇怪的数据是什么?我以前只管画画,没学过要抄作业。
这时就需要 LoRA 这个「岗前培训」教官。可以这样理解二者的关系:M2V 是硬件与规则,就像给画家发了一个带索引标签的灵感剪贴本,并规定凡是标着负数页码的都是参考图;LoRA 是学习过程,即便有了本子,如果画家没受过训练,他画新画时可能根本想不起来去翻。
具体做法是:找一些视觉相关的短视频片段(比如同一个人的不同镜头),随机抽取一些帧作为「伪记忆」,然后把剩下的视频遮住让模型去重构。在这个过程中 LoRA 参数不断优化,最终让模型明白:我要根据拼进来的这些记忆帧,去画出长得一模一样的人物和场景。
2、写入与管理:像人一样「挑食」的记忆系统
有了记忆读取机制,下一个问题是:到底该存什么?显存是有限的,记忆库不能无限膨胀。为此 StoryMem 设计了一套类似人类海马体的筛选机制。
(1)记忆的形成:语义与审美的双重过滤
语义选择:利用 CLIP 模型实时看一眼当前帧。如果新生成的画面和记忆库里的太像就扔掉(查重),如果有新信息(比如主角侧过脸了,或者换了个动作)就存下来,这保证了记忆的多样性。
审美过滤:这是视频领域特有的创新,引入一个 HPSv3 评分模型作为质检。如果某帧画面崩了、模糊了、丑了(比如大动作导致的残影),直接丢弃,绝不让脏记忆污染大脑。
Agent Memory 通常只在乎「事实对不对」,但这里还需在乎「好不好看」。记忆的筛选标准不仅可以是相关性,还可以是质量。
(2)记忆的遗忘:记忆池加滑动窗口
长期锚点(Memory Sink):永久保留视频最早生成的几个关键帧。为什么?为了防止漂移——如果只记最近的,生成到第 100 秒时,主角的长相可能会因为多次迭代的误差累积而完全走样。
短期上下文(Sliding Window):维护一个最近生成的关键帧窗口,用于捕捉局部的时间依赖,比如人物刚刚做出的动作连贯性。当容量到达上限时,丢弃窗口中最旧的短期记忆,但死死保住长期锚点。
3、实战效果
在字节团队专门构建的 ST-Bench 长故事基准测试中,StoryMem 的跨镜头一致性比之前的 SOTA 模型(HoloCine)高出 9.4%,比基础模型高出 28.7%。它成功地让 AI 讲完了一个包含多个镜头、情节连贯的一分钟故事,而没有把主角变成陌生人。
四、记忆工程的未来图景
1、显式记忆的全面复兴。在 Transformer 刚出来时,大家押注全注意力,把所有 Token 都塞进窗口。但 StoryMem 用实战证明了:外挂一个显式的、结构化的记忆模块,比单纯加长上下文窗口更高效、更可控。这与综述中提到的 Token 级记忆优势不谋而合——它透明、可编辑、可调试。如果发现 AI 记错了,可以直接去记忆库里把那张图删了;但在百万上下文的模型里,很难通过 prompt 修正一个微小的幻觉。
2、从被动存储到主动计算。未来的记忆系统不再是一个静止的数据库,而是一个活跃的处理管线,需要主动地进行筛选、打分、去重。「怎么忘」可能比「怎么记」更重要。
3、多模态记忆是下一个高地。想象一下,未来的 Agent 大脑里:文本记忆记住了你的名字和需求,视觉记忆记住了你喜欢的设计风格和你的照片,听觉记忆记住了你的声音特征,程序记忆记住了你习惯的工作流。当这些记忆通过 Negative RoPE 这样的技术在潜在空间打通时,AI 将不再是一个冷冰冰的问答机器。
这也证明了显式记忆模块是解决生成模型长程一致性问题的通用解法,无论是在文本 Agent 还是视频生成中。
最后
从上下文工程到记忆工程,我们正在见证 AI 认知架构的一次深刻跃迁。
随着 StoryMem 这种带有「海马体」的架构普及,未来的 AI 智能体将拥有连续的认知、稳定的画像和自我进化的能力。它将记得我们的喜好,记得我们和它共同经历的故事。
记忆,是灵魂的载体。而 AI,正在长出灵魂。
核心结论
标注「判断」「假设」的是我的看法而非事实;标注「已推翻」的保留在这里,不删除。
读陌生领域的论文时,可以用「陌生领域类比法」建立心理模型——把视频生成模型当成预测下一帧的 LLM,把长视频生成当成长文本写作,把注意力集中在架构设计而不是公式上。#
判断 · 把握较大
StoryMem 给记忆帧分配负数的时间索引,在数学层面告诉模型「这些画面发生在过去,是必须遵守的历史」,巧妙解决了记忆帧插入带来的时序干扰问题。#
把握较大
视频记忆的筛选标准不只是相关性,还有质量。StoryMem 用 HPSv3 打分把崩掉、模糊、有残影的帧直接丢弃——Agent Memory 通常只在乎事实对不对,这里还得在乎好不好看。#
外挂一个显式的、结构化的记忆模块,比单纯加长上下文窗口更高效也更可控。发现 AI 记错了可以直接把那张图从记忆库里删掉,但在百万上下文的模型里很难通过 prompt 修正一个微小的幻觉。#
判断 · 把握较大
永久保留最早的几个关键帧作为长期锚点,是为了防止漂移——如果只记最近的,生成到第 100 秒时主角的长相会因为多次迭代的误差累积而完全走样。#
引用本文
晨旭,《字节 & 南洋理工最新论文:当 Memory 遇见视频生成》,晨光里的AI,2025-12-30
[晨旭:《字节 & 南洋理工最新论文:当 Memory 遇见视频生成》](https://chenxu.xin/writing/storymem-memory-video-generation)带进你的 AI 继续追问
这篇文章有一份干净的 Markdown 原文,可以直接交给任何模型读,不用复制粘贴。