Token导航 LogoToken导航

AI 资讯 · 科技行者

AI世界模型记忆几分钟前走过的路

更新 2026-10-28科技行者正文 8349字阅读约 27分钟

你有没有玩过那种开放世界游戏,走出一个房间再绕回来,发现墙上的画突然换了个方向,或者原本放在桌上的杯子凭空消失了。这种违和感会让人瞬间出戏,因为我们对"同一个地方应该长一个样子"这件事有着根深蒂固的直觉。

现在把这个问题丢给AI视频生成模型,让它凭空"想象"一段你在虚拟世界里行走的视频。你从一个十字路口出发,逛了一圈,三分钟后又走回这个路口。理想情况下,AI画出来的路口应该和你出发时看到的一模一样。但现实是,大部分模型做不到这一点,它们会把这个路口画成一个似是而非的新地方。

这不是AI不够聪明,而是一个训练方式上的死结。这篇来自MBZUAI的论文《Memorizon: Training World Models Beyond Their Context Window》把这个死结拆开给你看,并且给出了一个思路巧妙的解法。

**为什么AI记不住几分钟前的事**

要理解这个问题,得先知道这类视频生成模型是怎么训练的。

这些模型大多基于一种叫做Transformer的架构工作,它靠"注意力机制"来处理信息:生成下一帧画面时,模型会回头看之前的所有帧,计算每一帧和当前时刻的关联程度,然后综合这些信息做出决定。

Transformer*:一种深度学习架构,核心是注意力机制,能让模型在处理序列数据时,动态关注序列中任意位置的信息,而不是像老式的循环网络那样只能按顺序一步步传递信息。

问题出在"回头看"这个动作的成本上。如果视频片段长度翻倍,注意力机制需要计算的关联数量会变成原来的四倍,这是因为每一帧都要和其他每一帧产生关联,这种平方级增长的计算量叫做二次方复杂度。

正因为这个二次方复杂度的存在,训练时用的视频片段通常只有几秒到几十秒长。可是模型部署到实际场景里跑起来,用户往往会让它连续生成好几分钟的内容。这就出现了一个尴尬的局面:训练的时候模型从没见过"几分钟前的事情需要被记住"这种情况,上线之后却被要求做到这一点。

论文里给出了一个很扎实的数据:在他们用虚幻引擎5渲染的训练语料里,统计了相机真正意义上"离开又返回"同一个地方的情况,发现最短的间隔是13.25秒,如果用更严格的判定标准,这个数字会被推到28秒以上。而他们常用的训练片段只有10秒长。

这意味着什么?意味着没有任何一条训练样本,同时包含了"离开"和"返回"这两个瞬间。模型从来没有被明确告诉过:"看,这就是同一个地方,你画的时候要保持一致。"它能不能学会这件事,全靠自己瞎猜。

如果你教一个孩子认人,但每次只给他看半张脸,而且每次看的都是陌生人的半张脸,从不给他看同一个人的两张照片做对比,那这个孩子长大后能不能一眼认出老朋友?大概率不行,因为他从来没有被要求过"记住并认出"这件事,训练材料里根本不存在这种配对练习。

**直接拉长训练窗口为什么行不通**

最直接的解法似乎是:既然短片段不够长,那就把训练片段拉长呗,让它覆盖到几分钟。

这条路在论文里被明确否决了,原因还是那个二次方复杂度的魔咒。把训练窗口从10秒拉到30秒,需要的显存大约是原来的三倍,这个数字在实际工程里相当致命。更讽刺的是,论文统计发现,即便真的拉到30秒的窗口,里面真正包含一次完整"离开再返回"的样本占比也只有3.8%。也就是说,花了三倍的显存成本,换来的有效训练信号却少得可怜。

有人可能会说,那就用稀疏注意力或者历史压缩技术来降低计算成本。这些技术确实能让处理长序列变得更便宜,但论文指出一个关键问题:这些方法改变的是"处理每个token的成本",而不是"一条训练样本能关联哪两次访问"。打个比方,这就像你把一本厚厚的笔记本换成了轻便的电子笔记,翻页速度是快了,但如果你压根没有在笔记里记下"第一次路过这里"和"第二次路过这里"的对照关系,电子笔记再轻便也帮不上忙。

**Memorizon的核心思路:把监督的跨度和注意力的跨度拆开**

论文作者的洞察非常关键:训练样本需要跨越很长的时间跨度来捕捉"返回"这件事,但模型在计算注意力的时候,并不需要把这段跨度里的每一帧都塞进去算一遍。

