WorldCache: Content-Aware Caching for Accelerated Video World Models

Paper: arXiv:2603.22286 Code: umair1221/WorldCache Code reference: main @ aa8715c2 (2026-03-28)

1. Motivation(研究问题与背景)

这篇论文关注的是一个非常现实的 world model 部署瓶颈:以 Cosmos-Predict2.5、WAN2.1、DreamDojo 这类 DiT-based video world model 为代表的系统,已经能生成较高质量的物理场景 rollout,但推理成本仍然很高。视频扩散模型的采样不是一次前向完成,而是在一串 denoising steps 上反复运行 transformer blocks;每一步还要处理空间、时间、通道耦合的 latent video token。对于真实交互、机器人预测、闭环规划或在线仿真,延迟直接决定系统能不能进入 real-time / near-real-time 使用。

已有训练自由加速方法的核心思路通常是“cache intermediate features”:如果当前 denoising step 与上一个 step 的中间表示变化很小,就跳过一部分深层计算,直接复用之前缓存的 feature 或 residual。DeepCache、FasterCache、DiCache、TeaCache、EasyCache 都在不同模型结构上证明过这种冗余确实存在。问题是,世界模型的视频场景比普通图像/短视频生成更容易被“错误复用”破坏:画面中大面积背景可能几乎不变,但前景行人、机械臂、手、餐盘、接触边界、车辆运动这些局部区域一旦被 stale cache 覆盖,就会出现 ghosting、blur、身份漂移、手物接触不稳定等现象。平均 drift 很小并不等于语义上安全。

WorldCache 把这个失败源概括为 Zero-Order Hold 假设:prior caching 方法在 cache hit 时把历史 feature 当成静态快照,只要全局漂移低于阈值就沿用它。作者认为这对动态世界模型不够,因为真实 latent trajectory 是随 denoising step 和场景运动连续演化的;缓存不是“复制旧结果”,而应该是“在误差受控条件下预测被跳过的深层计算”。因此论文的切入点不是训练一个新模型,也不是减少 denoising steps,而是在固定预训练 world model 和固定采样流程上,重新设计 when to reuse 与 how to reuse。

本文被放入 World Model / Real-Time & Streaming,因为主要贡献是 world model 推理加速与可在线部署的 caching policy,而不是新的视频生成 backbone、机器人策略学习或 3D 表示学习。它的目标读者是已经有 DiT world model、希望降低 latency,同时又不能牺牲动态场景一致性的系统研究者。

Figure 1 解读:teaser 展示了 WorldCache 的目标不是单纯压缩推理时间,而是在 speed-quality frontier 上优于 DiCache 等训练自由缓存方法。最重要的信息是:在运动敏感区域,WorldCache 更倾向于 recompute;在可安全复用区域,它不直接复制旧 feature,而用 motion-aware approximation 近似 skipped computation。

2. Idea(核心思想)

WorldCache 的核心新意可以压缩成一句话:把 diffusion transformer 的 feature caching 从“全局漂移小就复制缓存”改成“由运动、显著性、残差轨迹和 denoising phase 共同约束的动态近似”。这不是一个单独 trick,而是四个互补模块组成的 perception-constrained dynamical caching framework:

  • CFC(Causal Feature Caching) 决定高速运动时要收紧 cache gate,静态区间才放宽 gate。
  • SWD(Saliency-Weighted Drift) 让 drift 估计关注结构复杂、感知上敏感的区域,而不是被大面积背景平均掉。
  • OFA(Optimal Feature Approximation) 在 cache hit 时用 residual trajectory 的最小二乘投影与可选 flow warp 来近似深层输出。
  • ATS(Adaptive Threshold Scheduling) 根据 denoising step 所处阶段逐渐放宽阈值,在后期 detail refinement 阶段获得更多 skip。

直觉上,世界模型中的计算冗余不是均匀分布的。早期 denoising step 决定布局、物体、运动方向,错误复用会放大;后期 step 多是在已有结构上 refine texture,高频局部区域仍要谨慎,但全局可以更激进复用。空间上也类似:天空、墙面、桌面背景变化低,手、工具、行人、车辆等前景区域变化小也不能随便跳过。因此 WorldCache 的“content-aware”不是只做 saliency map,而是同时让 temporal motion、spatial saliency、feature residual direction 与 sampling phase 进入同一个 skip / approximate 逻辑。

