1. Motivation (研究动机)

长视频实时生成中,历史场景一致性GPU 内存效率是一对核心矛盾:

  • Window Attention 方法(LongLive, Self-Forcing++):仅保留最近 2-3 秒的 KV cache,超出窗口的历史信息被丢弃。相机回旋到原位置时,模型已经”遗忘”了先前场景,生成完全不同的画面(catastrophic forgetting)
  • Full History 方法(Self-Forcing, CausVid):保留全部历史帧的 KV cache,1 秒视频约占 1.5GB 显存,1 分钟视频即可耗尽 H100 80GB 内存
  • DMD 蒸馏的退化问题:现有长视频 DMD 训练中,teacher 模型是双向 T2V 模型,无法接受历史帧条件。导致优化目标存在捷径——模型学会仅依赖文本条件而忽略历史上下文:
  • Context as Memory 尝试用 3D+2D 表征选择关键帧,但仍需保留所有历史帧以备检索,内存问题未根本解决
  • TTT-video 将记忆压入模型权重,但推理时需要在线优化参数,牺牲实时性

核心矛盾:保留全部历史信息→内存爆炸;裁剪历史信息→场景遗忘;现有 DMD 训练→模型不学历史

2. Idea (核心思想)

MAG 的核心 insight:将”记忆压缩”和”帧生成”解耦为两个独立任务,分别训练专用模型,用近无损的 KV cache 压缩实现 3× 内存节省,同时通过 history-aware 损失函数强制生成器利用历史信息

三个关键设计:

  1. Memory Model(记忆模型):受 Autoencoder 启发,将 block 内多帧的 KV cache 通过 full attention 压缩为仅最后一帧的 KV cache,同时能从压缩 cache 重建原始像素。3× 压缩下 PSNR 31.73,视觉几乎无损
  2. History-Aware Loss:当生成历史延续片段()时,以一定概率使用空文本条件,迫使模型必须从历史 KV cache 中学习物理一致性,而非走”只看文本”的捷径
  3. MAG-Bench:专门评估历史场景一致性的 benchmark,包含 176 个对称相机轨迹视频(离开→返回),量化评估模型的”记忆回忆”能力

最终:单卡 H100,21.7 FPS 实时生成,3× 内存压缩,历史一致性指标大幅领先。

3. Method (方法)

3.1 整体框架

Figure 1 解读:MAG 的推理管线对比。左侧展示内存效率——MAG 仅需 20.2GB 显存(3× 压缩),而 Self-Forcing 需要 61.3GB。右侧展示历史一致性——相机回旋后 MAG 生成的场景与原始一致(History Frames PSNR 20.7),Self-Forcing 仅 15.6(差 32%)。MAG 在单 GPU 上以 16 FPS 实时生成流式视频。

Figure 2 解读:MAG 两阶段训练流程。Stage 1(左侧):Memory Model 训练——将 3 帧组成的 block 经 full attention 后仅保留最后一帧的 KV cache(编码器),再从该压缩 cache 重建所有帧像素(解码器),用 MSE loss 监督。使用定制 attention mask 实现编码-解码的并行训练。Stage 2(右侧):Generator Model 训练——冻结 Memory Model 提供压缩 cache(T→T/3),生成器在此基础上用 Self-Forcing + DMD 框架生成 5 秒视频片段,随机以 0.6 概率置空文本条件,强制利用历史信息。

3.2 DMD 蒸馏中的退化问题分析

现有方法直接将 Self-Forcing 的短视频 DMD 训练迁移到长视频。DMD 的核心是最小化生成器分布 与 teacher 分布 的 KL 散度:

其中 是生成器, 分别是 teacher 和 student 的 score function。Student 用 Flow Matching 训练以学习 generator 的输出分布。

退化问题:当 (非首段),生成器输出分布为 ,但 teacher 是双向 T2V 模型,只能提供 。优化目标变成:

由于文本 与历史 高度相关(都描述同一场景),且 base model 本身是双向模型(天然偏向文本),模型学到了一条捷径:直接忽略历史条件 ,仅靠文本 就能匹配 teacher 输出

3.3 History-Aware Loss

解决方案简洁优雅——当 时,以概率 使用空文本条件 替代真实文本:

总损失:

实际实现中 通过随机采样控制(空文本概率 0.6)。空文本时,生成器只有历史 KV cache 可用,被迫从中学习物理一致性和场景记忆。

3.4 Memory Model 设计与训练

Figure 3 解读:Memory Model 的并行训练 attention mask 设计。横轴和纵轴分别对应帧序列中的 token 位置。左侧为 clean frames(编码阶段),右侧为 noisy frames(解码/重建阶段)。蓝色方块表示 block 内的 full attention,黄色方块表示 block 间的 cross-attention(压缩 cache 传递)。关键设计:通过 mask 屏蔽 block 内其他帧的 KV cache,迫使信息仅通过最后一帧的 KV cache 传递,实现编码-解码的高效并行训练。

