Rollout-Marginal Distillation for Long-Horizon Autoregressive Video Generation
Chenjian Gao, Zhihao Hu, Jianqi Ma, Jun Zhang, Weidong Zhang, Tianfan Xue
cs.CV, cs.AI
2026-09-30
RMD生成时仍看自己的历史,打分时每块单独对照教师,再补一轮视频级蒸馏修时序。块大小为一且只训五秒时,六十秒总分81.26,高出Self Forcing约十分。
双向视频扩散按短片段训练。Wan一次只看几秒,驾驶仿真和交互世界模型要的是长得多的画面。自回归按块续写,每块条件于已生成的帧,滑动窗口只保留最近历史,推理成本不随片长线性涨。
小偏差会变成下一块的上下文。五秒里看不出的偏色,到几十秒就糊背景、过饱和、结构塌陷。Self-Forcing让生成器训练时吃自己的rollout。这些历史没有真实续帧可监督,于是用视频级distribution matching distillation(DMD,用教师分布对齐学生)给整段打分。real score是教师先验,fake score跟踪学生,两者之差用来更新生成器。
整段打分把当前块和过去、未来绑在一起。树叶已经偏色,教师又改不了过去的帧。当前块拉回自然色就会跳,real score于是把误差留在预测里。图2里是不符合物理的鬼影。时序一致性把局部纠错压住了,出了训练片长,只做视频级DMD的模型仍然容易崩。
港中文MMLab与腾讯AIPD的Rollout-Marginal Distillation(RMD)只改打分,不改生成方式。生成器仍用自己的历史做因果预测。教师看一块时不看历史,也不看后续块,质量梯度不用再迁就脏上下文。
Wan的因果VAE不压缩第一帧,第一块潜变量和后续帧不是同一套统计。初始块与续写块因此分开建模。续写目标把rollout里第2到第T块、以及不同历史池成一个边缘。抽样仍走因果rollout,打分不看历史,也不看位置。损失是两个反向KL,初始块权重1/T,续写块(T-1)/T。
学生是因果Wan 1.3B,从Causal Forcing的因果ODE检查点起步,教师为Wan 14B,每块4步去噪。去噪早期若做与上下文无关的监督,会打掉靠历史建立的时间先验,所以出口不对称。初始块在中途随机挑一步算损失,续写块只在最后、噪声最低的一步算。Wan 14B用LoRA适配原模型切出的续写块,避免教师把孤立块当成新片开头、去等一个未压缩首帧。梯度取fake与real预测之差,再按教师残差的幅度归一。反传沿用Solaris,rollout不留计算图,只重算监督步。窗口后半段遮住初始块,免得它滑出后画面闪。
块边缘管不住接缝。第二阶段改回视频级DMD,学习率调小,只抹跨块的运动和外观。推理仍是纯滑动窗口,和基线一样不钉早期帧,计算开销也不增加。CMD为每条已经发生的历史另做因果教师。RMD不单独为历史造教师,也不喂真实长视频。
训练固定81帧(约5秒),从不用更长rollout。提示是Self Forcing的7万条。VBench-Long用满944条提示、每条5个视频,832×480、16 FPS,主表约60秒,为训练片长的12倍。500秒(100倍)只出现在图1,不进汇总。
| 方法 | chunk | Total | Quality | Semantic |
| Self Forcing | 1 | 70.94 | 77.89 | 43.17 |
| Causal Forcing | 1 | 69.88 | 78.34 | 36.03 |
| RMD | 1 | 81.26 | 84.52 | 68.24 |
| Self Forcing | 3 | 77.44 | 81.99 | 59.22 |
| Causal Forcing | 3 | 74.88 | 80.53 | 52.27 |
| RMD | 3 | 81.48 | 85.03 | 67.24 |
五秒内几家都还能看。到20、40、60秒,基线过饱和、结构塌掉,RMD的主体和场景还在。chunk为1时总分高10.32(81.26对70.94),语义68.24对43.17,画质只从77.89到84.52。chunk为3时优势收到4.04分(81.48对77.44),语义67.24对59.22。
同一批chunk=1的视频从10秒切到60秒,RMD的Quality从84.68到84.52,语义停在68.24。Self Forcing的Total从79.12掉到70.94。差距来自后半段的衰减。
消融(chunk=1):只做视频级DMD为72.44 / 78.68 / 47.50,很快严重偏色。只做块边缘为80.64 / 84.90 / 63.59,画质最高,时空切片呈锯齿。随机出口为78.29 / 82.48 / 61.56。完整模型81.26 / 84.52 / 68.24。精修后主体一致性97.29到98.05,背景一致性96.26到96.89,时序闪烁99.06到99.41,运动平滑98.79到98.96。语义升4.65,画质降0.38。
学生没见过自己的误差,这件事Self-Forcing已经做了。RMD补的是教师侧:整段打分会把跟着历史伪影走当成连贯。监督从联合rollout换成块边缘之后,生成器仍是1.3B的因果Wan。已有Causal Forcing初始化和Solaris重放的流水线,可以只换损失。
五秒片上方法之间差不多。一分钟上掉的是语义和结构,新的信号直接给每一块的画质打分。设定本身是渐进的,四步去噪、81帧、14B蒸馏到1.3B都是现成组件。图1的500秒说明,不钉第一帧,滑动窗口也能滚很远。
定量停在约60秒。500秒没有VBench数字,不能当成100倍片长仍有84分画质。训练也从不滚过81帧,外推全在测试时。把训练片长加到20秒或60秒是否更好,没有实验。
表里只有Self Forcing和Causal Forcing,两家都不用钉住早期帧的frame sink。LongLive、Rolling Sink、OPSD-V、CMD只出现在相关工作。这样变量收在蒸馏目标上,也看不出帧锚或更干净的教师缓存能不能用更小改动补上同样的掉分。
时序数字接近满分,闪烁是否被抹平,主要看图6的切片。第二阶段还把画质从84.90降到84.52。语义分停在68附近,离画质分85仍远。引言里的驾驶仿真和具身场景没有实验,评的是文生视频提示,不测动作、物理和长程身份。图2的鬼影是一张可视化,没有出现频率。
块教师适配自原模型的干净短片,支撑停在短片统计里。不对称出口和后半窗口遮挡都只试了一种设定,步数也绑在14B到1.3B这一条蒸馏上(边缘阶段chunk=1为900步,chunk=3为750步,精修800步)。