跳转至

MemRoPE: Training-Free Infinite Video Generation via Evolving Memory Tokens

会议: ECCV2026
论文: ECCV 原文
项目: https://memrope.github.io
领域: 视频生成
关键词: 自回归扩散、双速率记忆、旋转位置编码、KV 缓存、免训练推理
日期: 2026-09-17

一句话总结

MemRoPE 不更新生成器权重,而是把离开局部窗口的历史内容持续汇入长短期 EMA 记忆,并在注意力计算时才给未旋转的键施加 RoPE,在固定缓存下支持小时级生成,LongLive 上 1 小时视频的 VBench-Long 均值为 87.99,对照方法为 87.01。

研究背景与动机

自回归视频扩散把视频拆成连续片段,每次只去噪当前片段,并用过去帧的 KV 缓存提供条件。它绕开了一次生成整段视频的长度限制,却没有自动解决历史信息的保存问题:滑动窗口不断驱逐旧帧,模型逐渐失去早期人物外观与场景线索。Self-Forcing 和 LongLive 改善了生成训练与推理之间的差异,但长时间滚动时仍受有限上下文和位置编码范围约束。

固定保留开头帧作为注意力汇聚点,可以提供相对高质量的视觉锚点,却无法反映随后发生的变化。Deep Forcing 的参与式压缩根据累计注意力选择历史 token;本文观察到,留得越久的 token 越容易积累高分,缓存因而趋于固化,偶尔接纳高分新 token 又会造成突变。另一个瓶颈来自 RoPE:即使使用有界相对位置解决索引越界,若缓存中的键已经带着各自的旋转相位,也不能直接将它们平均成一个共同位置的记忆。

因此,记忆压缩和位置编码不能独立设计:先把内容从位置相位中分离,才有稳定聚合历史的空间。核心 idea:缓存未旋转的键,用更新速度不同的两条 EMA 流持续记住历史,再在每次注意力计算时为当前有限上下文重新分配有界位置。

方法详解

整体框架

输入是文本提示词和预训练的自回归视频扩散模型,输出是逐片段延长的视频。MemRoPE 的持久缓存包含开头的静态 sink、长短期记忆和最近的局部窗口;当前噪声片段在去噪时读取这些条件。它不是额外训练一个记忆网络,也不把所有过去帧存入不断增长的数据库。

两个贡献组件是“双速率记忆”和“在线 RoPE 索引”。前者决定被驱逐的内容如何留存,后者保证键可以在没有位置相位干扰的条件下合并,再为实际注意力运算恢复位置信息。

%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
        Input["文本与已去噪片段"] --> Memory["双速率记忆"]
        Memory --> Cache["三层未旋转缓存<br/>sink、记忆、局部窗口"]
        Cache --> Position["在线 RoPE 索引"]
        Noise["当前噪声片段"] --> Position
        Position --> Denoise["冻结生成器去噪"]
        Denoise --> Output["追加输出与局部缓存"]
        Output -->|"窗口溢出时汇入旧内容"| Memory

这里的回环跨越生成片段,而不是每个去噪子步骤都更新记忆。只有一个片段完成全部去噪后,它的干净键和值才进入持久缓存;这样,记忆不会吸收尚未完成去噪的中间噪声状态。

关键设计

1. 双速率记忆:让离开窗口的内容平滑进入历史摘要

三层缓存分工不同:sink 保留起始画面作为稳定锚点,局部窗口保存近期细节,位于两者之间的记忆承担远期历史。窗口容量被超过时,最旧片段不再只是被删除;作者先在每帧的空间 token 网格上做平均池化,获得压缩后的键和值,再用它们更新长短期记忆。键和值采用同样的更新规则,空间池化也意味着记忆保留的是摘要,而非完整可重建的旧画面。

每条记忆流都把“旧记忆乘以一减更新率”和“新池化内容乘以更新率”相加。长期流使用 \(\alpha_L=0.01\),短期流使用 \(\alpha_S=0.1\):前者受单次新内容影响较小,适合维持稳定外观;后者更快吸收最近变化,避免缓存一直停留在开头的场景。这是同一输入的两种时间尺度聚合,不是把输入硬分类为长期帧和短期帧。

两条流更新后,旧片段才从局部窗口移除。长期记忆并非无损地记住所有历史:越早的信息影响越弱,但它与 FIFO 的区别在于,驱逐动作不会立即把该片段对未来的全部影响清零。与按累计注意力离散选 token 相比,每次小幅吸收新内容也减少了缓存突然换成另一组强条件的风险。

