一文带你搞懂DiT(Diffusion Transformer)

news2024/12/25 12:32:48

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

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

总结链接如下:《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.coloradmin.cn/o/1692724.html

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

相关文章

Redis 源码学习记录:集合 (set)

无序集合 Redis 源码版本:Redis-6.0.9,本篇文章无序集合的代码均在 intset.h / intset.c 文件中。 Redis 通常使用字典结构保存用户集合数据,字典键存储集合元素,字典值为空。如果一个集合全是整数,则使用字典国语浪费…

java图书电子商务网站的设计与实现源码(springboot+vue+mysql)

风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的图书电子商务网站的设计与实现。项目源码以及部署相关请联系风歌,文末附上联系信息 。 项目简介: 图书电子商…

pikachu-Unsafe Filedownload

任意点击一个图片进行下载,发现下载的url。 http://127.0.0.1/pikachu/vul/unsafedownload/execdownload.php?filenamekb.png 构造payload: 即可下载 当前页面的源码,可以进行路径穿越来下载一些重要的配置文件来获取信息。 http://127.0.…

《书生·浦语大模型实战营》第一课 学习笔记:书生·浦语大模型全链路开源体系

文章大纲 1. 简介与背景智能聊天机器人与大语言模型目前的开源智能聊天机器人与云上运行模式 2. InternLM2 大模型 简介3. 视频笔记:书生浦语大模型全链路开源体系内容要点从模型到应用典型流程全链路开源体系 4. 论文笔记:InternLM2 Technical Report简介软硬件基础…

光电直读抄表技术详细说明

1.技术简述 光电直读抄表是一种智能化智能计量技术,主要是通过成像原理立即载入电度表里的标值,不用人工干预,大大提升了抄表效率数据可靠性。此项技术是智慧能源不可或缺的一部分,为电力公司的经营管理提供了有力的适用。 2.原…

在winnas中使用docker desktop遇到的问题及解决方法记录

最近在尝试从群晖转向winnas,一些简单的服务依然计划使用docker来部署。群晖的docker简单易用且稳定,在win上使用docker desktop过程中遇到了不少问题,在此记录一下以供后来人参考。 一、安装docker desktop后启动时遇到无法启动docker引擎 …

VMware虚拟机开机卡在Boot Manager

问题情况 虚拟机启动停留在Boot Manager 解决办法1 解决办法2 1、关闭虚拟机,并将其移除 2、找到虚拟机储存位置清除储存数据 3、使用360清除残留数据 4、重启VMware,重新创建虚拟机 关键词: BIOS 蓝色界面

超级初始网络

目录 一、网络发展史 1、独立模式 2、局域网 LAN(Local Area Network) 3、广域网 WAN (Wide Area Network) 二、网络通信基础 1、IP地址:用于定位主机的网络地址 2、端口号:用于定位主机中的进程 3、网络协议 4、五元组 …

GIT 新建分支和合并分支

文章目录 前言一、新建分支二、切回老分支,保留新分支的更改三、合并分支 前言 本文主要针对以下场景进行介绍: 场景一:创建新的分支 当前分支(dev_1)已经开发完毕,下一期的需求需要在新分支(dev_2)上进行开发,如何创…

Dubbo源码及总结

Springboot整合Dubbo启动解析Bean定义 根据springboot启动原理,会先把启动类下的所有类先进行解析bean定义,所以要先EnableDubbo这个注解,再根据这个注解里面的注解,可以知道import的两个类DubboComponentScanRegistrar和DubboCo…

嵌入式单片机寄存器操作与实现方法

大家好,今天给大家分享一下,单片机中寄存器该如何操作与实现。 “芯片里面的寄存器访问方式一般是: 1.可使用地址访问,2.可使用指令访问,3.不可访问” 第一:挂载到内存地址总线上了的 挂载到内存地址总线上了的,可以使用分配到的地址访问 如下是STM32单片机存储器映像…

hbase版本从1.2升级到2.1 spark读取hive数据写入hbase 批量写入类不存在问题

在hbase1.2版本中&#xff0c;pom.xml中引入hbase-server1.2…0和hbase-client1.2.0就已经可以有如下图的类。但是在hbase2.1.0版本中增加这两个不行。hbase-server2.1.0中没有mapred包&#xff0c;同时mapreduce下就2个类。版本已经不支持。 <dependency><groupId>…

3d全景电商网站搭建为用户的生产力、想象力和创造力插上腾飞的翅膀

为解决用户搭建3D电商网站制作费用高、难度大的困扰&#xff0c;华锐视点隆重推出全新3D电商网站制作编辑器&#xff0c;以全新的设计思维、交互范式和编辑工具&#xff0c;打破传统3D设计的专业界限&#xff0c;为用户的生产力、想象力和创造力插上腾飞的翅膀! 这款创新的3D电…

PGP软件安装文件加密解密签名实践记录

文章目录 环境说明PGP软件安装PGP软件汉化AB电脑新建密钥并互换密钥对称密钥并互换密钥 文件加密和解密A电脑加密B电脑解密 文件签名A电脑签名文件B电脑校验文件修改文件内容校验失败修改文件名称正常校验 环境说明 使用VM虚拟两个win11,进行操作演示 PGP软件安装 PGP软件下…

STM32 CubeMX使用记录

取消DMA中断默认使能 DMA中断默认使能勾选无法取消选中 取消勾选Force DMA channels interrupts

算法入门----小话算法(1)

下面就首先从一些数学问题入手。 Q1&#xff1a; 如何证明时间复杂度O(logN) < O(N) < O(NlogN) < O(N2) < O(2N) < O(N!) < O(NN)? A&#xff1a; 如果一个以整数为参数的不等式不能很容易看出不等的关系&#xff0c;那么最好用图示或者数学归纳法。 很显…

Github 2024-05-24 开源项目日报 Top10

根据Github Trendings的统计,今日(2024-05-24统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Python项目3非开发语言项目2TypeScript项目2JavaScript项目1Kotlin项目1C#项目1C++项目1Shell项目1Microsoft PowerToys: 最大化Windows系统生产…

共享经济中的创新演示:打造案例分析PPT,让想法流动起来

在当今这个看图说话的时代&#xff0c;无论是在职场打拼还是学术殿堂&#xff0c;一份牛气冲天的案例分析PPT无疑是你专业形象的加分项。 不管你是刚出道的小鲜肉&#xff0c;还是已经混迹江湖多年的老鸟&#xff0c;一份有深度、有力度的PPT都能帮你在人群中脱颖而出&#xf…

Arduino ESP32 蓝牙(BLE)发送beacon帧

简介 蓝牙&#xff08;BLE&#xff09;发送beacon帧 就是说在没有配对连接的情况下进行广播数据帧&#xff0c;不是蓝牙数据传输。因为蓝牙数据传输需要配对连接蓝牙才可以&#xff0c;且配对连接设备数量有限。但需要大量设备都能收到数据帧时&#xff0c;就只能是通过发送广…

C++ RBTree封装mapset

目录 RBTreeNode的声明 RBTree结构 map结构 set结构 改造红黑树 迭代器类 迭代器成员函数 默认成员函数 Insert set map RBTreeNode的声明 template<class T> struct RBTreeNode {RBTreeNode<T>* _left;RBTreeNode<T>* _right;RBTreeNode<T>*…