Token导航 LogoToken导航

AI 资讯 · 科技行者

DeCoPrune用去噪一致性为视频生成削减85%历史缓存

更新 2026-11-05科技行者正文 8159字阅读约 26分钟

你有没有玩过那种需要你一直往前走、不能回头看攻略的密室逃脱游戏?玩到后面你会发现一个很现实的问题:你脑子里要记的线索越来越多,墙上那把钥匙的颜色、第三个房间门把手的形状、刚才那个NPC说的半句话,全都得记住,因为你不知道后面哪个场景会突然考你"还记得这个东西吗"。

现在把这个场景换成AI。

一个能够持续生成视频的AI模型,正在面临一模一样的麻烦。这种模型被称为自回归视频扩散模型

自回归视频扩散模型:一种一段一段生成视频的AI模型,每生成一小段都要参考前面已经生成的所有内容,就像写连载小说要记住前面的情节一样

,它的优点是可以一直往前生成,支持实时互动控制,你可以边看边告诉它"往左转""捡起那个水壶"。但代价是,它每生成一小段新画面,都要把之前所有生成过的画面信息存下来,存成一种叫KV缓存的东西。

KV缓存:模型在生成过程中为了记住历史信息而保存的一堆数字,本质上是"压缩过的记忆",但不压缩的话体积会越滚越大

问题就在这儿:这个缓存只会越攒越多,不会自动瘦身。生成一分钟视频可能还扛得住,但如果要生成十分钟、一小时呢?显存很快就爆了,计算速度也会被拖得越来越慢。

这篇论文要解决的,就是这个"记忆爆炸"问题。而它给出的答案,相当反直觉:要判断一段历史画面该不该留在记忆里,不是看它"重不重要",而是看AI自己"去噪的时候费不费劲"。

这事到底是怎么想明白的,往下看。

记忆爆炸:删还是留,这是个两难问题

在这篇论文之前,业界已经有几条路子来给这个越滚越大的缓存"减肥"。

最简单粗暴的一种叫滑动窗口,说白了就是只留最近的几段画面,老的全扔。这就好比你记笔记,只留最后三页,前面的全撕掉。问题很明显:如果密室逃脱游戏在第一关藏了个线索,第十关才要用,你把前九页全撕了,到时候傻眼。论文里测的一个叫Streaming的方法走的就是这条路,结果是:压缩比做到94.37%,但是回忆准确度(用DINO分数衡量,满分1分)只剩0.4592分,比不压缩时的0.6803掉了将近0.22分。

还有一种稍微聪明一点的办法,叫基于相邻帧相似度来筛选,也就是比较这一帧和上一帧长得像不像,像的就认为是"重复信息",可以扔。论文管这类方法叫TempDiff(时序差异法)。这个思路听起来挺合理:两帧长得差不多,那确实有冗余对吧?但它有个硬伤,它只会跟"紧挨着的上一帧"比,没法跟几分钟前出现过的东西比。

这就好比你只检查这一页笔记和上一页像不像,却从来不会翻回第一页去对比。如果密室逃脱第一关的钥匙,隔了二十关之后又要用到,这种"只看邻居"的筛选方式根本发现不了这种跨越时间的重复,因为它压根没有机制去跟远处的内容做比较。TempDiff在论文的测试里拿到了0.6229的DINO分数,比滑动窗口好不少,但还是比不上这篇论文提出的新方法。

那到底该怎么判断一段历史画面"值不值得留"?

论文的作者们观察到一个很有意思的现象,而这个现象,成了整篇论文的地基。

去噪的"费劲程度",藏着信息量的秘密

要理解这篇论文的核心发现,得先简单说一下视频扩散模型是怎么"画"出一帧画面的。

扩散模型生成图像或视频的方式,跟雕塑家凿石头有点像:一开始是一块完全看不出形状的"噪声"(就像一整块毛石头),模型通过很多步计算,逐渐把噪声"去"掉,露出清晰的画面。这个过程叫去噪

去噪:扩散模型从一堆随机噪声出发,通过多轮迭代计算逐步还原出清晰画面的过程,每一轮迭代都会让画面更清楚一点

。关键是,在这个凿石头的过程中,模型在每一步都会猜一下"最终成品大概长什么样",这个猜测叫中间清晰预测