论文实现使用 \(S=3\) 的 sink 设置,每条记忆流 \(M=1\),局部窗口为 \(L=4\) 帧。原文在这组配置中混用 token 和 frame 表述,不能把这些时间槽数字直接当成整个网络的标量 KV 元素数;真正的张量规模还涉及空间 token、层数与注意力头。

2. 在线 RoPE 索引:先聚合内容,再赋予当前上下文的位置

常规缓存把已经施加 RoPE 的键存下来。不同时间的键带着不同旋转矩阵,即使内容相似,直接平均也会混合位置相位。因此,问题不是“旋转运算本身非线性”,而是不能把多个不同位置的旋转一般性地提出为同一个共享旋转。MemRoPE 把整个缓存中的键都保存为未旋转状态,包括 sink、记忆和局部窗口,EMA 才能在一致的内容表示空间中工作。

到每次注意力计算时,系统按 sink、长期记忆、短期记忆、局部窗口、当前片段的顺序组织上下文,从零开始分配连续的块相对索引,再即时旋转键和当前查询。值不经过 RoPE。下一步继续复用未旋转的持久缓存,而不是把这次施加旋转后的键写回去,因此不会不断对旧键做补偿性重旋转。

这里的位置表示“本次有限上下文中的相对顺序”,不是视频已经生成了多久。历史缓存和当前片段的索引预算需要一起保持在模型训练范围内;只要每次参与注意力的上下文有界,时间不断推进就不会让索引无界增长。记忆没有唯一的原始帧时间,给它固定的相对槽位比假装它仍代表某个旧时刻更符合其摘要身份。

与 ∞-RoPE 的差别在于:后者对已旋转缓存进行重新锚定,主要解决位置外推;本文把施加位置编码的时机延后,还解除了历史聚合障碍。Rolling Forcing 已对 sink 动态应用 RoPE,但本文将未旋转存储扩展到全部缓存,使局部窗口退出的任意内容都能进入记忆。

一个完整示例

以论文展示的街头人物持续行走为例,下面是机制示意,而不是新增实验。

  1. 首段去噪完成后,起始视觉内容成为静态 sink;长短期记忆按算法初始化,局部窗口开始接纳后续片段。
  2. 生成下一片段时,将三层缓存与当前噪声状态拼接;每次注意力调用重新赋予块相对位置,冻结模型完成去噪。
  3. 当前片段完成后,其干净 KV 进入局部窗口;若窗口溢出,对退出片段做空间池化,再更新两条记忆流。
  4. 当人物进入新的街区,短期流更快反映新的视觉环境,长期流则较慢改变;这不保证身份绝不漂移,但让远期内容不再完全依赖最初的静态锚点。
  5. 重复这一过程,持久缓存大小不随总视频长度增长,输出视频和累计生成时间仍会增长。

损失函数 / 训练策略

MemRoPE 没有新增训练损失,不微调生成器权重;“免训练”指这个缓存与位置机制,而不是底座模型从未训练。实验基于 Wan2.1-T2V-1.3B 架构,使用 Self-Forcing 与 LongLive 两个底座。

每次生成 3 个潜空间帧,采用 4 步去噪,时间步为 1000、750、500、250。更新持久缓存只发生在最后一个去噪步骤之后。缓存更新、空间池化和在线位置编码均属于推理期操作。

原文缓存中多条显示公式存在抽取损坏,因此此处用方法正文和算法中可核对的文字说明更新顺序与机制,不尝试补写损坏等式。

实验关键数据

主实验

提示词来自 MovieGenBench,经 Qwen2.5-7B-Instruct 改写,输出分辨率为 480×832、帧率为 16 fps。120 秒和 240 秒各用 128 个提示词,480 秒用 20 个随机抽样提示词,1 小时用 10 个随机抽样提示词。

下表摘取原文表 1、表 2 的 VBench-Long 平均分,越高越好;它汇总美学质量、背景一致性、成像质量、运动平滑度、主体一致性与时间闪烁六项评分。基线与方法必须在同一底座、同时长内比较。

底座 时长 原始底座 Deep Forcing ∞-RoPE MemRoPE
Self-Forcing 120 秒 84.25 83.84 83.64 85.23
LongLive 120 秒 85.51 86.01 85.58 86.45
Self-Forcing 240 秒 83.04 81.66 82.84 84.89
LongLive 240 秒 85.33 85.48 85.21 86.22
Self-Forcing 480 秒 未报告 未报告 82.09 85.21
LongLive 480 秒 未报告 未报告 84.75 85.81
LongLive 1 小时 未报告 未报告 87.01 87.99

