赞
踩
简单来说,SD的作用是文生图(text to image)
,而Sora的功能是文生视频(text to video)
。
两者都使用了Diffusion model
,属于AIGC领域的生成式AI。
训练 Stable Diffusion 模型通常需要一个大规模的图像数据集,并且这些图像通常会配有描述图像内容的文本标签。这些文本标签可以是简单的图像标题、详细的描述或者其他形式的注释。
编码器(Encoder):首先训练一个编码器来将图像映射到一个潜在空间(latent space),这个空间通常具有较低的维度,能够捕捉图像的关键特征。
解码器(Decoder):同时训练一个解码器,它的任务是从潜在空间重建图像。
添加噪声:在这一步中,模型学习如何逐步向图像添加噪声,这个过程是有监督的,因为我们知道每一步的噪声是什么。
反向扩散(Denoising):模型同时学习如何从噪声图像中恢复出原始图像,这个过程称为反向扩散或去噪。
模型需要学习如何根据输入的文本描述来生成图像。为此,它会使用文本编码器来将文本描述编码到与潜在空间相同的维度空间中,然后在训练过程中将这些文本特征与潜在特征结合,以指导图像的生成。
损失函数通常包括两部分:重构损失(确保编码器和解码器能够准确重建图像)和扩散损失(确保反向扩散过程能够有效去除噪声并生成高质量图像)。
使用梯度下降算法(如Adam或AdamW)来优化模型参数,以减少损失函数的值。这通常需要大量的计算资源和时间,以及对超参数的精心调整。
在训练过程中,会不断评估模型的性能,以确保它能够生成高质量和多样化的图像。可能需要进行多轮迭代,调整模型架构和超参数来提高性能。
除去魔搭社区之外,可以去看B站UP主秋葉aaaki(人称赛博佛祖)的视频,来快速体验SD,通过下载秋叶整合包来快速上手。
似乎因为滥用算力被拉入黑名单了(悲伤)。下次一定先好好看代码(狠狠忏悔)。
Transformers的技术可以去看李沐老师或者李宏毅老师的讲解视频,一定能够获得比这篇笔记更加深刻的理解。下图先贴上Transformer的框架图。
Attention 的公式:
A
t
t
e
n
t
i
o
n
(
Q
,
K
,
V
)
=
s
o
f
t
m
a
x
(
Q
K
T
d
k
)
V
Attention(Q,K,V) = softmax(\frac{QK^T}{\sqrt{d_k}})V
Attention(Q,K,V)=softmax(dk
QKT)V
其中
d
k
d_k
dk 是Q、K矩阵的列数,即向量维度.
K
=
W
K
I
、
Q
=
W
Q
I
、
V
=
W
V
I
K = W_K I 、Q = W_Q I 、V = W_V I
K=WKI、Q=WQI、V=WVI
其中
W
K
、
W
Q
、
W
V
W_K 、W_Q 、W_V
WK、WQ、WV 就是需要训练的参数,类似于CNN中所训练的卷积核簇参数
其中
I
I
I 为input
Multi-Self-Attention
类似于CNN中使用多个卷积核获得多张特征图像,能够提取不同子空间的信息
M
u
l
t
i
H
e
a
d
A
t
t
e
n
t
i
o
n
(
Q
,
K
,
V
,
O
)
=
W
O
A
t
t
e
n
s
t
i
o
n
(
Q
,
K
,
V
)
MultiHeadAttention( \bold Q,\bold K, \bold V,O) = W^OAttenstion(\bold Q, \bold K, \bold V)
MultiHeadAttention(Q,K,V,O)=WOAttenstion(Q,K,V) - 其中
Q
,
K
,
V
\bold Q, \bold K, \bold V
Q,K,V 表示为矢量,即具有多种注意力模式
由于代码水平有待提高,只是跑了一下Attention的代码,下面贴个结果图。本文的代码均来自于Reference的资料中(感谢DataWhale)。
除此之外llm的代码也只是跑了一下,但是还存在些bug(没清楚文件路径),此处便不再贴出。
思考与讨论是dalao 认为可以研究的点与方向,此处思考与讨论的解答是作为一个浅尝辄止之人的浅薄之见,难免有诸多错误愚见,若能斧正不对之处,指点一二,不胜感激。
Attention 是一种全局性的权重分布,能够表示tokens之间的相互权重。
乘型Attention是权重直接和数据的特征相乘,而加型Attention则是权重和数据的(大部分是处理过后的)特征进行相加。
Dot- Product Attention 能够有很好的并行性,能够提高计算的效率。
sqrt(d_k)
吗?Scaled 因子能够避免Slef-Attention 的大小进行归一化,避免过大。
必须是$sqrt{d_k}$ 没有具体的思路。
个人认为Multi越多不一定越好,对于一些
hidden_dim
,你认为增加 head_dim
(需要缩小 num_heads
)和减少 head_dim
会对结果有什么影响?对于Attention weights 应用Dropout 一般是为了加快训练与防止过拟合。
Attention
bias 设置为Flase,原因我还要进一步学习探索
计算成本过高,可解释性不佳,存在过拟合现象当数据不足时候,调参难度过大
Deep的大小直接关系到神经网络参数的多少,越是复杂的参数一般来说能拟合的函数也就越复杂。但是我们训练一个神经网络的目的往往是合适而不是过于复杂,因而Attention多叠加几个效果看要实现功能相匹配合适才是最好的,不能一味的走量网堆。
Deep指的是模型的深度,即模型中包含的层次数量。Deep能够更好地表征数据的特征,更好地理解数据的深层特征。
Wide指的是模型的宽度,即单个隐藏层中神经元的数量。Wide能够更够更好地进行特征的选择与并行计算。
Wide部分负责记忆性,能够通过宽阔的网络层来处理大量的原始特征和特征交叉。
Deep部分负责泛化性,通过深层网络来探索特征之间的隐含关系。
扩大是为了提高网络的参数,以便能够学到数据中的更深层次的数据;
缩小是为了能够更好执行我们所需要的目标任务,比如分类等。
在Attention 模块中是数据本身是不包含对应的位置信息的,因而需要使用位置编码来实现对于Tokens语序的排列,以便更好地实现对于语义的理解与生成。
位置编码方案:DCT,其他有待进一步搜索)
编码与解码的复杂度与可并行性
就是在魔搭社区测试U-ViT的时候被拉黑了(),此处便给出一些技术的介绍,等被拉出黑名单再补......
Vision Transformer(ViT)是Google在2020年提出的一种应用于图像分类任务的模型。它将自然语言处理中非常成功的Transformer模型直接应用于图像。ViT的关键思想是将图像分割成多个小块(patches),这些小块被线性嵌入为一维的token序列,然后输入到一个标准的Transformer结构中进行处理。
ViT的训练过程包含以下几个关键步骤:
图像分块:将输入图像分割成固定大小的小块(例如16x16像素的小块)。
Patch嵌入:将每个图像块线性嵌入到一个高维空间,形成"patch embeddings"。
位置编码:为了使Transformer能够利用序列的顺序信息,会加入位置编码到每个patch的嵌入中。
Transformer编码器:使用标准的Transformer结构处理序列,包括多头自注意力机制和前馈神经网络。
分类头:Transformer的输出通过一个分类头(通常是一个简单的线性层)来进行预测。
ViT在大规模数据集上展现出了与当时最先进的卷积神经网络(CNN)相媲美或更好的性能,特别是在高分辨率图像上。
ViViT是将Vision Transformer应用于视频分类任务的一种方法。ViViT模型处理视频不仅仅像处理图像那样考虑空间信息,还要处理时间信息。ViViT的主要贡献是提出了几种不同的方式来整合时间维度,允许模型学习视频中的时空特征。
ViViT的架构通常包括以下几个要素:
时空分块:将视频分解为时空块,每个块包含一系列的帧。
时空嵌入:使用3D卷积或其他方法将时空块嵌入到高维空间中。
位置编码:与ViT类似,加入位置编码以保持时空块的顺序信息。
Transformer编码器:通过Transformer结构处理嵌入序列,可能同时考虑空间和时间注意力。
ViViT通过这种方式处理视频,能够在视频理解任务上取得优异的性能。
U-ViT是一种基于Transformer的架构,用于参数化噪声预测网络 。U-ViT将所有的输入都视作token,并在Transformer块之间加入了U型连接。U-ViT的特点是将包括时间、条件和噪声图像patch在内的所有输入视为token,并在浅层和深层之间采用长跳跃连接。
此处也只给出简单的技术介绍()
TTS(Text-to-Speech)是指将文本转换为语音的技术,它使计算机能够以人类的声音读出文本。这项技术在许多领域都有应用,包括助手设备、导航系统、自动客服等。TTS系统通常由以下几个主要组件组成:
这个阶段包括将输入的文本转换成适合发音的格式,例如将缩写词、数字、特殊符号等转换成完整的单词和句子。
在这一步骤中,文本被分解成可以发音的单元,如音素或音节。这一过程可能包括词性标注、句法分析和语义分析,以确定单词的正确发音(尤其是在多音字的情况下)。
声学模型负责生成语音信号。在传统的TTS系统中,这可能是一个基于规则的系统,它使用声学数据库中的录音片段来构造语音。在基于深度学习的现代TTS系统中,声学模型通常是一个神经网络,它能够生成连续的语音波形。
这一步是生成可听语音的最终阶段。在基于深度学习的系统中,这一步通常是通过WaveNet这样的模型来完成的,这些模型能够生成高质量的、类似人类的语音。
DataWhale学习手册
DataWhale的Github-sora-tutorial
【AI+X组队学习】Sora原理与技术实战
Micky Sora技术解析与实战-01
Micky Sora技术解析与实战-02
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。