中间清晰预测:扩散模型在去噪过程中还没完全算完时,提前对"最终画面会是什么样子"做出的一次预判,跟工匠凿石头凿到一半先瞄一眼轮廓差不多

。

论文发现的规律是:如果某一帧画面所对应的历史上下文(也就是之前存下来的KV缓存)信息很丰富、很有用,那么模型在"凿"这一帧的时候,中间猜测和最终结果会很接近,几步就能猜准。但如果历史上下文里根本没有相关线索,模型就得"凿"很多步才能慢慢逼近正确答案,中间猜测和最终结果之间的差距(论文叫这个差距"步到终值的差异")会比较大。

这个发现背后的直觉其实挺朴素的。想象你在玩猜词游戏,如果提示给得特别到位,你一下子就能猜中答案,几乎不用犹豫。但如果提示含糊不清甚至没提示,你得东猜西猜,猜很多轮才能慢慢靠近答案,中间那些错误的猜测跟最终答案差得老远。模型"凿石头"凿得费不费劲,其实就是在告诉你:历史记忆里有没有现成的"提示"能帮它一下子猜准。

论文团队在四种不同的模型架构上都验证了这个规律(包括Causal Forcing、LongLive、Self-Forcing,以及他们主要用的LingBot World v2),结果高度一致:有相关上下文的时候,误差曲线明显更低更平;没有相关上下文的时候,误差曲线又高又陡。这不是巧合,是四种架构反复验证出来的共性规律。

基于这个规律,论文团队提出了一个大胆的反转思路:

如果一个画面区域(论文里叫token,可以理解成画面被切成的一个个小方块)很容易被猜中,说明历史记忆里已经有足够信息能预测它,那它本身对记忆而言就是"冗余"的,可以扔掉。反过来,如果一个区域很难被猜中,说明它带来了历史记忆里没有的新信息,这种区域才值得留下来长期保存。

这个判断逻辑听起来简单,但它解决的是一个根本性的矛盾:怎么用模型自己的"内在信号",而不是靠外部打分器或者人工标注,去判断哪些记忆值得留。论文管这套方法叫DeCoPrune,中文可以理解成"去噪一致性剪枝法"。

DeCoPrune:让模型自己告诉你哪些记忆该留

具体怎么操作?论文给出了一个相当干净的公式。

在正常生成某一小段画面(论文称为一个chunk,相当于视频的一小节)的过程中,系统会在某个中间步骤(叫探测时间步)记录一次中间清晰预测,等这一段彻底生成完,再拿这个中间预测和最终结果做对比,算出两者之间的均方误差(MSE),这个误差越大,说明这个区域越难被历史上下文猜中,也就越该保留。论文设了一个阈值γ,误差超过这个阈值的区域打上"保留"标记,低于阈值的打上"丢弃"标记。

这套流程最妙的地方在于,它完全是"顺便"完成的。模型本来就要走这一遍去噪的计算,中间预测本来就会产生,系统只是多做了一步"对比",没有额外训练任何打分模型,也没有引入外部的检索系统去计算相似度。论文管这叫在线评分,意思是整个过程是在正常生成的轨迹里顺手完成的,不需要额外跑一遍模型。

对于已经拍好的真实视频(也就是没有经过模型生成轨迹的那种),论文用了一个变通办法:把已经观察到的那一段视频重新"加噪"回去,再让模型根据保留下来的上下文重新去噪一遍,把重新去噪出来的结果跟原始观察到的画面做对比。这样一来,无论是AI自己生成的历史,还是真实拍摄的视频素材,都能套用同一套判断逻辑。

算出"保留"还是"丢弃"之后,物理上具体怎么操作缓存呢?论文设计了一套分层策略。最开头的一段画面(叫sink chunk,也就是"锚点段")会被完全保护起来,不管怎么筛选都留着,因为这往往是整个场景最初的设定信息。另外最近生成的几段画面也会完整保留,不做筛选,这部分叫recent window(近期窗口)。只有超出这个近期窗口范围、又不是锚点的那些中间段落,才会真正执行这套"去噪难度筛选",把筛选后留下的KV条目重新打包压缩进缓存。

关键在于,这个筛选结果是物理性地缩短了缓存序列的长度,而不是仅仅在注意力计算时把某些位置的权重设成零。这个区别很重要:如果只是把权重设成零,那些被"屏蔽"的历史信息其实还占着显存,只是暂时不参与计算;而DeCoPrune是真正把这些KV条目从缓存里删掉,腾出实实在在的空间和计算量。

