别想Sora了,她的算力你们烧不起——从Sora工作原理看算力消耗

开心盖土 2024-04-03 07:24:44

Sora又又刷屏了,这次OpenAI放出了7个专业创意工作者用Sora制作的AI视频,又惊艳、震撼了大家。全网一起高呼YYDS,然而Sora短时间可能不会公开使用的,因为她真的太烧算力了,前不久OpenAI的CTO在访谈中也谈到算力消耗巨大这一点。

此前已经有很多对Sora的工作原理的猜测和分析,最近看到一篇比较详尽的分析报告,作者是Factorial Fund的Matthias Plappert,其人曾在OpenAI工作过并参与了Codex项目。Matthias Plappert在对Sora怎么工作的分析报告中详细分析了Sora的工作原理及算力消耗。

根据其分析报告,我们尽量以简单直白的文字来总结Sora是怎么工作的和其大概所需的算力消耗。

Sora的技术细节

从OpenAI发布的Sora技术报告《作为世界模拟器的视频生成模型》一文中并没有披露多少技术细节。经过全球专业人生的分析研究,已经大概确定Sora的技术思路就是William Peebles和谢赛宁的那篇《使用 Transformer 的可扩展扩散模型》论文为基础。这篇论文是为图像生成提出了一种基于Transformer,称为 DiT(Diffusion Transformers 的缩写)的架构。Sora 将这项工作扩展到了视频生成。结合Sora技术报告和DiT论文,可以相当准确地了解Sora模型的工作原理。

大家都知道视频其实是由一帧一帧的图像组成,一般一秒视频有24帧-60帧,所有视频模型也可以采用类似于图像生成模型的原理。Sora也是一个跟DALL-E和Stable Diffusion一样的扩散(Diffusion)模型,前两者是众所周知的AI绘画生成模型。从广义上讲,扩散模型是一种机器学习生成模型,它通过逐渐学习逆转向数据添加随机噪声的过程来学习创建与训练数据相似的数据,例如图像或视频。最初,这些模型从纯噪声模式开始,然后逐步消除这种噪声,细化模式,直到它转变为连贯且详细的输出。

扩散过程图解:逐步消除噪声,直到看到详细的视频。——Sora 技术报告

Sora 核心技术包含三个重要部分:

1)它不在像素空间中运行,而是在潜空(latent space)中执行扩散(又名潜在扩散latent diffusion);

2)它使用Transformer架构;

3)它似乎使用非常大的数据集。

潜在扩散latent diffusion

前面说到视频是由一帧一帧的图像组成,而图像是由一个一个像素组成,生成图像就是生成像素的过程。如果直接用扩散生成每个像素,一个512X512的图片就需要生成262144个像素。然而,可以首先从像素映射到具有某种压缩因子的潜在表示(latent representation),在这个更紧凑的潜空间中执行扩散,最后从潜空间解码回像素空间。这种映射显著降低了计算的复杂性:例如,您不必在 512x512 = 262144 像素上运行扩散过程,而只需生成 64x64 = 4096 个潜在变量。这一思想是《利用潜在扩散模型进行高分辨率图像合成》研究论文的关键突破,是稳定扩散(Stable Diffusion)的基础。

从像素(左)映射到潜在表示(右侧的网格)的图示。——Sora 技术报告

简单说来就是把像素压缩到一个潜空间进行扩散diffusion,然后再解码成正常的像素。玩SD Comfyui的朋友应该都了解,就是一个latent潜空间压缩和一个VAE解码器两个节点的工作。

SD Comfyui默认图像生成工作流

对于Sora来说,另一个考虑因素是视频具有时间维度:视频是图像的时间序列,也称为帧。从Sora技术报告来看,从像素映射到潜空间的编码步骤在空间上(意味着压缩每帧的宽度和高度)和时间上(意味着跨时间压缩)同时发生。

Transformer架构

DiT 论文的作者观察到,使用 Transformer 会导致可预测的扩展:当应用更多的训练计算(通过训练模型更长时间或使模型更大,或两者兼而有之)时,将获得更好的性能。所以说这个技术思路简直就是针对土豪量身定制的,大力出奇迹,只要堆算力、堆数据,力大砖飞。 Sora 技术报告指出了相同的内容,并给了示意图。

模型质量如何随着训练计算量的倍增而提高:基础计算、4x计算和 32x计算(从左到右)。——Sora技术报告

数据集dataset

训练像 Sora 这样的模型所需的最后一个关键要素是标记数据,这应该是Sora的秘密武器。要训练像 Sora 这样的文本到视频模型,需要成对的视频及其文本描述。

OpenAI并没有过多谈论他们的数据集,但他们暗示它非常大:“我们从大型语言模型中获得灵感,这些模型通过互联网规模的数据训练来获得通用能力。...LLM 有文本标记,而 Sora 有视觉补丁(patches)。此前,补丁已被证明是视觉数据模型的有效表示。我们发现补丁是一种高度可扩展且有效的表示形式,可用于在不同类型的视频和图像上训练生成模型。”。 OpenAI还进一步发布了一种用详细文本标签对图像进行注释的方法,用于收集DALLE-3数据集。总体思路是在数据集的标记子集上训练字幕生成器模型,并使用该字幕生成器模型自动标记其余部分。 Sora 的数据集似乎应用了相同的技术。