这句话听起来有点绕,但换个角度想就清楚了。假设你要证明"我今天走的路线最后回到了起点",你并不需要把路上拍的每一张照片都摆出来,你只需要起点的照片,加上你自己记得的几个关键地标,就足以证明这件事。

Memorizon的做法正是如此。一条训练样本可以覆盖任意长的时间跨度,从十几秒到几百秒都行,但真正参与"打分"(也就是计算损失、指导模型学习)的只有这条跨度里最后的k个片段。跨度中间那些没有被打分的历史内容,根本不会被完整地转换成token塞进序列里。

chunk(片段)*:论文把视频的隐变量序列切成一段一段来处理,每一段叫一个chunk,相当于几帧画面打包在一起的最小处理单元。

取而代之的是,每个被打分的片段会主动去历史里"检索"和自己最相关的K个片段,所有被检索片段的集合叫做一个"记忆库"(bank),这个库的大小是有严格上限的,最多是k乘以K,不管训练样本跨越了10秒还是400秒,这个库的大小都不会失控增长。

这就是整篇论文最巧妙的地方。它把"需要覆盖多长的时间"和"模型要处理多长的序列"彻底解耦了。如果不这样做会怎样?你要么只能用短片段训练,模型永远学不会跨越长时间的一致性,要么你得硬着头皮上长序列训练,接受显存和计算量的爆炸式增长。而Memorizon让你两头都占了便宜:时间跨度随便拉长,序列长度却被钳制住。

这就好比你要写一本几十万字的小说,但出版社规定每次交稿的字数有上限。笨办法是硬塞,把几十万字压缩成几万字交上去,内容必然失真。聪明的办法是:每次只交最后几章的完整内容,但在这几章里,你会主动引用前面章节里的关键情节片段,比如某个伏笔、某个人物的性格描写,读者看完最后几章,依然能感受到整部小说的连贯性,而出版社收到的稿子字数始终没有超标。

**检索到底检索什么,怎么检索**

既然要从历史里挑出"相关"的片段,就得有个标准来判断什么叫相关。论文给出的标准是相机的"共视性",通俗讲就是两个画面有没有拍到同一片空间。

这里用了两个线索。第一个叫视锥重叠度(frustum overlap),第二个叫姿态距离(pose distance)。

视锥重叠*:相机镜头能看到的范围叫视锥,就像手电筒照出来的光锥。视锥重叠度衡量的是,当前要生成的画面视野,有多少比例落在候选历史帧的视野范围内,数值在0到1之间。

姿态距离*:衡量两个相机位置和朝向的差异,既考虑相机中心点之间的距离,也考虑两个相机朝向之间的夹角,转15度大概相当于挪动4米的权重。

论文很实在地做了一件事:直接拿真实画面的相似度(用余弦相似度衡量)去检验这两个指标到底好不好用,而不是想当然地认为理论上合理就一定管用。结果发现单独用视锥重叠度效果一般,只能达到理论最优表现的47.4%,原因是很多候选帧会"撞分",只要候选帧完整包含了当前画面,重叠度就封顶成1,没法再细分谁更好。单独用姿态距离能到55.9%,主要是靠角度差异这个维度在起作用,如果只看相机位置不看朝向,效果直接掉到19.8%,因为这些虚拟相机转动的幅度远比移动的幅度大。

最终论文把两者结合起来,重叠度减去一个加权的姿态距离,这个组合分数能达到57.2%,已经逼近理论上限。这个发现本身就很有启发性:单一维度的几何线索都有盲区,重叠度看不出谁离得更近,距离看不出谁拍到了更多共同画面,两者互补才靠谱。

这让我想到找路时用的两种策略。一种是看地标"我看到那座红色的桥了,说明我离某个地方不远",这类似重叠度,判断的是你看到的东西和目标地点有多少交集。另一种是看指南针和步数"我往北走了两百步",这类似姿态距离,判断的是你和目标地点的相对位置关系。单靠地标,容易被长得像的建筑骗了;单靠步数,如果中途绕了弯路就会算错。两种方法一起用,才能比较靠谱地判断"这是不是我要找的那个地方"。

**记忆库怎么共享,又怎么保证不丢失信息**

一条训练样本里有k个被打分的片段,每个片段都会独立检索出自己的top-K候选帧。如果每个片段都把检索到的帧原封不动地塞进序列里,那序列长度会随着片段数量线性增长,又回到了老问题。