这就好比你整理书架,有两种做法。一种是把不常看的书用书签夹一下标记"暂时不看",书还占着原来的位置,书架该多大还是多大。另一种是直接把这些书搬到储藏室,书架上真正空出位置来摆新书。DeCoPrune走的是第二条路,这也是它真能带来4倍以上生成速度提升的原因,因为注意力计算真正要处理的历史长度缩短了,不是表面上缩短了。

但光有一套方法,没有办法验证它到底管不管用。于是论文团队还做了另一件事:造了一个专门的考试卷。

CMBench:一张专门考"记不记得"的试卷

论文作者们发现一个挺尴尬的现状:现有的视频生成评测基准,大多只看"画面好不好看"、"动作流不流畅",或者笼统地看"跟历史是否一致",但没有一个专门去问"你还记得我之前给你看过的那个具体东西吗"。

这个缺口很关键,因为论文里有张图表明,画面质量指标(比如VBench里的subject consistency、background consistency)在压缩比不断上升的时候几乎保持不变,但是真正的"能不能认出之前见过的东西"这个指标(DINO分数)却在悄悄暴跌。换句话说,一个视频可以看起来很流畅很自然,同时却已经把之前的关键信息忘得一干二净,普通的质量评测完全发现不了这个问题。

打个比方,这就像一个人失忆了,但举止谈吐都还挺正常,你跟他正常聊天完全看不出异样,除非你故意问他"还记得我们昨天约好的事吗",他才会露馅。常规的视频质量指标就是那种"正常聊天",根本问不到关键问题上。

于是论文团队搞了一个叫CMBench(Context Memory Benchmark,上下文记忆基准)的新考卷。它包含58段大约一分钟长的视频情境,一共设计了116个叫"Reappear"或"Revisit"的延续任务。

Reappear任务:要求AI在续写视频的时候,让之前出现过的某个具体人物或物体重新出现,而且必须是同一个物体(比如同一个绿色条纹的保温杯),不能是随便一个同类物体

Revisit任务:先让镜头从场景A转到场景B再转回A,然后要求续写内容再次转回B,B里有一个显眼的物体作为评判标准

这些任务的素材来源分两类:50段用MiniMax H3这个AI模型专门生成的情境(可以精确控制事件出现的时间点),贡献了102个任务;另外8段是真实世界拍摄的视频,贡献剩下14个任务。为什么要两种都用?因为纯用AI生成的素材,有可能存在某种"AI特有的视觉特征"让评测结果出现偏差,加入真实拍摄的素材是为了交叉验证结论不是只在人工合成画面里才成立。论文附录里专门做了按来源拆分的对比,结果显示两类素材上DeCoPrune都稳定领先于其他压缩方法,这说明结论站得住脚,不是凑巧。

评判一个任务做得好不好,论文用了一套很讲究的流程:先用OWL-ViT这个开放词汇物体检测模型在生成的每一帧里找目标物体,再用SAM2这个图像分割模型把目标物体从背景里精确抠出来,最后拿DINOv2这个视觉特征提取模型算出抠图跟原始参照图之间的相似度分数,取整段续写视频里最高的那个分数作为这个任务的得分。这种"抠图再比相似度"的做法,借鉴自图像生成领域里评估"主体一致性"的经典方法。

除了DINO分数,论文还定义了一个叫PR(Pruning Ratio,剪枝比例)的指标,专门衡量历史KV缓存累计被削减了多少,计算方式是把所有层、所有注意力头、所有生成段落里实际保留的历史token数量加总,除以不压缩情况下的总量,再用1减去这个比值。这个指标衡量的是"累计削减量",不是某一时刻的峰值显存节省。

实测结果:砍掉85%记忆,几乎没丢东西

把所有东西放到一起测,数据说话最直接。

论文在LingBot World v2这个骨干模型上做了主实验(选它的原因下面会讲)。结果是DeCoPrune在剪掉85.43%历史KV缓存的情况下,DINO分数达到0.6701,跟完全不压缩(FullKV,DINO是0.6803)相比只差了0.0102分,几乎可以忽略。同时生成速度提升到了4.14倍。

