智东西
作者 | GenAICon 2024
2024中国生成式AI大会于4月18-19日在北京举行,在大会第二天的主会场AI Infra专场上,新加坡国立大学校长青年教授、潞晨科技创始人兼董事长尤洋以《技术共享:类Sora开源架构模型与训练细节》为题发表演讲。
潞晨科技在今年3月开源的全球首个类Sora视频生成模型Open-Sora,是迄今GitHub上获得星标数最高的开源视频大模型项目之一,截至发稿前已有1.6万个星标,用户群体遍及全球。
值得一提的是,这个模型在低成本下训练而成,相比Sora耗费数千张H100 GPU、花费数千万美元乃至数亿美元,Open-Sora的训练成本仅不到1万美元。
尤洋认为,视频生成正处于“GPT-2时刻”,还没有出现成熟的应用。对于视频生成模型来说,数据可能是最核心的资产。他还谈到,模型开源是有意义且重要的。正如Meta最新发布的Llama 3,极大地调动了开源社区的积极性,不但造福大量开发者,更有助于开源社区整体的繁荣。
因此,Open-Sora模型也进行了全面的训练流程开源,开源了包括模型架构、模型权重、训练细节、数据处理在内的多项技术细节,让更多的开发者可以尝试Open-Sora模型,共同迭代与升级。
在演讲期间,他详细解读了成功复现类Sora视频生成模型的四个关键要素,并分享了Open-Sora的底层架构、demo和教程。
在他看来,考虑到成本压力,视频生成模型将分为大规模图像预训练、大规模视频预训练、高质量视频数据微调三个阶段。在模型设计上,时空分割处理将是显著降低视频生成模型计算成本和内存压力的关键一步。他还提到,Open-Sora未来的发展方向主要在于完善数据处理流程以及训练视频压缩Encoder。
以下为尤洋的演讲实录:
我演讲的主题是最近做的Open-Sora,希望帮助更多中小企业以及研究人员去快速地复现类似Sora这样的视频生成模型。
首先简要介绍一下我的技术背景。这张照片拍摄自我博士毕业答辩时,图中的人物包括我在加州大学伯克利分校的几位教授,他们的专业背景主要集中在高性能计算(HPC)和计算机视觉(CV)领域。HPC的目标是提高模型训练的效率,即用成百上千的处理器卡来加快训练速度。CV则是视频生成模型的关键技术之一,这与我的个人技术背景非常相似。
目前,我们了解到大模型对计算能力的需求非常高,特别是在今天的Infra专场中,我们可以预见,未来对算力要求最高的模型可能会是视频生成模型。
今天我的分享旨在抛砖引玉,我认为视频生成模型目前还处于一个相对早期的发展阶段,其情形有点类似于视频领域的GPT-2时期。市场上尚未出现一个完全成熟且广泛可用的视频生成应用。因此,我将分享我们在这一领域的一些初步探索成果,并希望这能激发大家的兴趣,进而深入探讨。
本次演讲将分为几个部分。首先,我会简单介绍Open-Sora模型,以及与之相关的OpenAI Sora。需要明确的是,尽管我们称之为Open-Sora,也确实采用了类似于OpenAI技术报告中类似的技术,但它实际上是一个不同的模型。然后我将介绍Open-Sora的技术要点、性能表现,以及我们对未来发展的规划。
一、未来人人都能成为导演,视频生成有颠覆教育和技术传播的潜力
大家都看过Sora的Demo视频,其效果确实令人震撼。未来,我们可能会进入一个每个人都能成为导演的时代,每个人都能够迅速生成自己想要的视频或故事,并且通过视频这种形式进行学习,这很可能比传统的文字学习效率要高得多。
如果我们需要了解某个问题,能否让AI为我们生成一段视频,以便快速掌握相关知识呢?我认为视频生成技术有潜力颠覆教育和技术传播领域。
在Sora模型之前,市场上已经存在一些视频生成工具,例如Pika、RunwayML、Stable Video等。然而,Sora在视频长度上实现了显著的突破,超越了之前所有顶尖产品,因此其效果还是非常惊艳的。Sora的应用前景非常可观,可以涵盖游戏、艺术、媒体创作、药物研发、市场营销和教育等多个领域。甚至在未来,许多物理模拟领域也可能采用视频生成模型。
尽管如此,视频生成技术目前尚未广泛普及。我们希望能大幅降低制作电影或视频的成本。以今天的标准,制作一部优秀的电影可能需要高达五千万美元的投资,这显然限制了普通人参与的可能性。但如果未来有了先进的视频生成模型,我们只需向AI描述我们的想法,它就能为我们生成一部高质量的动画片或电影。
只有达到这样的水平,视频生成模型的真正价值才能得到最大化的体现。
二、介绍首个类Sora开源视频生成模型,成功复现Sora有四个关键要素
在介绍了Sora及其影响力后,第二部分介绍一下Open-Sora。
Open-Sora是一个开源的视频生成模型项目,我们的目标是将模型的重要部分都公之于众,以便社区能进一步发展这一技术。
要成功复现视频生成模型,主要包括几个部分。
首先,需要了解模型的架构,比如我到底用的是Diffusion、Llama、GPT还是BERT,不同的架构决定我模型基本的骨架。
其次,一旦模型训练完成,分享训练得到的权重也是非常重要的。这意味着其他人可以直接拿来用,而不需要从头开始训练模型。例如Meta刚刚开放了Llama 3,尽管4000亿参数版本还没有完全训练完成,但已经可以从中看到很好的效果。通过分享这些权重,社区可以快速地将模型部署到各种应用中。
通过这种开放的方式,我们希望能够促进视频生成技术的创新和普及,让更多有兴趣的研究者和开发者能够参与进来,共同推动这一领域的发展。
第三点非常关键,它涉及到开源模型的透明度和可控性。
虽然现有的一些开源模型,如Llama 1和Llama 2,已经公开了模型参数和使用方式,但它们并没有公开训练过程的具体细节,包括超参数的设置。这导致了我们无法完全复现其预训练过程,也就是说,模型的预训练并不是百分百自主可控的。
我们认为,如果未来的视频生成大模型能够实现百分之百的自主可控,那么将能更有效地激发和调动整个行业的生产力。
此外,数据处理也是决定模型性能的一个关键因素。
通过审视OpenAI的技术报告,我们可以发现,尽管在模型架构和算法方面,OpenAI并没有特别强调其创新性,沿用了如Video Diffusion等现有模型,但OpenAI在数据方面做得非常出色。高质量的数据是决定视频生成效果的直接因素,因此,数据处理方式和数据集的质量极为关键。
三、解读STDiT架构核心思想,将成本控制在1万美元
我将展示一些我们的demo和教程,这将涵盖开源模型的几个重要组成部分。
从技术角度来看,Open-Sora模型采用了STDiT架构。我们选择STDiT的主要原因是考虑到成本效益。我们的目标是将Open-Sora的成本控制在1万美金或者更少。
STDiT架构的核心思想在于它包含时间维度的Self Attention和空间维度的Self Attention,这两个方面是分开处理的,而不是合并计算,这样的设计可以显著降低模型的训练和推理成本。相比于DiT模型,STDiT在成本上有着显著的优势,而且在相同的硬件条件下,其吞吐量也更高,这对于提升模型效率来说是非常有利的。
在架构方面,我们的创新点并不是特别多,核心思想仍然与DiT的架构相似。具体来说,处理视频的流程是这样的:首先,我们获取一个视频,然后通过Encoder将其压缩到Latent Space中,这样视频就可以在这个空间中进行交互和处理。这种方法实际上与文本到图像生成的技术非常相似。
我们对文生图的概念并不陌生。我们首先对视频进行压缩,目的是为了将其转换到潜在空间中。压缩有两个主要目的:首先,原始视频文件可能非常大,直接处理它们成本太高;其次,我们的目标是生成特定的视频内容,比如一只狗在雪地里追雪球的场景。如果我们不进行压缩,而是直接在原始视频上操作,可能会生成不符合要求的内容,比如生成了一只老虎或一只猫,即使视频质量再高,如果内容不是我们想要的,那么这样的结果显然是不可接受的。
通过这种方式,我们可以更有效地控制视频生成的过程,确保生成的视频内容符合我们的预期和需求。这种方法不仅降低了处理成本,而且提高了生成视频的准确性和相关性。
在潜在空间中,我们需要融入人类的指令,这些指令通常通过自然语言处理来实现。然而,自然语言数据类型并不能直接与视频信息进行交互。因此,潜在空间的第二个关键作用是将自然语言也转换到这个空间中。这样潜在空间就包含了视觉信息和文本信息,使得这两类信息能够在该空间内进行交互。这是我们压缩视频并将其转换到潜在空间的两个主要目的。
完成这一过程后,我们的工作流程与文本到图像生成技术非常相似。文本到视频生成本质上是文本到图像生成的一种扩展,因为视频可以被视为一系列图片的集合。在这种情况下,我们仍然需要借鉴许多文本到图像生成的技术。
具体到实现方式,与扩散模型的做法非常相似,我们通过引入高斯噪声来生成所需的视频。首先,在潜在空间中随机采样一个高斯噪声,然后将这个噪声与人类的指令一起输入模型,模型据此生成视频。最后,我们将生成的视频从潜在空间解码回原始的三维空间,完成整个生成过程。
四、视频生成模型三阶段:图像预训练,视频预训练,高质量视频数据微调
至于如何实现这一技术,考虑到成本的压力,我们可以将其分为三个阶段进行。
尽管今天介绍的技术在未来十年或二十年可能会被新的技术所取代,但在当前算力有限的情况下,我们可能需要采取分阶段的方法来训练高质量的视频模型。直接使用高质量视频数据训练视频模型的成本可能高达数千万甚至数亿美元,这显然限制了大多数人参与的可能性。
在成本受限的现实条件下,我们的策略是,首先找到一个不错的文本到图像生成模型,这类模型目前比较容易获取,市场上也有很多选择,当然我们也可以自己训练一个。
第二阶段,有了文生图模型,再给它大量视频做初始训练,让它对视频世界有很好的理解。
第三阶段,用高质量、精挑的视频提升它的视频质量。这种思想在大模型领域已经用了七八年,早在2018年、我们训练BERT的时候,BERT训练也是分两个阶段,第一阶段sequence是128,第二阶段的sequence是512。短序列上让它对自然语言有基本的理解,再在长序列上微调,给它一个更好的生成效果,这些其实都是出于成本的压力才这样操作的。
理论上我们有无限算力的话,我们应该直接拿最好的数据让它去训练。包括Llama、GPT,它们训练时也都参考了类似的思路,先在短序列上大规模训练,之后再在长序列或者更好的数据上去做微调,提升最终的模型生成质量。
具体而言,我们可以看一下三个阶段究竟是怎么操作的。
第一个阶段还比较简单,现在有很多文生图的模型,即便不自己训练,也可能找一些不错的文生图模型,它其实就是我的基准,我从起点开始去构造我的整个方案。我们改造Stable Diffusion,可以快速把这件事完成。
第二阶段,现在有了基本对三维世界的理解,文生图本质上还是对自然语言指令信息转到三维世界,有一个基本的能力之后,现在我希望它每秒钟能生成很多图,每秒钟生成60张图就是一个视频了。这种情况下,再进一步给它很多视频数据让它训练。
我们的创新点有两部分,用了STDiT,有时间信息和空间信息,我们新加了时间上的Attention模块,因为本身已经有空间上的Attention模块。比如空间上就是S,时间上就是T,现在有一个S和T,S是已经训得差不多了,T刚刚开始。S相当于是一个初中生,T相当于是一个婴儿,但现在我们希望S和T都能达到大学生的水平。
有时我们会采用一种混合训练的方法,即将成熟度不同的模型一起训练。这种方法听起来可能有些冒险,因为S可能已经相当于一个初中生,而T可能还只是一个刚刚起步的婴儿。如果将它们放在一起训练,可能会担心它们无法跟上对方学习的节奏。
然而,现代的大型模型拥有庞大的参数量,这使得它们能够通过适当的调整迅速自适应不同的学习速度。在这种情况下,尽管S模型最初学习速度较慢,但T模型可以快速增长,最终两者都能迅速达到相同的水平,最终都能达到相当于大学生的能力水平。
即使我们没有自己的S模型,也可以利用一些现有的资源。当我们引入T模型后,通过适当的整合和调整,可以显著提升整体系统的性能。
这种策略体现了深度学习模型训练的灵活性和适应性,通过合理的设计和调整,即使是成熟度不同的模型也能够协同工作,最终实现性能的共同提升。
当我们拥有了视频生成模型之后,接下来的第三部分工作是使用更高质量的视频数据对模型进行精调。
这里的核心区别在于,第三部分生成的视频在质量上将显著优于第二部分。尽管第二部分的模型已经对三维视觉世界有了一定的理解,但其生成的视频质量仍有提升空间,这也正是我们进行第三阶段工作的原因。
在这一过程中,还有一个关键点值得注意,即我们在OpenAI的技术报告中发现,他们使用了多模态版本的GPT-4来进行视频描述,但这种方法的成本较高。为了降低成本,我们转而采用了开源的LLaVA 1.6模型来进行视频描述任务。LLaVA 1.6是基于E34B数据集训练的,如果大家对此感兴趣,可以进一步了解和探索。
通过使用LLaVA 1.6,我们能够在保持描述质量的同时,减少计算资源的消耗。这种方法不仅有助于提升最终视频产品的质量,也使得整个视频生成过程更加高效和经济,从而为更广泛的应用场景和用户群体提供了可能性。
五、如何将成本降到最低?时空分割是关键一步
介绍完整体的模型、算法、设计流程之后,接下来考虑如何把成本降到最低。
要想把成本控制在1万美金左右,显然我们不能用太多的GPU,我们可以简单地做一笔数学计算。现在H800一台月租8万-10万人民币,假设有8台H800,每月的租金就要80万,如果用20台,每月的租金大概需要200万。要想一次性试验成本控制在10万以下,只能用8台H800 64个H800GPU,就需要把速度、效率破到最高。
之前我们打造了Colossal-AI系统,从三个角度,高效的内存优化、N维并行系统、低延迟推理,通过Colossal-AI进一步实现2-4倍的加速。
训练过程中,一个关键因素是它们需要处理的序列长度通常非常长。无论是国内还是美国的大模型,研究者们都在努力扩展模型的序列长度,以期获得更高的预测精度。以GPT模型为例,其损失函数依赖于一个窗口的信息来预测下一个词的概率,窗口越大,即包含的信息越多,预测的准确性也就越高。
对于视频生成模型而言,即便是较短的视频,其序列长度,这里指的是帧数,即每秒钟包含的画面数量,也可能是巨大的。例如,即便是每秒24帧的视频,如果帧率提高到60,那么在数据训练中的长度可能达到150万tokens,这将导致计算和内存开销急剧增加。
因此,将时间信息和空间信息进行分割处理是非常关键的一步。通过时空分割,我们可以显著降低计算成本和内存压力。具体来说,这意味着我们不是同时计算时间信息和空间信息,而是分步骤进行,先处理时间维度,再处理空间维度,这样可以大幅提升处理效率。
通过这种方法,我们可以更高效地训练视频生成模型,同时控制计算资源的消耗,使得模型训练变得更加可行,即使是在资源有限的情况下。
经过我们的优化之后,训练策略提升了很大。从右图可以看出,即使在8个GPU上训练速度也提升了16%,尤其在Encoder部分,计算密集型任务也实现了显著加速。
六、低成本模型能生成20秒视频,Open-Sora已获得1.4万个GitHub星标
最后展示下我们的demo。我们的demo远差于OpenAI,主要有两个原因:
首先,我们的demo是在低成本条件下完成的,OpenAI使用了2000到4000个H100 GPU,花费了五千万美元到两亿美元,而我们仅用了不到1万美金进行试验。在如此有限的预算下,我们取得的效果是可接受的。
其次,我们没有使用大量的数据。通常数据质量越高,生成的视频质量越好。如果我们采用更好的数据集,我们目前的内部版本能够生成大约20秒的视频。这是一个在成本受限条件下的演示版本,感兴趣的朋友可以在我们GitHub页面上查看更多信息。
Open-Sora目前在视频大模型开源领域中是GitHub上获得星标数最高的项目之一。自从我们在3月3日开源以来,已经获得了1.6万个星标,用户群体遍布全球,包括中国、美国、欧洲、印度和东南亚。
我们的发展方向包括完善数据处理流程。我再次强调,对于视频生成模型来说,数据可能是最核心的资产。虽然算法大多是公开的,比如STDiT、DiT或Video Diffusion,大家使用的算法和模型结构相似,结果也不会有太大差异。但是,如果数据质量有显著差异,那么模型的质量也会有很大差别。因此数据处理流程非常关键。
此外,视频压缩和编码也非常重要,如何将视觉信息有效地转换到潜在空间,以及潜在空间是否能够准确表达视频内容的所有信息,这对于模型的推理和学习过程至关重要。
以上是尤洋演讲内容的完整整理。