探索 Sora 背后的核心技术

2024年2月16日,OpenAI发布Sora文生视频模型,一石激起千层浪,迅速刷屏爆火于整个AI圈。一方面,Sora从文本、图像迈向视频大模型,这可以说是通向通用人工智能的里程碑事件;另一方面,训练和推理需求从文本、图像又增加一个视频维度,将拉动AI芯片、AI应用雨后春笋般的持续增长。

本文作者阅读了137篇大模型论文,精读与部分复现了约63篇,尝试在这里探讨、解读Sora背后的技术。下图是Sora算法脉络图,咱们沿着这张图介绍。

在这个万模都Transformer的时代,谷歌提出的Attention Is All You Need论文,是Transformer encoder-decoder架构的开山之作。读者一看这名字就感觉有梗。事实上这篇文章可以认为是最近几年以来深度学习里面最重要的文章之一,开创了继NLP、CNN和RNN之后的第四大类模型。Transformer最早运用在NLP领域,论文中提出的编码器、解码器、多头自注意和自回归等核心技术影响深远。

谷歌提出的ViT(An image is worth 16 x16 words: transformers for image recognition at scale)取代了CNN,打通了CV和NLP之间的鸿沟,而且挖了一个更大的多模态的坑。Vision Transformer,ViT未来有可能真就是一个简洁、高效、通用的视觉骨干网络,正如上图大家看到的一样。其实现原理是将NLP领域的Transformer借鉴到CV领域。原始输入图像作切块处理,每一个小方块就是一个patch。Patch Embedding编码就是将一个CV问题通过切块和展平转化为一个NLP问题。

OpenAI一提出CLIP(Contrastive Language-Image Pre-training)就立马火爆全场,CLIP预训练好后,能够在任意一个视觉分类数据集上取得不错的效果,而且更炸裂的是Zero-Shot,意思就是说它完全没有在目标数据集上做训练,就能得到很高的效果。最后还顺带产生了一个4亿图像-文本对WebImageText,WIT数据集。CLIP是一种基于对比文本-图像对的预训练方法或者模型。与CV中的一些对比学习方法如MoCo不同的是,CLIP的训练数据是文本-图像对,即一张图像和它对应的文本描述。通过对比学习,模型能够学习到文本-图像对的匹配关系。

OpenAI提出的DALL·E(Zero-Shot Text-to-Image Generation)文生图模型目标是把文本token和图像token当成一个数据序列,通过Transformer进行自回归。由于图片的分辨率很大,如果把单个pixel当成一个token处理,会导致计算量过于庞大,于是DALLE引入了一个dVAE降噪变分自编码模型来降低图片的分辨率。随后OpenAI把该模型升级到DALLE2,结合预训练CLIP和DDPM:Denoising Diffusion Probabiblistic Model扩散模型实现文本到对应图像生成。生成对抗网络GAN、变分自编码器VAE、扩散模型Diffusion models都具有强大的图像生成能力,DALLE和DALLE2分别用了不同的技术。其中,DDPM通过逐步添加噪声来模拟数据分布,然后学习逆向过程去除噪声,以生成新的数据。最后,DALLE3把chatGPT也引入了进来,让模型更理解上下文、关注更多细微差别。用户参与度高,能轻松地将想法(文本)转化为更加准确、丝滑的图像。以致相关应用火爆全球。

UC Berkeley和New York University联合提出的DIT: Scalable Diffusion Models with Transformers,是一种基于Transformer架构的新型扩散模型。它用Transformer替换常用的U-Net主干网络,训练了图像的潜在扩散模型Latent Diffusion Models。24年1月,团队二作谢赛宁团队推出了升级版SiT,Scalable Interpolant Transformer,相同的骨干实现了更好的质量、速度和灵活性。

至此,介绍了公认的Sora核心技术。当然要实现Sora,不可能就这么顺溜,就这样一步登天。笔者认为平常还得积累一些基础工作。

视频理解领域,Facebook AI Research提出了一种称为TimeSformer视频理解的新架构,这个架构完全基于Transformer,不使用卷积层。它通过分别对视频的时间和空间维度应用自注意力机制,有效地捕捉动作的时空特征。

