清华军团推出中国首个对标Sora的视频大模型Vidu,扒一扒它背后的模型架构

就在前天,Vidu 在 2024 中关村论坛年会之中横空出世

图片

伴随着“中国首个”,“Sora 级视频模型”,“模拟真实的物理世界”等关键词下的刷屏式的报道,Vidu 一下成为国产视频模型的一剂强心针。

尽管目前 Vidu 支持的视频长度是 16 秒,尚未达到 Sora 的 60 秒级,但是单看 Vidu 的宣传视频,如果以 Sora 为对标,可以看出 Vidu 在如时空一致性、物理规律遵循以及多镜头等等方面都已经对 Sora 不遑多让

  GPT-3.5研究测试:

https://hujiaoai.cn

GPT-4研究测试:

https://higpt4.cn

Claude-3研究测试(全面吊打GPT-4):

https://hiclaude3.com

背靠清华军团,提出全球首个Diffusion + Transformer架构U-ViT,早于Sora

撇开视频的质量不说,笔者发现了一个更牛逼的事情:

Vidu背后的模型架构U-ViT 和 Sora 的核心架构 Diffusion Transformer(DiT)完全一致,且更早于DiT的发表时间。

这家在 2023 年 3 月份成立的“清华军团”生数科技,其实早在 2022 年 9 月,其创业团队就发布了基于 Transformer 架构的底层统一网络框架 U-ViT。

而Sora 的核心架构 Diffusion Transformer(DiT) 发布于 2022 年 12 月。

但其实这两项工作在架构思路与实验路径上完全一致,核心 idea 都在于将 Transformer 与 Diffusion Model 进行结合。

图片

论文链接:
https://arxiv.org/pdf/2209.12152

而也因此,人工智能领域的著名科学家,清华大学人工智能研究院副院长、也是生数科技的首席科学家朱军教授面对 Sora 就曾提到:“虽然Sora的出现表明美国在多模态大模型领域具有领先性,但是中国也并非完全从零开始的阶段

其实就在 Sora 发布后不久,我们就梳理了当时国内「类Sora模型」的发展现状,在当时尽管文生视频模型国内已经有不少大厂创企进行过尝试,但是那时的视频生成可能还只能是说“让图片动起来”,大部分的改进也都是在于如何让这个动起来的图片更高清或分辨率更高,而不是像 Sora 一样直接作为一个 World Simulator 而出现。

图片

不单在国内,自 Sora 发布以来的三个月,Vidu 目前是世界唯一一个突破 Sora 级的视频大模型。其实如果从 Transformer + Diffusion Model 这个 idea 构建伊始去看 Vidu,我们可以发现从一开始 Vidu 与 Sora 事实上就在走同一条路线。

2023 年 3 月,对标文生图的 Stable Diffusion,生数科技就已经开源了全球首个基于 U-ViT 框架的多模态扩散大模型 UniDiffuser,其模型参数量从最早开源版的 1B 不断扩展至 3B(30亿)、7B、10B及以上,参数量和训练数据规模上都与 Stable Diffusion 直接对齐,成功完成 U-ViT 的可扩展性验证。

从 Diffusion Model 的最初的网络架构——基于 CNN 的 U-Net 架构出发,与 Sora 的 DiT 一样,U-ViT 的核心思想都在于将基于 CNN 的网络替换为基于 Transformer 的网络

从 2019 年 Song Yang 那篇从 Score-Based Model 视角理解生成模型的文章首次使用 U-Net 伊始,后续扩散模型的各种标杆工作,如大名鼎鼎的 DDPM,ADM,Imagen 等等都基于 U-Net 架构对 Diffusion Model 中的“噪音”进行建模,一个传统的 U-Net 网络大致如下图所示:

图片

而其实随着 Vision Transformer(ViT)逐渐在各类视觉任务中展露头面,一个很自然的想法其实就是“扩散模型网络架构是否一定需要基于 CNN?”,这个答案很快就被 U-ViT 与 DiT 所回答:“显然不是,甚至 Transformer 更好”

而为了验证最开始的“直觉”,U-ViT 设计了如下的基于 ViT 的网络架构,利用 ViT 的思路,U-ViT 将带噪图片划分多个 Patch,结合扩散模型中的扩散时间步,条件等等作为 Token 输入到 Transformer Block 之中

图片

除了这步将 ViT 模式搬运到扩散模型中的一步以外,U-ViT 还受 U-Net 启发,采用了浅层和深层之间的 Long skip Connection。采取 Long skip Connection 的直观在于,扩散模型利用预测噪声“去噪”的过程,高度依赖图像中的“Low-Level Feature”,例如边缘,角,颜色等等,而这种连接通过将 Low-Level Feature 从网络的浅层引入到深层,从而大大提升了扩散模型的预测能力,也进一步的提升了模型的图像生成能力。

