paper-notes/Efficient WAM/C³ache

C³ache: Accelerating World Action Models with Cross Inference Chunk Cache

Zhao、Nguyen、Lu、Shang · 2026 技术报告 · arXiv:2606.08962 · Zotero PUZCBU2V

一句话

C³ache 观察到相邻闭环 chunk 的场景和 DiT 特征高度相似,于是周期性运行完整网络,并在中间 chunk 复用上一轮对应扩散步的 block residual,只计算少数关键层;它不改训练目标,是推理期缓存方法。

§1 Introduction:WAM 为什么被自己的“想象能力”拖慢

作者为什么要做这篇论文

WAM 相比直接 VLA 多做未来视频建模,可能带来更好的物理先验和泛化,却把大规模 DiT 的多步去噪塞进闭环控制。机器人每执行一个 action chunk 就要重新推理;相邻 chunk 的观察和计划高度相似,但标准实现仍把每一层、每个去噪步完整重算,延迟直接挤压控制频率。

C³ache 的观察是两重冗余:同一 diffusion inference 的相邻 denoising steps 相似,相邻 control inferences 的对应 denoising step 也相似。方法在 full chunk 中缓存每个去噪步由 DiT 产生的 residual,后续 cached chunk 直接复用 residual、跳过整个 DiT,只按周期刷新。它不训练新网络,核心是把跨 chunk 时间连续性转成计算复用。

展开原文 · 核心机制

“caches and reuses these residuals across inference chunks”

— Abstract, PDF p.1
缓存粒度的区别

DeepCache、Block Caching、TeaCache 等生成模型加速方法主要复用单次 diffusion 采样内部的层输出、attention 或 residual;它们利用 denoising step 间的平滑性。WAM 多了闭环控制维度:下一次 inference 的输入只因新观察和短执行片段略有变化,因此同一噪声 step 的网络 residual 也可跨 chunk 复用。

与 Fast-WAM 等通过蒸馏、少步 flow 或专用架构加速相比,C³ache 是 training-free 插件,部署门槛低;代价是缓存陈旧度会随场景突变、接触事件和刷新间隔累积。它加速的是计算,不会改善原模型的世界理解。

§3 两种冗余

INTRA-CHUNK
相邻扩散步相似
传统 DiT cache 常利用同一次采样轨迹内的特征冗余。
CROSS-CHUNK
相邻控制轮次相似
机器人只执行短 action chunk,下一次观测变化通常局部而连续。
CACHE KEY
同扩散步、同层
跨轮复用必须对齐 sampling timestep,不能任意搬运。
REFRESH
周期性全算
避免缓存误差长期累积并适应突然场景变化。

§4 Full chunk 与 cached chunk

C3ache overview
Fig 1 · PDF p.2 C³ache 推理总览。它利用的是闭环连续性,不是预先缓存固定场景视频。
一个缓存周期

1. 首轮完整计算

以当前真实观测建立可信特征基线。

给第一次接触这个领域的读者

输入是什么:相机图像或视频,加上任务指令和机器人当前状态。它们还是原始观测,模型尚未把它们变成可用于预测或控制的特征。

这一步究竟做什么:本步骤执行“首轮完整计算”。具体来说,以当前真实观测建立可信特征基线。 这里处理的只是整条链路中的一个接口:把上一步的结果整理成下一步能够正确读取和继续计算的形式。

输出到哪里:一组比原始输入更紧凑的内部特征;它不是最终动作或画面。这个结果会交给下一步“保存跨层 residual”继续处理。

为什么不能省略:它把未经处理的原始问题变成后续模块可以计算的输入,是整条链路的起点。

2. 保存跨层 residual

缓存与扩散时间步严格对齐。

给第一次接触这个领域的读者

输入是什么:来自上一步“首轮完整计算”的产物:一组比原始输入更紧凑的内部特征;它不是最终动作或画面。本步骤还会按论文设置读取当前条件、时间步或训练信号。

这一步究竟做什么:本步骤执行“保存跨层 residual”。具体来说,缓存与扩散时间步严格对齐。 系统记录中间计算及其对应时刻,需要时直接读取;当输入变化太大时重新计算,避免缓存误差不断累积。

输出到哪里:结构化保存的数据或中间特征,后续训练可以反复读取。这个结果会交给下一步“后续 chunk 复用”继续处理。

