- 博客(1976)
- 收藏
- 关注
原创 AIGC时代:大模型ChatGPT的技术实现原理、行业实践以及商业变现途径
大数据与人工智能实战专家—周红伟老师法国科学院数据算法博士/曾任猪八戒大数据科学家/曾任马上消费金融风控负责人。
2024-02-02 10:01:18 1142
原创 迎接人工智能的下一个时代:ChatGPT的技术实现原理、行业实践以及商业变现途径
S2023年,以ChatGPT为代表的接近人类水平的对话机器人,AIGC不断刷爆网络,其强大的内容生成能力给人们带来了巨大的震撼。学术界和产业界也都形成共识:AIGC绝非昙花一现,其底层技术和产业生态已经形成了新的格局。就内容生产而言,AIGC作为新的生产力引擎,让我们从过去的PGC、UGC,已经不可避免地进入AIGC时代。AIGC代表着AI技术从感知、理解世界到生成、创造世界的跃迁,正推动人工智能迎来下一个时代。经过了2022年的预热,2023年AIGC领域将迎来更大发展。AIGC生成内容的类型不断丰富、
2015-09-21 21:24:20 8240 3
原创 Vision Transformer(ViT)PyTorch代码全解析
可以看到,如果指定池化方式为'mean'的话,则会对全部token做平均池化,然后全部进行送到mlp中,但是我们可以看到,默认的self.pool='cls',也就是说默认不会进行平均池化,而是按照ViT的设计只使用cls_token,即x[:, 0]只取第一个token(cls_token)。都是搭建网络时常用的PyTorch包,其中在卷积神经网络的搭建中并不常用的einops和einsum,还不熟悉的读者可以参考博客:einops和einsum:直接操作张量的利器。
2024-03-14 10:25:50 104
原创 【图像生成】(四) Diffusion原理 & pytorch代码实例
在第二个公式中,为高斯函数的输出,为高斯函数的输入,而为高斯函数的均值,为高斯函数的方差。推理的时候从随机的初始噪声开始,预测当前噪声的上一个step的正态分布噪声,然后根据采样公式得到反向扩散的均值和方差,最后根据重整化公式计算出上一个step的图像。训练时随机选择step和随机生成正态分布噪声,通过叠加后得到加噪图像,然后将加噪图像和step一起输入进Unet中,得到当前step的预测正态分布噪声,并与真实正态分布噪声计算loss。在噪声微小的前提下,逆向的去噪过程也可以等同于预测高斯噪声。
2024-03-13 22:07:14 1029
原创 Diffusion Models 简单代码示例
扩散模型的目标是通过数据在潜在空间(latent space)的扩散过程,学习数据的潜在向量结构(latent structure),通俗点说,扩散模型学习利用数据逐步变成噪声的过程,学习反向的去噪声过程。你可以从下面两个视频中的解释,理解扩散模型背后的理论和实现。conditional diffusion 模型的代码:与unconditional的不同,conditional diffusion在预测噪音是需要输入标签信息,同时使用unconditional的噪音,进行线性插值,获得用于复原样本的噪音。
2024-03-13 21:53:59 751
原创 diffusion
""""""else:"""Arguments:"""""""""""""""return (""""""else:else:else:return (""""""
2024-03-13 15:00:04 398
原创 扩散模型 (Diffusion Model) 简要介绍与源码分析
扩散模型 (Diffusion Model) 简要介绍与源码分析前言广而告之总览参考文章扩散模型介绍基本原理前向阶段逆向阶段模型训练最终算法源码分析训练阶段逆向阶段总结近期同事分享了 Diffusion Model, 这才发现生成模型的发展已经到了如此惊人的地步, OpenAI 推出的Dall-E 2。
2024-03-13 14:56:56 815
原创 Vision Transformer (ViT)初识:原理详解及代码
以ViT-B/16为例,使用一个卷积核大小为16x16,步距为16,卷积核个数为768的卷积来实现。通过卷积[224, 224, 3] -> [14, 14, 768],然后把H以及W两个维度展平即可[14, 14, 768] -> [196, 768],此时正好变成了一个二维矩阵,正是Transformer想要的。需要注意的是第一个全连接层会把输入节点个数翻4倍[197, 768] -> [197, 3072],第二个全连接层会还原回原节点个数[197, 3072] -> [197, 768]
2024-03-12 13:46:37 313
原创 扩散模型(Diffusion Model)详解:直观理解、数学原理、PyTorch 实现
图像生成任务就是把随机生成的向量(噪声)映射成和训练图像类似的图像。为此,扩散模型把这个过程看成是对纯噪声图像的去噪过程。通过学习把图像逐步变成纯噪声的逆操作,扩散模型可以把任何一个纯噪声图像变成有意义的图像,也就是完成图像生成。对于不同程度的读者,应该对本文有不同的认识。图像生成任务的通常做法图像生成任务需要监督VAE通过把图像编码再解码来训练一个解码器扩散模型是一类特殊的VAE,它的编码固定为加噪声,解码固定为去噪声扩散模型的优化目标:让反向过程尽可能成为正向过程的逆操作。
2024-03-12 11:42:35 880 1
原创 Diffusion 扩散模型(DDPM)详解及torch复现
我们首先需要为我们的模型构建输入,这些输入是越来越多的噪声图像。我们可以使用论文中提供的封闭形式来单独计算任何时间步长的图像,而不是按顺序执行此操作。如果不加入@torch.no_grad(),我们很快就会耗尽内存,因为pytorch会把之前所有的图像都打包用于梯度计算。U-Net教程: https://amaarora.github.io/2020/09/13/unet.html.我们可以对每个时间步长的图像进行独立采样(高斯之和也是高斯的)我们输出一个单一的值(均值),因为方差是固定的。
2024-03-12 11:31:50 236
原创 扩散模型 (Diffusion Model) 简要介绍与源码分析
其中为高斯噪声为模型学习的噪声��=��0,�[12‖��(��,�)‖22‖�~�(��,�0)−��(��,�)‖2]=��0,�[12‖��‖22‖1��(��−1−��1−�¯���)−1��(��−1−��1−�¯���(��,�))‖2]=��0,�[(1−��)22��(1−�¯�)‖��‖22‖��−��(��,�)‖2];其中��为高斯噪声,��为模型学习的噪声=��0,�[(1−��)22��(1−�¯�)‖��‖22‖��−��(�¯��0+1−�¯���,�)‖2]
2024-03-12 11:29:36 377
原创 一文详解扩散模型:DDPM
这些效果惊艳的模型扩散模型的理论基础便是我们这里要介绍的提出扩散模型的文章[1]和非常重要的DDPM[2],扩散模型的实现并不复杂,但其背后的数学原理却非常丰富。因为我们在扩散过程的整个流程中都共享同一套参数,为了区分不同的时间片,作者借鉴了Transformer [15]的位置编码的思想,采用了正弦位置嵌入对时间$t$进行了编码,这使得模型在预测噪声时知道它预测的是批次中分别是哪个时间片添加的噪声。扩散模型是一个基于马尔可夫链的数学模型,它通过预测每个时间片添加的噪声来进行模型的训练。
2024-03-12 11:19:11 377
原创 扩散模型DDPM详解
扩散模型可以简单的概括为加噪和去噪两个过程:加噪:使图像 �0 最终变成了一个标准的正态分布 ��。去噪:将 ��还原为 �0。实质上扩散模型需要学习的是去噪的过程,而加噪的过程为去噪过程的训练提供了训练的标签, 如下图所示,从右到左就是一个加噪的过程,从左到右就是一个去噪的过程。
2024-03-12 11:17:19 398
原创 1. DDPM模型概述
扩散模型(DM,Diffusion Model)是一类生成模型,常见的生成模型还有GAN和VAE。扩散模型分为前向阶段和逆向阶段,在前向阶段中逐步向数据中添加噪声,直至数据变成完全的高斯噪声,然后在逆向阶段学习从高斯噪声中还原为原始数据。前向阶段表示为图1中从右往左的过程。从原始图像�0开始,第�步在��−1的基础上添加噪声得到��。��只与��−1有关,直至�步后��完全变为高斯噪声。逆向过程表示为图1中从左往右的过程。首先给定高斯噪声��,通过逐步去噪,直至将原始数据�0恢复。
2024-03-12 11:14:50 281
原创 图解Diffusion扩散模型+代码
推理出了diffusion模型的损失函数,从最小化对数似然,到优化变分下界,简化变分下界,得到最后目标,预测噪声。提供了两版代码,其中条件生成与时下最火的text2image原理类似,只是text2image不仅仅使用单一类别作为编码。参考novelai。作为新一代生成模型,diffusion训练的过程可谓是十分的稳定,调参也比GAN相对简单不少!想要更好结果,我们只需要加大T,加大epoch即可。
2024-03-12 11:09:25 376
原创 10分钟读懂Diffusion:图解Diffusion扩散模型
这里还有一个原因,DDPM 中的 UNet 都是共享参数的,那如何根据不同的输入生成不同的输出,最后从一个完全的一个随机噪声变成一个有意义的图片,这还是一个非常难的问题。因此,较小的 t 代表较弱的噪声扰动,而较大的 t 代表更强的噪声扰动。的架构中,图里面用的都是 Stable Diffusion,后面介绍又主要介绍的是 Diffusion。前面介绍了 Diffusion 是如何根据输入文字生成图片的,让大家有个大概的了解,接下来会详细介绍扩散模型 Diffusion 是如何训练的,又是如何生成图片的。
2024-03-12 11:00:23 270
原创 AI 绘画Stable Diffusion 研究(七) 一文读懂 Stable Diffusion 工作原理
经过压缩后,图像被称作低维潜在(Latent)“图像”,作为U-net的输入,去潜空间(Latent Space)里一步一步降噪后,完成反向扩散的低维“图片”还得通过VAE的解码器,把图像从潜空间转换回像素空间(Pixel Space)。U-Net以一个叫做cross-attention机制的方式来使用它,cross-attention机制允许模型在不同的特征层次上关注相关的区域,从而提高生成结果的质量,这即是prompt适配图片的地方。随着迭代次数的增加,图像中的噪声逐渐减小,因此降噪幅度也应相应减小。
2024-03-12 10:15:31 278
原创 扩散模型原理+DDPM案例代码解析
我们在逆向降噪过程中由于没办法得到q(x t-1∣ xt ),因此定义了一个 需要学习的模型p(x t-1∣ xt ) 来对其进行近似,并且在训练阶段我们可以利用后验q(x t-1∣ xt ,x 0)来对p进行优化(就是计算损失不断训练的过程)。指在得到“结果”的信息后重新修正的概率, 是“执果寻因”问题中的“因”。这里需要注意的是,这里的整个数据集就是上面可视化的这张图片中的点,一共有10000个数据,每个数据就是构成上面这张图中S的一个个点,一共有10000个点,这些点满足这是“s”形的分布。
2024-03-12 10:05:40 432
原创 扩散模型原理+DDPM案例代码解析
我们在逆向降噪过程中由于没办法得到q(x t-1∣ xt ),因此定义了一个 需要学习的模型p(x t-1∣ xt ) 来对其进行近似,并且在训练阶段我们可以利用后验q(x t-1∣ xt ,x 0)来对p进行优化(就是计算损失不断训练的过程)。指在得到“结果”的信息后重新修正的概率, 是“执果寻因”问题中的“因”。这里需要注意的是,这里的整个数据集就是上面可视化的这张图片中的点,一共有10000个数据,每个数据就是构成上面这张图中S的一个个点,一共有10000个点,这些点满足这是“s”形的分布。
2024-03-11 22:22:57 88
原创 Sora底层使用了DIT架构,也就是Diffusion Transformer
Sora底层使用了DIT架构,也就是Diffusion Transformer, 该架构采用了扩散模型和Transformer相结合,由facebook开源。本视频是对论文、源码和项目的解析。这是DIT的核心的代码和整体的逻辑架构。三、DDIM快速采样的预测代码。一、 预测的总体架构。二、DIT的总体架构。
2024-03-11 21:28:43 222
原创 Vision Transformer 代码实现
最近开始恶补CV了(指->新建文件夹)。作为CV Transformer的开山大作,首先要学习的就是ViT(Vision Transformer)模型。有很多大佬都已经解读过这篇工作了,我比较推荐的视频,不仅能了解模型架构,还能学到些论文写作技巧。也参考了(代码是基于timm的) 本文代码基于,该项目包含了ViT和诸多变体。需要预训练模型的话可以参考ViT的架构ViT的结构如上图,我们按照流程一步步讲解。大概来说,ViT分为这几个步骤。1。
2024-03-09 21:26:00 968
原创 Scalable Diffusion Models with Transformers (DiT)Official PyTorch Implementation
【代码】Scalable Diffusion Models with Transformers (DiT)Official PyTorch Implementation。
2024-03-09 15:46:45 917
原创 Scalable Diffusion Models with Transformers(DiTs)论文阅读 -- 文生视频Sora模型基础结构DiT
文章提出使用Transformers替换扩散模型中U-Net主干网络,分析发现,这种Diffusion Transformers(DiTs)不仅速度更快(更高的Gflops),而且在ImageNet 512×512和256×256的类别条件图片生成任务上,取得了更好的效果,256×256上实现了SOTA的FID指标(2.27)。Transformers已经广泛应用于包括NLP、CV在内的机器学习的各个领域。
2024-03-09 11:52:30 912
原创 DiT详解
中提出的思想,它使得扩散模型可以按照指定的类生成图像。(1)∇��log�(��∣�)=∇��log(�(��)�(�∣��)�(�))=∇��log�(��)+∇��log�(�∣��)−∇��log�(�)=∇��log�(��)⏟unconditional score +∇��log�(�∣��)⏟classifier gradient 我们可以添加一个权重项 � 来调整来灵活的控制unconditional score和classifier gradient的占比,如式(2)。
2024-03-08 13:29:59 998
原创 AIGC专栏9——Scalable Diffusion Models with Transformers (DiT)结构解析
在uncond_eps基础上,得到最后的隐向量。在DiT-XL-2中,patch处理的步长和卷积核大小为2,通道为1152,在处理完成后,特征的通道上升,高宽被压缩,此时我们获得一个16x16x1152的新特征,然后我们将其在长宽上进行平铺,获得一个256x1152的向量,并且加上位置信息。DiT相比于DDPM,使用了更快的采样器,也使用了更大的分辨率,与Stable Diffusion一样使用了隐空间的扩散,但可能更偏研究性质一些,没有使用非常大的数据集进行预训练,只使用了imagenet进行预训练。
2024-03-08 13:23:08 125
原创 Pytorch版 Vision Transformer(VIT)模型的复现详解
在进行特征提取的时候,我们会在图片序列中添加上Cls Token,该Token会作为一个单位的序列信息一起进行特征提取,提取的过程中,该Cls Token会与其它的特征进行特征交互,融合其它图片序列的特征。当我们输入的图片是224, 224, 3的时候,我们可以获得一个14, 14, 768的特征层。在进行特征提取的时候,我们会在图片序列中添加上Cls Token,该Token会作为一个单位的序列信息一起进行特征提取,提取的过程中,该Cls Token会与其它的特征进行特征交互,融合其它图片序列的特征。
2024-03-08 13:20:08 68
原创 保姆级讲解 Stable Diffusion
【引入】:首先我会以AI绘画的发展历程作为本文《保姆级讲解 Stable Diffusion》的引入,并且简单的介绍一下在 Stable Diffusion 开源之前的主流生成模型思路的对比,以此来带出 Diffusion Model 的优势;:然后会回顾 Diffusion Model 的前向和反向过程,并给出图解和概述,从而说明 Diffusion Model 的不足,即 Latent Diffusion Models 的提出动机;【原文的摘要和简介】
2024-03-08 11:43:54 1297
原创 一篇论文回顾 Sora 文生视频技术的背景、技术和应用。
本质上讲,生成的视频是通过多步完善过程产生的,每一步都会对视频进行完善,使其更加符合所需的内容和质量。如图 17(b)所示,在通过视频提示执行视频到视频的编辑时,模型需要清楚地了解所需的转换,例如改变视频的风格、场景或氛围,或改变灯光或情绪等微妙的方面。利用扩散 Transformer 架构,Sora 是第一个拥抱视觉数据多样性的模型,可以以多种视频和图像格式进行采样,范围从宽屏 1920x1080p 视频到垂直 1080x1920p 视频以及介于两者之间的视频,而不影响其原始尺寸。
2024-03-08 10:12:03 1260
原创 stable diffusion 原理是什么?
本文对一些技术细节做了简化,只保留 Stable Diffusion 最核心的算法逻辑为大家做了简明的介绍。深入理解 stable diffusion 原理,不仅有助于我们掌握 AI 绘画模型的基本原理,而且还能为我们在工作和学习中应用 AI 绘画带来更多的便利。
2024-03-08 10:05:12 1286
原创 ai绘画是怎么画的?ai绘画算法揭秘 - AI绘画每日一帖
AI 绘画通过CLIP技术建立「文字潜在空间」到「图片潜在空间」的对应关系,并通过 Diffusion 技术从一张噪点图得到一张有信息的高清图。在一文中,我们介绍了ai绘画的基本原理,这背后更详细的ai绘画算法是什么?ai作画到底是怎么画的?今天就给大家揭秘 ~
2024-03-08 10:03:31 570
原创 图像生成发展起源:从VAE、VQ-VAE、扩散模型DDPM、DETR到ViT、Swin transformer 转自 七月
原因很简单,为了使扩散模型在有限的计算资源上训练,并且保留它们的质量和灵活性,故首先训练了一个强大的预训练自编码器,这个自编码器所学习到的是一个潜在的空间,这个潜在的空间要比像素空间要小的多(可以简单粗暴的理解为就是一个被压缩或被降维的空间),把扩散模型在这个潜在的空间去训练,大大的降低了对算力的要求,这也是Stable Diffusion比原装Diffusion速度快的原因。总之,扩散模型本来训练就很贵了,classifier free guidance这种方式在训练时需要生成两个输出,所以训练更贵了。
2024-03-07 11:35:36 918
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人