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 损失函数强制生成器利用历史信息。
三个关键设计:
- Memory Model(记忆模型):受 Autoencoder 启发,将 block 内多帧的 KV cache 通过 full attention 压缩为仅最后一帧的 KV cache,同时能从压缩 cache 重建原始像素。3× 压缩下 PSNR 31.73,视觉几乎无损
- History-Aware Loss:当生成历史延续片段()时,以一定概率使用空文本条件,迫使模型必须从历史 KV cache 中学习物理一致性,而非走”只看文本”的捷径
- 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 loss3.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 Model | memory_model.py | Autoencoder 式 KV cache 压缩,编码器(full attn → retain last KV)+ 解码器(reconstruct pixels) |
| Generator Model | generator.py | Self-Forcing + DMD 蒸馏框架,接受压缩 cache 条件 |
| Attention Mask | attn_mask.py | 并行训练用的定制 attention mask(Fig. 3),block 内 full + block 间 causal |
| History-Aware Loss | losses.py | 空文本概率采样 + DMD loss 组合 |
| MAG-Bench | benchmark/ | 176 个对称轨迹视频 + PSNR/SSIM/LPIPS 评估脚本 |
| RoPE Randomization | rope_utils.py | 训练时随机化 RoPE 起始索引,保证时长无关的压缩 |
| Inference Pipeline | inference.py | Memory Model(冻结)→ 压缩 cache → Generator → 流式输出 |
注:GitHub 仓库 https://github.com/Xilluill/MAG 目前仅包含 README,代码尚未完整释出。上述映射为基于论文描述的预期结构。
5. Experimental Results (实验结果)
5.1 Text-to-Video 性能(5 秒 VBench)
| Model | FPS↑ | Total | Quality | Semantic | Background | Subject |
|---|---|---|---|---|---|---|
| Multi-step: | ||||||
| SkyReels-V2 | 0.49 | 82.67 | 84.70 | 74.53 | - | - |
| Wan2.1 | 0.78 | 84.26 | 85.30 | 80.09 | 97.29 | 96.34 |
| Few-step distillation: | ||||||
| CausVid | 17.0 | 82.46 | 83.61 | 77.84 | - | - |
| Self-Forcing | 17.0 | 83.98 | 84.75 | 80.86 | 96.21 | 96.80 |
| Self-Forcing++ | 17.0 | 83.11 | 83.79 | 80.37 | - | - |
| LongLive | 20.7 | 83.32 | 83.99 | 80.68 | 96.41 | 96.54 |
| MAG | 21.7 | 83.52 | 84.11 | 81.14 | 97.44 | 97.02 |
关键发现:MAG 以 21.7 FPS 成为最快方法,同时 Background (97.44) 和 Subject (97.02) 一致性在所有蒸馏方法中最高。
5.2 长视频性能(30 秒 VBench-Long)
| Model | Total | Quality | Semantic | Background | Subject |
|---|---|---|---|---|---|
| Self-Forcing | 82.57 | 83.30 | 79.68 | 97.03 | 97.80 |
| LongLive | 82.69 | 83.28 | 80.32 | 97.21 | 98.36 |
| MAG | 82.85 | 83.30 | 81.04 | 97.99 | 99.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-Forcing | 14.46 | 0.48 | 0.49 | 15.65 | 0.51 | 0.42 |
| CausVid | 15.13 | 0.50 | 0.41 | 17.21 | 0.56 | 0.31 |
| LongLive | 16.42 | 0.53 | 0.32 | 18.92 | 0.62 | 0.22 |
| w/o stage 1 | 17.19 | 0.54 | 0.31 | 19.04 | 0.60 | 0.22 |
| MAG | 18.99 | 0.60 | 0.23 | 20.77 | 0.66 | 0.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 Rate | PSNR↑ | SSIM↑ | LPIPS↓ | MSE×10²↓ |
|---|---|---|---|---|
| block=1(无压缩) | 34.81 | 0.93 | 0.025 | 0.08 |
| block=3(3×) | 31.73 | 0.90 | 0.045 | 0.56 |
| block=4(4×) | 29.89 | 0.88 | 0.059 | 1.28 |
| block=5(5×) | 28.64 | 0.86 | 0.071 | 1.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 的熔岩流动和烟雾扩散在长时间生成中保持物理合理性。