1 小时结果中 MemRoPE 在六项指标均领先 ∞-RoPE,但不能据此推断视频越长质量越高,因为不同时长的提示词样本不同。原文另在同一组 20 个提示词上比较时长趋势,两种方法都会退化,MemRoPE 的下降更缓。

消融实验

以下采用原文表 3(b) 的稳定性分析作为第二张数值表,而非重建损坏的表 4。Gemini 3.1-Pro 对 120 秒视频的曝光稳定性和视觉退化进行评分;正文未给出完整评分标尺与提示词,不能自行将其解释为百分比或补写量表上限。

配置 视觉稳定性评分 说明
Self-Forcing 1.55 表中独立基线
Rolling Forcing 3.40 表中独立基线
LongLive 4.10 LongLive 组原始底座
LongLive + Deep Forcing 3.90 LongLive 组
LongLive + ∞-RoPE 4.05 LongLive 组
LongLive + MemRoPE 4.15 LongLive 组

真正的组件消融仅按正文作定性总结:在线 RoPE 索引单独使用改善主体一致性,记忆 token 对美学与成像质量帮助更明显,两者组合获得最佳平均分。记忆流消融表明,双流改善成像质量,但相对仅短期记忆的优势较小;没有可靠依据把全部收益归于长期流。

关键发现

  • MemRoPE 在主表所有底座与时长组合上取得最高均值,但不意味着每项指标都最佳;较短时长下 ∞-RoPE 经常在运动平滑度和时间闪烁评分上更高。
  • 参数分析测试 12 组更新率组合,平均分变动小于 0.7;这支持所测范围内的稳健性,不代表所有设置都不敏感。
  • 用户研究包含 30 位参与者,每人比较 20 对 120 秒视频,在六个感知维度评价;它补充了自动指标,但仍不是无限时长的质量保证。

亮点与洞察

  • 缓存管理与位置编码是共同设计的。先去掉跨时间聚合的表示障碍,再谈记忆容量,解释了为何只解决位置外推仍可能丢失身份与画质。
  • 双速率 EMA 把“稳定记忆”和“快速适应”交给不同更新尺度。模型通过注意力自行利用两条流,无需另训练一个路由器。
  • 固定容量不必等于静态内容。平滑更新可避免离散 token 选择中的固化与突变,但代价是历史细节被压缩。

局限与展望

  • “无限”描述生成机制不受不断增长的位置索引与历史缓存限制,不是对任意时长都保持内容正确的证明;目前最长期实验为 1 小时且仅 10 个提示词。
  • 空间平均池化与 EMA 会损失细粒度布局和罕见事件信息。这是方法本身可推得的限制,未来可检验多摘要槽或内容选择性聚合,而非假定全部历史都能恢复。
  • 当前正文的评测缺少稳定性量表细节与置信区间,4.15 相对 4.10 的差距不能直接表述为统计显著。
  • 固定 KV 容量不等于固定总成本;生成更长输出仍需更多累计计算与存储。跨架构泛化主张也需要超出这两个底座的验证。
  • 表 4 排版抽取损坏,笔记不引用其数值,也不猜测具体组件消融差值;部分损坏公式已用可靠文字描述替代。

相关工作与启发

  • vs Self-Forcing / LongLive:它们提供训练好的自回归生成器,MemRoPE 是推理期插件。收益应与同一底座比较,而非归因于全新生成模型。
  • vs Deep Forcing:参与式压缩按注意力筛选离散历史 token,本文持续聚合每次退出窗口的内容。后者更平滑,却不能提供前者保留具体 token 的细节能力。
  • vs ∞-RoPE / Rolling Forcing:前者侧重位置重锚定,后者对静态 sink 动态处理位置;本文将未旋转缓存扩展到所有层次,从而支持演化记忆。
  • 可迁移启发:在其他流式模型中尝试缓存摘要时,先检查被合并表示是否混入不同位置的变换;这是设计建议,不是本文已验证的跨任务结果。

评分

  • 新颖性: 4/5。价值主要在记忆更新与位置解耦的协同,而非 EMA 或 RoPE 本身。
  • 实验充分度: 4/5。覆盖两个底座、多种时长及感知评估,但小时级样本较小。
  • 写作质量: 4/5。失效模式与机制解释清楚,当前文本抽取损坏限制公式和消融核对。
  • 价值: 4/5。提供可直接用于冻结自回归生成器的长视频推理方案,但不保证无限期稳定。