简单理解就是对训练的每个视频需要打标签,OpenAI把它叫补丁,我们也可以理解成提示词。前面我有文章介绍复刻Sora的Open-Sora开源模型,他们采用的是用大语言模型LLM来给每个视频标记提示词,然后进行视频和提示词成对训练。

还有一个训练需要的庞大的视频数据来源问题。在前面OpenAi的CTO在访谈中面对提到数据是否来源于youtube,facebook,instagram时,只能撒谎说我不清楚。当然OpenAI可以大规模的在互联网趴数据而不付钱也是人家的本事,毕竟人家身后站着微软。

算力估计

有关用于训练 Sora 的模型大小和数据集的详细信息很少。Matthias Plappert的分析报告非常保守,例如,其对Sora的训练视频计算为24帧,而互联网上视频数据几乎都是30帧,因此,我们在其数据计算基础上稍做了修改。

以DiT为基准推演Sora训练算力

最大的DiT模型 DiT-XL 具有6.75亿个参数,并且使用大约 10²¹ FLOPS 的总算力进行训练。为了使这个数字更容易理解,这相当于大约 0.4 个 Nvidia H100 1 个月(或单个 H100 12 天)。

DiT仅对图像进行建模,而Sora是视频模型。 Sora 可以生成长达 1分钟的视频。如果我们假设视频以30fps编码,则1分钟视频最多包含1800帧。 Sora 的像素到潜在映射时似乎在空间和时间上都进行了压缩。如果我们假设与DiT论文(8x)相同的压缩率,我们最终会在潜空间中得到225帧。因此,当我们简单地将其推导到视频时,我们获得了相对DiT约225倍的计算乘数。

我们进一步认为 Sora 明显大于 675M 参数。我们估计 20B 参数模型是可行的,这使我们的计算量比 DiT 多了 30 倍。

最后,我们相信 Sora 接受的训练数据集比 DiT 大得多。 DiT 在批量大小(batch size)为 256 的情况下接受了 300万步的训练,即总共 7.68亿张图像。 Sora 似乎采用了图像和视频混合的训练,我们做出简单的假设,Sora 的数据集由 50% 的静态图像和 50% 的视频组成,并且该数据集比 DiT 使用的数据集大 32倍(按Sora技术报告的32x基础数据集)。

将上述内容放在一起考虑,我们得出训练Sora的所需算力如下:

10²¹ FLOPS × 30 × 32 × (225 / 2) ≈ 108000 x 10²¹ FLOPS

这相当于10000张H100张训练4个月。然后我们不算购买H100,只算便宜的算力租赁费用,根据CoreWeave官网算力租赁的价格,H100 80G单卡租金每小时4.76美元,其他云计算服务商差不多都在一小时5美元左右。那么训练Sora的费用计算如下:

30×32×(225 / 2)×12天×24小时×5美元 ≈ 1.5亿美元

以DiT为基准推演Sora推理算力

从概念上讲,训练计算量非常大,但也是一次性成本,模型训练完后就结束了。相比之下,推理计算要小得多,但每一次推理生成都会发生。仍然以DiT为基准来推演Sora的推理算力。对于 DiT,最大的模型 (DiT-XL) 每步使用 524×10⁹ FLOPS,而 DiT 使用 250 个扩散步骤来生成单个图像。

对于 Sora,我们将 FLOPS 推断为 524×10⁹ FLOPS × 30 × 225 ≈ 3.5×10¹⁵ FLOPS。如果我们仍然假设每个视频有 250 个扩散步骤,则每个视频总共需要 884×10¹⁵ FLOPS。作为参考,这相当于每个 Nvidia H100 每小时生成约4分钟的视频。

以上推算是假设 FLOPS 利用率为 100%,没有考虑内存带宽和通信瓶颈。实际上,50%的利用率更为现实,这会增加1倍的计算时间。而需求并不是在时间上均匀分布的,而是突发性的。峰值需求尤其成问题,因为您需要成比例配置更多的GPU才能服务所有流量。我们认为峰值需求使所需 GPU 的最大数量又增加了1倍。

那么还是按算力租赁价格算,Sora生成一个一分钟视频的算力成本为:

60 ÷ 4 ÷ 60 × 2 × 2 × 5美元 ≈ 5美元

而大家都知道AI生成无论图像还是视频,都很难一次性达到满意的结果,一般roll两次很正常。那么有多少人愿意花5-10美元生成一分钟的AI视频呢?

参考链接:

https://www.factorialfunds.com/blog/under-the-hood-how-openai-s-sora-model-works

https://openai.com/research/video-generation-models-as-world-simulators

https://arxiv.org/abs/2212.09748

https://arxiv.org/abs/2112.10752

1 阅读:4

开心盖土

简介:感谢大家的关注