CogVideoX: Text-to-Video Diffusion Models with An Expert Transformer 论文解读
目录
一、前置知识
1、Cogview
2、Cogview2
3、Cogvideo
二、CogvideoX概述
三、CogVideoX架构
1、整体架构
2、3D Causal VAE
3、Expert Transformer
一、前置知识
1、Cogview
21年的工作,Cogview是第一个开源的大型文本到图像的转换器并且超过了基于GAN的方法,和zero-shot generation的方法,适应于各种不同下游任务,风格,图像超分辨率等。
首先输入图像到一个VQVAE(但是这里面在codebook后用了GPT来输出token),另外引入了一个Text输入,通过一个text tokenizer得到text tokens并且与image token concat后作为GPT输入,最后取前8192再查codebook,输出到decoder得到预测图像。
![](https://i-blog.csdnimg.cn/direct/9fd648c5237c4e3ab1daa6ec427ba442.png)
2、Cogview2
![](https://i-blog.csdnimg.cn/direct/9fd4f37c89354b16a93c8bc9781dd34a.png)
22年的工作,相较于Cogview来说,攻克了三个问题,建立了一个CogLM模型。
(1)对于Cogview在VQVAE中引入了transformer但只能处理单向的tokens,换句话说,每一个token只关注前面n-1的tokens的问题,在Cogview2中引入了Mask,(应该是学了MaskGIT,但是MaskGIT是bidirect-transformer,或者是学了MAE),Mask掉部分tokens,并行操作,保证可以处理双向上下文。
(2)考虑到高分辨率水平上局部一致性问题,定制了一个新的CUDA内核,而不是在transformer中加交叉注意力,这样减少了内存开销。
(3)另外提出了一个局部并行自回归生成(LoPAR),在从低分辨率上升到高分辨率的过程中(编码器输出20*20,解码器输入60*60),引入了一个局部并行自回归生成来打破生成token的独立性,同时保持并行性,这相比于Cogview的滑动窗口的生成速度快十倍。其中初始mask掉75%的像素,并通过LoPAR从一个初始局部窗开始滑动,并且忽略已经生成的部分,向其他方向滑动生成。
![](https://i-blog.csdnimg.cn/direct/252269968c594855afe922c08a8d3e5f.png)
3、Cogvideo
![](https://i-blog.csdnimg.cn/direct/5d8c9c002ef747ee8429ce12c6dfad4f.png)
22年的工作,基于Cogview2的CogLM模型,但是输入的是视频帧,原来一张input经过VQVAE后是20*20的tokens,而如果当前输入是5帧图像,那么就需要20*20*5tokens,并且相较于Cogview引入Input text,这里面还要引入视频帧率,最后同样输入到CogLM的transformer结构,但是相较于Cogview2又引入了一个新的时间注意力通道,原有的CogLM所有参数冻结,只有新的注意力机制保持训练,以训练时间信息。
另外提出一个Swin注意力,就是原有Cogview的mask策略在Cogvideo上的改进,是在帧方向的优化。保证不同帧可以进行并行操作。
二、CogvideoX概述
该论文提出了一个基于Diffusion Transformer的大规模文本到视频模型CogVideoX,可以实现生成与文本对齐的10s连续视频,分辨率为768*1360 pixels。为了解决现有视频模型存在移动空间有限,持续时间短,难以生成基于文本的连续视频问题,该论文提出了几种方法。
(1)提出了3D VAE来从时间空间维度压缩视频,以提高视频保真度和压缩率。
(2)为了保证文本-视频对齐,提出了具有exper AdaLN的expert Transformer来促进文本和视频的深度融合。
(3)采用渐进式训练和多分辨率帧包技术,使得CogvideoX擅长连贯的,长时间的,具有显著运动特征的视频。
(4)设计了一个文本-视频数据的处理pipeline,包括预处理,视频字母处理工作,极大地有助于生成质量和语义对齐。
CogvideoX在多种客观指标和人类评估下均达到SOTA性能。
对于CogvideoX的训练,训练了两个不同的参数量大小,CogVideoX-2B,CogVideoX-5B。
![](https://i-blog.csdnimg.cn/direct/b829984863424f14a5e094ccddef2930.png)
text-to-video models in different aspects.
三、CogVideoX架构
1、整体架构
CogVideoX整体架构是一个双路DiT结构,相比于以往的DiT把文本作为condition,通过MLP来引导AdaLN的参数,CogVideoX直接用T5将文本编码并经过双路DiT Expert Transformer模块。
模块的改进包括对于输入视频帧(序列图像)经过3D Causal VAE进行编码(他提出的)。
将原有的AdaLN改进为Expert AdaLN。
Self-Attention改为3D full Attention,并且把文本编码tokens concat到视频帧token后面作为条件。
![](https://i-blog.csdnimg.cn/direct/85afaf957f3a4c41ac3b04c765366a78.png)
2、3D Causal VAE
由于视频中包含时间空间信息,相比于图像有更大的数据量,所以3D Causal VAE的目的是结合3D Causal Convlution来在空间和时间上压缩视频,保证更高的压缩比,这也在很大程度上提高质量和视频重建的连续性。
这个a图中,模型中所有的3D卷积都替换成了3D Causal Convolution(3D因果卷积) ,这个因果卷积要求每个时间步的输出只依赖于当前时间步以及之前的时间步数据,而不依赖于未来的时间步,也就是说,一个三维数据是[H,W,T],先不考虑颜色,从时间层面看那么计算卷积后的时刻的特征,只能依赖
时刻下的全部特征,而以往的3D卷积会完全考虑
所有时刻的特征。
通过3D因果卷积也可以保证分布式并行处理,也就是多个分布式设备rank间互相交互信息。
a图中的2x downsample和2x upsample都是经过两次残差块--ContextParallelResnetBlock3D块逐层下采样堆叠的,残差块内部都是3D因果卷积,最后进行归一化输出。
另外就是KL散度进行正则化,类似于GAN的鉴别器损失,对比encoder输入和decoder输出的特征,计算KL散度损失。
对于3D Causal VAE的压缩问题进行了笑容研究,随着潜在通道增加,回复质量越高,视频抖动越低(Flickering),但是视频质量变化不太明显,甚至压缩率过高还会下降,而且模型的收敛也会变得更难。
3、Expert Transformer
Expert Transformer中最大的改进是Expert AdaLN和3D Full Attention。
Expert AdaLN
论文中提到通过输入时间步长t来引导AdaLN生成不同时间下的,注意LN是样本内归一化,所以涉及到不同时间下的归一化参数不同。
在论文中图3的画法,就是一个双通道的DiT,输入或者
到AdaLN,然后scale&shift,注意力机制,gate(或者是叫scale)。
3D Full Attention
先前的工作主要关注分离时间和空间注意力机制来降低复杂度,而这种方式消耗了运动物体的一致性,所以考虑使用video-text的混合注意力机制。
![](https://i-blog.csdnimg.cn/direct/dfa66e2a5c404b6a8666063b885d17c3.png)
3D-RoPE
另外提出将原始的以往的二维RoPE(旋转位置嵌入)应用到三维领域,二维RoPE被LLM证明有效地捕捉tokens之间的关系,尤其是长序列建模中,而视频数据的每一个张量都可以由一个三维坐标[h,w,t]组成,而我们将1D-RoPE用于H,W,T三个通道中,得到3D-RoPE。
![](https://i-blog.csdnimg.cn/direct/20b9b398d3fd48c38031f37d8c7962f6.png)
论文地址:https://arxiv.org/abs/2408.06072