一文带你搞懂DiT(Diffusion Transformer)

节前,我们组织了一场算法岗技术&面试讨论会,邀请了一些互联网大厂朋友、今年参加社招和校招面试的同学。

针对大模型技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何准备面试攻略、面试常考点等热门话题进行了深入的讨论。

总结链接如下:《AIGC 面试宝典》(2024版) 正式发布!


本文将从DiT的本质、DiT的原理、DiT的应用三个方面,带您一文搞懂 Diffusion Transformer|DiT。
在这里插入图片描述

一、DiT的本质

DiT的定义:Diffusion Transformer是一种结合了Transformer架构的扩散模型,用于图像和视频生成任务,能够高效地捕获数据中的依赖关系并生成高质量的结果。

在这里插入图片描述

扩散模型的定义:Diffusion Models是一种新型的、先进的生成模型,用于生成与训练数据相似的数据,可以生成各种高分辨率图像。

在这里插入图片描述

扩散模型的定义

扩散模型的核心思想:Diffusion Models是一种受到非平衡热力学启发的生成模型,其核心思想是通过模拟扩散过程来逐步添加噪声到数据中,并随后学习反转这个过程以从噪声中构建出所需的数据样本。

在这里插入图片描述

扩散过程

DiT的本质:Diffusion Transformer是一种新型的扩散模型,结合了去噪扩散概率模型(DDPM)和Transformer架构。

在这里插入图片描述

去噪扩散概率模型(DDPM)

DiT的核心思想:Diffusion Transformer的核心思想是使用Transformer作为扩散模型的骨干网络,而不是传统的卷积神经网络(如U-Net),以处理图像的潜在表示。

在这里插入图片描述

DiT的核心思想

二、DiT的原理

DiT的架构:DiT架构基于Latent Diffusion Model(LDM)框架,采用Vision Transformer(ViT)作为主干网络,并通过调整ViT的归一化来构建可扩展的扩散模型。如下图所示:

在这里插入图片描述

DiT的架构

DiT的核心组件:DiT有三种变种形式,分别与In-Context Conditioning、Cross-Attention、adaLN-Zero相组合。

在这里插入图片描述

ViT的核心组件

对应Diffusion Transformer模型架构图中由右到左的顺序:

  1. 上下文条件(In-context conditioning):这是模型处理输入数据的一种方式,允许模型根据给定的上下文信息生成输出。

  2. 交叉注意力块(Cross-Attention):该模块允许模型在生成过程中关注输入数据中的特定部分,从而提高生成的准确性。

  3. 自适应层归一化块(Adaptive Layer Normalization, AdaLN):这是一个归一化技术,有助于加速模型的训练并提高性能。

在这里插入图片描述

DiT的三种变形形式

DiT的工作流程:通过引入噪声并训练神经网络来逆转噪声增加的过程,结合Transformer模型,实现图像或视频的生成与变换。这个过程涉及数据预处理、噪声引入、模型训练以及最终的图像或视频生成。

  1. 数据预处理:将输入的图像或视频数据转换为模型可以处理的格式,如将图像切分成固定大小的patches(小块),然后将这些patches转换为特征向量。

  2. 噪声引入:在数据预处理后的特征向量上逐步引入噪声,形成一个噪声增加的扩散过程。这个过程可以视为从原始数据到噪声数据的转换。

  3. 模型训练:使用引入了噪声的特征向量作为输入,训练Diffusion Transformer模型。模型的目标是学习如何逆转噪声增加的过程,即从噪声数据恢复出原始数据。

  4. 图像或视频生成:在模型训练完成后,可以通过输入噪声数据(或随机生成的噪声)到模型中,经过模型的处理后生成新的图像或视频。这个生成过程利用了模型学习到的从噪声到原始数据的映射关系。

在这里插入图片描述

DiT的工作流程

三、DiT的应用

Sora的定义:Sora模型是一种先进的视觉技术模型,以其独特的方式生成视频,通过逐步去除噪声来形成最终画面,使得生成的场景更加细致,并具备学习复杂动态的能力。

视频生成模型作为世界模拟器(Video generation models as world simulators)。

Sora

Sora的核心组件:Sora模型的核心组成包括Diffusion Transformer(DiT)、Variational Autoencoder(VAE)和Vision Transformer(ViT)。