论文的解法是让所有片段共享同一个记忆库,库里存的是这k个片段各自top-K候选的并集。由于在构建训练样本的时候,这k个片段对应的相机位置已经全部确定,所以这个并集可以提前一次性算好,所有片段共用这一份,具体到每个片段该读库里的哪些条目,通过一个"掩码"机制来控制,掩码就像一张权限表,规定了每个片段只能看到和自己真正相关的那部分记忆。

掩码(mask)*:在注意力计算中用来控制"谁能看谁"的一种技术手段,通过给不相关的位置打上屏蔽标记,让模型在计算时忽略那些位置。

论文还证明了一个很严谨的性质,叫做"共享记忆库是无损的"。意思是说,虽然库里存的是k个片段检索结果的并集,但当某个片段从这个共享库里再挑选自己的top-K时,挑出来的结果,和它直接从完整历史里挑选top-K得到的结果是完全一样的。这个证明保证了"共享"这个工程上的优化手段,不会牺牲任何检索的准确性。按论文测算,共享这份记忆相比每个片段各自保留一份私有拷贝,每个被打分的隐变量平均只需要1.82个槽位,而私有拷贝方案需要3.75个槽位,省下了将近一半的开销。

**位置编码的小心机:不告诉模型记忆有多老**

Transformer处理序列的时候,需要知道每个元素在序列里的相对位置,这靠的是一种叫RoPE的位置编码技术。

RoPE(旋转位置编码)*:一种给序列中每个位置分配编号的技术,让模型能感知元素之间的相对距离和顺序关系。

论文里一个很细节但很重要的设计是:记忆库里的所有条目,不管它们来自多久以前,共享同一个位置编码索引。第一帧的索引是0,所有记忆库里的条目统一用索引1,后面的片段才依次往后排。

这样做的好处是,模型完全不知道一个被检索出来的记忆到底是5秒前的还是5分钟前的,它只知道这是"被检索出来的某个相关记忆"。这个设计带来一个意想不到的好处:一个只在10秒短片段上训练过的模型,在实际运行时却能够读取59秒之前的记忆库条目,并且在相隔20到60秒的返回场景里依然能获得提升。原因就是模型从没被训练去区分"记忆的年龄",它学到的是"如何利用一条相关记忆"这个通用能力,而这个能力不挑记忆到底是多久以前的。

如果反过来,按时间顺序给记忆库编号会怎样?论文也做了这个对比实验,结果喜忧参半:按时间顺序编号在部分指标上略有提升,但图像质量普遍更差,论文的解释是,按顺序编号的模型更倾向于死板地照搬检索到的画面像素,而不是真正理解这个地方该长什么样子。

**实验结果:和开源世界模型的正面对比**

光有理论不够,论文拿Memorizon去和市面上几个有代表性的开源世界模型正面对比,包括LingBot-World 2.0、DreamX-World 1.0、HY-WorldPlay 1.5、Matrix-Game 3.0、Infinite-World,以及一个设计思路相近的CaR模型。

评测用的核心指标叫Revisit(重访一致性),衡量模型两次生成同一个地方时画面的皮尔逊相关系数,简单说就是两次画的像不像。因为同一段视频里随便两帧也会有一定相关性,所以论文又定义了一个Gain指标,把这部分"天然相关性"扣除掉,剩下的才是真正归功于"记忆"的部分。

| 方法 | 起始点Revisit | 起始点Gain | 中途点Revisit | 中途点Gain |

|---|---|---|---|---|

| LingBot-World 2.0 | 0.143 | -0.006 | 0.147 | 0.011 |

| DreamX-World 1.0 | 0.146 | 0.033 | 0.109 | 0.009 |

| HY-WorldPlay 1.5 | 0.243 | 0.040 | 0.194 | 0.037 |

| Matrix-Game 3.0 | 0.254 | 0.075 | 0.283 | 0.089 |

| Infinite-World | 0.109 | 0.019 | 0.168 | 0.070 |

| CaR | 0.350 | 0.220 | 0.450 | 0.312 |

| **Memorizon** | **0.365** | **0.230** | 0.447 | **0.329** |

