论文笔记DiT:Scalable Diffusion Models with Transformers(含transformer的可扩展扩散模型 )

论文笔记DiT:Scalable Diffusion Models with Transformers(含transformer的可扩展扩散模型 )

Abstract:

    论文的核心思想非常直接:用一个标准的 Transformer 架构替换掉扩散模型中常用的 U-Net 主干网络,并证明这种新架构(称为 DiT, Diffusion Transformer)具有出色的可扩展性(Scalability)。

Background & Motivation:

    在论文发表前,Transformer 已经在自然语言处理(BERT, GPT)和计算机视觉(ViT)等领域取得了巨大成功,成为了一种“统一”的架构。然而,在图像生成领域,特别是扩散模型中,大家仍然普遍使用 U-Net。U-Net 因其多尺度特征融合和卷积的局部归纳偏置而被广泛采用。

    在深度学习中,一个好的架构应该具备良好的“可扩展性”——即投入更多的计算资源(更大的模型、更多的数据),性能应该会持续稳定地提升。ViT 已经证明了 Transformer 在视觉识别任务上具有这种特性。作者们希望验证 DiT 是否也具备这种优良特性,为未来的生成模型发展指明一条清晰的路径。

    并且,作者用 Gflops 而不是 参数量 来衡量和讨论模型复杂度。因为参数量在图像任务中有严重缺陷,无法反映真实计算成本。

Diffusion Transformers

3.1. Preliminaries

    Diffusion formulation:把一张真实的、干净的图像 x0,通过 T 个步骤,逐渐地、一点一点地加入高斯噪声,直到它变成一个完全的纯噪声图像 xT。模型(在 DiT 中就是那个 Transformer)的任务是预测噪声。具体来说,给定加噪图像 xt 和时间步 t,模型需要预测出在第 t 步加入的那个噪声 εt。这个预测出的噪声被记为 εθ(xt)。之后主要用简单的 MSE 损失来训练噪声预测网络,同时用一个更完整的损失项(完整的 DKL)来训练协方差的预测。

    Classifier-free guidance:这部分介绍了一种非常重要的技术,用于在生成过程中加强条件(比如类别标签 c)对生成结果的影响,从而显著提高生成图像的质量和与条件的匹配度。

    在生成每一步时,我们不仅要预测“在有条件 c 的情况下的噪声”,还要预测“在没有任何条件(用一个特殊的空 embedding ∅ 表示)的情况下的噪声”。然后,将这两个预测结果进行线性组合。

    最终的噪声预测 ε̂θ 是通过一个公式来计算的: ε̂θ(xt, c) = εθ(xt, ∅) + s * (εθ(xt, c) - εθ(xt, ∅))

εθ(xt, ∅):无条件下的噪声预测(模型自由发挥)。

εθ(xt, c):有条件 c 下的噪声预测(模型听从指令)。

(εθ(xt, c) - εθ(xt, ∅)):这个差值可以理解为“从自由发挥到听从指令”的方向。

s:引导尺度(guidance scale),s > 1。这个参数控制了我们要在多大程度上“强调”这个方向。s 越大,生成图像与条件 c 的相关性就越强,通常视觉效果也更锐利,但可能会牺牲多样性。

CFG 被广泛证明能极大提升生成样本的质量,DiT 也不例外。

Latent Diffusion Models, LDM:DiT 论文明确指出,他们采用了LDM 框架,即在一个卷积 VAE 提供的潜在空间上,应用了他们提出的 Transformer 架构。

这三个预备知识点,层层递进地构建了 DiT 的完整工作流程:

先用LDM 框架将图像压缩到低维潜在空间,DiT(作为扩散模型的核心)在这个潜在空间中,遵循扩散模型原理,学习如何从噪声中恢复出潜在表示,最后,在生成时,使用无分类器引导(CFG)技术来提升生成质量和可控性。

3.2. Diffusion Transformer Design Space

