Sora刚发布不久,就被逆向工程“解剖”了?!
来自理海大学、微软研究院的华人团队发布了首个Sora相关研究综述,足足有37页。
他们基于Sora公开技术报告和逆向工程,对模型背景、相关技术、应用、现存挑战以及文本到视频AI模型未来发展方向进行了全面分析。
连计算机视觉领域的AI生成模型发展史、近两年有代表性的视频生成模型都罗列了出来:
网友们也属实没想到,仅仅过了半个月、Sora还暂未公开仅有部分人可使用,学术圈相关研究竟出现得这么快。
不少网友表示,综述非常全面有条理,建议全文阅读。
那么这篇综述具体都讲了啥?
本文在不改变原意的基础上,对部分内容进行了整理。
一、逆向工程剖析Sora技术细节
众所周知,Sora发布后,OpenAI紧接着发布了技术报告,但未详细透露技术细节,被有的网友吐槽OpenAI果然还是这么“Close”。
学术圈的猜测也是五花八门,ResNeXt一作谢赛宁、英伟达AI科学家Jim Fan等各路大佬都曾激情开麦。Jim Fan还高呼Sora就是视频生成的GPT-3时刻。
不过,OpenAI研究员Jason Wei最近对Sora的评价是视频生成的GPT-2时刻。
大佬们众说纷纭,然而谁的猜测更为准确还不好说。
而在这篇研究综述中,研究人员用逆向工程同样推测分析了Sora的技术细节,并讨论了一系列相关工作。大致涉及以下几个问题:
1. 整体架构
根据OpenAI发布的技术报告,Sora是一个在不同时长、分辨率和宽高比的视频及图像上训练而成的扩散模型,同时采用了Transformer架构,即为一种“扩散型Transformer”。
回顾现有工作并运用逆向工程,研究人员推测补充了如下信息。
Sora整个框架可能由三部分组成:
-
首先,时间-空间压缩器将原始视频映射到潜在空间;
-
随后,ViT处理这些被token化的潜在表示,并输出去噪后的潜在表示;
-
类似CLIP的条件机制接收由LLM增强的用户指令和潜在的视觉提示,生成具有特定风格主题的视频。经过多次去噪迭代,最终得到了生成视频的潜在表示,随后通过相应的解码器映射回像素空间。
△逆向工程:Sora框架概述
更细节一点,逆向工程推测Sora利用了级联扩散模型架构,结合基础模型和多个时空细化模型。
由于高分辨率下使用注意力机制的计算成本高且性能提升有限,基础扩散模型和低分辨率扩散模型不太可能大量使用注意力模块。
同时,考虑到视频/场景生成中时间一致性比空间一致性更重要,Sora或采用长视频(用于时间一致性)和低分辨率的高效训练策略来保证空间和时间上的一致性。
△Diffusion Transformer,DiT(左)、U-ViT(右)的整体架构
另外,考虑到与预测原始潜在变量x或噪声ϵ的其他变体相比,v参数化扩散模型的性能更优,Sora可能使用v参数化扩散模型。
在潜在编码器方面,大多数现有工作为提升训练效率,利用Stable Diffusion的预训练VAE编码器作为初始化的模型checkpoint。
然而,编码器缺乏时间压缩能力。尽管一些工作提议只微调解码器来处理时间信息,但解码器在压缩的潜在空间中处理视频时间数据的性能仍然不是最优的。
基于技术报告,研究人员推测Sora可能不是使用现有预训练VAE编码器,而是使用从零开始在视频数据上训练的时空VAE编码器,该编码器在针对视频内容优化的压缩潜在空间中的表现优于现有编码器。
2. 多样性视觉数据预处理
与传统方法需要裁剪视频大小或调整宽高比以适应统一的标准尺寸不同,Sora能够在原生尺寸的视频和图像上训练、理解并生成视频。
也就是能处理多样性视觉数据,且对原始尺寸的样本无损,这显著提升了Sora的视频构图与框架,使生成的视频更自然连贯。
举个例子,用传统方法训练如左图,由于正方形裁剪,视频画面主体被截断,而右图使用原始样本训练,视频主体完全被捕捉。
这部分的技术细节,OpenAI在技术报告中虽然做了重点介绍,不过也仅是提出了一个高层次的想法:
为处理不同分辨率、宽高比、时长的图像和视频,Sora采用了统一的视觉表示。具体来说,模型先将视频压缩到低维潜在空间中,然后将表示分解为时空patch,从而实现了视频的“patch化”。
而在综述中,研究人员做了如下分析。
Sora的视频压缩网络(视觉编码器)目的是减少输入数据(原始视频)的维度,并输出一个在时间和空间上都被压缩的潜在表示。
根据Sora技术报告中的参考文献,压缩网络建立在VAE或VQ-VAE之上。如果按照技术报告中提到的不调整大小、不裁剪,VAE很难将视觉数据映射到统一且固定大小的潜在空间。
不过,这里总结了两种方法来解决这个问题。
一种方法是空间-patch压缩(Spatial-patch Compression),类似于ViT和MAE中采用的方法,将视频帧分割成固定大小的patch然后将它们编码到潜在空间。
有几个关键问题要注意:
-
时间维度的可变性。因视频时长不同、潜在空间维度不固定,需通过采样固定帧数或设定超长输入长度来整合时间信息。
-
利用预训练视觉编码器。大多数研究者倾向于使用预训练编码器如Stable Diffusion的VAE,但Sora团队可能自行训练编码器和解码器,能高效处理大尺寸patch数据。
-
时间信息的整合。由于这种方法主要关注空间patch压缩,所以需要模型内部的额外机制来聚合时间信息,这对于捕捉动态变化至关重要。
另一种方法是空间-时间-patch压缩(Spatial-temporal-patch Compression),使用3D卷积提取时间信息。
这种方法同时封装视频数据的空间和时间维度,提供一种全面的视频表示,考虑了帧之间的运动和变化,从而捕捉视频的动态特性。
与空间-patch压缩相似,空间-时间-patch压缩通过设置特定的卷积核参数处理视频,由于视频输入的特征差异,导致潜在空间维度发生变化,在这里上文提到的空间-patch的方法同样适用并有效。
在压缩网络这部分还有一个关键问题:如何处理不同视频类型中潜在特征块或patch的数量,然后再将patch输入到Diffusion Transformer的输入层?
研究人员认为,基于Sora的技术报告和相应参考文献,patch n’ pack(PNP)可能是解决方案。
PNP将来自不同图像的多个patch打包到一个序列中,类似于NLP中的示例打包,通过丢弃token来适应可变长度输入的高效训练。
在打包过程中,需要考虑如何以紧凑的方式打包这些patch,以及如何控制哪些patch应被丢弃。
对于第一个问题,研究人员提到了一种简单的算法,即在有足够剩余空间时添加示例,然后用token填充序列,以获得批量操作所需的固定序列长度。
对于第二个问题,一种直观的方法是丢弃相似的token,或者像PNP那样应用丢弃率调度器。
不过丢弃token可能会在训练过程中遗失一些细节。因此,研究人员认为OpenAI可能会使用超长的上下文窗口打包视频中的所有token。
长视频的空间-时间潜在patch可以打包在一个序列中,而来自几个短视频的潜在patch则在另一个序列中连接。
总的来说,在数据预处理这部分,研究人员推测Sora首先将视觉patch压缩成低维潜在表示,然后将这样的潜在patch或进一步patch化潜在patch排列成一个序列,接着在将这些潜在patch输入到Diffusion Transformer的输入层之前注入噪声。
Sora采用空间-时间patch化,因为它易于实现,并且可以有效减少具有高信息密度token的上下文长度,降低后续对时间信息建模的复杂性。
3. 指令调优:视频描述生成器
模型指令调优旨在增强AI模型遵循提示的能力,使模型能适应更广泛的用户请求,确保对指令中的细节给予细致的关注,并生成精确满足用户需求的视频。
Sora在这方面采用了一种与DALL·E 3类似的方法。
首先训练一个能够详细描述视频的视频描述生成器(Video captioner)。然后,将其应用于训练数据中的所有视频,来生成高质量的视频-文本对,用这些视频-文本对微调Sora,提高其遵循指令的能力。
Sora的技术报告没有透露训练视频摘要生成器的细节。鉴于视频摘要生成器是一个视频-文本的模型,构建它有多种方法。
方法之一是利用CoCa架构进行视频摘要生成,通过获取视频的多个帧并将每个帧输入到图像编码器VideoCoCa。
VideoCoCa基于CoCa并重用预训练的图像编码器权重,独立地应用于采样的视频帧。得到的帧token嵌入被展平并连接成一个长视频表示序列。这些展平的帧token随后被一个生成性池化器和一个对比性池化器处理,这两者与对比损失和摘要生成损失一起联合训练。
构建视频描述生成器的其他选择包括mPLUG-2、GIT、FrozenBiLM等。
最后,为确保用户提示与训练数据中的描述性摘要格式对齐,Sora执行了一个额外的提示扩展步骤,其中用GPT-4V将用户输入扩展为详细的描述性提示。
4. 视频提示工程
提示工程是为了让用户引导AI模型生成与其意图一致的内容。
以前关于提示工程的研究主要集中在LLM和文本生成图像的提示上,研究人员推测对视频生成模型的视频提示将会越来越受到关注。
提示工程的效果依赖于精准选择用词、明确细节,以及对这些细节如何影响模型输出的深刻理解。比如下图示例中,提示词详细描述了动作、环境、角色造型,甚至是期望的情绪和场景氛围。
Sora还能够同时利用视觉和文本信息,将静态图像转换为动态的、叙事驱动的视频。
除此外,Sora还能够向前或向后扩展视频,通过提示可以指定扩展的方向、主题等。
在下图(a)中,视频提示指导Sora倒退扩展视频。下图(b)中,切换视频场景时,模型需要通过prompt清楚理解所需视频风格、氛围、光线明暗变化等细节。图(c)中,指导Sora连接视频,在不同场景中对象间顺畅过渡,也需要在提示工程上下功夫。
二、Sora具有里程碑式意义
在圈内外炸开锅、被称为是视频生成GPT-3、GPT-2时刻,Sora为何被认为具有里程碑式意义?
透过计算机视觉(CV)领域的AI生成模型发展史来看,Sora的突破性或许就更加明了了。
过去十年,生成式CV模型的发展变换了多种路线。
-
深度学习革命前,传统图像生成依赖于基于手工制作特征的纹理合成和纹理映射等方法。
-
而后生成对抗网络(GAN)和变分自编码器(VAE)、流模型( flow model)和扩散模型(diffusion model)相继出现。
-
Transformer架构出现格局发生巨变,先在NLP领域成功应用,而后在CV领域与视觉组件结合,催生了ViT、Swin Transformer等。
-
与此同时,扩散模型在图像和视频生成领域也取得了显著进展。
-
2021年以来,AI多模态迎来变革。CLIP、Stable Diffusion接连爆火。
重要的一点是,大语言模型领域开始逐渐展示出规模化定律,ChatGPT、GPT-4等展示出了一定的涌现能力。
不过视觉模型是否同样符合规模化定律还不是很清晰。
而Sora作为一个大型视觉模型(LVM),它的问世与规模原则保持了一致,揭示了在文本-视频生成中的几种涌现能力。这一进展凸显了LVM实现类似LLM那样的进步的潜力。
根据Sora的技术报告,它是第一个确认展示出涌现能力的视觉模型,标志着计算机视觉领域的一个重要里程碑。
除了其涌现能力,正如上面提到的,Sora在遵循指令、视觉提示工程以及视频理解等方面的能力亦有重大进步。
比如,Sora能生成具有多个角色、包含特定运动的复杂场景,不仅能理解用户在提示中提出的要求,似乎还能理解简单物体在物理世界中的存在方式。它还可以在单个视频中创建多个镜头,并依靠对语言的深入理解准确地解释提示词,保留角色和视觉风格……
三、Sora的五大应用前景及局限性
研究人员总结Sora具有五大亮点:提高模拟能力、促进创造力、推动教育创新、增强无障碍性、促进新兴应用。
最后还总结了Sora的五大应用场景:
1. 电影制作:Sora的应用在电影制作领域具有革命性意义,它能够将文本脚本转化为电影风格的视频,降低了电影制作的门槛,使得个人创作者也能够制作电影内容。
2. 教育:在教育领域,Sora能够将教学大纲或文本描述转化为动态视频内容,提高学生参与度和理解能力,为定制和激活教育材料提供了前所未有的机会。
3. 游戏:传统游戏开发常常受限于预渲染环境和脚本事件。扩散模型能够实时生成动态、高保真度的视频内容和真实的声音,有望克服现有限制,为开发者提供创造有机响应玩家行动和游戏事件的演变游戏环境的工具。
4. 医疗保健:在医疗领域,它特别适合于识别身体内的动态异常,如早期细胞凋亡、皮肤病变进展和不规则的人体运动,对于早期疾病检测和干预策略至关重要。
5. 机器人:在机器人技术中,Sora可以增强机器人的视觉感知和决策能力。使它们能够与环境交互,并以前所未有的复杂性和精度执行任务。
不过,尽管Sora在AI视频生成领域取得了显著进步,但仍面临一些挑战。
解决生成内容中的偏见问题和防止产生有害视觉内容,确保Sora输出的持续安全和无偏见是一项主要挑战。
此外,局限性还包括以下几点:
-
物理真实性的挑战:Sora在处理复杂场景的物理规律时存在不一致性,例如,吃饼干不一定留下咬痕。
-
空间和时间的复杂性:Sora有时难以准确理解空间布局和时间顺序的指令,导致物体和角色的位置或安排出现混淆。
-
人机交互的限制:用户很难对生成内容进行详细修改或优化。
-
使用限制:OpenAI尚未将Sora对公众开放,在安全性、隐私保护和内容审查等方面,Sora可能仍需进一步的改进和测试。且目前Sora只能生成长达一分钟的视频,限制了其在需要展示更长内容的应用场景中的使用。
更多细节,感兴趣的读者可以查阅原论文。
One More Thing
这篇综述发布后引起了不少网友关注,有网友表示值得全文阅读,但也有网友吐槽标题“Sora:”的设置极易引起误会。
对此,疑似论文作者在小红书作出回应:
论文链接:https://arxiv.org/abs/2402.17177
参考链接:https://twitter.com/_akhaliq/status/1762678991549354121
本文来自微信公众号:量子位(ID:QbitAI),作者:西风