Rethinking Cross-Layer Information Routing in Diffusion Transformers

Paper: arXiv:2605.20708 Code search: 代码搜索未找到开源实现(已检查 arXiv HTML/LaTeX source 中的链接,并检索 exact title、Diffusion-Adaptive RoutingAlibaba / LAMDA / 作者名 + GitHub;pixelhero98/LLapDiffusion 是无关的 time-series diffusion 仓库)

1. Motivation (研究动机)

Diffusion Transformer (DiT) 已经成为视觉生成模型的主干,但过去的架构改进主要集中在 tokenization、attention、conditioning、training objective、latent autoencoder 或 U-Net-like skip connection。本文指出一个更底层、但长期被默认继承的设计没有被系统研究:跨层信息如何沿 Transformer depth 累积与回流。标准 DiT 直接沿用原始 Transformer / PreNorm Transformer 的 residual addition,把所有历史 sublayer 输出以单位权重累加到 residual stream 里;这个设计在 LLM 中已经被讨论过会导致 PreNorm dilution,但在 diffusion 中还多了一个 denoising timestep 维度,使得“哪些层的表示在当前噪声水平最有用”本来就应该随 变化。

本文要解决的具体问题不是提出一个新的 loss,而是重新设计 DiT 中的 residual routing:让每一层在给定 depth 与 denoising timestep 时,能够从历史 sublayer outputs 中学习性、非均匀、可随 timestep 改变地选择信息源,而不是固定地把所有旧信息等权相加。作者首先对 SiT-XL/2 的标准 residual stream 做诊断,发现三个同时随深度变严重的症状:forward hidden-state magnitude 单调膨胀、backward gradient magnitude 快速衰减、相邻 block output 高度相似。

这个问题值得研究的原因在于:如果 residual stream 本身导致深层 block 的有效贡献被稀释,那么继续只改 objective 或加额外 representation alignment 可能是在“受限的信息高速公路”上优化。一个可扩展的 routing 机制如果能保持 DiT 的 homogeneous / isotropic stack,同时按 timestep 动态选择历史特征,就可能同时改善训练速度、最终 FID、与后训练蒸馏中的细节保真度,并且与 REPA 这类 objective-level 方法互补。

Figure 1 解读:左侧展示在 Qwen-Image + DMD post-training 中,标准蒸馏更容易丢失高频细节(例如毛发、羽毛、边缘纹理),而 DAR 版本保留更清晰的局部结构;右侧给出 ImageNet 上的 FID training curves,说明 DAR 不只是改善最终点,而是在训练早期就显著加快收敛。这个图把本文的两个主张放在一起:cross-layer routing 是预训练阶段的训练效率问题,也是大模型后训练阶段的细节保真问题。

2. Idea (核心思想)

核心洞察:标准 residual addition 其实已经是一种最简单的 cross-layer routing,只是它把所有历史 source 的权重固定为 ;对于 diffusion denoising,这种 time-agnostic routing 与噪声水平变化不匹配。DAR 的新意是把 residual stream 从“累加器”改成“沿 depth 的 attention router”:当前 sublayer 根据 query 对历史 sublayer outputs 做 softmax aggregation,从而学习在不同 和不同 depth 下应该取回哪些表示。

关键创新可以概括为三点:第一,提出 Diffusion-Adaptive Routing (DAR),用 learnable softmax routing 替换固定 residual addition;第二,为 DiT 设计了 static、explicit timestep injection、dynamic 三种 query 参数化,其中 dynamic query 从 中隐式读取 timestep signal;第三,为了让 vertical aggregation 可扩展,提出 chunked aggregation 与 fused Triton implementation,把所有历史 source 的线性增长成本压缩到 级别。

它与 U-ViT / U-DiT 这类 U-Net-like skip routing 的本质区别是:U-Net-like 方法预先指定浅层和深层如何连接,融合位置和权重基本是固定拓扑;DAR 不引入手工配对的 encoder-decoder 结构,而是在保持 DiT homogeneous stack 的前提下,让每个 sublayer 自己对历史 source 做 timestep-adaptive routing。因此 DAR 更像把 residual path 本身参数化,而不是在主干外侧再焊接几条 skip connection。