与 DiCache 的差异尤其关键。DiCache 已经有 probe-then-cache 与轨迹插值思想,但它主要依赖 L1 residual ratio 估计一个标量 blending coefficient,仍然容易忽略 feature trajectory 的方向变化。WorldCache 的 OFA 用 dot-product projection 估计 gamma,当当前 probe residual 与历史 residual 方向不一致时,投影会自然降低 extrapolation 强度;这比只看 magnitude 更适合对象转向、遮挡和接触变化。

Figure 2 解读:pipeline 中 DiT 被拆成 probe blocks 1...k 与 deep blocks k+1...N。每个 denoising step 先跑浅层 probe,计算 saliency-weighted probe drift;如果 drift 小于由 CFC 与 ATS 得到的动态阈值,就跳过 deep blocks 并通过 OFA 近似最终输出;如果 miss,则正常执行 deep blocks、更新 residual cache 与 ping-pong buffer。

3. Method(方法细节)

3.1 Preliminaries:probe-then-cache 的基本形式

设视频 latent 在 denoising step t 的输入为 ,经过 DiT 的第 N 个 block 后得到 。缓存方法把前 k 个 block 当作 probe blocks,先得到浅层 feature ,再比较它与历史 probe feature 的 drift。若 drift 足够小,说明当前 step 的深层计算很可能与历史相似,于是 deep blocks 可以被跳过。cache miss 时照常运行 deep blocks,并把 deep residual 存起来;cache hit 时用缓存 residual 来近似深层输出。

这个框架的优点是训练自由:不需要重新训练 Cosmos、WAN 或 DreamDojo,也不修改权重。它的风险是 probe signal 与最终误差不完全一致,尤其在视频中全局平均 L1 可能被背景主导。WorldCache 的四个模块基本都围绕这个风险展开:CFC 改阈值,SWD 改 drift,OFA 改 cache-hit 输出,ATS 改不同 denoising phase 的阈值 schedule。

3.2 CFC:motion-adaptive threshold

CFC 的问题是“什么时候复用是安全的”。论文用 raw latent input 的 normalized two-step change 作为 motion proxy: 然后把基础阈值 改成随 motion 收缩的阈值: 大时,分母变大,阈值变小,只有更低的 drift 才能触发 skip;当场景静止时,阈值接近 ,允许更多 cache hit。论文默认配置写为 。这一步的设计意图很明确:宁可在快运动时少跳一点,也不要为了速度把前景物体拖成 ghosting。

代码中对应 Models/Cosmos-Predict2.5/cosmos_predict2/_src/predict2/inference/worldcache_utils.pyworldcache_mini_train_dit_forward:它先运行 self.blocks[0:self.probe_depth],计算 delta_xdelta_y,再用 dynamic_thresh = rel_l1_thresh / (1.0 + alpha * input_velocity) 控制是否 skip。需要注意一个 paper-code gap:论文公式写的是相对 t-2 的 two-step anchor,代码注释与实现用的是当前 input 和 previous_input[current_idx] 的归一化差值;实际 anchor 由缓存状态更新时机决定,不应把代码实现简单等同为严格的论文公式。

3.3 SWD:perception-aware drift

SWD 解决“drift 是否测对了地方”。普通全局 drift 把每个空间位置等权平均,因此大面积背景能掩盖小面积前景错误。WorldCache 从 probe features 的 channel-wise variance / complexity 得到 saliency map: 归一化为 后,把 drift 写成: 最终 skip decision 是: 这让手、边缘、工具、行人、车道线等高 saliency 区域对 gate 更敏感。即使整帧平均变化小,只要显著区域 drift 高,就会触发 recompute。代码中 compute_saliency_map 对 5D features 先 rearrange 成 (B,T*D,H,W),再用 channel standard deviation 估计 saliency 并归一化;这与论文“variance”表述略有差异,但意图一致。worldcache_saliency_weight 在 README quick start 中设置为 1.0,而代码默认值是 5.0,论文表格中的 又是另一套符号尺度,因此复现实验时必须以具体 CLI / config 为准。

Figure 3 解读:saliency overlay 显示黄色区域集中在结构复杂或运动敏感的位置。SWD 的意义不是让这些区域更清晰地可视化,而是让 cache gate 对这些区域的 drift 更“保守”:背景 drift 低可跳过,前景实体略微变化也更可能 recompute。