对比一下其他方法在类似压缩比下的表现:同样压缩比在86%附近的TempDiff,DINO分数是0.6229,比DeCoPrune低了0.0472分。而压缩比更激进的Streaming(94.37%)和DummyForcing(98.03%),DINO分数直接跌到0.4592和0.4461,几乎丢了一半的记忆准确度。

论文还做了一个增强版,叫DeCoPrune-HS(HS是Head-Specialized,意思是"按注意力头做区分处理")。这个版本借用了另一篇论文ForcingKV里的思路,把模型里不同的注意力头分成"动态头"和"静态头"两类,动态头用DeCoPrune的筛选逻辑,静态头干脆用最简单的Streaming策略。这样一来压缩比进一步提升到86.19%,DINO分数反而涨到了0.6783,跟FullKV的差距缩小到只有0.0020分。

为什么分头处理能带来额外提升?论文解释说,不同的注意力头在模型里扮演的角色本来就不一样,有些头天生就只关注最近的画面(这种头留Streaming的简单策略足够),另一些头天生就擅长捕捉跨越时间的长程关联(这种头交给DeCoPrune的精细筛选逻辑才能发挥作用)。按头的特长分配任务,比用一套策略硬套所有头更高效。

这里有个细节值得多说两句:为什么论文最终选择LingBot World v2作为主要测试的骨干模型,而不是更常见的Self-Forcing、Causal Forcing或LongLive?

论文团队专门做了一次排查。他们发现,如果连"完全不压缩"的情况下模型本身就记不住一分钟之前的内容,那压缩造成的信息丢失和模型本身能力不够造成的信息丢失,根本没法分清楚。实测结果显示,Self-Forcing、Causal Forcing、LongLive这三个模型在完全不压缩的条件下,DINO分数分别只有0.2609、0.2627、0.2608,而LingBot World v2能达到0.6803。前三者的分数低到这个程度,说明它们本身就"记不住"一分钟前的东西,跟缓存压不压缩没太大关系了。这就好比你要测试一个保险箱的防盗性能,但如果这个保险箱本身的锁就是坏的,东西随便一碰就掉出来,那你根本没法测出"防盗"这件事的真实效果。所以论文选择了记忆能力本身过关的LingBot World v2作为主战场。

不过论文也没放过另外两个方法,在LongLive上单独补了一组10秒短上下文的实验(18个案例),结果DeCoPrune依然以57.25%的压缩比和0.5880的DINO分数,领先于其他压缩方法。这说明DeCoPrune这套思路不是只绑定在一个特定骨干模型上才有效。

细节拆解:三个关键设计到底值不值

除了主结果,论文还做了几组拆解实验,专门验证每个设计环节是不是真的有贡献,还是凑数的。

第一个问题:探测时间步选在哪一步,阈值γ设多少,要不要精调?

论文测了三个不同的探测步骤,结果显示在一个相当宽的压缩比范围内,三种选择得到的DINO分数都差不多,只有在压缩比特别激进的区间才会明显掉分。这意味着这套方法对"具体选哪一步做探测"不算特别敏感,不需要像炒菜放盐那样精确到克,大致选中间的某一步就够用。

第二个问题:缓存里保留的历史画面,位置编码要不要做特殊处理?

模型里的每个画面块都带着一个"位置编码"(RoPE),用来告诉模型这一块画面是在时间线上的哪个位置。问题是,一旦压缩掉中间大量内容,保留下来的那些老画面跟当前正在生成的画面之间,时间位置的差距会变得异常大,这会让模型很难"定位"到这段老记忆具体对应着什么时刻。

论文借用了另一篇工作提出的做法,把旧画面的时间坐标压缩进一个固定的"虚拟跨度"里,同时让最近的几帧保持原本真实的位置不变。打个比方,这就像你在整理一本很厚的相册,如果相册里一半的照片被你抽掉了,剩下的照片如果还按原来的页码摆,翻起来会特别乱,因为页码之间的跳跃幅度太大。重新编一套紧凑的页码,把抽掉照片之后留下的空隙"抚平",翻阅体验会顺畅很多,但最近的几页你还是保持原样不动,因为那是你最常翻的部分。