DiT负责从噪声数据中恢复出原始的视频数据,VAE用于将视频数据压缩为潜在表示,而ViT则用于将视频帧转换为特征向量以供DiT处理。

  1. Diffusion Transformer(DiT):DiT结合了扩散模型和Transformer架构的优势,通过模拟从噪声到数据的扩散过程,DiT能够生成高质量、逼真的视频内容。在Sora模型中,DiT负责从噪声数据中恢复出原始的视频数据。

  2. Variational Autoencoder(VAE):VAE是一个生成模型,它能够将输入的图像或视频数据压缩为低维度的潜在表示(latent representation),并通过解码器将这些潜在表示还原为原始数据。在Sora模型中,VAE被用作编码器,将输入的视频数据压缩为DiT的输入,从而指导DiT生成与输入视频相似的视频内容。

  3. Vision Transformer(ViT):ViT是一种基于Transformer的图像处理模型,它将图像视为一系列的patches(小块),并将这些patches转换为特征向量作为Transformer的输入。在Sora模型中,ViT可能被用作预处理步骤或作为模型的一个组件。

在这里插入图片描述

技术交流群

前沿技术资讯、算法交流、求职内推、算法竞赛、面试交流(校招、社招、实习)等、与 10000+来自港科大、北大、清华、中科院、CMU、腾讯、百度等名校名企开发者互动交流~

我们建了算法岗技术与面试交流群, 想要大模型技术交流、了解最新面试动态的、需要源码&资料、提升技术的同学,可以直接加微信号:mlc2040。加的时候备注一下:研究方向 +学校/公司+CSDN,即可。然后就可以拉你进群了。

想加入星球也可以如下方式:

方式①、微信搜索公众号:机器学习社区,后台回复:星球
方式②、添加微信号:mlc2040,备注:星球

面试精选

  • 一文搞懂 Transformer

  • 一文搞懂 Attention(注意力)机制

  • 一文搞懂 Self-Attention 和 Multi-Head Attention

  • 一文搞懂 BERT(基于Transformer的双向编码器)

  • 一文搞懂 GPT(Generative Pre-trained Transformer)

  • 一文搞懂 Embedding(嵌入)

  • 一文搞懂 Encoder-Decoder(编码器-解码器)

  • 一文搞懂大模型的 Prompt Engineering(提示工程)

  • 一文搞懂 Fine-tuning(大模型微调)

  • 一文搞懂 LangChain

  • 一文搞懂 LangChain 的 Retrieval 模块

  • 一文搞懂 LangChain 的智能体 Agents 模块

  • 一文搞懂 LangChain 的链 Chains 模块

相关论文

  • 《Scalable Diffusion Models with Transformers》

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/15139.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ArcGIS中分割与按属性分割的区别

1、分割ArcGIS批量导出各个市的县级行政边界 视频教学: ArcGIS批量导出各个市的县级行政边界002 2、ArcGIS批量导出全国各省的边界 视频教学: ArcGIS导出全国各省的边界003 推荐学习: ArcGIS全系列实战视频教程——9个单一课程组合系列直播回…

[书生·浦语大模型实战营]——第二节:轻松玩转书生·浦语大模型趣味 Demo

1. 部署InternLM2-Chat-1.8B 模型进行智能对话 1.1配置环境 创建开发机 Intern Studio 官网网址:https://studio.intern-ai.org.cn/ 进入官网后,选择创建开发机,填写 开发机名称 后,点击 选择镜像 使用 Cuda11.7-conda 镜像&am…

CSS中的Flex布局

目录 一.什么是Flex布局 二.Flex布局使用 2.1Flex使用语法 2.2基本概念 三.容器的属性 3.1所有属性概述 3.2flex-direction 3.3flex-wrap 3.4flex-flow 3.5justify-content 3.6align-items 3.7align-content 四.项目(子元素)的属性 4.1所有属性概述 4.2order 4…

九、OpenAI之图片生成(Image generation)

学习用DALL.E的API怎样生成和操作图片 1 介绍 图片API提供3个方法来和图片进行交互: 从0开始基于文字提示创建图片(DALL.E 3 and DALL.E2)基于一个新的提示词,通过让模型替换已有图像的某些区域来创建图像的编辑版本;(DALL.E2)…

【FPGA】Verilog:解码器 | 编码器 | 多路复用器(Mux, Multiplexer)

0x00 什么是解码器 解码器是根据输入信号在多个输出位中选择一个输出位的装置。例如,当解码器接收2位二进制值作为输入时,它可以接收00、01、10、11四种输入值,并根据每个输入值在4个输出位中选择一个,输出为1000、0100、0010、0001中的一种。这样的解码器被称为高电平有效…

ICML 2024 Mamba 论文总结