3. Method (方法)

3.1 诊断:标准 residual stream 的三类症状

作者在 vanilla SiT-XL/2 baseline 和 DAR-static chunk size 上做诊断;两者都取 training iterations 的 checkpoint,在 个 ImageNet samples 上计算。对第 个 Transformer block output ,记录三类统计量:

  • Forward magnitude,看 residual stream 在 depth 上是否膨胀。
  • Backward gradient magnitude,其中 是 SiT 的 velocity-prediction MSE。
  • Block similarity,对 batch 与 token 求平均,衡量相邻 block 输出是否冗余。

Figure 2 解读:蓝色标准 residual baseline 的 hidden-state RMS 从 block 1 约 增长到 block 28 约 ,接近 inflation;梯度在前五个 block 后快速掉到接近零,说明深层 block 的优化信号更弱;相邻 block 的 per-token cosine similarity 长期高于 ,说明深层 representation 有明显重复。红色 DAR 曲线缓和这些症状,说明问题不是单纯由 diffusion loss 造成,而与 residual routing 机制本身相关。

进一步地,作者把 timestep 维度也纳入分析。对 DAR,softmax routing weights 可以直接读出;对无 router 的 SiT baseline,作者在历史 residual sources 上挂 measurement-only scalar gates(初始化为 ,forward 不变),用 denoising loss 对这些 gate 的梯度作为“如果 baseline 有 router,它会想如何重权重历史 source”的 counterfactual importance。

Figure 3 解读:baseline 的 counterfactual importance map 已经会随 denoising timestep 变化,高噪声和低噪声阶段偏好的历史 source 不同;DAR 的 learned weights 则把这种隐含需求显式参数化。图中浅层和深层位置都呈现 timestep-dependent source preference,这支持了本文的关键判断:DiT 的 residual routing 不应该是固定、time-agnostic、uniform-weighted 的。

3.2 Cross-layer routing 统一视角

把每个 self-attention 或 MLP sublayer 记为一个变换 ,标准 DiT 的 residual routing 是: 展开后得到: 这说明标准 residual stream 并非“没有 routing”,而是把所有历史 outputs 都以单位系数写入同一个 stream。它的问题是:当前层无法决定在某个 denoising stage 需要取回浅层 coarse structure、低层 texture、还是近期 block 的 refined signal;所有信息都只能以固定权重混合。

U-Net-like skip routing 可以写成在某个 deep layer 额外使用浅层 representation,例如把 concatenate 或 add,但这些连接通常是人为指定的 layer pairing,且 fusion 权重不随 timestep 改变。DAR 的设计目标就是避免手工拓扑,同时让 depth-wise aggregation 可学习、可随 改变、且不再是 incremental sum。

3.3 Diffusion-Adaptive Routing (DAR)

DAR 令 表示第 个 sublayer 的输出,并把输入 embedding 记作 。对第 个 sublayer,DAR 不再使用 ,而是对历史 source 做 softmax-weighted aggregation: 其中 是 source key,softmax 在 上计算。聚合后的 再进入当前 sublayer: 直觉上,DAR 把 residual stream 从一个不可控的历史累加器,变成了一个沿 depth 的 memory retrieval:每个 sublayer 在使用 attention / MLP 前,先问“当前 timestep 下,我最应该读哪些历史表示”。由于 query 可含 timestep 信息,它可以在高噪声阶段偏向结构性 coarse features,在低噪声阶段偏向细节或近期 refinement;由于 aggregation 是 softmax,它还可以抑制冗余 source,减少 block-wise representation 重复。

Figure 4 解读:图中对比了标准 residual、U-Net-like skip 与 DAR。标准 residual 是单一路径的逐层累加;U-Net-like skip 在预设层之间连线;DAR 则把每层之前的 source 暴露为一个可 attention 的集合,由当前 layer query 选择加权组合。这个图强调 DAR 是 residual replacement,而不是额外加一个并行分支。

3.4 Query 参数化与 timestep awareness

DAR 的 query 有两种基础形式: 其中 是 layer-specific learnable vector, 是 layer-specific projection。static 版本本身不读当前输入,因此默认 time-independent;dynamic 版本从 生成 query,而 已经通过 noised input 和 DiT 的 adaLN-Zero conditioning pathway 携带 timestep 信息。