为什么不能省略:它承担上下两步之间的接口;缺少它,前一步产生的信息无法以正确格式或正确含义传到下一步。

术语先翻译:diffusion(扩散生成):从随机噪声出发,经过多次去噪得到结构化动作或图像;residual(残差修正):不重做完整动作,只在基座动作上增加一个小改变量。

3. 后续 chunk 复用

只算选定 block,把缓存 residual 注回网络。

给第一次接触这个领域的读者

输入是什么:来自上一步“保存跨层 residual”的产物:结构化保存的数据或中间特征,后续训练可以反复读取。本步骤还会按论文设置读取当前条件、时间步或训练信号。

这一步究竟做什么:本步骤执行“后续 chunk 复用”。具体来说,只算选定 block,把缓存 residual 注回网络。 系统记录中间计算及其对应时刻,需要时直接读取;当输入变化太大时重新计算,避免缓存误差不断累积。

输出到哪里:经过本步骤处理、含义更明确的中间结果。这个结果会交给下一步“到期或变化时刷新”继续处理。

为什么不能省略:它承担上下两步之间的接口;缺少它,前一步产生的信息无法以正确格式或正确含义传到下一步。

术语先翻译:residual(残差修正):不重做完整动作,只在基座动作上增加一个小改变量。

4. 到期或变化时刷新

重新完整计算,重置误差。

给第一次接触这个领域的读者

输入是什么:来自上一步“后续 chunk 复用”的产物:经过本步骤处理、含义更明确的中间结果。本步骤还会按论文设置读取当前条件、时间步或训练信号。

这一步究竟做什么:本步骤执行“到期或变化时刷新”。具体来说,重新完整计算,重置误差。 系统记录中间计算及其对应时刻,需要时直接读取;当输入变化太大时重新计算,避免缓存误差不断累积。

输出到哪里:经过本步骤处理、含义更明确的中间结果。这是图中这条链路的最终产物,随后会进入真实执行、模型更新或指标评测。

为什么不能省略:它把前面得到的内部结果落实为可执行动作、可训练模型或可解释指标,完成从方法到结果的最后一步。

§5 缓存形式

$$h_l^{(k,t)}=h_{l-1}^{(k,t)}+r_l^{(k,t)},\qquad r_l^{(k,t)}\approx r_l^{(k-1,t)}$$Cross-chunk residual reuse
索引
$k$
闭环控制 chunk。
$t$
该 chunk 内扩散采样步。
$l$
DiT block 层。缓存近似只有在三者对齐时才合理。

§6 速度—质量旋钮

缓存不是免费

更长 cache-step range 会减少完整网络调用,却更容易在接触、遮挡或快速运动时复用过时特征。最佳刷新频率取决于任务动态,而不是一个全局常数。

§7 边界

TRAIN-FREE
无需重训
适合已有 WAM 的部署加速。
ASSUMPTION
相邻 chunk 平滑
突发碰撞、视角跳变会破坏复用条件。
MEMORY
用显存换计算
需存多层、多 timestep residual。
COMPOSE
可与蒸馏叠加
缓存与少步/单步模型是正交方向,但收益需重新测量。
理解检查
C³ache 主要利用哪一种冗余?

§8 实验归因与复现:速度数字必须绑定缓存新鲜度

REDUNDANCY
可复用性
按层、去噪步和相邻 chunk 距离测 residual 相似度,证明缓存假设在任务中成立。
REFRESH
刷新周期
报告每 $ au$ 个 chunk 刷新一次的成功率—延迟曲线,而非只挑最快点。
EVENT SHIFT
突变失效
碰撞、抓取、遮挡和人工扰动会让缓存过期,应单独统计恢复时间。
SYSTEM
真实吞吐
GPU kernel、VAE、动作解码和传感器等待不会被缓存全部消除,需端到端计时。

最小可信复现清单

  • 明确缓存张量是每层输出、总 residual 还是 attention,并给出显存占用。
  • full/cached chunk 调度、首轮 warm-up 与 episode reset 规则。
  • 相同硬件、batch=1、相同去噪步数下比较平均值和 P95 延迟。
  • 按任务阶段分析缓存误差,特别是接触前后与快速相机运动。
  • 报告原模型、cache-only、少步采样及二者组合的独立收益。
读完应抓住

C³ache 用闭环相邻时刻的计算相似性换速度;刷新策略实际上是控制稳定性与算力之间的旋钮。