2024ICML(International Conference on Machine Learning,国际机器学习会议)在2024年7月21日-27日在奥地利维也纳举行 🌟【紧跟前沿】“时空探索之旅”与你一起探索时空奥秘!🚀 欢迎大家关注时空探索之旅 …

IntelliJ IDEA常用快捷键 + 动图演示!

本文参考了 IntelliJ IDEA 的官网,列举了IntelliJ IDEA (Windows 版) 的所有快捷键。并在此基础上,为 90% 以上的快捷键提供了动图演示,能够直观的看到操作效果。 该快捷键共分 11 种,可以方便的按各类查找…

【通义千问—Qwen-Agent系列2】案例分析(图像理解图文生成Agent||多模态助手|| 基于ReAct范式的数据分析Agent)

目录 前言一、快速开始1-1、介绍1-2、安装1-3、开发你自己的Agent 二、基于Qwen-Agent的案例分析2-0、环境安装2-1、图像理解&文本生成Agent2-2、 基于ReAct范式的数据分析Agent2-3、 多模态助手 附录1、agent源码2、router源码 总结 前言 Qwen-Agent是一个开发框架。开发…

Excel提取某一列的唯一值

点击【筛选】(【高级筛选】),参数里: 列表区域:为需要选择唯一值的那一列复制到:生成唯一值的目标区域 据说新版本的excel有了unique()函数,可以很快捷的选择某一列的唯一值,但是博…

仪器校准中移液器的使用规范,应当注意哪些细节?

校准行业中,移液器的使用是非常多的,尤其是理化室,经常需要借助到移液器来校准。作为常规的溶液定量转移器具,其在校准过程中的使用也需要遵守规范,既是保证校准结果准确低误差,也是为了规范实验室校准人员…

类与对象:接口

一.概念 接口(英文:Interface),在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明。 二.语法规则 与定义类相似,使用interface关键词。 Idea可以在开始时直接创建…

动静态库

说明:使用动静态库,一般直接安装即可,其他使用方法了解即可 静态库 静态库(Static Library)是一种将代码和数据打包成一个单独的文件的库文件,主要用于编译时的链接,而不是运行时。静态库通常…

Android Studio 所有历史版本下载

一、官网链接 https://developer.android.google.cn/studio/archive 操作 二、AndroidDevTools地址 https://www.androiddevtools.cn/ 参考 https://blog.csdn.net/qq_27623455/article/details/103008937

Mybatis源码剖析---第二讲

Mybatis源码剖析—第二讲 那我们在讲完了mappedstatement这个类,它的一个核心作用之后呢?那下面我有一个问题想问问各位。作为mappedstatement来讲,它封装的是一个select标签或者insert标签。但是呢,我们需要大家注意的是什么&am…

社交媒体数据恢复:soma messenger

步骤1:检查备份文件 首先,我们需要确认您是否已开启Soma Messenger的自动备份功能。若已开启,您可以在备份文件中找到丢失的数据。 步骤2:清除缓存并重启应用 有时候,清除Soma Messenger的缓存文件可以帮助恢复丢失的…

为什么股票市场里有认贼为父的现象?

文章大纲:(本文2648字,完整版本应该3500以上,耗时一个钟) 1、前言:逻辑与博弈 2、直觉引入博弈焦点 3、上周4-5的市场博弈视角 4、下周一视角能看到的东西 5、视角背后看到的情绪周期市场共识下的博弈…

特殊变量笔记

执行demo4.sh文件,输入输出参数itcast itheima的2个输入参数, 观察效果 特殊变量:$# 语法 $#含义 获取所有输入参数的个数 案例需求 在demo4.sh中输出输入参数个数 演示 编辑demo4.sh, 输出输入参数个数 执行demo4.sh传入参数itcast, itheima, 播仔 看效果…

销量翻倍不是梦!亚马逊速卖通自养号测评实战技巧分享!

在亚马逊、速卖通这些跨境电商平台上,卖家们都在想各种办法让自己的产品卖得更好。现在,有一种叫做“自养号测评”的方法特别火。简单来说,就是自己养一些买家账号,然后让这些账号来给你的产品写好评。这样,你的产品就…

Java的反射机制以及使用场景

Java的反射机制以及使用场景 什么是反射Class对象如何使用获取 Class 类对象反射创造对象反射获取类的构造器反射获取类的成员变量反射获取类的方法 反射的应用场景JDBC 的数据库的连接Spring 框架的使用 什么是反射 Oracle 官方对反射的解释 Reflection is commonly used by p…