4LC缓存机制:视频生成提速68.5倍,显存占用降12.6倍
你有没有想过一个问题:当AI生成一段连续的视频,比如让镜头在一个房间里转来转去,或者让时间往前快进几秒,它每次"看"这个场景的时候,到底是怎么"记住"之前发生过什么的?答案可能让你有点意外。目前很多做法是:每次生成新的一帧画面之前,AI要先把之前重建的三维场景重新渲染成一张图片,再把这张图片重新编码一遍,才...
生成一段连续视频时,比如镜头在房间内转动,或者时间快进几秒,AI每回“看”这个场景,究竟如何“记住”此前发生过的内容?
答案或许有些出乎意料。当前不少方案的做法是:在生成新一帧之前,先把此前重建的三维场景重新渲染成一张图,再对这张图重新编码,之后才能送进生成模型充当参考。思路确实巧妙,代价却不低。
打个比方,你要查一个电话号码,却得把整本通讯录从头抄一遍、重新排序归档,才能找到那一条。不光效率低,抄录途中还可能出错。这篇论文来自智源研究院“中关村学院”团队,题为《
这里先
所谓世界模型,指的是能模拟真实世界运行规律的一类AI系统:给定一些条件,例如摄像机如何运动、场景如何变化,它就能生成符合物理与逻辑规律的视频画面。
核心问题:每生成一次,就得重新“画一遍”
论文用一张对比图呈现了现有做法,图中称为“
论文给出了具体数字:以
VAE
4D高斯泼溅(4DGS)
麻烦还不止于此。“渲染-编码”这套循环本身会损耗信息。三维点云渲染成图片时,被遮挡的区域会出现空洞,重建不准的地方会产生伪影,而这些瑕疵会原样传进下一步的生成结果。论文的实验图显示,用
研究者由此提出一个很直接的问题:观测到的场景信息既然会被反复用于生成不同时间、不同视角的画面,能否只编码一次,之后反复读取,而不必每次都重走渲染加编码的流程?
思路听着简单,落地却有两个难点。其一,场景中既有静止不动的背景,也有正在活动的人和物体,怎样用一套机制同时应付这两类内容?其二,不同视觉编码器输出的特征格式、分辨率、维度各不相同,有的专攻外观,有的专攻语义,有的专攻几何,如何统一管理,并且能按时间、按视角灵活读取?
4LC
4LC
其核心设计由三个操作构成:构建、读取、组合。
先看构建。研究者使用一个预训练好的几何估计器(论文中采用
此处值得停下来想一想:为什么四种编码器的输出都要存进去,而非只留一种?
消融实验给出了答案。单独用
好比向一个陌生人描述某个地方。只给一张照片,你能说清它长什么样,却说不清那里常发生什么、入口出口各在何处、周边空间怎样连接。得同时给他看照片、讲这里的日常活动规律、再画一张简易地图,他才算真正“理解”这个地方,而不只是“看过”。四种编码器分别对应外观、语义、几何、动态四个理解维度,少一个,对场景的刻画就缺一个角度。若不让它们绑定在同一套几何与运动信息上,而是各自独立存储,读取时就无法保证四种信息描述的是同一时空点,容易出现“张冠李戴”的错位。
接着是读取。假设要生成某一特定时刻、某一特定机位下的画面,4LC会先按每个点自身的运动速度,把缓存里的三维点传播到目标时刻(论文中采用
有个细节值得展开:静止与运动如何区分?论文设置了一个运动阈值——若一个点在相邻观测之间的投影位移超过一定像素数,就判为运动,否则视为静止,位置保持不变。阈值过于灵敏,墙面地板这类静止物也会被误判成在动,生成结果随之抖动;阈值过于宽松,真正在动的物体又被当作静止,运动轨迹便丢失了。消融实验显示,不做阈值过滤(ε=0)时,旋转误差与平移误差均为所有配置中最差;阈值落在0.05到0.4之间,各项指标都较稳定。可见该过滤机制确有必要,且在合理区间内并不算特别敏感,系统留有一定容错空间。
最后是组合。当单个缓存条目覆盖不了整个目标画面时——比如该角度此前并未完全拍到——系统可依次读取多个缓存条目,用后续条目的内容填补前面条目未覆盖的空白区域,直到覆盖率达到某个阈值,或者再无条目可用。有了这一机制,4LC无需把所有历史信息强行并成一个条目,可以按需灵活组合,单独增删某些历史片段也方便。
效率提升:快68.5倍,省内存12.6倍
设计细节说了不少,最终的效果数字才最直观。
在同样使用Wan2.1 VAE编码器的前提下,论文对比了4LC的直接读取与NeoVerse的“4DGS渲染加编码”方案。结果:4DGS渲染加编码耗时2750毫秒,4LC读取仅需40.14毫秒,快了68.5倍。峰值显存上,4DGS方案为4.85GiB,4LC只需0.385GiB,少了12.6倍。
把这组数字放进实际生成流程,感受会更明显。论文测算,条件获取在NeoVerse方案中占整个生成时间的14.9%,换用4LC-Video后,这一比例降到0.25%。也就是说,原先每生成一段视频,约七分之一的时间花在“重画场景”上,如今这部分几乎可以忽略。
就像原先每次用资料都得去档案室现场翻找复印,现在资料已提前扫描进电子系统,点一下鼠标就能调出。不改的话,每用一次资料就要重复跑一趟档案室,时间全耗在路上;改完之后,省下的时间可以真正用在“读资料、做判断”这件事上。
不过有个问题得先问清楚:读得快了,读出来的特征会不会变差?毕竟这些特征是从缓存里直接取的,没走"渲染到目标视角再重新编码"那一步,那些只有在目标视角下才看得准的细节,会不会因此丢掉?
针对这一点,论文单独做了对比实验,把直接读取的特征与"渲染加重新编码"得到的特征摆在一起比。
一套参数应对五类任务,不用微调
速度之外,还得看这套缓存能不能撑住真正的生成任务。论文中的4LC-Video用同一套参数、没针对任何单个任务做微调,去跑五种不同的视频生成:摄像机控制、时间控制、新视角合成、场景重访、长时程生成。
这五类任务的差别,主要落在"用哪些初始画面""目标请求是什么""从缓存里读哪些条目"这三个维度的不同搭配上。摄像机控制保留原始时间线,只改摄像机轨迹;时间控制保留原始摄像机轨迹,只改时间顺序,比如倒放、冻结某一帧;新视角合成只给一张图,生成这张图之外视角的画面;场景重访让摄像机走一圈再回到起点,看返回时场景还对不对得上;长时程生成则考验连出很多片段之后,早先的场景记忆会不会丢、会不会走样。
摄像机控制任务上,4LC-Video旋转误差0.037、平移误差0.089,在全部对比方法里最低,主体一致性和背景一致性也最高,分别为90.71和94.14。这个结果有意思的地方在于,其他方法大多要在"跟住摄像机指令"和"保住画面一致"之间做取舍:NeoVerse跟摄像机跟得不错,一致性却打了折扣;GEN3C和SpaceTimePilot一致性保得可以,但摄像机误差是4LC-Video的好几倍,等于摄像机基本没怎么动,只是看着稳。4LC-Video能两头兼顾,根源在缓存机制:静止结构保持原样,运动内容按真实轨迹准确移动,不用靠牺牲一方去成全另一方。
场景重访任务上,这种优势更明显。4LC-Video的
这好比记一条路线有两种记法。一种边走边口述改笔记,走错了也把错的记下来,回头核对时参照的还是那份被污染过的笔记;另一种一开始就用GPS把所有路标的绝对坐标定好,中间绕多少圈,回到某个路标时看到的坐标信息永远是最初那份准确的。前者会累积误差,后者不会,因为它压根没有"更新"这个环节,源头信息始终如一。
长时程生成任务上也有类似发现。论文用的
论文的解释是,4LC-Video每生成一段新内容,就把它当作新的缓存条目追加进去,之后的生成只复用此前条目里"静止"的那部分(也就是前面提到的运动掩码标记为0的部分),过去的运动不会被重放。这样一来,场景的空间结构被约束住了,运动和状态却还能持续演化,不会被锁死在某个历史状态里。
这里
几个细节:编码器为什么这么选,训练又是怎么做的
论文还提到一些工程细节,值得单独拎出来讲,因为这类细节往往决定一个系统能不能真跑起来,而不只是停在论文里的理想情况。
训练数据方面,4LC-Video用了20万条单目视频片段,分别来自
训练过程中,研究者还设计了一套数据增强策略,核心思路是人为制造"条件不完整",逼模型学会在信息缺失时也能生成合理画面。具体做法包括随机丢弃一部分源帧、模拟一个虚拟摄像机做平移旋转缩放来筛选哪些点可见、扰动运动判断的阈值,甚至有10%的概率只用第一帧图像来构建条件,模拟"完全没有视频只有一张图"的极端情况。
真实场景里,4LC 读取时拿到的条件基本不可能完美——重建模型本身有误差,运动估计会偏,有些角度甚至从来没被看到过。训练阶段只拿理想条件去喂,到了实际使用中一碰上信息残缺就容易发懵。这跟备考是一个道理:平时练的都是条件齐全的常规题,考场上题目信息不全、条件含糊,人就容易慌;反过来,如果平时就刻意在信息缺失的情况下练判断,真到了复杂环境里才稳得住。这套增强策略的意义也就在这里。
写在后面
读完这篇论文,有个地方让我反复琢磨:它验证特征读取是否有效时,选的是"相对表征相似度"而不是单纯的绝对相似度,这个做法本身就藏着挺深的认知。
直接比两个特征向量的绝对数值,很容易被坐标系、归一化方式这些表面差异带偏,明明两组特征说的是同一个语义内容,数值上却可能差得很远。相对表征关注的是"这个特征和其他锚点特征之间的相对关系有没有保持住",这更接近我们理解"信息有没有丢失"的本质。这让我想到,评价一个压缩或转换过程做得好不好,很多时候盯的是表面数值对不对,真正该问的其实是:内部的结构关系还在不在。
论文里还有个细节出乎我意料:V-JEPA 2.1 这个视频自监督模型被直接读取之后,一致性指标几乎没什么损失,旋转和平移误差反倒都下降了。研究者的说法是,它“从视频里学出来的”,本身自带跨帧的时间一致性,而这种一致性在被读取、被投影、被传播之后仍然保持稳定。于是我想到一个更大的问题:假如一种特征表示本来就是在“时间”这个维度上训练出来的,那它是不是天生就比只在单帧图像上训练的特征更合适用在跨时空读取这类场景里?这个方向或许值得单独深挖,论文没有展开,但留下的这条线索挺有意思。
说到底,4LC 要解决的问题很朴素:信息已经被观测到一次了,为什么每用一次还要重新加工一遍?可要把这个朴素的想法做扎实,就得处理一串具体的工程难题——静止和运动怎么分开处理,不同编码器的特征怎么对齐绑定,读取时怎么把空洞补全。这篇论文的价值,某种程度上就在于把一个听上去简单的直觉,变成了真正能跑、能测、还能超过现有方案的一套系统。
Q&A
Q1:4LC是什么?
A:4LC 的全称是 4D Latent Cache,本质上是一套四维潜在缓存机制。静态场景和动态场景的内容,会由多种视觉编码器提取成特征,再绑定到共享的几何与运动信息上。之后无论视频生成请求来自哪个时间点、哪个视角,都能直接读取这份缓存,不必每次都重新渲染和编码。那么,它比传统方法到底能快多少?
论文实验给出的对比是:同样使用 Wan2.1 VAE,4LC 的读取耗时只有 40.14 毫秒;作为对照,4DGS 渲染加编码要花 2750 毫秒,前者比后者快 68.5 倍。峰值显存也降了下来,从 4.85GiB 压到 0.385GiB,降低 12.6 倍。条件获取在整体生成时间里的占比,则从 14.9% 缩小到 0.25%。
那 4LC-Video 能同时做哪些视频生成任务?答案是五类:摄像机控制、时间控制、新视角合成、场景重访、长时程生成。同一个模型不用针对任务做微调,就能把这些任务都跑起来,而且在多项指标上超过了各自领域的专门方法。