图片

而 Sora 背后的 DiT 思路也几乎完全一致,最核心的一步都是将 ViT 引入到扩散模型之中,实现 VAE encoder + ViT + DDPM + VAE decoder 的组装:

图片

U-ViT曾被CVPR 2023拒稿,后被ICCV 2023 接受

有意思的插曲是,DiT 最初也是投稿于 CVPR 2023,但是由于CVPR 2023 收录了 U-ViT 论文,因此 DiT 被以「缺乏创新」为由而拒稿,后来才被 ICCV 2023 接收

图片

当然彼时,无论是 U-ViT 还是 DiT 都还停留在图像生成的领域,尚且还未发展到视频生成这一步,不过在 2023 年 3 月,朱军教授团队的工作 UniDiffuser 在 U-ViT 的基础上,将扩散模型往多模态方向推进了一步。UniDiffuser 除了单向的文生图以外,还能实现如图生文,图文联合生成,图文改写等等能力,从「多模型」出发,UniDiffuser 其实早在一年前就为今天 Vidu 的出现埋下了伏笔。

图片

在 Vidu 发布之后,朱军教授发声:“Vidu,we do, we did, we do together!感谢小伙伴们日以继夜的坚持,在实验室架构上开花结果。”

其实,可能与许多其他公司基于「复制」的“追赶者战略”不同,Vidu 实实在在的从机器学习与多模态大模型的理论研究与训练经验中走出了一条自己的道路,可能也正是因为这些积累,才让 Vidu 在短短两个月的时间内就突破了 Sora 背后的许多关键技术。

而甚至不同于 Sora 的视频生成,Vidu 一开始就建立在一个多模态扩散模型的基础之上。当下视频生成可能也仅仅是 Vidu 的一个展示形态,从这个意义上来讲,可能 Vidu 当下可以许诺的,不仅仅是一个“中国版的 Sora”那么简单吧!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

二叉树理论和题目

二叉树的种类 在我们解题过程中二叉树有两种主要的形:满二叉树和完全二叉树。 满二叉树 满二叉树:如果一棵二叉树只有度为0的结点和度为 2 的结点,并且度为 0 的结点在同一层上,则这棵二叉树为满二叉树。 这棵二叉树为满二叉树…

vscode的终端区乱码怎么办呢?