Patchify:

  • 将 z 分割成一个个不重叠的小块(patch),每个小块的大小为 p x p。例如,如果 p=2,那么一个 32x32 的 z 就会被切分成 (32/2) * (32/2) = 16 * 16 = 256 个小块。 
  • 线性嵌入:每个小块被展平并通过一个线性层,映射成一个维度为 d 的向量,这个向量就叫做一个 token。
  • 结果:经过 "patchify" 操作,一个二维的 z 就变成了一个一维的 token 序列,序列长度为 T = (H/p) * (W/p)。
  • p 直接决定了序列的长度 T,在几乎不增加模型参数量的情况下,可以通过减小 p 来急剧增加模型的计算密度和复杂度。

核心模块:

除了噪声图像输入,扩散模型有时还会处理额外的条件信息,如噪声时间步长t、类标号c、自然语言等。我们探索了4种不同处理条件输入的变压器模块变体。该设计对标准的ViT块设计进行了微小但重要的修改。所有模块的设计如图3所示。

1.In-context Conditioning (上下文条件)

    方法:把 t 和 c 的嵌入向量当作两个额外的 token,直接拼接到图像 token 序列的前面。

    优缺点:非常简单,可以直接使用标准的 ViT 模块。但实验表明效果最差。

2. Cross-attention Block (交叉注意力模块)

    方法:在标准的自注意力模块之后,增加一个交叉注意力层。图像 token 作为 Query,t 和 c 的嵌入作为 Key 和 Value。

    优缺点:这是 LDM(Stable Diffusion v1)中使用的方法,比较强大和灵活。但它增加了最多的计算量(约 15% 的开销),且在 DiT 的实验中并非最佳选择。

3. Adaptive Layer Norm (adaLN) Block (自适应层归一化模块)

    方法:受到 GAN 和 U-Net 扩散模型的启发,作者将 Transformer 模块中的标准 LayerNorm 替换为自适应的 LayerNorm。模型的 LayerNorm 不再学习固定的缩放(γ)和偏移(β)参数,而是通过一个小型网络,根据 t 和 c 的嵌入动态地预测出 γ 和 β。

    优缺点:计算上非常高效,增加的 Gflops 几乎可以忽略不计。它将条件信息全局地作用于所有 token。

4. adaLN-Zero Block (零初始化的 adaLN)

    方法:这是对 adaLN 的一个重要改进。除了像 adaLN 一样预测 γ 和 β 之外,它还为每个残差连接(residual connection)之前添加了一个由 t 和 c 预测的缩放因子 α。

    关键的初始化:在训练开始时,这个 α 被初始化为输出零。这意味着整个 DiT  block 在初始状态下就是一个恒等函数(identity function),输入什么就输出什么。

    灵感来源:这种“零初始化残差分支”的策略在 ResNet 和 U-Net 扩散模型中都被证明有助于稳定大型模型的训练。

    最终选择:实验证明 adaLN-Zero 是效果最好且计算高效的方案。

Model Size:

为了系统地研究可扩展性,作者定义了一系列不同尺寸的模型。

他们沿用了 ViT 的标准配置,通过同时扩展模型的深度 N (层数)、宽度 d (隐藏层维度) 和注意力头的数量,创建了四种尺寸:DiT-S (Small), B (Base), L (Large), XL (XLarge)。

例如 DiT-XL/2 指的是 XL 尺寸的模型,使用 p=2 的 patch size。

Transformer Decoder:

    经过一系列 DiT block 处理后,得到一个更新后的 token 序列。现在需要将这个序列解码回一个二维的预测噪声图。

    对最终的 token 序列应用最后一次 LayerNorm。

    使用一个简单的线性层,将每个 token 解码回它对应的 p x p 大小的 patch 形状。

    将所有解码后的 patch 重新组合,恢复成与输入 z 相同尺寸的二维特征图,作为最终的噪声预测。

Read more

Qwen3-VL智能写作:图文内容生成实战案例