这组数据里最刺眼的是LingBot-World 2.0在起始点的Gain指标,只有负的0.006。这意味着这个模型画出来的"返回画面",跟随便两帧的天然相似度相比,几乎没有任何额外的提升,换句话说,它压根没有在"记住这个地方"这件事上发挥作用,画出来的东西只是碰巧看起来差不多。而Memorizon和CaR在Gain这一栏遥遥领先其他所有方法,论文也坦诚地指出,这两个模型是目前唯一表现出"清晰记忆能力"的系统。

值得一提的是Memorizon和CaR之间的差异化表现:CaR在"返回起始点"上更强,因为起始点画面本来就一直在注意力窗口里,而Memorizon在"返回中途经过的某个点"上更强,这类返回恰恰是最考验真正记忆能力的场景,因为中途的点不像起始点那样天然被模型"看在眼里"。

论文也没有回避自己的短板:图像质量指标上并不领先,HY-WorldPlay 1.5在主体一致性和背景一致性上反而更高。作者的解释是,这类指标比较的是相邻帧之间的平滑度,一个画面缓慢漂移、逐渐偏离原始场景的模型,反而会在这类指标上得高分,因为它每一帧和上一帧看起来都很像,只是整体在慢慢走样。这是Revisit指标和画质一致性指标之间一个有意思的张力。

**消融实验揭示的几个关键事实**

论文做了一系列拆解实验,逐步加入检索机制、记忆库、更长的训练跨度,观察每一步带来的变化。

第一个发现是,哪怕只在10秒短片段上训练,只要加入了"每个片段独立检索"这个机制,重访一致性就会显著提升,尤其是在模型从没见过的场景(也就是没在训练集里出现过的地图)和用户上传的真实照片上,提升最为明显。这说明检索机制本身的价值,不完全依赖于训练跨度的长度。

第二个发现有点反直觉:单纯把注意力窗口拉长,不加检索机制,效果反而可能变差。论文测试了一个"全片段都能互相看见"的宽注意力窗口,结果在没见过的照片场景里,16个样本中有13个的重访一致性比原始的滑动窗口方法更低。原因在于,除了第一帧之外,这个宽窗口里能看到的都是模型自己生成的内容,如果这是在渲染引擎生成的场景里,自己生成的内容误差还比较小;但如果起点是一张真实照片,模型每生成一步都会有轻微漂移,窗口越宽,就等于让模型越多地盯着自己已经走样的历史画面去学习,误差被不断放大。

第三个发现关于"谁来做检索"。如果把检索方式改成Context-as-Memory那种"整个被打分区间共享一次检索",而不是"每个片段各自独立检索",效果会明显下降,在真实照片场景里下降幅度大约三分之一。这很好理解,一次检索没办法同时满足好几个片段各自不同的视角需求,大部分片段最后读到的都是为别的视角挑选出来的帧,自然用不上。

第四个发现关于训练跨度本身。把跨度从100秒拉到200秒,各项记忆指标继续提升,但拉到400秒反而掉回了100秒的水平甚至更低。论文给出的解释非常扎实:当训练跨度已经足够覆盖大多数"返回"场景的首次访问时(论文统计100秒能覆盖64%的返回,200秒能覆盖84%,400秒能覆盖93%),继续拉长跨度只是给记忆库提供了更多没人选的候选项,记忆库的大小本身在200秒之后就基本不再增长了。换句话说,跨度是一个"够用就好"的参数,而不是越大越好。

这个发现让我想起健身房里关于训练量的争论。很多人以为练得越久效果越好,但其实超过某个阈值之后,多练的时间只是在消耗恢复资源,并不会带来额外的肌肉增长,关键不是你练了多久,而是你练的内容是否覆盖到了该练的肌群。Memorizon的训练跨度也是同理,一旦覆盖到了该覆盖的"返回"场景,再往上加时长就是边际效益递减甚至倒退。

关于为什么400秒反而画质有所回升、但一致性下降,论文追查到了根源:训练时记忆库和近期片段用的都是干净的真实数据,但实际运行时它们装的全是模型自己此前生成的内容,这种训练和推理之间的差异叫"曝光偏差",论文专门做了对照实验验证,当给模型提供干净的真实历史数据时,无论训练跨度是10秒还是200秒,画质都能逼近真实渲染视频的水平,差距主要就来自于依赖自己生成的历史内容,而这个依赖主要通过记忆库这条路径渗透进来。

曝光偏差(exposure bias)*:训练时模型看到的是完美的标准答案作为输入,但实际使用时它只能看到自己此前生成的、可能带有误差的输出,这种训练和推理之间输入质量的不一致,会导致误差随着生成过程不断累积放大。

