- 博客(1984)
- 收藏
- 关注
原创 AIGC时代:大模型ChatGPT的技术实现原理、行业实践以及商业变现途径
大数据与人工智能实战专家—周红伟老师法国科学院数据算法博士/曾任猪八戒大数据科学家/曾任马上消费金融风控负责人。
2024-02-02 10:01:18 1143
原创 迎接人工智能的下一个时代:ChatGPT的技术实现原理、行业实践以及商业变现途径
S2023年,以ChatGPT为代表的接近人类水平的对话机器人,AIGC不断刷爆网络,其强大的内容生成能力给人们带来了巨大的震撼。学术界和产业界也都形成共识:AIGC绝非昙花一现,其底层技术和产业生态已经形成了新的格局。就内容生产而言,AIGC作为新的生产力引擎,让我们从过去的PGC、UGC,已经不可避免地进入AIGC时代。AIGC代表着AI技术从感知、理解世界到生成、创造世界的跃迁,正推动人工智能迎来下一个时代。经过了2022年的预热,2023年AIGC领域将迎来更大发展。AIGC生成内容的类型不断丰富、
2015-09-21 21:24:20 8246 3
原创 史诗级对话!黄仁勋对谈Transformer八位作者:大模型从何而来,下一步会如何发展?
我已经稍微谈到了生物软件的一些内容,对我个人而言,在 2021 年,我共同创立了 Inceptive,主要是因为意识到这项技术可以对商业生活产生更直接的影响,甚至比之前的广泛应用更为直接。我们相信,如果能够加速代表 99% 运行时间的 1% 代码,那么将获得巨大的好处,可以实现一些之前认为不可能的事情,或者将需要大量金钱或能量的事情变得更加成本效益和节能。是的,你提到的这些早期模型在当时的研究领域确实起到了一定作用,但由于 Transformer 模型的出现,人们可能忘记了它们的存在。是令人兴奋的一步吗?
2024-03-21 20:54:30 654
原创 陈巍:Sora大模型技术精要万字详解(上)——原理、关键技术、模型架构详解与应用
我们将Sora的技术特点划分为输入输出特征、功能特征、时空与角色一致性三类。以往的文生视频算法多数是采用公开训练数据,生成的视频多数不够美观,分辨率低,而且在生成视频的过程中,无法精准体现文本提示的内容,用户的文本提示难以转化为高清高质量视频。当然更大的难点是视频中主角运动不连贯或不自然,在镜头移动的时候,主体边缘容易畸变,特别是人物表情细节的畸变严重影响视频的表达效果。Sora技术特征图示(来源:Data Science Dojo)
2024-03-21 16:16:29 791
原创 微信向量检索分析一体化数仓探索:OLAP For Embedding
万物皆可 Embedding,向量是 AI 理解世界的通用模式 ”:""An embedding is a mapping from discrete objects, such as words, to vectors of real numbers. — Tensorflow 社区可以看到,Embedding 是真实世界中“离散”的实体,映射到“连续”向量空间的一种表示。
2024-03-21 15:58:31 790
原创 Sora底层技术原理:Stable Diffusion运行原理
下图是一个基本的文生图流程,把中间的 Stable Diffusion 结构看成一个黑盒,那黑盒输入是一个文本串“paradise(天堂)、cosmic(广阔的)、beach(海滩)”,利用这项技术,输出了最右边符合输入要求的生成图片,图中产生了蓝天白云和一望无际的广阔海滩。首先,要有一个具有文本串和计算机视觉配对的数据集。注意力模块的作用是,当输入提示词来生成图片时,比如输入 “一匹马在吃草”,由于模型已经能捕捉图文相关性以及文本中的重点信息,当看到 “马”时,注意力机制会重点突出图像“马”的生成;
2024-03-21 15:55:57 704
原创 主流大语言模型的技术原理细节
1.比较 LLaMA、ChatGLM、Falcon 等大语言模型的细节:tokenizer、位置编码、Layer Normalization、激活函数等。2. 大语言模型的分布式训练技术:数据并行、张量模型并行、流水线并行、3D 并行、零冗余优化器 ZeRO、CPU 卸载技术 ZeRo-offload、混合精度训练、激活重计算技术、Flash Attention、Paged Attention。
2024-03-21 15:47:46 502
原创 浅析多模态大模型技术路线梳理
模型的整体框架如下所示,我们从下往上看:首先一张图片会经过视觉模块(ViT&Q-Former)进行编码得到一个图像 embedding,由于视觉模块给出的 embedding 不能够直接被语言模型理解,因此一般需要将视觉 embedding 和文本 embedding 进行对齐,这里加入了一个线性层,可以理解为这里假设图片编码器得到的输出经过一个线性层后就能够被语言模型理解了,然后将原始的文本信息和经过对齐后的图像信息拼接起来,送入 LLM,就可以实现能够接受多模态信息的 GPT 了。
2024-03-21 15:47:15 983
原创 OpenAI Sora文生视频模型技术报告中英全文
我们最大的模型Sora能够生成一分钟的高保真视频。Sora是一种通用的视觉数据模型——它可以生成持续时间、宽高比和分辨率各异的视频和图像,长达一分钟的高清视频。我们将Sora与一个版本的模型进行了比较,该模型将所有训练视频裁剪成正方形,这是训练生成模型时的常见做法。我们在我们的登录页面列举了模型的其他常见故障模式——比如在长时间样本中发展的不连贯性或物体的自发出现。这项能力使得Sora能够执行广泛的图像和视频编辑任务——创建完美循环的视频,为静态图像添加动画,向前或向后延长视频的时间等。
2024-03-21 15:37:30 786
原创 Sora的前世今生:从文生图到文生视频
然后我们对14x14的特征图做上采样或者反卷积,得到28x28的特征图,这个28x28的特征图与之前的28x28的特征图进行通道上的拼接,然后再对拼接之后的特征图做卷积和上采样,得到56x56的特征图,再与之前的56x56的特征拼接,卷积,再上采样,经过四次上采样可以得到一个与输入图像尺寸相同的224x224的预测结果。为了使得视频的生成连贯,那在VAE编解码的过程自然需要去考虑视频不同帧的关系,原来对图片进行处理相当于考虑的是图片空间上的关系,现在换到视频就是多了时间上的关系,也就是经典的时空。
2024-03-21 15:27:14 250
原创 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 118
原创 【图像生成】(四) Diffusion原理 & pytorch代码实例
在第二个公式中,为高斯函数的输出,为高斯函数的输入,而为高斯函数的均值,为高斯函数的方差。推理的时候从随机的初始噪声开始,预测当前噪声的上一个step的正态分布噪声,然后根据采样公式得到反向扩散的均值和方差,最后根据重整化公式计算出上一个step的图像。训练时随机选择step和随机生成正态分布噪声,通过叠加后得到加噪图像,然后将加噪图像和step一起输入进Unet中,得到当前step的预测正态分布噪声,并与真实正态分布噪声计算loss。在噪声微小的前提下,逆向的去噪过程也可以等同于预测高斯噪声。
2024-03-13 22:07:14 1089
原创 Diffusion Models 简单代码示例
扩散模型的目标是通过数据在潜在空间(latent space)的扩散过程,学习数据的潜在向量结构(latent structure),通俗点说,扩散模型学习利用数据逐步变成噪声的过程,学习反向的去噪声过程。你可以从下面两个视频中的解释,理解扩散模型背后的理论和实现。conditional diffusion 模型的代码:与unconditional的不同,conditional diffusion在预测噪音是需要输入标签信息,同时使用unconditional的噪音,进行线性插值,获得用于复原样本的噪音。
2024-03-13 21:53:59 764
原创 diffusion
""""""else:"""Arguments:"""""""""""""""return (""""""else:else:else:return (""""""
2024-03-13 15:00:04 402
原创 扩散模型 (Diffusion Model) 简要介绍与源码分析
扩散模型 (Diffusion Model) 简要介绍与源码分析前言广而告之总览参考文章扩散模型介绍基本原理前向阶段逆向阶段模型训练最终算法源码分析训练阶段逆向阶段总结近期同事分享了 Diffusion Model, 这才发现生成模型的发展已经到了如此惊人的地步, OpenAI 推出的Dall-E 2。
2024-03-13 14:56:56 831
原创 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 323
原创 扩散模型(Diffusion Model)详解:直观理解、数学原理、PyTorch 实现
图像生成任务就是把随机生成的向量(噪声)映射成和训练图像类似的图像。为此,扩散模型把这个过程看成是对纯噪声图像的去噪过程。通过学习把图像逐步变成纯噪声的逆操作,扩散模型可以把任何一个纯噪声图像变成有意义的图像,也就是完成图像生成。对于不同程度的读者,应该对本文有不同的认识。图像生成任务的通常做法图像生成任务需要监督VAE通过把图像编码再解码来训练一个解码器扩散模型是一类特殊的VAE,它的编码固定为加噪声,解码固定为去噪声扩散模型的优化目标:让反向过程尽可能成为正向过程的逆操作。
2024-03-12 11:42:35 1183 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 241
原创 扩散模型 (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 447
原创 一文详解扩散模型:DDPM
这些效果惊艳的模型扩散模型的理论基础便是我们这里要介绍的提出扩散模型的文章[1]和非常重要的DDPM[2],扩散模型的实现并不复杂,但其背后的数学原理却非常丰富。因为我们在扩散过程的整个流程中都共享同一套参数,为了区分不同的时间片,作者借鉴了Transformer [15]的位置编码的思想,采用了正弦位置嵌入对时间$t$进行了编码,这使得模型在预测噪声时知道它预测的是批次中分别是哪个时间片添加的噪声。扩散模型是一个基于马尔可夫链的数学模型,它通过预测每个时间片添加的噪声来进行模型的训练。
2024-03-12 11:19:11 456
原创 扩散模型DDPM详解
扩散模型可以简单的概括为加噪和去噪两个过程:加噪:使图像 �0 最终变成了一个标准的正态分布 ��。去噪:将 ��还原为 �0。实质上扩散模型需要学习的是去噪的过程,而加噪的过程为去噪过程的训练提供了训练的标签, 如下图所示,从右到左就是一个加噪的过程,从左到右就是一个去噪的过程。
2024-03-12 11:17:19 400
原创 1. DDPM模型概述
扩散模型(DM,Diffusion Model)是一类生成模型,常见的生成模型还有GAN和VAE。扩散模型分为前向阶段和逆向阶段,在前向阶段中逐步向数据中添加噪声,直至数据变成完全的高斯噪声,然后在逆向阶段学习从高斯噪声中还原为原始数据。前向阶段表示为图1中从右往左的过程。从原始图像�0开始,第�步在��−1的基础上添加噪声得到��。��只与��−1有关,直至�步后��完全变为高斯噪声。逆向过程表示为图1中从左往右的过程。首先给定高斯噪声��,通过逐步去噪,直至将原始数据�0恢复。
2024-03-12 11:14:50 368
原创 图解Diffusion扩散模型+代码
推理出了diffusion模型的损失函数,从最小化对数似然,到优化变分下界,简化变分下界,得到最后目标,预测噪声。提供了两版代码,其中条件生成与时下最火的text2image原理类似,只是text2image不仅仅使用单一类别作为编码。参考novelai。作为新一代生成模型,diffusion训练的过程可谓是十分的稳定,调参也比GAN相对简单不少!想要更好结果,我们只需要加大T,加大epoch即可。
2024-03-12 11:09:25 381
原创 10分钟读懂Diffusion:图解Diffusion扩散模型
这里还有一个原因,DDPM 中的 UNet 都是共享参数的,那如何根据不同的输入生成不同的输出,最后从一个完全的一个随机噪声变成一个有意义的图片,这还是一个非常难的问题。因此,较小的 t 代表较弱的噪声扰动,而较大的 t 代表更强的噪声扰动。的架构中,图里面用的都是 Stable Diffusion,后面介绍又主要介绍的是 Diffusion。前面介绍了 Diffusion 是如何根据输入文字生成图片的,让大家有个大概的了解,接下来会详细介绍扩散模型 Diffusion 是如何训练的,又是如何生成图片的。
2024-03-12 11:00:23 287
原创 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 287
原创 扩散模型原理+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 492
原创 扩散模型原理+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 101
原创 Sora底层使用了DIT架构,也就是Diffusion Transformer
Sora底层使用了DIT架构,也就是Diffusion Transformer, 该架构采用了扩散模型和Transformer相结合,由facebook开源。本视频是对论文、源码和项目的解析。这是DIT的核心的代码和整体的逻辑架构。三、DDIM快速采样的预测代码。一、 预测的总体架构。二、DIT的总体架构。
2024-03-11 21:28:43 235
原创 Vision Transformer 代码实现
最近开始恶补CV了(指->新建文件夹)。作为CV Transformer的开山大作,首先要学习的就是ViT(Vision Transformer)模型。有很多大佬都已经解读过这篇工作了,我比较推荐的视频,不仅能了解模型架构,还能学到些论文写作技巧。也参考了(代码是基于timm的) 本文代码基于,该项目包含了ViT和诸多变体。需要预训练模型的话可以参考ViT的架构ViT的结构如上图,我们按照流程一步步讲解。大概来说,ViT分为这几个步骤。1。
2024-03-09 21:26:00 972
原创 Scalable Diffusion Models with Transformers (DiT)Official PyTorch Implementation
【代码】Scalable Diffusion Models with Transformers (DiT)Official PyTorch Implementation。
2024-03-09 15:46:45 918
原创 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 940
原创 DiT详解
中提出的思想,它使得扩散模型可以按照指定的类生成图像。(1)∇��log�(��∣�)=∇��log(�(��)�(�∣��)�(�))=∇��log�(��)+∇��log�(�∣��)−∇��log�(�)=∇��log�(��)⏟unconditional score +∇��log�(�∣��)⏟classifier gradient 我们可以添加一个权重项 � 来调整来灵活的控制unconditional score和classifier gradient的占比,如式(2)。
2024-03-08 13:29:59 1032
原创 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 148
原创 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 77
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人