作者还测试 explicit timestep injection:用 DiT 已有的 -embedder 产生 ,令 。这个注入不增加额外参数;由于 -embedder 最后一层 zero-initialized,初始时 ,模型从 pure static 版本开始,再逐步学习 timestep dependence。

Figure 5 解读:作者冻结 DAR-Dynamic checkpoint,扫过 uniform grid 的 ,固定 image-noise pairs,收集 router 输入的 aggregated hidden states ,再用 ridge regressor 线性解码 scalar timestep 。attention 和 MLP aggregator inputs 在所有 depth 上都明显高于 raw input latents baseline(约 ),前五个 block 内超过 ,深层接近 。这说明 dynamic query 的输入确实线性可解码出强 timestep signal,不需要额外显式条件也能实现 timestep-aware routing。

3.5 Chunked aggregation 与成本模型

完整 DAR 若保留所有 个 source vectors,activation footprint 会随 depth 线性增长。为降低成本,作者把 个 sublayers 分成 个 chunks,每个 chunk 大小 ;第 个 chunk 用最后一个 sublayer output 表示: 对位于 chunk 内的 sublayer ,source set 改为: 这样 softmax 最多只在 个 source 上计算,把 source memory 从 降到 。chunk size 不是越小越好:如果 太小,source slots 多,routing softmax 更分散;如果 太大,chunk summary 压缩太强,信息损失大。作者用一个 rate-distortion 风格的模型写出 per-aggregator cost: 并证明它在 处有唯一最小值。这里原公式中的 表示 chunk 压缩损失的折扣因子;结论是 cost 关于 呈 U-shape,所以需要中等 chunk size。实验中 最好。

3.6 Final aggregator 与 fused Triton kernel

Appendix 还补充了两个实现细节。第一,final aggregator 不只访问 prior chunk summaries,也访问最后一个 chunk 的所有 raw sublayer outputs: 理由是最后几个 sublayer outputs 更接近 prediction head,携带更多 task-specific signal;如果把它们也压成一个 summary,最终预测层可能丢失细粒度信息。

第二,naive DAR 会把 per-source RMSNorm、query-key dot product、softmax、weighted sum 分成多个 CUDA kernels,并 materialize 中间张量。作者实现 fused Triton kernel,把这些步骤和后续 LayerNorm / adaLN modulate 合并;在 SiT-XL/2 working point 上,dynamic variant 的 forward latency 从 ms 降到 ms(),backward 从 ms 降到 ms(),forward peak activation memory 降

Figure 6 解读:左图显示 fused Triton implementation 相比 naive implementation 的 latency speedup 随 routed sources 数 增大而更明显;右图显示 dynamic/static 变体在 forward/backward 中的 activation-memory saving。这个基础设施结果说明 DAR 的主要瓶颈不是理论上不可避免的,而是可以通过 kernel fusion 变成可插拔模块。

3.7 论文公式伪代码(无 released code)

代码搜索未找到开源实现,因此下面的伪代码只根据论文公式与 Appendix 描述整理,不是 released repository 的逐行映射。

import torch
import torch.nn.functional as F
 
 
def rms_norm(x, eps=1e-6):
    return x * torch.rsqrt(x.pow(2).mean(dim=-1, keepdim=True) + eps)
 
 
def dar_aggregate(sources, query):
    # sources: list of tensors [B, T, D], query: [B, T, D] or broadcastable [D]
    keys = torch.stack([rms_norm(v) for v in sources], dim=1)  # [B, N, T, D]
    vals = torch.stack(sources, dim=1)                         # [B, N, T, D]
    q = query.unsqueeze(1) if query.dim() == 3 else query.view(1, 1, 1, -1)
    logits = (q * keys).sum(dim=-1) / (keys.shape[-1] ** 0.5)  # [B, N, T]
    alpha = torch.softmax(logits, dim=1).unsqueeze(-1)         # [B, N, T, 1]
    return (alpha * vals).sum(dim=1), alpha