vscode的终端区乱码怎么办呢? 错误效果解决办法一解决办法二(极力推荐方法二)最终效果参考文献 错误效果 解决办法一 解释:你之所以使用了utf8还乱码,是因为你的电脑目前根本无法兼容utf8,只兼容gbk 怎么让你的电脑兼容utf8,我写在方法二 在设置中,输入encoding 解决办法二(极…

水稻病害检测(YOLO数据集,多分类,稻瘟病、纹枯病、褐斑病、枯心病、霜霉病、水稻细菌性条纹斑病、稻苞虫)

是自己利用LabelImg工具进行手工标注,数据集制作不易,请尊重版权(稻瘟病、纹枯病、褐斑病、枯心病、霜霉病、水稻细菌性条纹斑病、稻苞虫) 如果需要yolv8检测模型和数据集放在一起的压缩包,可以关注:最新最…

求解约瑟夫问题

思路: 我们要创建两个指针 有一个指针pcur指向头结点,该pcur作为报数的指针,还有一个指针ptail指向尾结点,作为记录pcur的地址 每报数为m时,pcur指向下一个元素的地址,ptail销毁报数为m的地址&#xff0…

分光光度法基本原理与应用

本文介绍分光光度法基本原理与应用。 分光光度法是分光光度计采用的方法,在医疗检测仪器,实验室测量仪器中经常使用。本文简要分析其原理,并给出实际工作过程中如何应用及应用过程中可能的误差来源。 1.基本概念 设一平行单色光垂直照射某…

网络安全工程师必备的6个渗透测试工具

渗透测试是模拟黑客攻击,评估系统安全性的重要方法。 网络安全工程师需要掌握各种渗透测试工具,才能有效地发现和修复漏洞。 1. Nmap 功能: 强大的网络扫描器,可以扫描网络拓扑、识别主机和服务、发现开放端口和漏洞。 用途: 信息收集、漏洞…

一加Ace3/12/Ace2pro手机ColorOS14刷KernelSU内核ROOT-解决无限重启变砖

一加Ace3/一加12/一加11等手机升级了安卓14底层,并且ColorOS版本也更新到了14版本界面和功能都比之前的系统表现更加优秀,但刷机方面,相对之前存在一些差异,特别是KernelSU内核级别root权限,不再支持一键刷入KernelSU通…

MySQL的事务,函数和索引

事务 数据库的事务是一种机制,一种操作序列,包含了一组数据库的操作命令 简单了解:如果一个包含多个步骤的业务操作,被业务管理,要么这些操作同时操作成功,要么同时操作失败 事务是一个不可分割的工作逻…

HTTP网络协议,接口请求的内容类型 content-type(2024-04-27)

1、简介 Content-Type(内容类型),一般是指网页中存在的 Content-Type,用于定义网络文件的类型和网页的编码,决定浏览器将以什么形式、什么编码读取这个文件,这就是经常看到一些 PHP 网页点击的结果却是下载…

【Kylin】V10系统在VMware中分辨率太小,无法通过GUI修改分辨率的解决方法

【Kylin】V10系统在VMware中分辨率太小,无法通过GUI修改分辨率的解决方法 解决办法1.打开终端方法1:方法2 2.输入 xrandr 命令,查询分辨率支持的列表3.选择适合的分辨率 。 例如:xrandr -s 1440x900_60 问题如下图: 保…

C++感受10-Hello Object 生死版•下

搞懂以下三个重要知识点: 对象生命周期对象内存模型对象的可见性 ff12-HelloObject-生死版-下 1. 生命周期 只要是数据,就需要占用内存空间。程序将内存分成多个区,其中最重要的是栈区和堆区。放在栈区的数据,称为栈数据或栈对象&…

uniapp分包,以及通过uni-simple-router进行分包

先说一下uniapp的直接分包方式,很简单: 配置分包信息 打开manifest.json源码视图,添加 “optimization”:{“subPackages”:true} 开启分包优化 我们在根目录下创建一个pagesA文件夹,用来放置需要分包的页面 然后配置路由 运行到…

开源啦!一键部署免费使用!Kubernetes上直接运行大数据平台!

市场上首个K8s上的大数据平台,开源啦! 智领云自主研发的首个 完全基于Kubernetes的容器化大数据平台 Kubernetes Data Platform (简称KDP) 开源啦🚀🚀 开发者只要准备好命令行工具,一键部署 Hadoop,Hi…

【论文笔记】Language Models are Few-Shot Learners B部分

Language Models are Few-Shot Learners B 部分 回顾一下第一代 GPT-1 : 设计思路是 “海量无标记文本进行无监督预训练少量有标签文本有监督微调” 范式;模型架构是基于 Transformer 的叠加解码器(掩码自注意力机制、残差、Layernorm&#…

【win10相关】更新后出现未连接到互联网的问题及解决

问题背景 在win10更新完系统之后,第二天电脑开机后,发现无法上网,尝试打开百度,但是出现以下图片: 经过检查,发现手机是可以上网的,说明网络本身并没有问题,对防火墙进行了一些设置…

采用前后端分离Vue,Ant-Design技术开发的(手麻系统成品源码)适用于三甲医院

开发环境 技术架构:前后端分离 开发语言:C#.net6.0 开发工具:vs2022,vscode 前端框架:Vue,Ant-Design 后端框架:百小僧开源框架 数 据 库:sqlserver2019 系统特性 麻zui、护理、PACU等围术期业务全覆…

【机器学习】集成学习---Bagging之随机森林(RF)

【机器学习】集成学习---Bagging之随机森林(RF) 一、引言1. 简要介绍集成学习的概念及其在机器学习领域的重要性。2. 引出随机森林作为Bagging算法的一个典型应用。 二、随机森林原理1. Bagging算法的基本思想2. 随机森林的构造3. 随机森林的工作机制 三…

3. uniapp开发工具的一些事

前言 新的一天,又要开始卷起来了,开发程序开发当前离不开开发工具,一个好的开发工具办事起来那必然是事倍功半的...本文主要分享了关于uniapp里开发工具的一些事~ 概述 阅读时间:约5~7分钟; 本文重点&am…

Web程序设计-实验04 JavaScript对象

题目 【实验主题】 个人所得税计算 【实验任务】 1、根据【任务提示】和【参考资源】材料,自学2012版月工资、年终奖个人所得税计算规则。 2、新建 .js文件,以JSON格式定义个人所得税对象。 其中属性涉及三个层次: 1)第一层…

03-MVC执行流程-参数解析与Model

重要组件 准备Model,Controller Configuration public class WebConfig {ControllerAdvicestatic class MyControllerAdvice {ModelAttribute("b")public String bar() {return "bar";}}Controllerstatic class Controller1 {ResponseStatus(H…