**用蒸馏技术缓解训练推理不一致**

针对曝光偏差这个问题,论文引入了一套蒸馏方案,灵感来自Self Forcing和分布匹配蒸馏(DMD)这两项技术。

具体做法是把训练好的完整模型蒸馏成一个只需要四步就能生成结果的轻量版本。在蒸馏过程中,生成器会像真实推理时一样,完全依靠自己的输出一步步滚动生成后续片段,而不是依赖真实的标准答案,这样生成出来的片段,连同记忆库里的条目,都会被重新塞回训练用的序列结构里进行去噪,由一个教师网络和一个评价网络共同指导生成器学习。这个过程本质上是在让模型提前适应"自己会犯错,而且要在犯错的基础上继续画下去"这个现实。

论文坦诚地表示,这套蒸馏方案能缓解多少曝光偏差带来的损失,还有待进一步量化测量,这是一个诚实的留白,没有夸大蒸馏方案的效果。

**局限性:这个方法目前解决不了的问题**

论文很坦率地承认了两个边界。

第一个局限是场景范围。目前的实验全部基于静态场景,也就是除了相机在移动之外,场景里的任何物体都不会动,一个路口应该始终长一个样子,这个假设成立。但如果场景里的物体会移动,或者地点本身会随时间发生变化(比如一天中光线的变化、季节的变化),"重访一致性"这个评价标准就不再适用了,因为"画得不一样"有可能恰恰是正确的。

第二个局限就是前面提到的曝光偏差问题,蒸馏方案缓解了但没有彻底解决,具体能缓解到什么程度,论文留作未来工作。

写在后面

读完这篇论文,印象最深的不是检索机制本身,而是论文反复强调的那个"够用就好"的发现,200秒是最优点,400秒反而变差。这其实是在提醒我们,很多时候我们下意识认为"资源越多、覆盖越广就越好",但如果任务本身有一个明确的边界(比如大部分返回场景在200秒内就能被覆盖),那么超出这个边界的投入不仅没有收益,反而会因为引入更多依赖自身生成内容的环节,带来质量上的反噬。这种"甜蜜点"思维,在很多工程决策里都值得被重新审视,而不是默认"更长、更大、更多"就一定更好。

另一个让我反复琢磨的细节是那个位置编码的设计,不告诉模型记忆库里的内容到底有多老。这个看似简单的选择,背后其实是一种很克制的工程哲学:与其让模型去学习"如何处理不同年龄的记忆"这种复杂的泛化能力,不如干脆不给它这个信息,逼着它只能学会"如何利用一条相关记忆"这一件事。少给一点信息,反而换来了更好的泛化能力,这个反直觉的取舍挺值得玩味的。

论文里那组曝光偏差的对照实验也值得单独拎出来说。给模型喂真实的历史数据,不管训练跨度多长,画质都能逼近真实视频,但一旦换成自己生成的历史数据,画质就开始打折扣,而且大部分损失是通过记忆库这条通道渗透进来的。这说明记忆机制是一把双刃剑:它让模型"记得住",但也成了误差累积、自我强化的通道。怎么在"用记忆保持一致性"和"不被记忆里的错误污染"之间找到平衡,可能是这类长时记忆世界模型接下来要啃的硬骨头。

Q&A

Q1:Memorizon是什么?

A:Memorizon是MBZUAI团队提出的一种训练方法,让视频世界模型能够在超出其注意力窗口长度的时间跨度上保持场景一致性,核心做法是让每个被监督的片段独立检索历史中相关的帧,组成一个共享的、大小有上限的记忆库。

Q2:Memorizon如何解决AI视频生成中场景不一致的问题?

A:它把"训练样本覆盖的时间跨度"和"模型实际计算注意力的序列长度"解耦开,训练样本可以跨越任意长时间,但只对最后几个片段打分,中间的历史内容不直接进入序列,而是通过按相机共视性检索出的记忆库来提供,这样序列长度始终有界,不随训练跨度增长。

Q3:Memorizon训练跨度是不是越长越好?

A:不是。实验显示训练跨度拉到200秒时记忆效果最好,继续拉到400秒反而下降,原因是跨度足够覆盖大部分返回场景的首次访问后,更长的跨度只会带来没人选用的多余候选,同时加剧了依赖自身生成内容带来的画质损失。

文章标签AI资讯

资讯来源:由AI资讯编辑整理自互联网公开内容,版权归原作者所有,未经许可,不得转载。