3.4 OFA:cache-hit 时不复制,而是近似被跳过的深层计算

CFC 与 SWD 只决定是否 cache hit;OFA 负责 hit 之后输出什么。论文先定义 deep residual: 在 cache hit 时,当前 step 没有真正跑完 deep blocks,因此需要从历史 residual 估计当前 deep residual。OFA 的第一个子模块 OSI(Optimal State Interpolation)把问题写成最小二乘投影。令当前 probe-derived partial residual 为 ,构造: 最佳 gain 为: 然后近似输出: 这个投影的直觉是:如果当前 probe residual 与历史 residual 方向一致,就沿着历史轨迹外推;如果方向不一致, 会自动变小,避免沿旧方向过度 extrapolate。代码中 compute_optimal_gamma 将 tensor flatten,计算 dot product 和 norm,再 clamp;论文写 ,代码中 Cosmos 版本实际 clamp 到 [0.2, 1.8],这是另一个需要记录的 paper-code gap。

OFA 的第二个子模块是 motion-compensated feature warping。论文用 latent correlation / Lucas-Kanade 风格的 coarse flow 估计 并将缓存特征 warp 到当前 step: 代码里 estimate_optical_flow 是 PyTorch-native Lucas-Kanade,先灰度化/缩放,再用 Sobel-like gradients、21x21 average pooling 解局部线性系统;warp_featuregrid_sample 做 bilinear warp。WAN 与 DreamDojo 也有各自的 worldcache_utils.py,说明作者不是只在 Cosmos 上做 demo,而是在多个 backbone 上复用了同一套控制逻辑。

3.5 ATS:phase-aware threshold scheduling

ATS 解决 denoising trajectory 不同阶段的差异。早期 high-noise step 是 structure formation,模型建立全局布局和运动方向,缓存错误代价高;后期 low-noise step 是 detail refinement,更新幅度小且更局部,适合更多复用。论文给出概念形式: 这表示越到后期阈值越宽松。论文默认 ,并在补充材料中说明实际实现使用 quadratic threshold decay;Cosmos 代码里对应 worldcache_dynamic_decay,使用 base_mult=(u**2)/6 + u/2 + 10/3step_ratio=self.cnt/num_steps 形成 decay_factor=1+base_mult*step_ratio。因此读论文公式时要把它理解为机制说明,而不是逐字符等同于 release code。

Figure 4 解读:ATS 的作用是在后期 step 释放更多 cache hit。没有 ATS 时,阈值策略可能对后期过于保守;加入 ATS 后,WorldCache 在保持结构不崩的前提下增加 late-stage reuse,这也是它能突破 DiCache 速度上限的重要原因。

3.6 实际执行伪代码(基于 main@aa8715c2 代码)

def worldcache_forward(x, timestep, blocks, cache):
    idx = timestep % 2
    test_x = x
    skip_forward = False
 
    if cache.ready and current_step >= num_steps * ret_ratio:
        # probe stage
        for block in blocks[:probe_depth]:
            test_x = block(test_x, timestep)
 
        delta_x = mean(abs(x - cache.previous_input[idx])) / mean(abs(cache.previous_input[idx]))
        delta_y = mean(abs(test_x - cache.previous_internal_states[idx])) / mean(abs(cache.previous_internal_states[idx]))
 
        if saliency_enabled:
            saliency = compute_saliency_map(cache.previous_internal_states[idx])
            diff_map = mean_over_time_and_channels(abs(test_x - cache.previous_internal_states[idx]))
            delta_y = mean(diff_map * (1 + saliency_weight * saliency)) / mean(abs(cache.previous_internal_states[idx]))
 
        threshold = rel_l1_thresh / (1 + motion_sensitivity * delta_x)
        if dynamic_decay:
            threshold *= quadratic_decay(current_step, num_steps)
 
        cache.accumulated_drift[idx] += delta_y
        if cache.accumulated_drift[idx] < threshold:
            skip_forward = True
 
    if skip_forward:
        residual = cache.residual_cache[idx]
        if osi_enabled and len(cache.residual_window[idx]) >= 2:
            gamma = compute_optimal_gamma(current_probe_delta, previous_probe_delta)
            residual = residual_t_minus_2 + gamma * (residual_t_minus_1 - residual_t_minus_2)
        if flow_enabled:
            flow = estimate_optical_flow(cache.previous_input[idx], x, scale_factor=flow_scale)
            residual = warp_feature(residual, flow)
        out = x + residual
    else:
        if cache.resume_flag[idx]:
            out = run(blocks[probe_depth:], start=test_x)
        else:
            out = run(blocks, start=x)
        cache.update(idx, input=x, probe=test_x, output=out, residual=out - x)
 
    return out

