CPT-007
Concept
adaptive layer norm (adaLN)
| id | CPT-007 |
|---|---|
| type | concept |
| name | adaptive layer norm (adaLN) |
| aliases | adaLN, vanilla adaLN, adaptive layer norm |
| defined-by | SRC-2212.09748 |
Definition
DiT 四种 conditioning 设计之一(SRC-2212.09748 §3.2、App. A.5):把标准 transformer block 中的 LayerNorm 替换为自适应 LayerNorm——不直接学习 逐维 scale/shift 参数 γ/β,而是从 timestep t 与 class label c 的嵌入 向量之和回归。block 内两个子块(self-attention 前、MLP 前)各有一组 (γ, β),调制线性层输出 4×hidden(= 2 子块 × 2 参数)。思想承自 adaptive normalization(FiLM,perez2018film)在 GAN(BigGAN/StyleGAN)与 U-Net diffusion backbone(ADM)中的使用。
- 条件来源:t 与 c 的嵌入向量之和(逐元素求和,非拼接、非分别注入)。
- 唯一对所有 token 施加同一函数的条件机制(§3.2 原文):γ/β 只依赖 (t, c),与 token 内容/位置无关,同一逐维仿射广播到全部 token。
- 计算开销为四种设计最低之一(XL/2 实测 118.56G,与 adaLN-Zero 并列)。
- 无残差门控 α、无零初始化 ⇒ block 初始非恒等映射——这是与 adaLN-Zero(CPT-002)的本质差异。
Mechanism
论文对 adaLN 仅作文字描述(Figure 3 图示),未给出显式公式;以下为与 论文描述一致的标准实现重建(unverified,与 CPT-002 的 adaLN-Zero 公式 同构、去掉 α 门控):
设 z = Emb_t(t) + Emb_c(c)(t 经 256 维频率嵌入 + 两层 SiLU MLP 映射到 hidden size d;c 为 d 维 label 嵌入;逐元素求和)。调制参数由单层线性 回归:
(γ₁, β₁, γ₂, β₂) = W·SiLU(z) + b,W ∈ ℝ^{4d×d}
DiT block 为 pre-norm 残差结构,两个子块各有自适应 LayerNorm( elementwise affine 关闭,γ/β 由调制提供):
self-attention 子块:h₁ = h + Attn(γ₁ ⊙ LN(h) + β₁) MLP 子块:h₂ = h₁ + MLP(γ₂ ⊙ LN(h₁) + β₂)
与 adaLN-Zero 的差异在公式层面即为:右侧无 α ⊙ 因子(残差直接相加), 调制输出 4d 而非 6d。参数结构印证(App. A.5):4 = 2 子块 × 2 参数 (γ, β),与 adaLN-Zero 的 6 = 2 × 3 相差的 2d 正是每条残差路径新增的 α 门控。
Design Rationale
- 用条件回归替代可学习常量 γ/β:让归一化统计量随 (t, c) 变化,使条件 信息以最低计算代价注入前向路径——代价是调制只做 token 无关的逐维 仿射("same function to all tokens"),这是它区别于 cross-attention (token 级交互)与 in-context(条件 token 混入序列自注意力)的本质。
- 该机制不是 DiT 首创,而是把 GAN/U-Net diffusion 中成熟的自适应归一化 搬到 transformer LayerNorm 上;DiT 的贡献在于系统对比四种注入方式并 以恒等初始化(adaLN-Zero)补齐其短板。
Cost
- Gflops:四种设计中最低之一(§3.2 "adaLN adds the least Gflops"; XL/2 = 118.56G,与 adaLN-Zero 118.64G 差 0.08G)。调制网络相对 transformer 主体的计算可忽略。
- 参数量:调制输出 4d 本身引入参数(XL/2 下约 74M 相对差值来自 adaLN-Zero 的 6d vs 4d,即 +75M 的来源,见 CPT-002 Cost)。
Empirical Role
- CLM-002 / EVI-002:adaLN 是四种 conditioning 消融的对照之一 (XL/2 @ 400K),FID-50K 25.21,显著劣于 adaLN-Zero 的 19.47;论文 将差距归因于 adaLN 无恒等初始化(Figure 5 推断,非独立消融,单种子)。
- 参数量 600M(Table 4),比 adaLN-Zero 的 675M 少 75M——引用消融数字 时须注意四种设计参数量不同(EVI-002 Caveats)。
Disambiguation
- 与 adaLN-Zero(CPT-002):唯一差异是 α 残差门控 + 调制输出零初始化 (恒等初始)。Gflops 几乎相同(+0.07%),参数量差 75M,质量差显著 (FID 25.21 vs 19.47,CLM-002)。
- 与 FiLM(perez2018film):adaLN 是 FiLM 式条件归一化(回归 γ/β)在 transformer LayerNorm 上的应用;FiLM 用于卷积/RNN,adaLN 施加于 transformer 双子块且以 (t,c) 之和为条件。
- 与 cross-attention / in-context conditioning:四种 conditioning 设计 的另外两种;adaLN 是唯一对全部 token 施加同一函数的机制(其余二者做 token 级或序列级交互),也是算力最省的两种之一。
- 与 DiT(CPT-001):adaLN 是 DiT block 设计轴上的候选实现;论文在 消融后选定 adaLN-Zero(CPT-002),故 DiT 的最终架构不含 vanilla adaLN。
- 与 CFG(CPT-003)、LDM(CPT-006):正交——CFG 是采样端机制, LDM 是训练空间维度,adaLN 是 backbone 内部条件注入。
Notes
- 本卡片是概念规范化:把 adaLN 从 CPT-002 的对照项提升为独立概念对象, 不引入新事实;所有数值与结论仍锚定 CLM-002/EVI-002。
- "无零初始化"是推断:论文未在 adaLN block 段落描述初始化;由 §5 "Initialization is also important——adaLN-Zero ... significantly outperforms vanilla adaLN" 以对照方式隐含 adaLN 无恒等初始化(否则 无法归因),非论文逐字断言。
- Mechanism 公式为重建(unverified),与 CPT-002 的 adaLN-Zero 公式 同构;若未来修订其一,需同步另一张卡片。
- 概念定义域:本卡片覆盖 vanilla adaLN;DiT 之外的 adaptive norm 变体(如其他模型中的 zero-adaLN 衍生)不在本库 scope。
引用(7)
- CLM-002 同 XL/2 与 400K 步预算下,adaLN-Zero 的 FID 19.47 为四种 conditioning 设计最低,且算力最省之一。
- CPT-001 Diffusion Transformer (DiT)
- CPT-002 adaLN-Zero
- CPT-003 classifier-free guidance
- CPT-006 Latent Diffusion Model
- EVI-002 Table 4/Figure 5:XL/2 @400K adaLN-Zero FID 19.47 最低(<adaLN 25.21<cross-attn 26.14<in-context 35.24),排序训练全程保持(支撑 CLM-002)。
- SRC-2212.09748 DiT 原始论文(Peebles & Xie, ICCV 2023):ViT 替换 LDM U-Net backbone,Gflops 视角的 scaling 研究。
被引用(2)
- CPT-002 adaLN-Zero
- FRM-2212.09748 DiT 五层重建:以 ViT 替换 latent diffusion 的 U-Net backbone、Gflops 为透镜的 scaling 研究;边界为 class-cond ImageNet 256/512。