多模态领域,来自Salesforce团队提出的BLIP: Bootstrapping Language-Image Pre-training for Unified Vision-Language Understanding and Generation,引导文本图像预训练,以实现统一的视觉语言理解和生成。BLIP是一个新的Vision Language Pre-training,VLP框架,与现有方法相比,它可以实现更广泛的下游任务。通过BLIP的CapFilter/Filter数据增强,得到了比WIT噪声更少的数据集。用户可以拿这个数据去训练VLMo,训练CoCa,训练BEiT系列,去训练各种各样的多模态大模型。BLIP未来可能是一个非常通用的工具。

当然,要复现论文,就不得不提到微软。这个团队最近几年出了很多大名鼎鼎的工作,比如说DeepSpeed基础大模型、BEiT系列和LayoutLM系列等等。感觉其工作思路的核心特色是开源,并努力降低模型的算力需求,以期匹配更多的玩家。其中,BEiTv3的核心思想是将图像建模为一种语言,这样用户就可以对图像、文本以及图像-文本对进行统一的Mask Modeling。Multi-Way Transformer模型可以有效地完成不同的视觉和视觉语言任务,使其成为通用建模的一个有效选择。另外,如果要做提示、微调或者说蒸馏大模型的话,InstructGPT、InstructBLIP是不错的两篇论文。由此延展,可以挖掘出很多工程技术来。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/705236.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

设计模式(三)建造者模式

相关文章设计模式系列 1.建造者模式简介 定义 建造者模式(builder),将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 简介 建造者模式(builder)是创建一个复杂对象的创建型…

【Nuxt3】Tailwind 项目去除页面滚动条

【Nuxt3】Tailwind 项目去除页面滚动条 在Web开发中,滚动条是一个常见的用户界面元素,但有时候我们希望在某些页面上去除滚动条,以便提供更好的用户体验。在Nuxt3项目中,我们可以使用Tailwind CSS来实现这个功能。 Tailwind CSS…

2024图像处理分析与信息工程国际学术会议(IACIPIE2024)

2024图像处理分析与信息工程国际学术会议(IACIPIE2024) 会议简介 2024图像处理分析与信息工程国际学术会议(IACIPIE2024)将在中国长沙举行。 IACIPIE2024是一个年度会议,探讨图像处理分析和信息工程相关领域的发展和影响,旨在介…

状态机-----

1.原理 同步的意思就是状态的跳转都是在时钟的作用下跳转的,有限是指状态机中状态的个数是有限的。两种状态机的共同点都是状态的跳转只和输入有关,区别就是如果最后的输出只和当前状态有关而与输入无关,则是moore型状态机。如果最后的输出不…

STM32学习3 寄存器映射和GPIO寄存器编程

STM32学习3 寄存器映射和GPIO寄存器编程 一、STM32外设内存空间1. 内存空间划分2. 区域功能说明(1)block0(2)block1(3)block2(4)block3~4(5)block5&#xff0…

猫咪挑食不吃猫粮怎么办?适口性高、可以改善猫咪挑食的主食冻干分享

猫咪挑食不吃猫粮怎么办?在现今社会,养猫的人越来越多,大家都把自家的小猫当作宝贝来宠爱。但宠爱过度有时也会导致猫咪养成挑食的坏习惯。面对这一问题,我们应该如何解决呢?今天,我要分享一个既能确保猫咪…

Adobe Illustrator 2022 for Mac/Win:设计的新篇章

在数字艺术和设计领域,Adobe Illustrator一直以其强大的功能和高效的工具受到专业人士的青睐。随着2022年的到来,Adobe Illustrator 2022(简称AI 2022)的发布无疑为设计师们带来了新的希望和期待。 一、强大的新功能 AI 2022引入…

C++ 网络编程学习二

