在之前的文章,我们总结了Sora模型上用到的一些核心技术和论文
- 复刻大模型 Sora 有多难?一张图带你读懂 Sora 的技术路径
- 一文看懂大模型 Sora 技术推演
今天这篇文章来自我们社区讨论交流,我这边整理和总结现有的一些开源代码、模型、数据集,以及初步训练的算力评估,希望可以帮助到国内的创业公司和个人开发者展开更深的研究。
文章目录
- 技术交流
- 01 开源代码和模型
- Diffusion Transformer
- Video Captioning
- 基于diffusion模型的视频生成技术
- 02 开源数据集
- 下游任务数据集
- LAION-5B
- 03 算力评估
- 通俗易懂讲解大模型系列
技术交流
前沿技术资讯、算法交流、求职内推、算法竞赛、面试交流(校招、社招、实习)等、与 10000+来自港科大、北大、清华、中科院、CMU、腾讯、百度等名校名企开发者互动交流~
我们建了 SORA 技术交流群, 想要进交流群、获取完整源码&资料、提升技术的同学,可以直接加微信号:mlc2060。加的时候备注一下:研究方向 +学校/公司+CSDN,即可。然后就可以拉你进群了。
方式①、微信搜索公众号:机器学习社区,后台回复:技术交流
方式②、添加微信号:mlc2060,备注:技术交流
01 开源代码和模型
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
-
效果图:
总结对比
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/
通义千问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
CogVLM模型:
-
技术报告:https://zhipu-ai.feishu.cn/wiki/LXQIwqo1OiIVTykMh9Lc3w1Fn7g
-
代码库链接:https://github.com/THUDM/CogVLM
-
模型链接:https://modelscope.cn/models/ZhipuAI/CogVLM/summary
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设计等,依然有很大的参考意义。
02 开源数据集
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/
03 算力评估
众所周知,当技术和数据上比较成熟了之后,最大的瓶颈就在算力资源上,我们也根据各项公开材料,模拟了一个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技术来降低卡的消耗。
通俗易懂讲解大模型系列
-
做大模型也有1年多了,聊聊这段时间的感悟!
-
用通俗易懂的方式讲解:大模型算法工程师最全面试题汇总
-
用通俗易懂的方式讲解:不要再苦苦寻觅了!AI 大模型面试指南(含答案)的最全总结来了!
-
用通俗易懂的方式讲解:我的大模型岗位面试总结:共24家,9个offer
-
用通俗易懂的方式讲解:大模型 RAG 在 LangChain 中的应用实战
-
用通俗易懂的方式讲解:一文讲清大模型 RAG 技术全流程
-
用通俗易懂的方式讲解:如何提升大模型 Agent 的能力?
-
用通俗易懂的方式讲解:ChatGPT 开放的多模态的DALL-E 3功能,好玩到停不下来!
-
用通俗易懂的方式讲解:基于扩散模型(Diffusion),文生图 AnyText 的效果太棒了
-
用通俗易懂的方式讲解:在 CPU 服务器上部署 ChatGLM3-6B 模型
-
用通俗易懂的方式讲解:使用 LangChain 和大模型生成海报文案
-
用通俗易懂的方式讲解:ChatGLM3-6B 部署指南
-
用通俗易懂的方式讲解:使用 LangChain 封装自定义的 LLM,太棒了
-
用通俗易懂的方式讲解:基于 Langchain 和 ChatChat 部署本地知识库问答系统
-
用通俗易懂的方式讲解:在 Ubuntu 22 上安装 CUDA、Nvidia 显卡驱动、PyTorch等大模型基础环境
-
用通俗易懂的方式讲解:Llama2 部署讲解及试用方式
-
用通俗易懂的方式讲解:基于 LangChain 和 ChatGLM2 打造自有知识库问答系统
-
用通俗易懂的方式讲解:一份保姆级的 Stable Diffusion 部署教程,开启你的炼丹之路
-
用通俗易懂的方式讲解:对 embedding 模型进行微调,我的大模型召回效果提升了太多了
-
用通俗易懂的方式讲解:LlamaIndex 官方发布高清大图,纵览高级 RAG技术
-
用通俗易懂的方式讲解:为什么大模型 Advanced RAG 方法对于AI的未来至关重要?
-
用通俗易懂的方式讲解:使用 LlamaIndex 和 Eleasticsearch 进行大模型 RAG 检索增强生成
-
用通俗易懂的方式讲解:基于 Langchain 框架,利用 MongoDB 矢量搜索实现大模型 RAG 高级检索方法
-
用通俗易懂的方式讲解:使用Llama-2、PgVector和LlamaIndex,构建大模型 RAG 全流程