3.7 Code mapping

Paper ConceptSource FileKey Class/Function
Cosmos patch入口与运行状态Models/Cosmos-Predict2.5/cosmos_predict2/_src/predict2/inference/worldcache_utils.pyapply_worldcache, worldcache_mini_train_dit_forward
CFC / SWD skip decisionModels/Cosmos-Predict2.5/cosmos_predict2/_src/predict2/inference/worldcache_utils.pydelta_x, delta_y, worldcache_motion_sensitivity, worldcache_saliency_enabled branches
OFA / OSIModels/Cosmos-Predict2.5/cosmos_predict2/_src/predict2/inference/worldcache_utils.pycompute_optimal_gamma, residual_window, probe_residual_window
Motion-compensated warpingModels/Cosmos-Predict2.5/cosmos_predict2/_src/predict2/inference/worldcache_utils.pyestimate_optical_flow, warp_feature
Cosmos CLI wiringModels/Cosmos-Predict2.5/cosmos_predict2/inference.pypasses worldcache_* args into inference config
Cosmos config defaultsModels/Cosmos-Predict2.5/cosmos_predict2/config.pyworldcache_enabled, worldcache_num_steps, worldcache_rel_l1_thresh, worldcache_probe_depth
WAN transfer implementationModels/WAN2.1/worldcache_utils.pysame function family plus compute_hf_drift
DreamDojo transfer implementationModels/DreamDojo/worldcache_utils.pysame function family plus action embedding helper
User-facing launch exampleREADME.mdQuick Start flags for Text2World / Image2World

4. Experiments(实验与结果)

4.1 Setup

实验覆盖三个 backbone:Cosmos-Predict2.5(2B/14B)、WAN2.1(1.3B/14B)和 DreamDojo(2B)。PAI-Bench 用于物理与语义质量评估,区分 Domain Score、Quality Score 与 Overall Score;EgoDex-Eval 用于机器人 egocentric manipulation rollout,报告 PSNR、SSIM、LPIPS、Latency、Speedup。论文说明主要推理实验在单张 NVIDIA H200 140GB 上运行;PAI-Bench 的 Domain score 由于使用 Qwen3-VL235B-A22B-Instruct 作为 judge,需要 4 张 H200 140GB。

默认 WorldCache pipeline 包含 CFC、SWD、OFA、ATS。论文文字给出 ,但 release code 的默认 config 与 README quick start 存在尺度差异:config.py 默认 worldcache_rel_l1_thresh=0.06worldcache_probe_depth=2worldcache_motion_sensitivity=5.0worldcache_saliency_weight=5.0;README launch 示例显式传入 --worldcache_motion_sensitivity 2.0--worldcache_flow_scale 2.0--worldcache_saliency_weight 1.0--worldcache_dynamic_decay。因此实验复现必须保存完整命令行,而不能只写论文超参。

4.2 Cosmos-Predict2.5 on PAI-Bench

主结果显示 WorldCache 的核心优势是延迟下降显著,同时 overall score 接近 baseline。Cosmos 2B 的 Text2World 中,Baseline overall 为 0.748,latency 54.34s;DiCache 是 0.743 / 40.82s / 1.3x;WorldCache 是 0.745 / 26.28s / 2.1x。它比 DiCache 快很多,同时 overall 还略高。Cosmos 2B 的 Image2World 是论文摘要强调的 headline:Baseline overall 0.803,latency 55.04s;WorldCache overall 0.798,latency 24.48s,speedup 2.30x,保留约 99.4% 的 baseline quality。

在 14B scale 上,WorldCache 仍然有效。项目页和表格总结给出 Cosmos 14B Text2World latency 从约 216.25s 降到 98.61s,speedup 2.14x,overall 0.771 接近或略高于 baseline 0.769;Image2World latency 从 210.07s 降到 99.25s,speedup 2.18x,overall 0.813 对比 baseline 0.814。这个结果说明 WorldCache 的收益不是只来自小模型或低分辨率场景,而是在大模型上仍然能跳过大量深层计算。

Figure 5 解读:qualitative comparison 的重点是 DiCache 在动态/交互区域容易产生 temporal instability,而 WorldCache 更接近 baseline。对 world model 来说,这种局部稳定性比单帧美观更重要,因为 rollout 后续可能被 planner 或 evaluator 使用。

4.3 Transfer to WAN2.1 and DreamDojo / EgoDex

WAN2.1 transfer 证明方法不是 Cosmos 特化。WAN2.1-1.3B 的 T2W 设置中,Baseline latency 为 120.04s,DiCache 为 61.57s / 1.96x,WorldCache 为 50.84s / 2.36x;overall 从 DiCache 的 0.7703 提升到 WorldCache 的 0.7721,接近 baseline 0.7727。WAN2.1-14B 的 I2W 设置中,Baseline latency 为 475.60s,DiCache 为 291.91s / 1.53x,WorldCache 为 206.73s / 2.31x;WorldCache overall 0.7388,基本追平甚至略高于 baseline 0.7384。

EgoDex-Eval 的意义是看机器人 rollout 中的 frame-level fidelity。WAN2.1-14B 上,WorldCache 达到 PSNR 13.19、SSIM 0.498、LPIPS 0.460、latency 171.6s、speedup 2.30x,而 DiCache 是 12.95 / 0.491 / 0.461 / 208.6s / 1.88x。Cosmos-2.5-2B 上,WorldCache latency 43.24s、speedup 1.62x,LPIPS 0.518 与 baseline 一致,SSIM 0.466 甚至高于 baseline 0.455。DreamDojo-2B 上,WorldCache PSNR 23.69、latency 10.36s、speedup 1.90x;相比 DiCache,WorldCache 的 PSNR/SSIM 更接近 baseline,说明对机器人场景的接触与局部结构更友好。

Figure 6 解读:Cosmos-2B driving scene 展示了 DiCache 在行人外观和位置上出现不稳定,而 WorldCache 能保持更连贯的 pedestrian identity 与 motion。这个例子对应论文对“salient moving entities”的失败模式分析。

Figure 7 解读:Cosmos-14B kitchen scene 中,手、盘子、食物边界是最容易受缓存错误影响的高频区域。WorldCache 通过 SWD 与 OFA 减少了 DiCache 的局部扭曲和边缘 wobble。

4.4 Ablations and step-budget scaling

增量消融揭示了四个模块的分工。Cosmos-Predict2.5-2B I2W 上,+CFC 的 overall 是 0.8020,speedup 1.52x;+CFC+SWD 的 overall 0.8003,speedup 1.67x;+CFC+SWD+OFA 的 overall 0.8035,speedup 1.49x;完整 +CFC+SWD+OFA+ATS 即 WorldCache,overall 0.7977,但 speedup 提升到 2.3x、latency 约 25s。这个结果说明 OFA 对质量很关键,而 ATS 主要把速度拉上去;完整系统在质量与速度之间做了更激进但仍接近 baseline 的折中。

与 EasyCache / TeaCache 的补充比较也说明 WorldCache 的优势主要在速度:Cosmos-2B T2W 上,Baseline 54.34s,EasyCache 41.41s,DiCache 40.82s,TeaCache Fast 41.07s,WorldCache 26.28s;I2W 上,Baseline 55.04s,EasyCache 40.25s,DiCache 39.68s,TeaCache Fast 41.00s,WorldCache 24.48s。WorldCache 的 score 与这些方法相近,但 latency 明显更低。

Figure 8 解读:step budget ablation 表明 denoising steps 越多,缓存机会越多。补充材料写 baseline latency 从 35 steps 的 57.0s 增加到 140 steps 的 199.1s;WorldCache 对应 latencies 是 25.0s、34.2s、45.5s、66.0s,最大 speedup 在 70–140 steps 区间达到 3.10x。这说明 WorldCache 对长轨迹采样更有价值。

Figure 9 解读:额外机器人场景展示 WorldCache 在 cluttered / contact-rich manipulation 中能维持较稳定的局部结构。它补充了 EgoDex 的 PSNR/SSIM/LPIPS 数字:指标接近只是必要条件,真正重要的是高 saliency 区域不会出现明显 temporal break。