C 网络编程学习二 asio异步写操作asio异步读操作asio 异步echo服务端asio异步服务器中存在的隐患 asio异步写操作 async_write_some是异步写的函数:传入buffer和回调函数以及参数以后,发送后会调用回调函数。 void Session::WriteToSocketErr(const st…

什么是小红书品牌笔记,如何做好达人投放?

认认真真撰写了小红书品牌笔记,从各个方面确保了笔记的优质程度,却没能产生爆文。这很可能是笔记与用户之间的中间环节出了问题,也就是达人投放有问题。今天我们就为大家带来什么是小红书品牌笔记,如何做好达人投放? 一…

【c语言】if 选择语句

🎈个人主页:豌豆射手^ 🎉欢迎 👍点赞✍评论⭐收藏 🤗收录专栏:C语言 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共同学习、交流进步&…

rk3568 I2C

rk3568 I2C I2C(Inter-Integrated Circuit)总线是一种串行通信协议,由Philips(现在的NXP)公司于1980年代初开发。它最初被设计用于连接不同的集成电路和集成模块,以降低系统成本和复杂度。随着时间的推移,I2C总线已经成为连接各种设备的主要标准之一。I2C总线最初只支持…

java设计模式的总结

作用 设计模式是一套被反复使用、经过验证、解决特定问题的最佳实践。它们提供了一种通用的语言,让软件开发者能够更轻松地理解和设计复杂的系统。设计模式有助于提升代码的可读性、可维护性、可扩展性和灵活性。 总结 现知设计模式总共可以分为三种目的型设计模…

SQL--字符串反转函数 reverse() 简单明了

字符串反转函数:reverse 语法: reverse(string A) 返回值: string 说明:返回字符串A的反转结果 举例: hive> select reverse(abcedfg); gfdecba

Navicat的使用

1. Navicat介绍 Navicat: 是一款流行的数据库管理和开发工具, 它支持多种数据库系统, 如: MySQL, MariaDB, MongoDB, SQL Server, Oracle, PostgreSQL 等. Navicat通过提供直观的图形用户界面(GUI), 使用户能够更轻松地执行各种数据库操作, 而无需记住复杂的SQL命令.以下是Nav…

PyQt5图片浏览器

PyQt5图片浏览器 实现方式功能实现具体代码 界面实现pillow源码修改ImageQt错误主页面布局 项目开源地址 分享一个图片浏览器 实现方式 qt本身有一个QGraphicsView类用来当做视图框架。 具体参考:如何在pyqt中使用 QGraphicsView 实现图片查看器 不过大佬给的例子…

聚集高速托盘类四向穿梭车ASRV|一车跑全仓可获得10000个货位的HEGERLS智能搬运机器人

随着国内外制造业加速转型升级,越来越多的企业需要进行物流智能化升级,但是往往受到仓库面积、高度、形状等现实条件的限制,以及市场不确定性因素的影响。因此,相对于投资传统的自动化立体库,企业更倾向于选择智能化、…

【深度学习数学工具】K-FAC:Kronecker-factored Approximate Curvature

Kronecker-factored Approximate Curvature (K-FAC) 是一种优化深度神经网络的先进方法,特别适用于大规模网络。K-FAC通过近似神经网络的Hessian矩阵的结构,以更有效率和准确性的方式更新网络权重。这种方法基于一个关键的观察:深度网络的Hes…

如何在 HTML 中嵌套、引入其他的 HTML?

在日常开发中,书写的 HTML 页面往往不是独立或互不通用,通常是有些头部、尾部或者其他部分是公用的,但是 HTML 有不同 JSP 页面可以使用类似 include 这样的动作标记,所以接下来介绍二种 HTML 页面引入其他 HTML 页面的方法。 1.…

机器学习-01-课程目标与职位分析

总结 本系列是机器学习课程的第01篇,主要介绍本门课程的课程目标与职位分析 教材 数据挖掘与机器学习 课程教学方法 布鲁姆教学法 认知领域(cognitive domain) 1.知道(知识)(knowledge) 是指…

kylin v10 升级 openssl、openssh

升级 openssl 一、查看当前安装的版本 # openssl version OpenSSL 1.0.2g 1 Mar 2016注意:不要卸载旧版本,会出依赖方面的问题! 二、下载 wget https://www.openssl.org/source/openssl-1.1.1g.tar.gz三、编译 tar zxvf openssl-1.1.1g…