在之前的文章《复刻Sora有多难?一张图带你读懂Sora的技术路径》,《一文看Sora技术推演》我们总结了Sora模型上用到的一些核心技术和论文,今天这篇文章我们将整理和总结现有的一些开源代码、模型、数据集,以及初步训练的算力评估,希望可以帮助到国内的创业公司和个人开发者展开更深的研究。
开源代码和模型
Diffusion Transformer
普遍认为Diffusion Transformer模型是Sora的技术基础,通过结合diffusion model和transformer,从而达到可以scale up model来提升图像生成质量的效果。我们总结了三个目前开源的Diffusion Transformer研究如下,并总结了最佳实践,可以在魔搭社区的免费算力上运行和测试。
UViT:All are Worth Words: A ViT Backbone for Diffusion Models
- 论文链接:https://arxiv.org/abs/2209.12152
- 代码库链接:https://github.com/baofff/U-ViT
- 模型链接:https://modelscope.cn/models/thu-ml/imagenet256_uvit_huge
- 最佳实践:https://github.com/modelscope/modelscope/blob/master/examples/pytorch/UViT_ImageNet_demo.ipynb
- 效果图:
DiT:Scalable Diffusion Models with Transformers
- 论文链接:https://arxiv.org/abs/2212.09748
- 代码库链接:https://github.com/facebookresearch/DiT
- 模型链接:https://modelscope.cn/models/AI-ModelScope/DiT-XL-2-256x256/summary
- 最佳实践:https://github.com/modelscope/modelscope/blob/master/examples/pytorch/DiT_ImageNet_Demo.ipynb
- 效果图:
SiT:Exploring Flow and Diffusion-based Generative Models with Scalable Interpolant Transformers (SiT)
- 论文链接:https://arxiv.org/pdf/2401.08740.pdf
- 代码库链接:https://github.com/willisma/SiT
- 模型链接:https://modelscope.cn/models/AI-ModelScope/SiT-XL-2-256
- 最佳实践:https://github.com/modelscope/modelscope/blob/master/examples/pytorch/SiT_ImageNet_Demo.ipynb
- 效果图:
总结对比
部分观点来自知乎:https://zhuanlan.zhihu.com/p/619033826?utm_psn=1743677564626051072
U-ViT是一种简单且通用的基于ViT的扩散概率模型的主干网络,U-ViT把所有输入,包括图片、时间、条件都当作token输入,并且引入了long skip connection。U-ViT在无条件生成、类别条件生成以及文到图生成上均取得了可比或者优于CNN的结果。为未来扩散模型中骨干网络研究提供见解,并有利于大规模跨模态数据集的生成建模。
DiT同样的提出了使用ViT代替U-Net的思想,不同的是DiT中没有引入long skip connection也依然取得了杰出的效果。推测原因可能有:
- DiT 出色的Adaptive layer norm以及零初始化的设计能够有效提升生成质量;
- DiT 在建模特征空间表现良好,但在建模像素空间表现欠缺,可能在用扩散概率模型建模像素空间分布时long skip connection是至关重要的;
- 即使在建模特征空间上,DiT 没有long skip connection也能取得很好的效果,但long skip connection在加速收敛方面也起着关键的作用。
而近期推出的可扩展插值变压器 (SiT),是建立在DiT 基础上的生成模型系列。 插值框架,相比标准的diffusion模型允许以更灵活的方式连接两个distributions,使得对影响生成的各种设计选择的模块化研究成为可能。SiT 在 ImageNet 256x256 基准上模型大小和效果超过了 DiT和UViT,SiT 实现了 2.06 的 FID-50K 分数。
Video Captioning
OpenAI训练了一个具备高度描述性的视频标题生成(Video Captioning)模型,使用这个模型为所有的视频训练数据生成了高质量文本标题,再将视频和高质量标题作为视频文本对进行训练。通过这样的高质量的训练数据,保障了文本(prompt)和视频数据之间高度的align。通过近期的讨论和资料,我们推测Video Captioning模型是由多模态大语言模型VLM(如GPT4V模型)微调出来的。开发者也可以通过视频抽帧+开源VLM生成描述+LLM总结描述的方式,生成较好的视频描述。
下面是一些开源的多模态模型:
零一万物VL模型(Yi-VL-34B)
- 代码库链接:https://github.com/01-ai/Yi/tree/main/VL
- 模型链接:https://modelscope.cn/models/01ai/Yi-VL-34B/
- 最佳实践:
零一万物开源Yi-VL多模态大模型,魔搭社区推理&微调最佳实践来啦!
通义千问VL模型(Qwen-VL-Chat)
- 论文链接:https://arxiv.org/abs/2308.12966
- 代码库链接:https://github.com/QwenLM/Qwen-VL
- 模型链接:https://modelscope.cn/models/qwen/Qwen-VL-Chat
- 最佳实践:
通义千问开源第二波!多模态来啦!(内含魔搭最佳实践)
浦语·灵笔2-视觉问答-7B(internlm-xcomposer2-vl-7b)
- 代码库链接:https://github.com/InternLM/InternLM-XComposer
- 模型链接:https://modelscope.cn/models/Shanghai_AI_Laboratory/internlm-xcomposer2-vl-7b/summary
- 最佳实践:图文创作,下笔有灵,书生·浦语灵笔 2.0 正式开源!魔搭社区推理&微调最佳实践来啦!
CogVLM模型:
- 技术报告:https://zhipu-ai.feishu.cn/wiki/LXQIwqo1OiIVTykMh9Lc3w1Fn7g
- 代码库链接:https://github.com/THUDM/CogVLM
- 模型链接:https://modelscope.cn/models/ZhipuAI/CogVLM/summary
- 最佳实践:CogVLM智谱AI 新一代多模态大模型发布,魔搭社区最佳实践体验!
MiniCPM-V模型:
- 论文链接:https://arxiv.org/abs/2308.12038
- 代码库链接:https://github.com/OpenBMB/OmniLMM/
- 模型链接:https://modelscope.cn/models/OpenBMB/MiniCPM-V/summary
Video-LLaVA模型:
- 论文链接:https://arxiv.org/abs/2311.10122
- 代码库链接:https://github.com/PKU-YuanGroup/Video-LLaVA
- 模型链接:https://modelscope.cn/models/PKU-YuanLab/Video-LLaVA-7B/summary
总结对比
从模型参数量来看,零一万物,CogVLM的模型是百亿参数,但是仅支持英文,通义,灵笔等模型可以较好的支持中文,Video-LLaVA可以支持直接对视频的理解,可以根据需求来选择具体的多模态大语言模型。
基于diffusion模型的视频生成技术
Animatediff模型:
- 论文链接:https://arxiv.org/abs/2307.04725
- 代码库链接:https://github.com/guoyww/animatediff/
- 模型链接:https://modelscope.cn/models/Shanghai_AI_Laboratory/animatediff/summary
I2VGen模型:
- 论文链接:https://arxiv.org/abs/2311.04145
- 代码库链接:https://github.com/ali-vilab/i2vgen-xl
- 模型链接:https://modelscope.cn/models/iic/i2vgen-xl/summary
文本生成视频模型:
- 模型链接:https://modelscope.cn/models/iic/text-to-video-synthesis/summary
- 代码库链接:https://github.com/modelscope/modelscope
总结对比
目前开源的视频生成技术基本都是基于diffusion+Unet架构,不过其中视频数据处理,压缩采样,包括UNet3D设计等,依然有很大的参考意义。
开源数据集
Youku-mPLUG中文大规模视频文本数据集
Youku-mPLUG预训练数据集挖掘自优酷站内海量的优质短视频内容,包含千万级别约36TB的视频、文本数据。其中视频均为覆盖10~120秒的UGC短视频内容,文本为视频对应的描述标题,长度5~30不等。该数据集抽取时品类均衡,内容共包含45个大类:电视剧剪辑、电视剧周边、电影剪辑、电影周边、综艺、相声小品、纪录片、传统文化、动漫、MV、翻唱、乐器演奏、健身、街舞、广场舞、竞技体育、篮球、足球、财经、科技、汽车、科学科普、生活百科、日常生活、搞笑、学历教育、游戏、职业职场、美食测评、美食制作、美容护肤、美妆、穿搭、旅游、宠物、家居装饰、房产装修、医疗健康、养生保健、三农、萌娃日常、亲子育儿、少儿才艺、少儿动漫、少儿玩具。
下游任务数据集
我们提供了3个不同的下游多模态视频Benchmark视频数据集去衡量预训练模型的能力。3个不同的任务具体包含:
- 类目预测:给定视频和对应视频标题,对该视频的类目进行预测。
- 视频检索:在给定一些视频以及一些文本的情况下,使用视频对文本进行检索和使用文本对视频进行检索。
- 视频描述:在给定视频的情况下,对视频中的画面进行描述。
开源链接:https://modelscope.cn/datasets/modelscope/Youku-AliceMind/summary
LAION-5B
LAION-5B是一个用于研究目的的大型数据集,由 5,85B CLIP 过滤的图像文本对组成。2,3B 包含英语,2,2B 样本来自 100 多种其他语言,1B 样本包含不允许特定语言分配的文本(例如名称)。比 LAION-400M 大 14 倍,LAION-400M 是之前世界上最大的可公开访问的图像文本数据集。
开源链接:https://laion.ai/blog/laion-5b/
算力评估
众所周知,当技术和数据上比较成熟了之后,最大的瓶颈就在算力资源上,我们也根据各项公开材料,模拟了一个6B的中低分辨率视频Transformers模型的训练场景(数据集包含千万个视频+图片,最大为训练样本40秒256*256分辨率的视频,帧率为24),并根据在LLM训练的经验,初步预估了卡资源。
按照尝试的资源来算,我们假设训练的视频样本最大为256(长)*256(宽)*视频帧数(40*24),空间理想压缩比为8,时间理想压缩比4,patch size为(2*2*2),我们按照序列长度最长约为32K来算。tensor 并行数为8,模型的大小为6B,相比于一开始LLM模型从2K的最长窗口开始,明显视频的序列长度远高于LLM模型,带来的算力需求的大幅增长,我们初步预估需要200-400张A100,训练2-3个月,也可以采取window attention技术来降低卡的消耗。