扩散模型Diffusion
原理:其实是概率推导
1 背景
1.1前提:生成模型
- 对抗网络:GAN
- 自动微分编码器:VAE
- Transformer
1.2奠基论文
Denoising Diffusion Probabilistic Models(2020)
1.3资料
- Understanding Diffusion Model:A Undefined Perspective
- 知乎-浅谈sora未来的千倍推理算力需求
2 生成模型的重要组成部分
2.1 前向过程diffusion process:add noise
根据β值(加噪声的力度),人为给一张好的图片逐步/一次性加上噪声。
2.2 反向过程denoise process:remove noise
给一张模糊的图片逐步/一次性去掉噪声。
下标越小越干净。
3 训练思路
3.1训练
- 取一张图片
- 模拟一段噪声
- 把噪声加进图片里
- 模拟噪声
3.2推理
- 取一张带噪声的图片
- 模拟一段噪声
- 图片-预测可能的噪声值(达到去噪)
- 再加一个小噪声,随机扰动,增加随机性(一些随机灵感,保证每次的结果都有一点点不同)
4 应用
文生图
三大架构:文字------【Text-encoder】---->token+random noise-----【Generation Model】----->压缩图(隐式表示,还不是像素空间)----【Decoder】----->图片
- Stable Diffusion:Latent Space—Pixel Space
- DALL·E
- Google:Imagen:中间生成的不是隐式产物,而是小图。
二维的(比如stable diffusion)用Unet处理二维数据。
文生视频
膨胀了一个维度,3D-Layer,3D-Unet
- VDM
- Sora
长视频生成
把长视频看成很多段重叠的短视频
长噪声–>很多段重叠的短噪声
Muti-diffusion
①单独训练不同模态的encoder、decoder模型:文生图+文生视频
②在中间的diffusion step生成的时候,把需要不同的模态结合起来(在接收不同模态的输入,生成不同模态的输出)
5 challenge&对比
由于计算量大,网络结构大多是unet(二维的)
最近Sora用的是transformer(一维的)
- 对算力有很大要求
- NVIDIA Blackwell------专门跑大模型的芯片