OpenAI 发布的视频生成模型 Sora(,能依据文本生生长达一分钟的高品质视频,通常上允许恣意分辨率,如 1920x1080 、1080x1920 ,生成才干远超此前只能生成 25 帧 576x1024 图像的顶尖视频生成模型 Stable Video Diffusion。
一同发布的,还有一篇十分冗长的技术报告,报告大抵引见了 Sora 的架构及运行场景,并未对模型的原理做过多的引见。技术报告链接:
笔者参考了少量的资料,试着深化了解 Sora 的技术原理,最终将 Sora 生成视频的原理总结成以下大抵的步骤:
假设你不想检查冗余的细节,看到这里就可以完结了,假设你还宿愿了解相关的细节,可以继续往下看,或者有了解不片面的中央欢迎大家补充交换。
一、文本生成图片的流程
无了解文本生成视频的原理之前,咱们可以先回忆下文本生成图片的原理,笔者的另一篇文章有做过相关引见:AIGC 文生图原理与通常分享
本文咱们不探讨传统的经过反抗网络生成图片的方式,咱们关键探讨的是基于分散模型生成图片的方式,开源的 Stable Diffusion 就是基于 LDM,即 Latent Diffusion Model(潜在的裁减模型)成功的,另外 Stable Diffusion 经过引入 Transformer 架构成功了对揭示词的允许,能够在去除图片噪音的环节中启动准确的控制。
潜在的分散模型
Stable Diffusion 面前的技术打算被称为 Latent Diffusion Model,即潜在的分散模型,此外 Stable Diffusion 模型在原始的 UNet 模型中参与了 Transformer 结构,这么做堪称一箭双雕,由于 Transformer 结构岂但能优化噪声去除成果,还是成功 Prompt 控制图像内容的关键技术。
在深度学习畛域中,潜在空间(Latent Space)是指模型学习到的示意数据的笼统空间。这个潜在空间通常是一个低维的向量空间,其中每个点(向量)代表着模型对输入数据的一种示意或特色。潜在空间的概念在各种生成模型和示意学习方法中被宽泛运行。
以下是潜在空间对模型的作用:
潜在空间可以被视为对输入数据的一种笼统示意。经过学习到的潜在空间可以更好地捕捉输入数据的特色和结构,有助于模型更高效地学习和生成数据。
潜在空间通常是一个低维空间,相比原始数据空间具备更低的维度。经过将数据映射到潜在空间,可以成功数据的降维和去噪,将数据的关键特色和形式示意在更紧凑的空间中。
在生成模型中,潜在空间表演着关键角色,可以在潜在空间中生成新的数据样本。模型可以从潜在空间中采样并解码生成具备真切特色的数据样本,这种生成环节通常经过解码器(Decoder)成功。
在潜在空间中,向量示意不同的数据特色或属性,可以经过向量之间的插值或操作来探求数据空间中的变动和相关。例如,经过在潜在空间中沿着不同方向移意向量,可以观察到在数据生成环节中对应的变动。
分散模型的一个大略的环节可以形容为:对原始图片始终的加噪音可以失掉一张噪声图,而后再对噪声图始终的去除噪音的同时再参与其余消息,就可以失掉一张新图片。
Stable Diffusion 生成图片的大抵流程如下:
以下是 Latent Diffusion 模型的技术架构:
Latent Diffusion Models 全体框架如图,首先须要训练好一个自编码模型(AutoEncoder,包括一个编码器 ε 和一个解码器 δ )。这样一来,咱们就可以应用编码器对图片启动紧缩,而后在潜在示意空间上做 Diffusion 操作,最后咱们再用解码器恢复到原始像素空间即可,论文将这个方法称之为感知紧缩(Perceptual Compression)。团体以为这种将高维特色紧缩到低维,而后在低维空间上启动操作的方法具备普适性,可以很容易推行到文本、音频、视频等畛域。
在潜在示意空间上做 Diffusion 操作其关键环节和规范的分散模型没有太大的区别,所用到的分散模型的详细成功为 Time-Conditional UNet。但是有一个关键的中央是论文为 Diffusion 操作引入了条件机制(Conditioning Mechanisms),经过 Cross-Attention 的方式来成功多模态训练,使得条件图片生成义务也可以成功。
Transformer架构
Transformer 架构是 2017 年 6 月由 Google 提出的,是一种基于自留意力机制(Self-Attention)的模型,它有效处置了 RNN 类方法的并行计算和长时依赖两大痛点。原本钻研的重点是翻译义务,随后推出了几个有影响力的模型,以下是 Transformer 模型冗长历史中的一些关键节点:
Transformer 的架构设计如下图所示:
左边的这张图是 Transformers 架构的一个便捷示意方式,左边的这张图是 Transformers 架构的一个完整示意方式,其中有一个关键的 Multi-Head Attention组件,称为留意力层。
Transformer 模型的一个关键特性是留意力层。理想上,谷歌在发布 Transformer 架构的论文时,文章的题目就是“留意力就是你所须要的”。留意力层将通知模型在处置每个单词的示意时,要特意注重传递给它的句子中的某些单词,也可以是或多或少地疏忽其余单词。经过留意力层,模型可以始终修正自己处置的结果,以合乎输入的文本的用意。
总结来说 Transformer 经过留意力层,来了解并观察输入文本的高低文,在 Decoder 的环节中,经过多头留意力层来控制结果的输入是合乎高低文语境的。
可以参考上方这篇文章,更详细的了解 Transformer 的成功原理:
在回忆完 Stable Diffusion 的原理后,咱们可以构想下,关于视频的生成该怎样做呢?
能否可以尝试把预训练 Stable Diffusion 拓展成视频生成模型呢。例如在拓展时,将视频的每一帧都独自输入进 Stable Diffusion 的自编码器,再从新导致一个紧缩过的图像序列。这就是 VideoLDM 尝试处置的疑问,但是经过 VideoLDM 钻研发现间接对视频经常使用之前的图像自编码器,会令输入视频发生闪动的现象。为此,该上班对自编码器的解码器启动了微调,参与了一些能够处置期间维度的模块,使之能一次性性处置整段紧缩视频,并输入连接的实在视频。
二、Sora生成视频的流程
那 Sora 是怎样做的呢?接上去咱们经过一张图来了解下 Sora 的上班流程,大略可以简化为三个局部:
便捷来说,Sora 就是依赖了两个模型 Latent Diffusion Model (LDM) 加上 Diffusion Transformer (DiT)。咱们先简明回忆一下这两种模型架构。
LDM 就是 Stable Diffusion 经常使用的模型架构。分散模型的一大疑问是计算需求大,难以拟合高分辨率图像。为了处置这一疑问,成功 LDM 时,会先训练一个简直能无损紧缩图像的自编码器,能把 512x512 的实在图像紧缩成 64x64 的紧缩图像并恢复。接着,再训练一个分散模型去拟合分辨率更低的紧缩图像。这样,仅需大批计算资源就能训练出高分辨率的图像生成模型。
LDM 的分散模型经常使用的模型是 U-Net。而依据其余深度学习义务中的阅历,相比 U-Net,Transformer 架构的参数可拓展性强,即随着参数量的参与,Transformer 架构的功能优化会愈加显著。这也是为什么大模型普遍都驳回了 Transformer 架构。从这一动机登程,DiT 应运而生。DiT 在 LDM 的基础上,把 U-Net 换成了 Transformer。
总结来说 Sora 是一个视频版的 DiT 模型,让咱们看一下 Sora 在 DiT 上做了哪些改良。
视频紧缩网络
首先,Sora 经过一个叫做“视频紧缩网络”的技术,将输入的图片或视频紧缩成一个更低维度的数据,即潜在空间数据,为了成功视频紧缩,Sora 从头训练了一套能间接紧缩视频的自编码器。相比之前的上班,Sora 的自编码器不只能在空间上紧缩图像,还能在期间上紧缩视频长度。
输入的视频在经过 Sora 的自编码器后,会被转换成一段空间和期间维度上都变小的紧缩视频。这段紧缩视频就是 Sora 的 DiT 的拟合对象。
这一环节相似于将不同尺寸和分辨率的照片“规范化”,便于处置和存储,但紧缩并不象征着疏忽原始数据的共同性,而是将它们转换成一个对 Sora 来说更容易了解和操作的格局。
报告中重复提及,Sora 在训练和生成时经常使用的视频可以是任何分辨率(在 1920x1080 以内)、任何长宽比、任何时长的,这象征着视频训练数据不须要做缩放、裁剪等预处置,由于 Sora 会把这些视频启动紧缩以取得合乎模型训练的数据。
空间期间补丁
接上去,Sora 将这些紧缩后的数据进一步合成为“空间期间补丁”(Spacetime Patches),这些补丁可以看作是视觉内容的基本构建块,例如照片可以合成为蕴含共同景观、色彩和纹理的小片段。这样不论原始视频的长度、分辨率或格调如何,Sora 都可以将它们处置成分歧的格局。
有了空间期间补丁之后,还须要将这些补丁转换成一维的数据序列,以便提供应 Transformer 模型启动处置,由于 Transformer 只能处置一维序列数据。
Sora 的这种性质还是得益于 Transformer 架构。虽然 Transformer 的计算与输入顺序有关,但必定用位置编码来指明每个数据的位置。虽然报告没有提及,我感觉 Sora 的 DiT 经常使用了相似于 (x,y,t) 的位置编码来示意一个图块的时空位置。这样不论输入的视频的大小如何,长度如何,只需给每个图块都调配一个位置编码,DiT 就能分清图块间的相对相关了。
Diffusion Transformer
最后,Sora 裁减了 Transformer 模型,以便实用于视频生成,这里的视频就是一帧帧的静态图片加上了期间维度的消息,所以只须要用 Transformer 模型来生成携带期间维度消息的图片。
须要留意的是,Transformer 原本是用于文转义务的,它只能处置一维的序列数据。为了让 Transformer 处置二维图像,通常会把输入图像先切成边长为 p 的图块,再把每个图块整顿成一维数据。也就是说,原来边长为 I 的正方形图片,经图块化后,变成了长度为 (I/p)² 的一维序列数据。
DiT 在处置输入图块(也就是空间期间补丁)时,由于每个视频图块被编上了相似 (x,y,t) 这样的位置编码,输入视频可以是任何分辨率、任何长度。将每个空间期间补丁输入 Transformer,作为输入的 Token,接着 Transformer 会成功每个空间期间补丁的噪声去除,最后一切的空间期间补丁都成功噪声去除后,再经过解码器将 Transformer 处置后的张量数据恢复成视频数据。
下图展现了 DiT 的架构,左:咱们训练调理的潜 DiT 模型。输入潜变量被合成成几个 Patch 并由几个 DiT 块处置。右:DiT 块的细节。咱们对规范 Transformer 的变体启动了试验,这些变体经过自顺应层归一化、交叉留意力和额外的输入 Token 做调理。自顺应层归一化成果最好。
假定输入是一张 256x256x3 的图片,对图片做 Patch 后经过投影失掉每个 Patch 的 Token,失掉 32x32x4 的 Latent 潜在空间(在推理时输入间接是 32x32x4 的噪声)。结合的 Step t, 将 Label y 作为输入, 经过 N 个 DiT Block 处置,处置中经过 MLP 启动控制输入,失掉输入的噪声以及对应的协方差矩阵,经过 T 个 Step 采样,失掉 32x32x4 的降噪后的 Latent。
得四处置后的 Latent 之后,经过 Visual Decoder 对 Latent 启动解码,最终失掉生成的视频。
三、从训练到生成视频全流程
视频标注与训练
初始步骤是搜集少量视频数据,并失掉或创立这些视频对应的文本标注。这些文本简明形容了视频内容,是训练模型了解视频主题的关键。
对视频启动预处置,包括调整分辨率、格局转换、裁剪长度等,以确保数据格局一致,适宜模型处置。
经常使用 DALLE3 的技术,首先训练一个模型,这个模型专门用于为视频内容生成高度形容性的文本标注。这一步是为了优化文本标注的品质,让其愈加详细和详细。对训练集中的一切视频运行这个模型,发生新的、愈加详细的文本标注。
之前大局部文生图分散模型都是在人工标注的图片-文字数据集上训练的。起初大家发现,人工标注的图片形容品质较低,纷繁提出了各种优化标注品质的方法。Sora 复用了自家 DALL·E 3 的重标注技术,用一个训练的能生成详细形容的标注器来从新为训练视频生成标注。这种做法不只处置了视频不足标注的疑问,且相比人工标注品质更高。Sora 的局部结果展现了其弱小了笼统了解才干(如了解人和猫之间的交互),这多半是由于视频标注模型足够弱小,视频生成模型学到了视频标注模型的常识。但雷同,视频标注模型的相关细节齐全没有地下。
Sora 作为一个分散模型,经过预测从含噪声补丁到原始明晰补丁的转换环节启动训练。这个环节触及到少量的迭代,逐渐提高生成视频的品质。
视频生成与处置
开发并训练一个视频紧缩网络,将高维的视频数据紧缩到一个低维的潜在空间,简化后的数据示意更容易被模型处置。将紧缩后的视频示意合成成空间期间补丁,这些补丁既蕴含空间上的消息也蕴含随期间变动的消息。
基于 Transformer 架构,处置这些空间期间补丁。由于 Transformer 架构在处置序列数据(如文本)方面的弱小才干,这里用于捕捉视频补丁之间复杂的时空相关。
相似于 DALLE3,Sora 在处置用户提供的文本揭示时,也可以应用 GPT 模型来裁减或优化这些揭示。GPT 模型可以将冗长的用户揭示转化成更详细、更富裕形容性的文本,这有助于 Sora 更准确地理解并生成合乎用户用意的视频。
用户提供一个文本揭示,Sora 依据这个揭示在潜在空间中初始化视频的生成环节。应用训练好的分散模型,Sora 从这些初始化的空间期间补丁开局,逐渐生成明晰的视频内容。
经常使用与视频紧缩相对应的解码器将潜在空间中的视频转换回原始像素视频。
对生成的视频启动或者的后处置,如调整分辨率、裁剪等,以满足发布或展现的需求。
参考文档:
本文转载自 得物技术 ,作者: