赞
踩
前文:最近跟着DataWhale组队学习这一期“Sora原理与技术实战”,本篇博客主要是基于DataWhale成员、厦门大学平潭研究院杨知铮研究员分享的Sora技术原理详解课件内容以及参考网上一些博客资料整理而来(详见文末参考文献),算是对Sora技术路径的发展有个系统性的认识。
Sora是大火的人工智能公司OpenAI推出的新一代文生视频AI模型,其官网为https://openai.com/sora。Sora的亮点在于:最长支持60s高清视频生成、确保连续画面中人和场景的一致性、根据视频生成视频时具有丝滑视频过渡能力、同一场景多视角/镜头生成能力、支持任意分辨率、宽高比的视频生成,因此秒杀Pika、Runway等同行,在2024年2月份也火爆出拳,OpenAI的技术报告称其为“作为世界模拟器的视频生成模型”(源地址:Video generation models as world simulators)。然而Sora也有许多局限,特别是对物理规律的理解仍然比较有限,例如生成一个玻璃杯摔碎的场景时并未很好表现碎片四溢的物理过程。
Sora的能力可以总结为:文生视频、图生视频和视频生成视频。Sora是通过不同长度、分辨率和长宽比的视频和图像数据共同训练出的一种“文本条件扩散模型”,其中Sora只是模型名统称,底层包含Diffusion model、Transformer等SOTA模型架构。
Sora整合了自家的GPT和DALL-E模型,其中,GPT-4就是基于Transformer架构的大型神经网络,目前在自然语言处理领域独树一帜,而最新的DALL-E 3是基于文本提示生成图像的图像生成模型。Sora使用了DALL-E 3中的重新标注技术,准备了大量带有文本标题的视频数据,通过训练一个高度描述性的标题模型,为所有视频生成文本标题,来提高文本准确性,改善了视频质量。同时,Sora利用GPT将用户简短的提示转化为更长、更详细的标题,指导视频的生成过程,从而使Sora能够生成高质量的视频,并准确地遵循用户的指示。如下为一张Sora模型训练流程示意图:
由于Sora未完全开放,目前魔塔社区所推测的Sora模型架构(与Latent Diffusion Model很像)如下:原始数据输入经过视频压缩网络后变成时间和空间上都被压缩的潜在表示,随后在时空潜空间上,基于conditioning训练中的video caption技术所生成视频-文本对的指导,通过Diffusion Transformer(DiT)生成新的视频潜在表示,最后经过解码器映射回像素空间。
Sora模型训练一些要点:
Sora采用了Diffusion模型中的DDPM (Denoising Diffusion Probabilistic Models)作为图像生成模型。相比GAN来说,Diffusion模型训练更稳定,而且能够生成更多样本,OpenAI的论文《Diffusion Models Beat GANs on Image Synthesis》也证明了Diffusion 模型能够超越GAN。一些主流的文生图像模型如DALL-E 2, stable diffusion以及Imagen都纷纷采用了Diffusion模型用于图像生成。
一般来说,Diffusion模型包含两个过程,均为一个参数化的马尔科夫链 (Markov chain):
Diffusion模型与其它主流生成模型的对比如下所示:
目前所采用的Diffusion模型大都是基于2020年的工作《DDPM: Denoising Diffusion Probabilistic Models》。DDPM对之前的扩散模型进行了简化和改进,更加注重对噪声的预测而非直接生成图像,并通过变分推断(variational inference)来进行建模,这主要是因为扩散模型也是一个隐变量模型(latent variable model),相比VAE这样的隐变量模型,扩散模型的隐变量是和原始数据是同维度的,而且扩散过程往往是固定的。
DDPM的优化目标是让网络预测的噪音和真实的噪音一致,其训练过程如下图所示:
PS:实际的Sampling代码实现和上述过程略有区别(而是先基于预测的噪音生成,并进行了clip处理(范围[-1, 1],原始数据归一化到这个范围),然后再计算均值(这应该算是一种约束,既然模型预测的是噪音,那么我们也希望用预测噪音重构处理的原始数据也应该满足范围要求)
扩散模型的核心在于训练噪声预测模型,由于噪声和数据同维度,可以选择采用AutorEncoder架构作为噪声预测模型。DDPM所采用的是一个基于residual模块和self-attention模块的U-Net模型(encoder-decoder架构)。注意,DDPM在各个residual模块中都引入了time embedding(类似于transformer中的position embedding)。
DDPM基于加噪和去噪的图像生成过程可以用一张图形象概括:
Sora可以拆分为Visual encoder, Diffusion Transformer和Transformer Decoder三个部分,下面对其分别阐述:
输入的视频数据可以看成是NxHxW的若干帧图像, 通过Encoder被切分成spatial temporal patch,这些patch最终会被flatten成一维向量,送入diffusion model。其中,这里的patch的定义借鉴了Vision Transformer (ViT)中的patch,一些要点如下:
对视频进行采样/处理的方法包括:
Sora的主要是Peebles William(直博3年半期间3篇一作论文,非常solid),他于2023年在ICCV上发表了Diffusion Transformer (DiT) 的工作,可以认为:DiT = VAE encoder + ViT + DDPM + VAE decoder,但把DPPM中的卷积U-Net架构换成了transformer。这篇工作是通过结合diffusion model和transformer,从而达到可以scale up model来提升图像生成质量的效果。DiT文章在technical report的reference中给出,由于把图像的scaling技术运用到视频场景也非常直观,因此可以确定是Sora的技术之一。
下图展示了DiT的主要原理,输入是一张256x256x3的图片,对图片做切patch后经过投影得到每个patch的token,得到32x32x4的latent(在推理时输入直接是32x32x4的噪声),结合当前的step t, 输入label y作为输入, 经过N个DiT Block通过mlp进行输出,得到输出的噪声以及对应的协方差矩阵,经过T个step采样,得到32x32x4的降噪后的latent。
[1] DataWhale开源课程《Sora原理与技术实战》
[2] DataWhale成员优秀笔记分享:sora笔记(一):sora前世今生与技术梗概
[3] 怎么理解今年 CV 比较火的扩散模型(DDPM)? - 小小将的回答 - 知乎
https://www.zhihu.com/question/545764550/answer/2670611518
[4] Ho, J., et al. (2020). “Denoising diffusion probabilistic models.” Advances in Neural Information Processing Systems 33: 6840-6851.
[5] Peebles, W. and S. Xie (2023). Scalable diffusion models with transformers. Proceedings of the IEEE/CVF International Conference on Computer Vision.
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。