Figure 10 解读:该图进一步说明 WorldCache 的收益主要体现在长 rollout 中的局部一致性,而不是只在第一两个 frame 上看起来接近 baseline。对下游控制来说,这类局部稳定性会影响状态估计和动作规划。

5. Reproduction, Limitations, and Takeaways(复现、局限与启发)

5.1 复现要点

代码仓库是 umair1221/WorldCache,本笔记锚定 main@aa8715c2。仓库把三个 backbone 放在 Models/ 下,Cosmos 的接入点最完整。README 的 quick start 使用:

CUDA_VISIBLE_DEVICES=0 python Models/Cosmos-Predict2.5/examples/inference.py \
  -i Models/Cosmos-Predict2.5/path/to/prompt.json \
  -o outputs/worldcache_output \
  --inference-type=image2world \
  --model 2B/post-trained \
  --disable-guardrails \
  --worldcache_enabled \
  --worldcache_motion_sensitivity 2.0 \
  --worldcache_flow_enabled \
  --worldcache_flow_scale 2.0 \
  --worldcache_osi_enabled \
  --worldcache_saliency_enabled \
  --worldcache_saliency_weight 1.0 \
  --worldcache_dynamic_decay

如果要做严格复现,我会把 rel_l1_threshprobe_depthnum_stepsret_ratioflow_scalesaliency_weight 都显式写进命令或 config,而不要依赖默认值。原因是论文默认超参、README 示例、config.py 默认值、apply_worldcache 函数默认值之间并不完全一致。尤其是阈值和 saliency weight 的尺度会直接影响 cache hit rate,进而改变 latency 与质量。

5.2 论文-代码差异记录

第一,CFC 公式写 two-step velocity,即对比 ;Cosmos 代码中 delta_x 直接对比当前输入与 previous_input[current_idx],并由缓存更新逻辑决定该 previous input 的语义。第二,SWD 公式用 channel-wise variance,代码的 compute_saliency_map 用 channel standard deviation。第三,论文中 clamp 到 \gamma_{\max}=2$,Cosmos code 实际 torch.clamp(gamma, 0.2, 1.8)。第四,ATS 论文主文是线性 relaxation,补充与代码实际是 quadratic decay factor。第五,论文默认超参和代码/README 默认不完全一致。以上差异不一定是错误,但在写复现实验或迁移到新 backbone 时必须明确记录。

5.3 局限

论文自己承认 WorldCache 是 training-free inference method,因此它的安全性来自启发式 constraints,而不是学到的误差预测器。极端 abrupt scene changes、rapid viewpoint jumps、heavy occlusions 会降低 cache hit rate;如果仍强行提高阈值,可能重新出现 ghosting 或局部错位。OFA 的 warping 也依赖轻量 motion estimation,在高速遮挡、非刚体接触、强透视变化下不一定可靠。另一个局限是评估主要是感知质量与延迟;对于真正 closed-loop planning,应该进一步测 downstream control success、collision rate、state estimation error,而不仅是 PAI-Bench 或 EgoDex 的视觉指标。

Figure 11 解读:这组 qualitative 也提示了方法的边界:WorldCache 仍然是靠更聪明的 skip / approximation 靠近 baseline,而不是产生比 baseline 更好的 world model。如果 baseline 本身在手、物体几何或长时物理上失败,WorldCache 只能尽量不额外破坏它。

5.4 Takeaways

对世界模型加速来说,WorldCache 的启发是:缓存策略必须理解“哪里重要”和“什么时候安全”。单个全局 drift 阈值容易在动态场景失效;只复制历史 feature 又无法处理 trajectory direction change。CFC、SWD、OFA、ATS 分别对应 motion、spatial saliency、residual dynamics、denoising phase 四个维度,组合后把训练自由 caching 推到了更实用的 speed-quality frontier。

如果把它迁移到其他 video DiT,我会优先做三件事:第一,记录每层/每 step 的 cache hit rate 与局部误差热图,确认 gate 没有被背景主导;第二,显式保存所有 worldcache flags,避免默认值漂移;第三,把 saliency 和 flow 模块做成可插拔诊断项,因为不同 backbone 的 latent channel 统计和 motion geometry 可能差别很大。WorldCache 不是最终答案,但它给出了一个清晰方向:未来的 real-time world model 不应只靠更少 steps 或更小模型,也可以通过 perception-aware compute allocation 把计算集中在真正会影响 rollout 的位置。