Accelerating Autoregressive Video Diffusion via History-Guided Cache and Residual Correction¶
会议: CVPR 2026
论文: CVF Open Access
代码: 待确认
领域: 视频生成 / 扩散模型加速
关键词: 自回归视频扩散, 特征缓存, 误差累积, 训练free加速, 残差修正
一句话总结¶
针对自回归视频扩散模型(ARDM)逐段生成时"缓存近似误差会随时间累积放大"这一致命问题,提出训练free的 ARCache:用 History-Guided Cache 根据历史 token 的变化来调度缓存时机(段内抑误差),用 Enhanced Residual Correction 借第一段干净的残差轨迹去校准后续段(段间防漂移),在三个 ARDM 上实现最高 3.13× 加速且画质几乎无损。
研究背景与动机¶
领域现状:视频生成正从标准扩散模型(SDM,一次性生成固定长度视频)转向自回归扩散模型(ARDM,如 FramePack-F1、SkyReels-V2、Matrix-Game),后者把长视频拆成若干 segment,每段都以前面已生成内容(历史 token)为条件顺序合成,因此能变长生成、细粒度控时序,还能做交互式世界模型。但 ARDM 推理很慢,实时应用受限。
现有痛点:加速扩散最有效的手段之一是"特征缓存"——利用相邻去噪步特征高度冗余,把某一步算出的特征缓存起来给后面几步复用,从而跳过重复计算(DeepCache、FORA、PAB、TeaCache、TaylorSeer 等)。这些方法在 SDM 上很成功,且设计上"与范式无关",看起来可以无缝塞进 ARDM。但作者实测发现:直接套用到 ARDM 上会崩——后段帧出现严重伪影、时序断裂。
核心矛盾:根因在于 SDM 和 ARDM 的计算图本质不同。SDM 所有帧一次性联合生成,缓存带来的近似误差被限制在单次推理内;而 ARDM 每段都依赖前段输出,早段引入的近似误差会顺着历史条件一路传播、级联放大(error accumulation),越往后画质塌得越厉害。缓存换来的速度,被误差漂移吃掉了质量。
本文目标:设计一个专为 ARDM 顺序特性量身定制的缓存加速框架,把误差累积这件事从两个维度按住——① 抑制单段内的近似误差(段内);② 阻断误差跨段传播(段间)。
切入角度:作者做了两个关键观察。其一,定量相关性分析(Spearman 相关)显示:在 ARDM 里,输出的变化和"历史 token 的变化"相关性远高于和"当前噪声 token / 全部输入"的相关性——历史 token 才是判断"该不该刷新缓存"的可靠信号,而以往方法(如 TeaCache)盯的是全部输入,盯错了。其二,PCA 分析显示:未加速 ARDM 的残差特征在不同 segment 间轨迹高度相似且稳定,第一段尤其干净(无历史误差)。
核心 idea:用"盯历史 token 调度缓存"替代"盯全部输入"来决定何时复用(HGC),再用"第一段的干净残差轨迹"去校正后续被污染段的残差(ERC),两者合起来既加速又不让误差滚雪球。
方法详解¶
整体框架¶
ARCache 是一个 training-free 的缓存框架,挂在任意 ARDM 的去噪循环上。ARDM 逐段生成:第 \(s\) 段在每个去噪步 \(t\) 的输入由两部分组成——历史 token \(h_t^s\)(编码前面已生成段)和当前段的噪声 token \(x_t^s\),经 \(T\) 步去噪得到本段,再拼接、作为下一段的历史。最朴素的缓存(baseline,如把 PAB 直接搬过来)是在段内固定间隔复用激活 \(F([h_{t-k}^s, x_{t-k}^s]) := F([h_t^s, x_t^s])\),理论上能 \((N{+}1)\) 倍加速,但实测误差跨段累积、后段全是伪影。
ARCache 用两个互补模块替换这个朴素方案:History-Guided Cache(HGC) 负责"何时复用才安全"——通过监控历史 token 的变化量来自适应决定缓存刷新时机,把单段内的近似误差压到最低;Enhanced Residual Correction(ERC) 负责"复用之后怎么不漂"——用第一段稳定的残差轨迹参数去校准后续段被污染的残差,阻断跨段误差传播。整条 pipeline 见下图:
%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
A["ARDM 逐段去噪<br/>段 s 输入:历史 h + 噪声 x"] --> B["History-Guided Cache<br/>盯历史 token 变化<br/>累积阈值 δ 触发刷新"]
B -->|"累积偏差 ≤ δ"| C["复用缓存特征<br/>跳过本步计算"]
B -->|"累积偏差 > δ"| D["重算特征 + 更新缓存"]
C --> E["Enhanced Residual Correction<br/>用第一段残差轨迹参数<br/>校准后续段残差"]
D --> E
E --> F["拼接本段 → 作为下一段历史<br/>加速且时序一致的长视频"]
关键设计¶
1. History-Guided Cache(HGC):盯"历史 token 的变化"而非全部输入来决定缓存时机
朴素缓存和 TeaCache 这类方法判断"现在能不能复用上一步特征"时,看的是全部模型输入的波动。但在 ARDM 里这是错配的:作者通过 Spearman 相关分析发现,输出的步间变化与历史 token 的变化高度相关(相关性比"当前噪声 token—输出"高出一大截),因为历史 token 一旦变化,意味着有新的、不同的上下文信息被注入,输出必然随之偏移;反之历史 token 几乎不动时,输出也基本不变、此时复用最安全。所以应该盯历史 token。
HGC 据此定义一个历史偏差度量,衡量相邻去噪步之间历史 token 的归一化变化:
再引入累积阈值机制:设 \(t_{ref}\) 是最近一次缓存刷新的时间步,只要从 \(t_{ref}\) 起累积的历史偏差还没超过可调阈值 \(\delta\),就一直维持缓存复用;一旦累积偏差越过 \(\delta\) 就触发刷新、把 \(t_{ref}\) 更新到当前步:
\(\delta\) 直接控制"加速—质量"权衡:\(\delta\) 越大越敢复用、越快但越糙。这样 HGC 把"什么时候刷新缓存"和"新内容什么时候真正进来"对齐,从源头减少了单段加速引入的近似误差。消融里它对应的对照组是 IGC(=TeaCache,盯输入)和 CGC(盯当前段),HGC 在同等加速下 PSNR/SSIM 全面更高。
2. Enhanced Residual Correction(ERC):借第一段干净残差轨迹校准后续段,防误差漂移
HGC 解决了段内,但跨段的历史误差仍会传播。一个自然想法是直接用 TaylorSeer——它把特征及其导数建模成随时间步稳定的轨迹,用泰勒展开预测/修正缓存特征。但 TaylorSeer 在逐层特征上做,显存和算力开销巨大(论文里它在长序列上直接 OOM)。更要命的是,作者发现直接拿 TaylorSeer 修正后续段的残差会越修越歪:PCA 显示后段(如第 7 段)加速后的残差轨迹会逐渐偏离其未加速的稳定轨迹,因为后段轨迹本身已被历史误差污染,沿着这条"脏轨迹"外插修正只会进一步放大误差。
ERC 的破解点来自另一个 PCA 观察:未加速 ARDM 的残差轨迹在不同 segment 之间高度相似且稳定,而第一段不含任何历史误差、又被 HGC 进一步净化,最接近理想轨迹。于是 ERC 不再用当前段被污染的轨迹,而是用第一段的轨迹参数去校正所有后续段。具体地,残差用一阶轨迹公式近似(\(r_{t_a}^s, r_{t_b}^s\) 是最近两次重算步的残差,\(t_a < t_b\),\(\lambda_t^s\) 是轨迹参数):
由于后段(\(s>1\))的 \(\lambda_t^s\) 因误差累积越来越不可靠,ERC 把它替换成第一段算出的稳定参数 \(\lambda_t^1\):
并用它修正所有后续段的残差轨迹:
这样每一段的修正都被一个"干净且稳定的参考"牵引,从而抑制误差漂移、保住时序一致性。而且 ERC 只在残差层面做(不是逐层特征),开销几乎可忽略——消融里加上 ERC 后延迟从 96.40s 仅升到 96.74s,PSNR 却从 24.13 提到 24.79。
⚠️ 上面 \(L1_{rel}\)、\(\lambda\) 等符号系按原文公式 (5)(6)(7) 转写,原文 OCR 部分上下标较糊,以 CVF 原文为准。
实验关键数据¶
主实验¶
在三个代表性 ARDM 上对比(FramePack-F1 图生视频、SkyReels-V2 文生视频、Matrix-Game 交互世界模型),视觉保真用 PSNR/SSIM/LPIPS(相对原始未加速视频)+ 任务专用 benchmark(VBench / VBench-I2V / GameWorld Score)。ARCache 提供 slow(重质量)/ fast(重速度)双模式。
| 模型 | 方法 | 加速比↑ | PSNR↑ | SSIM↑ | LPIPS↓ | Task Score↑ |
|---|---|---|---|---|---|---|
| FramePack-F1 | PAB (I=2) | 2.86× | 21.19 | 0.6673 | 0.1887 | 88.33% |
| TeaCache-fast | 2.54× | 22.91 | 0.7110 | 0.1554 | 88.62% | |
| TaylorSeer | 2.03× | 21.36 | 0.6619 | 0.2023 | 88.65% | |
| ARCache-slow | 1.51× | 28.13 | 0.8408 | 0.0770 | 88.82% | |
| ARCache-fast | 2.88× | 24.34 | 0.7659 | 0.1254 | 88.81% | |
| SkyReels-V2 | TeaCache-slow | 1.40× | 26.65 | 0.8575 | 0.1048 | 77.28% |
| TaylorSeer | OOM | OOM | OOM | OOM | OOM | |
| ARCache-slow | 1.53× | 29.10 | 0.8835 | 0.0852 | 77.47% | |
| ARCache-fast | 1.87× | 25.70 | 0.8389 | 0.1223 | 77.04% | |
| Matrix-Game | TeaCache-fast | 3.06× | 18.41 | 0.6775 | 0.3282 | 78.95% |
| TaylorSeer | OOM | OOM | OOM | OOM | OOM | |
| ARCache-slow | 1.63× | 22.77 | 0.7811 | 0.2306 | 79.39% | |
| ARCache-fast | 3.13× | 19.37 | 0.7093 | 0.3016 | 79.07% |
关键观察:① ARCache-slow 在三个模型上 PSNR/SSIM/LPIPS 全是最优,质量明显领先;② ARCache-fast 给出 2.88× / 1.87× / 3.13× 加速且画质仍有竞争力;③ TaylorSeer 在长序列(SkyReels-V2、Matrix-Game)直接 OOM,PAB 静态缓存在 SkyReels-V2 上质量塌方(PSNR 仅 14.77、Task Score 跌到 62.07%),凸显静态调度在动态内容上不可靠。
消融实验(FramePack-F1,200 对随机图文样本)¶
| 配置 | 取值 | 加速比 | PSNR↑ | SSIM↑ | LPIPS↓ |
|---|---|---|---|---|---|
| IGC (=TeaCache,盯输入) | δ=0.10 | 1.49× | 22.93 | 0.7953 | 0.1323 |
| CGC (盯当前段) | δ=0.10 | 1.49× | 22.80 | 0.7870 | 0.1382 |
| HGC (盯历史,本文) | δ=0.10 | 1.52× | 24.13 | 0.8169 | 0.1159 |
| HGC | δ=0.20 | 2.59× | 22.93 | 0.7991 | 0.1265 |
| HGC | δ=0.30 | 2.88× | 20.89 | 0.7413 | 0.1815 |
| HGC w/o ERC | δ=0.10 | 1.52× | 24.13 | 0.8169 | 0.1159 |
| HGC w/ ERC | δ=0.10 | 1.51× | 24.79 | 0.8266 | 0.1117 |
关键发现¶
- 盯历史是对的:同为 δ=0.10,HGC 比 IGC(TeaCache)PSNR 高 1.2(24.13 vs 22.93)、比 CGC 更高,验证了"ARDM 输出更依赖历史 token"的分析——这是本文最核心的实证支撑。
- δ 是干净的速度旋钮:δ 从 0.10→0.30,加速从 1.52×→2.88×,但 PSNR 从 24.13 掉到 20.89,给出可控的速度—质量权衡。
- ERC 近乎免费:加 ERC 后延迟仅 96.40→96.74s(几乎不变),PSNR +0.66、SSIM +0.0097、LPIPS −0.0042,因为它只在残差层面算、不像 TaylorSeer 逐层算,开销可忽略却显著抑制漂移。
亮点与洞察¶
- 把"误差累积"识别为 ARDM 缓存加速的根本瓶颈,并区分成"段内 / 段间"两个正交问题分别下药(HGC + ERC),问题拆解很干净——这个 intra/inter 的视角可迁移到任何顺序生成 + 缓存的场景。
- "盯历史 token 而非全部输入"是一个便宜且有效的换信号:仅把缓存调度的监控对象从 \(x\) 换成 \(h\),几乎零成本就显著提质,背后是一次扎实的相关性分析支撑,而非拍脑袋。
- "借第一段干净轨迹校准后续段"很巧:不去硬修被污染的当前轨迹(越修越歪),而是利用 ARDM 残差轨迹的跨段相似性,把"干净参考"这个稀缺资源(第一段)复用到全程——这是对 ARDM 结构性质的精准利用。
- 完全 training-free:挂上即用、可热插到 FramePack-F1/SkyReels-V2/Matrix-Game 等多种 ARDM,工程落地友好。
局限性 / 可改进方向¶
- 依赖手工调阈值 δ:作者自己承认核心局限是 δ 需手动调,不同模型/内容下的最优值要试,未来要做 threshold-free 全自适应缓存。
- fast 模式质量仍有可见折损:高加速档(δ 大)下 PSNR/SSIM 明显下降(如 FramePack-F1 fast PSNR 24.34 vs slow 28.13),并非"无损加速",只是相对 baseline 更优。
- ERC 假设"第一段足够干净且跨段轨迹相似":若首段本身质量差,或后续段内容与首段差异极大(强场景切换),用首段参数校准的有效性可能下降,论文未深入讨论这类失配情形。⚠️ 此为笔者推测,原文未实验验证。
相关工作与启发¶
- vs TeaCache:TeaCache 用标定多项式估计器自适应调度,但盯的是全部模型输入的波动(即本文消融里的 IGC),忽略了 ARDM 特有的"输出—历史"强相关;ARCache 把监控对象换成历史 token,在 fast/slow 两档都超过 TeaCache。
- vs TaylorSeer:TaylorSeer 在逐层特征上做泰勒轨迹修正,显存爆炸(长序列 OOM)且沿被污染轨迹外插会放大误差;ARCache 只在残差层面用第一段稳定参数修正,开销可忽略且不漂移。
- vs PAB:PAB 固定间隔静态缓存,在内容动态变化的视频上质量崩(SkyReels-V2 PSNR 仅 14.77);ARCache 的自适应调度更适配 ARDM 的动态历史。
评分¶
- 新颖性: ⭐⭐⭐⭐ 首个面向 ARDM 的 training-free 缓存框架,intra/inter 误差分解 + 历史信号 + 首段轨迹校准三点都有洞察。
- 实验充分度: ⭐⭐⭐⭐ 三类任务三个模型、对比 4 类 baseline、消融覆盖各组件与超参,较扎实;缺与训练based加速法的对比。
- 写作质量: ⭐⭐⭐⭐ 动机—分析—方法逻辑清晰,图 1/3/4 的分析支撑到位。
- 价值: ⭐⭐⭐⭐ 长视频/世界模型实时化的现实痛点,热插即用、泛化性好,工程价值高。