def make_chunked_sources(outputs, layer_index, chunk_size):
    # outputs[0] is v_0=h_0, outputs[i] is v_i; layer_index is l.
    n = layer_index // chunk_size
    prior_summaries = []
    for chunk_id in range(n):
        prior_summaries.append(outputs[(chunk_id + 1) * chunk_size])
    start = max(0, (n - 1) * chunk_size + 1)
    intra_chunk = outputs[start:layer_index]
    return prior_summaries + intra_chunk
class DARQuery:
    def __init__(self, dim, mode="dynamic"):
        self.mode = mode
        self.w = torch.nn.Parameter(torch.zeros(dim))
        self.proj = torch.nn.Linear(dim, dim, bias=False)
 
    def __call__(self, prev_output, timestep_embed=None):
        if self.mode == "static":
            return self.w
        if self.mode == "static_with_t":
            return self.w + timestep_embed
        if self.mode == "dynamic":
            return self.proj(prev_output)
        raise ValueError(self.mode)
def dar_dit_forward(input_tokens, sublayers, queries, chunk_size, timestep_embed):
    outputs = [input_tokens]  # v_0
    alphas = []
    for l, layer in enumerate(sublayers, start=1):
        sources = make_chunked_sources(outputs, l, chunk_size)
        query = queries[l](outputs[-1], timestep_embed)
        h_l, alpha_l = dar_aggregate(sources, query)
        v_l = layer(h_l, timestep_embed)
        outputs.append(v_l)
        alphas.append(alpha_l)
    final_sources = make_chunked_sources(outputs, len(sublayers), chunk_size)
    final_h, _ = dar_aggregate(final_sources, queries["final"](outputs[-1], timestep_embed))
    return final_h, alphas

3.8 Code-to-paper mapping

代码搜索未找到开源实现,因此没有可复现的 github_ref、source files/classes 或 section-level code-to-paper mapping table。本文的训练配置数字均来自 arXiv PDF / LaTeX source,而非 released launch script;若未来作者发布官方实现,应补充 commit anchor,并检查论文公式与 released code 是否存在差异。

4. Experimental Setup (实验设置)

4.1 数据集与模型

主实验使用 ImageNet-1K,在 resolution 上训练与评估;ImageNet-1K 标准训练集规模约 M images,评估按 diffusion 论文惯例生成 samples 计算 metrics。作者主要比较 SiT-XL/2 baseline 与 DAR 插入后的 SiT-XL/2;SiT-XL/2 在表中为 M parameters, 个 Transformer blocks。U-Net-like routing 对照包括 U-ViT-H/2 与 U-DiT-L;objective-level acceleration 对照包括 REPA。

大规模 T2I post-training 部分把 DAR 插入 Qwen-Image 的 MM-DiT backbone,并用 Distribution Matching Distillation (DMD) 做后训练;论文未详细说明该 DMD 实验使用的 text-image dataset 或 prompt set 规模,只报告了 LoRA / DMD 的训练配置和可视化结果。

4.2 Baselines 与 metrics

对比方法包括 DiT、DiT、SiT、SiT、SiT-Plus、U-ViT-H/2、U-DiT-L、SiT + REPA,以及本文的 DAR static c4 / dynamic c4。评价指标包括 FID(越低越好,分布距离)、sFID(spatial FID,越低越好)、IS(Inception Score,越高越好)、precision 与 recall;所有指标用 generated samples 计算。CFG 实验使用 classifier-free guidance,论文表中说明 guidance weight

4.3 训练配置

ImageNet experiments 遵循 SiT recipe:global batch size ,learning rate ,bfloat16 mixed precision;除明确说明外,所有模型使用相同 optimization 与 data-processing settings。REPA 组合实验采用原始 REPA 配置:pretrained visual encoder 为 DINOv2-B,representation-alignment coefficient 为 ,alignment loss 施加在第 层 hidden representation。计算资源为 NVIDIA H20 GPUs,机器侧有 CPU cores 与 GB system memory;DAR-static-c4 每 training step 约 秒。

DMD post-training 配置:Qwen-Image + DAR,LoRA rank ;student branch learning rate ,fake branch learning rate ;distillation 使用 denoising steps、guidance scale ;训练 resolution 为 ,bfloat16 mixed precision,per-GPU batch size 为

5. Experimental Results (实验结果)