实测结果很有说服力:对于FullKV(完全不压缩的情况),加上这个重编码处理,DINO分数从0.4385直接跳到0.6804,涨了整整0.2418分!这是因为FullKV保留的全部历史里,新旧画面之间的位置差距本来就是最大的,重新编码带来的改善也就最明显。对DeCoPrune-HS,这个处理带来了0.0470分的提升。而对那些本身就只留最近画面的策略(比如Streaming),因为它们压根没有远距离的旧画面需要重新编码,所以变化很小,甚至有一点点下降。

第三个问题也是最关键的:到底该保留"难猜中"的还是"容易猜中"的画面块?

论文专门设计了一个反向对照实验,把判断逻辑倒过来,改成保留那些容易被猜中(误差小)的区域,丢掉难猜中的区域。结果在接近相同压缩比(85%左右)的情况下,反向筛选只拿到了0.4512的DINO分数,比DeCoPrune的0.6701整整低了0.2189分。即便把反向筛选的阈值调得特别宽松,只压缩掉18.79%的内容(也就是留了超过80%的历史),反向策略依然只能拿到0.5621分,还是明显落后。

这组对照实验其实是整篇论文最有说服力的证据,它直接证明了"保留难猜中的部分"这个方向性判断是真正起作用的核心,不是凑巧压缩比对上了才显得效果好。

写在后面

读到这篇论文的时候,最让我意外的不是DeCoPrune的效果有多好,而是它选择的判断标准本身,一个完全不需要额外训练、不需要外部打分模型的"自省式"信号。

通常我们想让AI判断"什么重要",第一反应往往是再训练一个专门的重要性评分器,或者引入外部的检索和相似度计算。这篇论文反过来走了另一条路:直接问模型本身,你去噪的时候觉得这块内容费不费劲?费劲就说明它有价值,不费劲就说明已经被别的记忆覆盖了。这个思路有点像不问一个人"你觉得这件事重要吗",而是观察他回忆这件事时犹豫了多久,犹豫得越久,说明这件事跟他已有的认知差得越远,信息量也就越大。

另一个值得单独拎出来说的细节,是论文里那张展示画面质量指标和记忆指标走势分离的图。常规质量指标一直很平稳,记忆分数却在悄悄下滑,这个现象其实在提醒一件更普遍的事:一个系统"看起来运转良好"和"真的记得该记的东西",是两件可以互相脱钩的事情。这不只是视频生成的问题,任何带有长期记忆机制的系统,可能都值得单独设计一套"记忆专项考试",而不能只靠整体表现是否流畅来判断。

论文最后也挺诚实地承认了局限:这套方法的压缩效果再好,保留下来的缓存依然会随着生成时长持续增长,没有一个硬性的上限,显存占用和计算量本质上还是没被真正"封顶"的。而且去噪一致性这个信号,本身是跟"未来会不会被问到"完全无关的,它只回答"这块内容现在容不容易被猜中",如果某个此刻容易被猜中、却偏偏在很久以后的某个提问里变得至关重要的细节,这套方法可能会低估它的价值。这倒是提出了一个挺有意思的开放问题:记忆的取舍,到底该由"现在好不好猜"决定,还是该由"将来会不会被问起"决定?这两者之间的张力,恐怕不只存在于AI系统里。

Q&A

Q1:DeCoPrune是什么?

A:DeCoPrune是一种无需额外训练的KV缓存剪枝方法,用于自回归视频扩散模型。它通过比较去噪过程中的中间预测和最终结果的差异,判断某段历史画面是否容易被已有记忆猜中,容易猜中的就丢弃,难猜中的才保留,从而大幅压缩历史缓存同时保持长程记忆。

Q2:CMBench和普通视频质量评测有什么区别?

A:CMBench专门考察AI是否"记得"之前视频里出现过的具体人物或物体,设计了Reappear(重新出现)和Revisit(重访场景)两类任务。普通的VBench等质量评测只看画面流畅度和一致性,测不出AI是否已经忘记了关键的历史信息。

Q3:DeCoPrune能压缩多少缓存,效果损失大吗?

A:在主实验中,DeCoPrune剪掉了85.43%的历史KV缓存,生成速度提升4.14倍,而记忆准确度(DINO分数)只比完全不压缩的情况低了0.0102分,几乎可以忽略。增强版DeCoPrune-HS压缩比更高(86.19%),分数差距进一步缩小到0.0020分。

文章标签AI资讯

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