参考视频:Datawhale-bilibili
一、Sora背后解读与patch分析
数据工程
patches
借鉴Vit中patch的格式,对标GPT中token的形式,统一互联网不同大小格式的视频与图像数据为patches的格式输入,具有可拓展性,能匹配模型结构,能控制生成尺寸。
原始尺寸训练
为了使空间更合理以及时间更连续,在原始图像上训练,不需要数据增强,避免破坏先验信息。同时不需要人为统一输入尺寸,Encoder能将不同尺寸进行压缩到patches的形式。
输入->模型
训练阶段,视频按照1帧或间隔n帧用DALLE3(CLIP)形成对应描述文本(tex-video),再输入模型。推理阶段用GPT4将用户输入规范化后再给模型。
网络结构
估计是DiT
简单来讲是Transformer+ddpm,也就是用Transformer结构替换掉stable Diffusion中的U-Net,实现噪声预测与去噪。模型越大,patches越小,效果越好。
(OpenAI一贯是数据够多,结构够大,效果就好。)
Sora=VAE encoder + DiT(DDPM)+VAE decoder +CLIP
Sora影响
3D一致性:能生成具有动态摄像机运动的视频,随着虚拟摄像机的运动,人物和场景在三维空间保持一致。不过可能与3D高斯或Nerf类似带位姿的方法有差距。
物体永久性与长视频一致性。
存在与世界互动效果。
参数量与一致性解读
参数量大约30B左右,视觉/大模型参数量比LLM参数量小一些。
Sora与之前的方法很大的不同是使用DiT,参考自回归进行训练,但是否使用插帧不确定。
视频包含4维信息,其中patch如何记录时间序列,可能类似以下方法:
不同尺寸进行训练时还参考谷歌方法进行优化,把时间信息加进去。文本的token是离散化的,但视频是连续的。
训练数据
猜测:将视频切成一分钟内,缩小token数;使用高质量的图像进行训练;有良好的数据配比。
技术与实战
看懂Sora
视频分块->一维向量,文本信息->图像语义,基于扩散模型的原理。
训练流程
patch既包含时间信息,又包含空间信息。Sora事实上是一个在不同时长,分辨率和宽高比的视频及图像上训练的扩散模型。DDPM与之前的扩散模型不同之处在于学习噪声而非直接学习图像。