Qwen3-VL智能写作:图文内容生成实战案例 1. 背景与应用场景 随着多模态大模型的快速发展,视觉-语言理解与生成能力已成为AI应用的核心竞争力之一。在内容创作、自动化办公、智能客服等场景中,用户不再满足于纯文本的交互方式,而是期望系统能够“看图说话”、理解复杂界面并自动生成结构化内容。 阿里云推出的 Qwen3-VL 系列模型正是为应对这一趋势而设计。作为Qwen系列迄今最强的视觉-语言模型,它不仅具备卓越的文本生成能力,还深度融合了图像识别、空间推理、视频理解与GUI操作代理功能,真正实现了“看得懂、想得清、写得出”的闭环。 本文将聚焦于 Qwen3-VL-WEBUI 的实际部署与应用,结合一个典型的“图文内容生成”任务,展示如何利用其内置的 Qwen3-VL-4B-Instruct 模型完成从图像输入到结构化文档输出的全流程实战。 2. Qwen3-VL-WEBUI 简介 2.1 核心特性概述 Qwen3-VL-WEBUI 是基于 Qwen3-VL 模型封装的可视化交互平台,专为开发者和内容创作者设计,支持一键部署、零代码调用和实时推理体验。其核心优势包括:

新手用AI写文章,AI味太重了?收藏这几个提示词瞬间去除AI写作痕迹!

现在很多新入局自媒体的人用AI辅助写作,但是稍有不慎就会被平台限流、封号。究其原因在于AI写的文字太AI风了,所以平台不会给流量! 要去除文章AI痕迹的核心思路是:第一步使用好提示词,好的提示词本身就降低了AI味道;第二步人工优化,在进一步降低AI味的同时还要修正错误和漏洞。 今天我把自己的经验结合起来,分享一下降低AI味的提示词。 一、赋予角色 给定一个具体的角色,比如说你在做育儿领域的爆款文章的时候,就可以给AI赋予一个资深育儿专家的身份。 举例:你是育儿专家,擅长写育儿类自媒体爆款文章。你主要的工作就是写出更有人情味、自然流畅、没有机器写作痕迹的文章,长短句并用,不用列表和总结,少用连接词,内容要打破AI生硬的感觉,在语言风格、情感表达、逻辑结构上全方位地接近人类真实的写作习惯。 二、人物画像 人物画像是对角色的补充,可以指定人物的年龄、性别、爱好等,做IP号的时候,就给AI发一张画像。 例子:语言风格转换专家,对于人类写作的特色有着非常深刻的认识。把AI生成的“冷冰冰”的文字转为通俗易懂、口语化的表达方式。依靠多年的积累,你能够很快地发现AI文本中重复啰嗦的

Jetson Orin NX 上部署 Ollama + Llama 3.2

Jetson Orin NX 上部署 Ollama + Llama 3.2 关键词: Jetson Orin NX, JetPack 5, Ubuntu 20.04, Ollama, Llama 3.2, CUDA, GPU推理, 边缘计算, ARM64 阅读时长: 约15分钟 📋 文章导航 * 前言 * 一、环境准备与系统要求 * 二、系统环境检查 * 三、安装Ollama(JetPack 5专用版) * 四、配置运行环境 * 五、启动Ollama服务与GPU验证 * 六、部署Llama 3.2模型 * 七、HTTP API接口调用 * 八、性能优化与调优

最完整whisperX入门指南:从安装到实现第一个语音识别功能

最完整whisperX入门指南:从安装到实现第一个语音识别功能 【免费下载链接】whisperXm-bain/whisperX: 是一个用于实现语音识别和语音合成的 JavaScript 库。适合在需要进行语音识别和语音合成的网页中使用。特点是提供了一种简单、易用的 API,支持多种语音识别和语音合成引擎,并且能够自定义语音识别和语音合成的行为。 项目地址: https://gitcode.com/gh_mirrors/wh/whisperX 你还在为语音识别工具安装复杂、识别准确率低、时间戳不精准而烦恼吗?本文将带你从零开始,一步步掌握whisperX的安装配置,并实现你的第一个语音识别功能。读完本文,你将能够:搭建稳定的whisperX运行环境、使用命令行和Python API两种方式进行语音识别、获取精准的单词级时间戳、实现多 speaker 区分标注。 whisperX 简介 whisperX 是一个基于 OpenAI Whisper 的语音识别工具,它在 Whisper 的基础上进行了改进,提供了更精准的单词级时间戳和 speaker 区分功能。