adaLN是指自适应层归一化(Adaptive Layer Normalization),它是一种在生成模型中注入条件信息的方法。具体来说,adaLN通过一个MLP从条件嵌入(如时间步和类别标签)中回归出缩放系数和偏移系数,这些系数用于调整层的输出。 这种方法不仅允许条件信息的灵活注入,还能保持模型的计算效率。在DiT模型中,adaLN被用作一种高效的条件注入方式,相比其他方法,它对模型的计算量影响最小,仅增加27%的参数量。通过将adaLN应用于每个DiT block,模型能够更好地利用条件信息,同时保持结构的简洁和计算的高效性。
AdaLN(Adaptive Layer Normalization)是一种动态调整归一化参数的条件注入技术,在扩散模型中用于融合时间步、类别标签或文本描述等条件信息。其核心原理与在模型中的位置如下:
🔧 一、AdaLN 的核心原理
1. 基础:Layer Normalization (LN)
传统LN对输入特征进行标准化: $$\text{LN}(x) = \gamma \left( \frac{x - \mu}{\sigma} \right) + \beta$$ 其中:
- $\mu, \sigma$:输入特征的均值和标准差
- $\gamma, \beta$:固定的缩放(scale)和偏移(shift)参数
2. AdaLN 的动态调整
AdaLN 将 $\gamma$ 和 $\beta$ 替换为由条件信息动态生成的参数: $$\text{AdaLN}(x; c) = \gamma_c \left( \frac{x - \mu}{\sigma} \right) + \beta_c$$ 其中:
- $c$:条件信息(如时间步嵌入 $t$ 或文本嵌入 $c$)
- $\gamma_c, \beta_c$:通过小型神经网络(如MLP)从 $c$ 回归生成。
3. AdaLN-Zero 的增强设计
在扩散模型中,AdaLN 常扩展为 AdaLN-Zero:
- 额外引入残差缩放因子:在残差连接前添加可学习的缩放参数 $\alpha_c$(初始化为0),使模型初始阶段近似恒等映射,提升训练稳定性。
- 数学表达: $$x_{\text{out}} = \alpha_c \cdot \text{AdaLN}(x; c) + x$$ 其中 $\alpha_c$ 同样由条件信息生成。
📍 二、AdaLN 在扩散模型中的位置
1. 整体架构位置
AdaLN 模块位于扩散模型的主干网络中,嵌入在每个 Transformer Block 内部:
- 在 DiT(Diffusion Transformer)中,AdaLN 替代了标准 Transformer 的 LayerNorm,成为条件注入的核心组件。
- 具体位置:多头自注意力层和前馈网络(FFN)的输入前,如图:
1 2 3 4 5 6DiT Block 结构: ┌──────────────┐ ┌──────────────┐ │ AdaLN │───> │ 自注意力 │ ├──────────────┤ ├──────────────┤ │ AdaLN │───> │ FFN │ └──────────────┘ └──────────────┘
2. 与其他条件注入方式的对比
DiT 论文中对比了三种条件注入方式:
| 方法 | 实现原理 | 计算开销 | 效果 |
|---|---|---|---|
| In-context Conditioning | 将条件 token 拼接到输入序列中 | 低 | 中等 |
| Cross-Attention | 添加交叉注意力层,以条件为 Key/Value | 高(+15%) | 较好 |
| AdaLN | 动态生成 LN 的 $\gamma, \beta$,无需修改注意力机制 | 最低 | 最佳(SOTA) |
AdaLN 因其高效性成为扩散模型首选。
⚙️ 三、AdaLN 的工作流程(以 DiT 为例)
输入预处理:
- 图像通过 VAE 编码为潜变量 $z$,分割为 Patch 并添加位置编码。
- 时间步 $t$ 和类别标签 $y$ 分别嵌入为向量 $t_{\text{emb}}, y_{\text{emb}}$。
条件融合:
- 条件向量 $c = t_{\text{emb}} + y_{\text{emb}}$ 输入 MLP,生成 $\gamma_c, \beta_c, \alpha_c$。
- 在 每个 DiT Block 的输入前,通过 AdaLN 调整特征分布:
1 2 3 4# 伪代码 for block in DiT_blocks: x = block.attention(AdaLN(x, c)) # 自注意力前的 AdaLN x = block.ffn(AdaLN(x, c)) # FFN 前的 AdaLN
输出预测:
- 最终输出预测的噪声或潜变量更新量,通过 AdaLN 调制后的特征解码得到。
💡 四、AdaLN 的核心优势
- 计算高效
- 仅需小型 MLP 生成参数,比交叉注意力减少 15% 计算量。
- 训练稳定
- AdaLN-Zero 的零初始化残差缩放避免初期梯度爆炸,加速收敛。
- 灵活适配多模态条件
- 可同时融合时间步、文本描述、类别标签等多源条件。
- 保留预训练知识
- 在微调场景(如 DiffFit)中冻结主体参数,仅更新 AdaLN 相关参数(占 0.12%),避免灾难性遗忘。
🧩 五、典型应用场景
1. 图像生成(DiT 系列)
- AdaLN 在 DiT-XL 中实现 SOTA FID(2.27),成为 Stable Diffusion 3 的核心组件。
2. 视频生成(Wan2.2/Sora)
- 通过 3D RoPE + AdaLN 融合时空位置与时间步条件,支持长视频生成。
3. 参数高效微调(DiffFit)
- 冻结扩散模型权重,仅微调 AdaLN 的 MLP 参数(占比 0.12%),实现跨域适应(如艺术风格迁移)。
💎 总结
AdaLN 通过动态调制归一化参数,成为扩散模型中高效融合条件信息的关键模块。其设计兼顾性能与灵活性,推动 DiT、Sora 等模型突破生成质量极限。未来随着多模态生成需求增长,AdaLN 在跨域对齐、物理约束注入等方面仍有巨大探索空间。
AdaLN 在扩散模型中的关键作用总结:
| 模块 | 功能 | 技术突破 |
|---|---|---|
| 动态参数生成 | 通过MLP从条件生成γ/β/α | 避免结构修改,计算高效 |
| 残差零初始化 | 初始α=0,稳定训练初期 | 加速收敛,适配深层网络 |
| 多模态融合 | 支持时间步、文本、标签等输入 | 成为多模态扩散模型核心 |
| 微调适配器 | 仅需微调0.12%参数(DiffFit) | 高效迁移预训练知识到新领域 |
💬 评论