核心设计原则

  • Memory Model 以 KV cache 形式存在,不引入额外推理延迟
  • 将 KV cache 类比为 Autoencoder 的 latent space
  • 编码器和解码器共享参数(同一个模型的两个输出分支)

编码过程(Encoder)

  • Block 大小 = 3 帧
  • Block 内所有帧执行 full attention
  • 仅保留最后一帧的 KV cache → 3× 压缩

解码过程(Decoder)

  • 从压缩的 KV cache + 随机噪声重建 block 内所有帧的原始像素
  • 使用 few-step Flow Matching 去噪

训练细节

  • 随机化 RoPE 起始索引,使压缩与视频时长无关
  • 数据集:VPData(390K 视频),空文本条件
  • 2000 步训练,从 Self-Forcing 300-step checkpoint 初始化
# Memory Model 训练伪代码
 
> **Authors**: Tianrui Zhu*, Shiyi Zhang*, Zhirui Sun, Jingqi Tian, Yansong Tang†
> **Affiliations**: Tsinghua Shenzhen International Graduate School, Tsinghua University
 
def train_memory_model(video_block, block_size=3):
    """
    Input: video block [f1, f2, f3], block_size=3
    """
    # 1. Encode: full attention over [f1, f2, f3]
    kv_cache = full_attention_encode([f1, f2, f3])
    compressed_cache = retain_last_kv(kv_cache)  # 3x compression
 
    # 2. Decode: from KV_cache(f3) + noise -> reconstruct all frames
    noise = torch.randn_like(video_block)
    f1_pred, f2_pred, f3_pred = decode(compressed_cache, noise)
 
    # 3. Loss = MSE reconstruction
    loss = mse(f1, f1_pred) + mse(f2, f2_pred) + mse(f3, f3_pred)
 
    # 4. RoPE start index: random (duration-invariant)
    rope_start = random.randint(0, max_index)
    return loss

3.5 Generator Model 训练

Generator Model 初始化自训练好的 Memory Model(共享 cache 特征空间),然后在 DMD 框架下训练:

  • 冻结 Memory Model 提供压缩历史 cache
  • 每个 prompt 滚动生成 7 个 5 秒片段(35 秒长视频)
  • Student model 每 5 个 clip 训练 1 次(均匀监督)
  • 空文本概率 0.6
  • Generator LR: , Student LR:
  • Batch size 64, 约 1400 步
  • 数据集:VidProM(文本经 LLM 扩展)

3.6 MAG-Bench 评估基准

Figure 4 解读:MAG-Bench 的构造方式。上排:pan left → pan left → pan left → pan right → pan right → pan right(对称相机轨迹)。下排:zoom in → zoom in → zoom in → zoom out → zoom out → zoom out。前半段作为历史输入(memory and cache),切换点后作为 ground truth 用于评估。通过将单方向相机运动视频反转拼接,构造出”离开→返回”的对称轨迹,评估模型能否在返回时重现先前场景。

  • 176 个视频,涵盖室内、室外、物体、游戏场景
  • 评估指标:PSNR↑, SSIM↑, LPIPS↓(Best Match 对齐后)
  • Best Match:先基于 LPIPS 将预测帧匹配到最相似的 GT 帧,再计算其余指标

4. Experimental Setup (实验设置)

4.1 数据集与训练配置

  • Memory Model 数据:VPData(390K 视频),训练时使用空文本条件
  • Generator Model 数据:VidProM(文本经 LLM 扩展)
  • Memory Model 训练:2000 步,从 Self-Forcing 300-step checkpoint 初始化;block size = 3 帧;随机化 RoPE 起始索引;采用 3× KV cache 压缩
  • Generator Model 训练:每个 prompt 滚动生成 7 个 5 秒片段(35 秒长视频);Student model 每 5 个 clip 训练 1 次;空文本概率 0.6;Generator LR = ,Student LR = ;Batch size = 64;约 1400 步
  • 推理设置:冻结 Memory Model,用其输出压缩历史 cache,再交给 Generator Model 进行流式生成

4.2 评估基准与指标

  • T2V 评估:5 秒 VBench
  • 长视频评估:30 秒 VBench-Long
  • 历史一致性评估:MAG-Bench,176 个对称相机轨迹视频,涵盖室内、室外、物体、游戏场景
  • 历史一致性指标:PSNR↑、SSIM↑、LPIPS↓,采用 Best Match 对齐后计算
  • 对比对象:SkyReels-V2、Wan2.1、CausVid、Self-Forcing、Self-Forcing++、LongLive,以及 ablation 中的 w/o stage 1

