更多AI技术,关注我的github,欢迎点亮星星:
https://github.com/xinyuwei-david/david-share.git
一、前言
在人工智能领域,生成模型,特别是图像和视频生成模型,近年来取得了令人瞩目的进展。其中,基于扩散模型(Diffusion Models)的生成技术备受关注。Mochi作为最新的成果之一,结合了先进的模型架构和高效的训练方法,推动了文本到视频生成技术的发展。
二、背景知识
1. 扩散模型(Diffusion Models)
扩散模型是一类生成模型,其核心思想是通过在数据上逐步添加噪声的正向过程,并学习如何在逆向过程中去除噪声,最终恢复或生成数据。这种方法可以用于从纯随机噪声生成逼真的图像或视频。
举例说明:
**正向过程(添加噪声):**假设我们有一幅清晰的风景画,我们逐步在其上添加噪点,就像在画布上喷洒墨水。每次添加的噪声很少,但经过多次迭代后,图像逐渐被噪声覆盖,最终变成一张完全被噪声充斥的图像。
**反向过程(去除噪声):**我们从这张完全被噪声覆盖的图像开始,通过模型一步步去除噪声,逐渐恢复出原来的清晰图像。
2. Transformer与视觉Transformer(Vision Transformer, ViT)
Transformer最初用于自然语言处理(NLP),擅长处理序列数据,如文本。后来,研究人员将其应用于图像领域,形成了视觉Transformer(Vision Transformer, ViT)。
**ViT的核心思想:**将图像划分为固定大小的块(称为patch),然后将这些块展平成序列,像处理文本序列一样,通过Transformer模型进行处理。
三、Mochi的核心技术
Mochi的核心技术主要包括:
非对称扩散Transformer(Asymmetric Diffusion Transformer,AsymmDiT)架构
视频变分自编码器(Video Variational Autoencoder,视频VAE)
1. 非对称扩散Transformer(Asymmetric Diffusion Transformer,AsymmDiT)
(1)AsymmDiT简介
AsymmDiT是Genmo团队提出的一种新颖的Transformer架构,专为视频生成任务设计。其显著特点是模型在处理视觉信息和文本信息时,采用了非对称的模型容量和架构设计。
(2)多模态自注意力机制
AsymmDiT通过多模态自注意力机制,能够联合关注文本和视觉令牌。这意味着模型可以同时处理用户的文本提示和压缩后的视频令牌,实现更强的文本与视频生成的对应关系。
(3)非对称设计的体现
视觉流(Visual Stream):
**参数量更大:**视觉流的参数量是文本流的近4倍,具有更大的隐藏维度(例如3072)。
**目的:**通过更大程度地关注视觉信息,提升视频生成的质量。
文本流(Text Stream):
**参数量较小:**用于处理文本提示,隐藏维度较小(例如1536)。
**目的:**简化文本处理,节省计算资源,提高模型的效率。
(4)非方形的QKV和输出投影层
为了在自注意力中统一不同的模态,AsymmDiT使用了非方形的查询(Q)、键(K)、值(V)以及输出投影层。
优势:
**统一不同模态:**解决了视觉和文本模态在维度上的不匹配。
**减少内存需求:**这种设计有助于减小推理时的内存需求,提高模型的效率。
(5)专注于视觉推理
通过简化文本处理,并将神经网络的主要容量集中在视觉推理上,AsymmDiT能够更高效地生成高质量的视频内容。
**独立的MLP层(前馈网络):**为每个模态(视觉和文本)学习独立的MLP层,更好地适应各自模态的特征。
(6)使用单一的文本编码器
T5-XXL语言模型:
与许多现代扩散模型使用多个预训练的语言模型来表示用户提示不同,Mochi 1仅使用单个T5-XXL语言模型来编码提示。
**优势:**简化了模型的架构,并有助于提高效率。
(7)举例说明
**示例:**用户输入文本提示:“一只色彩缤纷的鸟儿在茂密的热带雨林中飞翔,阳光透过树叶洒下来。”
**文本流处理:**模型使用T5-XXL语言模型编码文本,提取关键元素——鸟儿、热带雨林、飞翔、阳光。
**视觉流处理:**利用更强大的视觉流,生成对应的视频内容,确保鸟儿的色彩、雨林的细节和光影效果逼真。
**多模态融合:**通过非方形的QKV和输出投影层,将文本和视觉信息融合,生成符合描述的视频。
2. 视频变分自编码器(Video Variational Autoencoder,视频VAE)
(1)视频VAE简介
视频VAE是Mochi模型中用于视频压缩和解压的变分自编码器。
(2)视频压缩
**压缩比:**该模型能够将视频进行因果压缩,大小缩小到原来的1/128。
具体压缩方式:
**空间压缩:**在空间上压缩了8×8倍。
**时间压缩:**在时间上压缩了6倍。
**结果:**生成一个12通道的潜在空间表示。
(3)高效的表示
通过将视频压缩到更小的潜在空间:
优势:
**减少计算资源:**模型可以在保证视频质量的前提下,更高效地进行视频生成和处理。
**高效处理:**在潜在空间中进行视频生成,降低了计算量,提高了生成速度。
(4)举例说明
**示例:**处理一段分辨率为640×480,时长为5秒,30帧/秒的视频。
**压缩:**使用视频VAE,将视频压缩到潜在空间,数据量大幅减少。
**生成:**模型在潜在空间中进行视频生成。
**解码:**通过解码器,还原为高分辨率、流畅的视频。
四、Mochi 1的突破性功能
Mochi 1带来了多项突破性的功能:
1. 高保真度运动
**平滑和自然的运动:**生成的视频中,物体和人物的运动顺畅自然。
**逼真的人物呈现:**对人物的形象和动作进行真实地模拟。
**动作一致性:**在整个视频序列中,动作保持连贯一致。
2. 强提示依从性
**精确控制角色和设置:**能够根据文本提示精确地生成指定的角色和场景。
**准确解释详细指令:**对复杂和详细的文本描述也能给予准确的生成结果。
**一致的视觉输出:**生成的视频与文本输入高度匹配,符合用户期望。
3. 技术创新
**新颖的非对称扩散Transformer(AsymmDiT)架构:**专为视频生成设计的非对称Transformer架构,提升了模型的生成能力。
**视频VAE压缩:**使用视频变分自编码器对视频进行高效压缩和解压,减少计算资源占用。
**用于时间一致性的3D注意力机制:**引入3D注意力机制,确保视频在时间维度上的一致性和连贯性。
五、Stable Diffusion
1. Stable Diffusion概述
Stable Diffusion是另一款广泛使用的文本到图像生成模型,早期版本(如Stable Diffusion 2)采用了基于U-Net的对称架构,在编码器和解码器中对称地处理图像。
**U-Net的对称性:**编码器和解码器的层数、通道数对称,并通过跳跃连接连接对应层。
2. Stable Diffusion 3的变化
最新的Stable Diffusion 3摒弃了传统的U-Net架构,采用了扩散Transformer(Diffusion Transformer,DiT)架构,并结合了流匹配(Flow Matching)技术。
DiT的对称性:
**Transformer层的对称性:**模型由多层Transformer组成,各层结构相同。
**模态处理的对称性:**视觉信息和条件(如文本提示)信息的处理在模型中是对称的,没有针对某一模态进行特殊设计。
3. DiT架构中的对称性
模型架构的对称性:
**统一的Transformer层结构:**各层的组件和处理方式一致,包括多头自注意力、前馈网络和层归一化等组件。
数据处理的对称性:
**输入和输出的对称处理:**从图像到序列,再从序列到图像,过程对称。
**时间步处理的对称性:**在不同的时间步,模型以一致的方式处理数据。
模态处理的对称性:
**视觉和条件信息的均衡处理:**没有对某一模态进行特别的参数倾斜或架构调整。
**交叉注意力机制的统一应用:**在模型中一致地融合条件信息。
4. 与Mochi的区别
模型架构:
Mochi采用AsymmDiT架构,强调视觉流和文本流的非对称设计。
Stable Diffusion 3采用对称的DiT架构,模型结构对称,没有刻意的不对称设计。
处理方式:
**Mochi:**通过非对称设计,增强视觉信息处理能力,优化资源分配。
**Stable Diffusion 3:**通过DiT和流匹配(Flow Matching)的结合,提高图像生成质量和效率。
六、流匹配(Flow Matching)技术简介
1. 核心思想
流匹配(Flow Matching,FM)是一种用于训练生成模型的新方法,旨在提高训练效率和生成质量。
**无需模拟:**传统的训练方法通常需要昂贵的模拟过程,流匹配通过直接规定概率路径,消除了对模拟的需求。
**条件结构:**利用条件概率路径和向量场,更有效地捕捉复杂的数据分布。
2. 优势
**提高训练效率:**减少计算开销,加快训练速度。
**提升生成质量:**模型能够更准确地学习数据的底层分布。
3. 在Stable Diffusion 3中的应用
**结合DiT架构:**通过将流匹配与DiT架构相结合,Stable Diffusion 3在图像生成质量和效率上都有显著提升。
**处理多主题提示:**这种结合使得模型能够更准确、更连贯地处理复杂的多主题提示,生成多样化和复杂的图像。
七、正向过程和反向过程在训练和推理中的作用
1. 正向过程(添加噪声)
在训练过程中:
**目的:**构造带有不同噪声水平的训练样本,供模型学习如何去除噪声。
**操作:**对每个训练样本(如一张清晰的图像),按照预定义的噪声调度,逐步添加噪声,生成一系列带有不同噪声水平的样本。
在推理(生成)过程中:正向过程通常不在推理过程中显式执行。
我们从随机噪声开始,不需要再添加噪声。
2. 反向过程(去除噪声)
在训练过程中:
**目的:**训练模型学习如何去除噪声,从带噪声的样本恢复原始数据。
**操作:**模型接受带有一定噪声水平的样本作为输入,目标是预测出原始的纯净数据或直接预测添加的噪声。
在推理(生成)过程中:**目的:**从随机噪声开始,经过多次迭代,逐步去除噪声,生成新的数据。
操作:
**初始化:**从纯随机噪声开始(对应于训练中最高噪声水平)。
**迭代去噪:**模型在每个时间步,根据当前的带噪声数据,预测去噪后的数据,然后更新样本。
重复这个过程,直到达到最低噪声水平(纯净数据)。
3. 总结
正向过程(添加噪声):
**在训练中使用,**用于生成带有不同噪声水平的样本,帮助模型学习如何去除噪声。
在推理中通常不使用。
反向过程(去除噪声):
**在训练中使用,**模型学习如何去除噪声,恢复纯净数据。
**在推理中也使用,**模型从随机噪声开始,逐步去除噪声,生成新的数据。
4. 举例说明
训练阶段:
**正向过程:**对一张清晰的图片(如一只猫的照片),逐步添加噪声,直到变成几乎无法辨认的随机噪声。
**反向过程:**模型学习如何从不同程度的带噪声图片中去除噪声,恢复出原始的猫的照片。
推理阶段:**反向过程:**模型从纯随机噪声开始,通过迭代去除噪声,最终生成一张新的猫的图片。
八、综合示例
**场景:**用户想生成一段描绘清晨海边日出的高清视频。
用户输入:“清晨,太阳从海平面缓缓升起,天空被染成金黄色,海浪轻轻拍打着沙滩,海鸥在天空中飞翔。”
Mochi的处理过程:
文本流处理:
使用T5-XXL语言模型,将文本提示编码为特征向量,提取关键词:清晨、太阳升起、金黄色天空、海浪、沙滩、海鸥飞翔。
视觉流处理:
利用视觉流的大量参数,生成包含这些元素的视频,捕捉太阳升起的动态过程和光影变化。
多模态融合:
通过非方形的QKV和输出投影层,将文本信息与视觉生成过程结合,确保生成的视频与描述相符。
视频VAE压缩和解码:
在潜在空间中进行视频生成,降低计算量,提高生成速度。
通过解码器,将潜在表示还原为高分辨率、流畅的高清视频。
最终结果:
一段清晨海边日出的高清视频,画面细腻,色彩还原真实,完全符合用户的期待。