5.1 ImageNet 主结果:质量与收敛速度

无 guidance 的关键结果如下(FID/sFID 越低越好,IS/precision/recall 越高越好):

MethodItersParamsFIDsFIDISPrec.Rec.
SiT1.75M675M9.676.40124.10.660.68
SiT1.75M675M8.616.32131.70.680.67
U-DiT-L250K810M7.545.27135.50.700.66
DAR static c4600K675M7.565.18131.10.690.68
DAR static c4600K675M6.925.27138.80.700.67
DAR dynamic c4500K751M8.075.07129.00.680.69
DAR dynamic c4500K751M7.395.20134.70.710.67

带 CFG 的关键结果:

MethodItersParamsFIDsFIDISPrec.Rec.
SiT1.75M675M2.154.60258.10.810.60
SiT1.75M675M2.064.49270.30.820.59
U-ViT-H/2500K585M2.295.68263.90.820.57
U-DiT-L250K810M3.004.40286.60.860.52
DAR static c4600K675M2.084.42272.90.830.61
DAR static c4600K675M2.234.49287.00.840.57
DAR dynamic c4500K751M2.054.39270.10.820.60
DAR dynamic c4500K751M2.174.49284.80.830.57

作者强调两点:第一,在 matched SiT-XL/2 ODE 设置下,DAR static c4 用 iterations 达到 FID ,相比 baseline iterations 的 改善 FID,并且以约 更少 iterations 匹配 baseline converged quality。第二,DAR 不是 U-Net-like skip 的简单复刻:在 SDE + CFG 下,DAR static c4 的 FID 比 U-DiT-L 的 ,参数量也只有 ;在 ODE + CFG 下,DAR dynamic c4 的 比 U-ViT-H/2 的

5.2 Timestep awareness 与 REPA 互补性

Timestep awareness ablation(FID↓)显示,如果 static query 完全不注入 ,训练显著更慢;dynamic 与 explicit injection 都明显更好:

Method100K200K400K
Static w/o -injection22.3615.4711.51
Dynamic13.959.298.10
Static w/ -injection17.3910.127.97

这组结果说明 DAR 的收益核心不是“多了一些参数”,而是 router 是否能感知 denoising timestep。Dynamic 在 100K/200K 更快,explicit injection 在 400K 略低到 ,两者都远优于 time-agnostic static。

REPA 组合实验(FID↓)如下:

Method100K200K300K
SiT + REPA9.896.896.29
DAR + REPA7.095.925.68

REPA 是 representation-alignment objective,不改变 residual pathway;DAR 是 routing mechanism,不直接引入外部 visual encoder alignment。两者叠加后在 100K 从 降到 ,在 300K 从 降到 ,说明 gains 大体互补而非完全重叠。

5.3 Chunk size 与 infrastructure

Chunk-size ablation(FID↓ / IS↑)在 上显示 最好:

Chunk size148
FID↓10.418.3911.14
IS↑107.2121.7103.51

这与 U-shaped cost 分析一致: 几乎不给 intra-chunk history,routing slots 多但表示太碎; 压缩太强,chunk summary 损失变大; 在 routing precision 与 summary distortion 之间平衡较好。

5.4 大规模 T2I 后训练与局限

DMD post-training 的可视化结果说明,DAR 对 Qwen-Image 这类 MM-DiT backbone 也有帮助:在 denoising steps、guidance scale 的 DMD 设置下,DAR 版本更能保留高频细节。论文没有给出该部分的完整定量表格,因此这部分证据主要是 qualitative visualization。

作者列出的主要局限与未来方向有两类。预训练侧,DAR 还需要在数十亿参数、明显更深的 MM-DiT / video-DiT backbone 上系统验证;由于 PreNorm dilution 症状可能随 depth 加重,作者预计更深模型可能有更大收益,但论文尚未实证。后训练侧,DMD 结果提示 DAR 能帮助细节保真,但还缺少大规模、多 prompt、多指标的定量评估。整体结论是:cross-layer routing 是一个与 objective、autoencoder、attention design 互补的 DiT architecture axis;DAR 证明了把 residual stream 显式参数化可以同时改善训练效率、最终质量与后训练细节保持。