4.3 代码映射表

论文组件代码位置(预期)说明
Memory Modelmemory_model.pyAutoencoder 式 KV cache 压缩,编码器(full attn → retain last KV)+ 解码器(reconstruct pixels)
Generator Modelgenerator.pySelf-Forcing + DMD 蒸馏框架,接受压缩 cache 条件
Attention Maskattn_mask.py并行训练用的定制 attention mask(Fig. 3),block 内 full + block 间 causal
History-Aware Losslosses.py空文本概率采样 + DMD loss 组合
MAG-Benchbenchmark/176 个对称轨迹视频 + PSNR/SSIM/LPIPS 评估脚本
RoPE Randomizationrope_utils.py训练时随机化 RoPE 起始索引,保证时长无关的压缩
Inference Pipelineinference.pyMemory Model(冻结)→ 压缩 cache → Generator → 流式输出

:GitHub 仓库 https://github.com/Xilluill/MAG 目前仅包含 README,代码尚未完整释出。上述映射为基于论文描述的预期结构。

5. Experimental Results (实验结果)

5.1 Text-to-Video 性能(5 秒 VBench)

ModelFPS↑TotalQualitySemanticBackgroundSubject
Multi-step:
SkyReels-V20.4982.6784.7074.53--
Wan2.10.7884.2685.3080.0997.2996.34
Few-step distillation:
CausVid17.082.4683.6177.84--
Self-Forcing17.083.9884.7580.8696.2196.80
Self-Forcing++17.083.1183.7980.37--
LongLive20.783.3283.9980.6896.4196.54
MAG21.783.5284.1181.1497.4497.02

关键发现:MAG 以 21.7 FPS 成为最快方法,同时 Background (97.44) 和 Subject (97.02) 一致性在所有蒸馏方法中最高。

5.2 长视频性能(30 秒 VBench-Long)

ModelTotalQualitySemanticBackgroundSubject
Self-Forcing82.5783.3079.6897.0397.80
LongLive82.6983.2880.3297.2198.36
MAG82.8583.3081.0497.9999.18

MAG 在长视频 Subject 一致性上达到 99.18,比 LongLive 高 0.82 个百分点。

5.3 历史一致性(MAG-Bench)

Figure 7 解读:MAG-Bench 上的定性对比。GT 行展示相机返回后的真实场景。MAG(第二行)能准确回忆先前场景的布局、颜色和细节。Self-Forcing(第三行)和 LongLive(第四行)均出现明显的场景遗忘——桌面物品消失、墙面颜色改变、蔬菜水果位置错乱。红色框标注了各方法的幻觉和遗忘区域。

| Method | History Context ||| Ground Truth |||

PSNR↑SSIM↑LPIPS↓PSNR↑SSIM↑LPIPS↓
Self-Forcing14.460.480.4915.650.510.42
CausVid15.130.500.4117.210.560.31
LongLive16.420.530.3218.920.620.22
w/o stage 117.190.540.3119.040.600.22
MAG18.990.600.2320.770.660.17

MAG 的 PSNR 比第二名 LongLive 高 2.57 dB(18.99 vs 16.42),LPIPS 降低 28%(0.23 vs 0.32)。

5.4 Memory Model 压缩质量

Figure 5 解读:Memory Model 在 3× 压缩下的重建可视化。上下各展示一个场景(纹理细节丰富 + 显著相机运动)。Ground truth 行与 MAG 行几乎无法区分——花瓣纹理、远景建筑细节、水面反射均被忠实重建,验证了”近无损压缩”的说法。

Compression RatePSNR↑SSIM↑LPIPS↓MSE×10²↓
block=1(无压缩)34.810.930.0250.08
block=3(3×)31.730.900.0450.56
block=4(4×)29.890.880.0591.28
block=5(5×)28.640.860.0711.96

3× 压缩的 PSNR 31.73 → 视觉几乎无损。更高压缩率仍可行但质量略降。

5.5 Ablation: Memory Model 的必要性

Table 3 中 “w/o stage 1” 行(直接 3× 下采样替代 Memory Model):

  • History Context PSNR: 17.19 vs MAG 18.99(差 1.80 dB)
  • 说明学习到的压缩远优于简单下采样,Memory Model 的监督训练确保了 cache 保真度

5.6 定性对比

Figure 6 解读:T2V 任务的 5 秒和 30 秒视频定性对比。上排(摩托车场景):MAG 在 30 秒长视频中保持了骑手姿态和火焰效果的连贯性,Self-Forcing 和 LongLive 出现了姿态漂移和火焰消失。下排(火山场景):MAG 的熔岩流动和烟雾扩散在长时间生成中保持物理合理性。