语言图像模型大一统!Meta将Transformer和Diffusion融合,多模态AI王者登场

news/2024/11/17 12:49:52/文章来源:https://www.cnblogs.com/wxkang/p/18381678
前言 就在刚刚,Meta最新发布的Transfusion,能够训练生成文本和图像的统一模型了!完美融合Transformer和扩散领域之后,语言模型和图像大一统,又近了一步。也就是说,真正的多模态AI模型,可能很快就要来了!

欢迎关注公众号CV技术指南,专注于计算机视觉的技术总结、最新技术跟踪、经典论文解读、CV招聘信息。

本文转载自新智元

仅用于学术分享,若侵权请联系删除

CV方向的准研究生们,未来三年如何度过?

招聘高光谱图像、语义分割、diffusion等方向论文指导老师

Transformer和Diffusion,终于有了一次出色的融合。自此,语言模型和图像生成大一统的时代,也就不远了!这背后,正是Meta最近发布的Transfusion——一种训练能够生成文本和图像模型的统一方法。

 

论文地址:英伟达高级科学家Jim Fan盛赞:之前曾有很多尝试,去统一Transformer和Diffusion,但都失去了简洁和优雅。现在,是时候来一次Transfusion,来重新激活这种融合了!

在X上,论文共一Chunting Zhou,为我们介绍了Transfusion其中的「玄机」。

为何它能让我们在一个模型中,同时利用两种方法的优势?这是因为,Transfusion将语言建模(下一个token预测)与扩散相结合,这样,就可以在混合模态序列上训练单个Transformer。

研究者从头开始,在混合文本和图像数据上预训练了参数量高达70亿的Transfusion模型。使用文本和图像数据的混合,他们建立了一系列单模态和跨模态基准的缩放定律。实验表明,Transfusion在单模态和多模态基准测试中,相较于对图像进行量化并在离散图像token上训练语言模型,很明显具有更好的扩展性。

研究者发现,Transfusion能够生成与相似规模的扩散模型相媲美的高质量图像,而且,它同时也保持了强大的文本生成能力。

作者强调,团队着重做了建模的创新。首先,全局因果注意力加上每个图像内的双向注意力,是至关重要的。另外,引入模态特定的编码和解码层后,可以提高性能,并且可以将每个图像压缩到64甚至16个块!

总之,研究者成功地证明了,将Transfusion方法扩展到70亿参数和2万亿多模态token后,可以生成与类似规模的扩散模型和语言模型相媲美的图像和文本。这就充分利用了两者的优势!最后,作者激动地畅想道——Transfusion为真正的多模态AI模型开启了激动人心的可能性。这些模型可以无缝处理任何离散和连续模态的组合!无论是长篇视频生成、与图像或视频的交互式编辑/生成会话,我们都可以期待了。

生图效果秒杀DALL-E 2和Stable Diffusion

 

Transfusion的生图效果如何?让我们来检验一下。以下这些,都是用在2万亿多模态token上训练的70亿参数Transfusion生成的图像——可以看出,它的生图质量非常之高。在GenEval基准测试上,它直接超越了DALL-E 2和Stable Diffusion XL!

左右滑动查看(共四组)

左右滑动查看(共四组)

左右滑动查看(共四组)研究者训练了一个具有U-Net编码/解码层(2×2潜在像素块)的70亿参数模型,处理相当于2T tokens的数据,其中包括1T文本语料库tokens和35亿张图像及其标注。表9显示,Transfusion在性能上与高性能图像生成模型如DeepFloyd相当,同时超越了先前发布的模型,包括SDXL。虽然Transfusion在SD 3后面稍显逊色,但该模型通过反向翻译利用合成图像标注,将其GenEval性能在小规模上提升了6.5%(0.433→0.498)。此外,Transfusion模型也可以生成文本,并且其性能与在相同文本数据分布上训练的Llama模型相当。

图像编辑

以下这些,则是用微调后的70亿参数Transfusion模型编辑的图像——

左右滑动查看(共三组)

左右滑动查看(共三组)

研究者使用仅包含8000个公开可用图像编辑示例的数据集对70亿参数模型进行了微调,其中每个示例包括一个输入图像、一个编辑提示词和一个输出图像。对EmuEdit测试集中随机示例的人工检查表明,微调的Transfusion模型可以按照指示进行图像编辑。也就是说,Transfusion模型确实可以适应并泛化到新的模态组合。

让语言和图像大一统的模型来了

我们都知道,多模态生成模型需要能够感知、处理和生成离散元素(如文本或代码)和连续元素(例如图像、音频和视频数据)。不过,离散元素和连续元素,却很难在同一个模型中大一统起来。在离散模态中,是语言模型占主导地位,它靠的是在下一个token预测目标上训练的。

而在生成连续模态上,则是扩散模型及其泛化一直处于最前沿。

有没有可能将二者相结合呢?此前,学界曾尝试了多种方法,包括扩展语言模型,以使用扩散模型作为工具,或者通过将预训练的扩散模型移植到语言模型上。此外,还有人通过量化连续模态,在离散tokens上训练标准语言模型,从而简化模型架构。然而这样做的代价,就是信息的丢失。而Meta的研究者在这项工作中,通过训练单个模型,来同时预测离散文本tokens和扩散连续图像,他们成功地做到了完全整合两种模态,而不丢失信息。他们的方法就是——引入Transfusion。这是一种训练单一统一模型的方法,可以无缝理解和生成离散和连续的模态。

 

 

研究者的主要创新就在于,他们针对不同的模态使用了不同的损失——文本使用语言建模,图像使用扩散——从而在共享的数据和参数上进行训练研究者在50%的文本和50%的图像数据上预训练了一个Transformer模型,不过对于两种模态来说,分别使用了不同的目标。前者的目标是,预测文本的下一个token;而后者的目标,则是图像的扩散。在每个训练步骤中,模型都会同时接触到这两种模态和损失函数。标准嵌入层将文本tokens转换为向量,而块化层(patchification layer)则将每个图像表征为一系列块向量。随后,研究者对文本tokens应用因果注意力,对图像块应用双向注意力。在推理时,他们引入了一种解码算法,它结合了语言模型的文本生成和扩散模型的图像生成的标准实践。

从此,有望训练真正的多模态模型

在文本到图像生成中,研究者发现:Transfusion在计算量不到三分之一的情况下,FID和CLIP分数均超过了Chameleon的离散化方法。在控制FLOPs的情况下,Transfusion的FID分数比Chameleon模型低约2倍。在图像到文本生成中,也可以观察到类似的趋势:Transfusion在21.8%的FLOPs下与Chameleon匹敌。令人惊讶的是,Transfusion在学习文本到文本预测方面也更有效,在大约50%到60%的Chameleon FLOPs下实现了文本任务的困惑度平价。同时,研究者观察到:图像内的双向注意力非常重要,如果用因果注意力替代它,就会损害文本到图像生成。他们还发现,通过添加U-Net上下块来编码和解码图像,就可以使Transfusion在相对较小的性能损失下,压缩更大的图像块,从而能将服务成本降低到多达64倍。最后,研究者证明了:Transfusion可以生成与其他扩散模型相似质量的图像。他们在2万亿tokens上,从零开始训练了一个7B参数的Transformer,它增强了U-Net的下采样/上采样层(0.27B参数)。在这2万亿tokens中,包含1万亿的文本tokens,以及大约5个周期的692M图像及标注,相当于另外1万亿个patches/tokens。在GenEval基准上,Transfusion模型优于其他流行模型,如DALL-E 2和SDXL。而且,与那些图像生成模型不同的是,它还可以生成文本,在文本基准上达到了Llama 1级别的性能水平。总之,实验表明:Transfusion是一种十分有前途的方法,可以用于训练真正的多模态模型。

数据表征

研究者在两种模态上进行了数据实验:离散文本和连续图像。每个文本字符串被标记化为来自固定词汇表的离散token序列,其中每个token被表征为一个整数。每个图像被编码为使用VAE的潜在块,其中每个块被表征为一个连续向量;这些块从左到右、从上到下排序,以从每个图像创建一个块向量序列。对于混合模态的例子,研究者在将图像序列插入文本序列之前,用特殊的图像开始(BOI)和图像结束(EOI)token包围每个图像序列。因此,就得到了一个可能同时包含离散元素(表征文本token的整数)和连续元素(表征图像块的向量)的单一序列。

模型架构

模型的大部分参数属于一个单一的Transformer,它会处理每个序列,无论模态如何。Transformer将一个高维向量序列作为输入,并生成类似的向量作为输出。为了将数据转换到这个空间,研究者使用了具有不共享参数的轻量级模态组件。对于文本,这些自己组件是嵌入矩阵,会将每个输入整数转换为向量空间,并将每个输出向量转换为词汇表上的离散分布。对于图像,研究者则尝试了两种方法,将k×k块向量的局部窗口压缩为单个Transformer向量(反之亦然):(1)一个简单的线性层,以及(2)U-Net的上下块。

 

 

研究者使用预训练的VAE(变分自编码器)将图像和潜在表征进行互相转换,然后通过简单的线性层或U-Net下采样块,将其转换为patch表征

Transfusion注意力

语言模型通常使用因果掩码,来有效地计算整个序列的损失和梯度,只需一次前向-后向传递,而不会泄露未来token的信息。相比之下,图像通常会使用不受限制的(双向)注意力来建模。而Transfusion通过对序列中的每个元素应用因果注意力,并在每个单独图像的元素内应用双向注意力,来结合这两种注意力模式。这样,每个图像块就可以在关注同一图像中其他块的同时,只关注序列中先前出现的文本或其他图像的块。结果显示,启用图像内注意力显著提升了模型性能。

 

 

在因果掩码上扩展后,Transfusion就允许同一图像的patch相互为条件

训练目标

为了训练模型,研究者将语言建模目标LLM应用于文本token的预测,将扩散目标LDDPM应用于图像块的预测。LM损失是逐个token计算的,而扩散损失是逐个图像计算的,这可能跨越序列中的多个元素(图像块)。具体来说,他们根据扩散过程,向每个输入潜在图像x0添加噪声ε,以在块化之前产生xt,然后计算图像级别的扩散损失。通过简单地将每种模态上计算出的损失与平衡系数λ结合,研究者合并了这两种损失:

这个公式,也是一个更广泛想法的具体实例:将离散分布损失和连续分布损失结合,就可以优化同一模型。

推理

为了反映训练目标,解码算法也需要在两种模式之间切换:LM和扩散。在LM模式中,从预测分布中逐个token进行采样。当采样到一个BOI token时,解码算法切换到扩散模式。具体来说,这需要将形式为n个图像块的纯噪声xT附加到输入序列中(取决于所需的图像大小),并在T步内去噪。在每一步t中,噪声会被预测并使用它生成x_(t−1),然后将其覆盖在序列中的x_t上。即,模型始终基于噪声图像的最后一个时间步进行条件处理,无法关注之前的时间步。一旦扩散过程结束,就将一个EOI token附加到预测的图像上,并切换回LM模式。如此一来,就可以生成任意混合的文本和图像模态。

实验

 

与Chameleon的比较

研究者在不同模型规模(N)和token计数(D)下,比较了Transfusion与Chameleon,并使用两者的组合作为FLOPs(6ND)的代理。为了简化和参数控制,这些实验中的Transfusion变体使用简单的线性图像编码器/解码器,块大小为2×2,以及双向注意力。如图5所示,在每个基准测试中,Transfusion始终表现出比Chameleon更好的scaling law。

 

 

受参数、数据和计算控制的不同规模的Transfusion和Chameleon模型的性能,其中所有轴都是对数的表3则显示了模型的评估结果,以及平价FLOP比率。其中,平价FLOP比率用来估算相对计算效率:Transfusion和Chameleon达到相同性能水平所需的FLOPs数量之比。计算效率的差异在图像生成中特别显著,其中FID Transfusion以1/34的计算量实现了与Chameleon的平价。

 

 

最大(7B)Transfusion和Chameleon模型在受控环境中的性能,两个模型均在0.5T token上进行训练令人惊讶的是,纯文本基准测试也显示出Transfusion的更好性能,即使Transfusion和Chameleon以相同方式建模文本。

 

 

与原始Llama 2配方相比,0.76B Transfusion和Chameleon模型在纯文本基准上的性能

架构消融

- 注意力掩码表5显示,在所有基准测试中,启用这种注意力模式比标准因果注意力效果更好,并且在使用图像编码/解码架构时也是如此。特别是,在使用线性编码层时,FID的改善最为显著(61.3→20.3)。在仅因果的架构中,序列中后出现的块不会向前面的块传递信息;由于U-Net块内含有双向注意力,并独立于Transformer的注意力掩码,因此这种差距不太明显。

 

 

有/无图像内双向注意力的0.76B Transfusion模型的性能- 块大小Transfusion模型可以在不同尺寸的潜在像素块上定义。较大的块大小允许模型在每个训练批次中打包更多图像,并显著减少推理计算量,但可能会带来性能损失。表6显示,虽然随着每个图像由更少的线性编码块表征,性能确实一致下降,但使用U-Net编码的模型在涉及图像模态的任务中受益于较大的块。这可能是因为训练期间看到的总图像(和扩散噪声)数量更大。此外,随着块逐渐变大,文本性能也在变差。这可能是因为Transfusion需要投入更多资源(即参数)来学习如何处理具有较少块的图像,从而减少推理计算。

- 块编码/解码架构

实验表明,使用U-Net的上升和下降块比使用简单的线性层有优势。一个可能的原因是模型受益于U-Net架构的归纳偏置;另一种假设是,这种优势来自于U-Net层引入的整体模型参数的显著增加。为了分离这两个混杂因素,研究者将核心Transformer扩展到70亿个参数,同时保持U-Net参数量(几乎)不变;在这种设置下,额外的编码器/解码器参数仅占总模型参数的3.8%增加,相当于token嵌入参数的量。表7显示,尽管随着Transformer的增长,U-Net层的相对优势缩小,但并未消失。例如,在图像生成中,U-Net编码器/解码器使得较小的模型能够获得比使用线性块化层的70亿模型更好的FID分数。在图像描述中,也有类似的趋势——添加U-Net层让1.4B Transformer(总计1.67B)的CIDEr得分超过了线性70亿模型的性能。总体而言,U-Net对图像的编码和解码确实具有归纳偏置的优势。

 

 

Transfusion的线性和U-Net变体在不同模型大小上的性能- 图像加噪实验中,80%的图像-标注对按照标注优先的顺序排列,图像依赖于标注,这基于图像生成可能比图像理解更需要数据的直觉。剩下的20%对则是标注依赖于图像。然而,这些图像需要作为扩散目标的一部分被加噪。为此,研究者测量了在20%的情况下限制扩散噪声到最大t=500,即图像在标注之前出现时的效果。表8显示,限制噪声显著改善了图像描述,CIDEr得分显著提高,同时对其他基准测试的影响相对较小(小于1%)。

结论

 

这项研究探讨了如何弥合离散序列建模(下一个token预测)与连续媒体生成(扩散)之间的差距。研究者提出了一个简单但以前未被探索的解决方案:在两个目标上训练一个联合模型,将每种模态与其偏好的目标联系起来。实验表明,Transfusion可以有效扩展,几乎没有参数共享成本,同时能够生成任何模态。

作者介绍

Chunting Zhou

共同一作Chunting Zhou,是Meta AI的研究科学家,研究兴趣是高效且可扩展的生成模型。

她于2022年在卡耐基梅隆大学计算机科学学院的语言技术研究所获得博士学位,从事的是自然语言处理的研究。此前,她于2016年在香港大学获得计算机科学硕士学位,于2014年在大连理工大学获得计算机软件工程学士学位。

Lili Yu

另一位共同一作Lili Yu,也是Meta AI的研究科学家。

她于2016年在麻省理工学院获得电气工程与计算机科学博士学位,于2011年在北京大学获得物理学学士学位。

Xuezhe Ma

在这篇论文中,还有一位华人作者Xuezhe Ma,是南加州大学信息科学研究所的研究主管和计算机科学系的研究助理教授。原则上,表征学习可以自动学习在数学和计算上便于处理的表征。对此Xuezhe Ma认为,基于深度学习方法的表征学习技术可以从根本上改变传统的特征设计范式。他的研究重点是通过开发和分析深度学习技术来实现这一转变,以提高表征学习的有效性、效率、可解释性和鲁棒性。主要贡献如下:

- 多模态大语言模型(LLMs)的效率

开发了高效的统一神经架构和学习算法,以学习各种数据模态的通用语义空间。

- 大语言模型中的高效且鲁棒的长上下文建模

开发了高效且鲁棒的架构和方法,用于在大语言模型中建模长程依赖关系。

- 多模态大语言模型在长序列数据中的应用和评估方法

将长上下文大语言模型应用于实际任务,并开发可靠的评估指标。

他在卡耐基梅隆大学语言技术研究所获得博士学位,师从Eduard Hovy教授,并在上海交通大学获得了计算机科学硕士和学士学位。

参考资料:

 

欢迎关注公众号CV技术指南,专注于计算机视觉的技术总结、最新技术跟踪、经典论文解读、CV招聘信息。

计算机视觉入门1v3辅导班

【技术文档】《从零搭建pytorch模型教程》122页PDF下载

QQ交流群:470899183。群内有大佬负责解答大家的日常学习、科研、代码问题。

其它文章

分享一个CV知识库,上千篇文章、专栏,CV所有资料都在这了

明年毕业,还不知道怎么做毕设的请抓紧机会了

LSKA注意力 | 重新思考和设计大卷积核注意力,性能优于ConvNeXt、SWin、RepLKNet以及VAN

CVPR 2023 | TinyMIM:微软亚洲研究院用知识蒸馏改进小型ViT

ICCV2023|涨点神器!目标检测蒸馏学习新方法,浙大、海康威视等提出

ICCV 2023 Oral | 突破性图像融合与分割研究:全时多模态基准与多交互特征学习

听我说,Transformer它就是个支持向量机

HDRUNet | 深圳先进院董超团队提出带降噪与反量化功能的单帧HDR重建算法

南科大提出ORCTrack | 解决DeepSORT等跟踪方法的遮挡问题,即插即用真的很香

1800亿参数,世界顶级开源大模型Falcon官宣!碾压LLaMA 2,性能直逼GPT-4

SAM-Med2D:打破自然图像与医学图像的领域鸿沟,医疗版 SAM 开源了!

GhostSR|针对图像超分的特征冗余,华为诺亚&北大联合提出GhostSR

Meta推出像素级动作追踪模型,简易版在线可玩 | GitHub 1.4K星

CSUNet | 完美缝合Transformer和CNN,性能达到UNet家族的巅峰!​

AI最全资料汇总 | 基础入门、技术前沿、工业应用、部署框架、实战教程学习

计算机视觉入门1v3辅导班

计算机视觉交流群

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

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

相关文章

vue-cli中chainWebpack的使用

前言 在项目开发中我们难免碰到需要对webpack配置更改的情况,今天就主要来讲一下在vue.config.js中对一些配置的更改,简单介绍一下loader的使用;用configureWebpack简单的配置;用chainWebpack做高级配置;包括对loader的添加,修改;以及插件的配置 1、首先简单介绍一下web…

元气日语 Genki-1 第 3 课 约会

课文 I たけし: メアリーさん、週末はたいていなにをしましか。 メアリー: そうですね。たいていうちで勉強します。でも、ときどき映画を見ます。 たけし: そうですか...。じゃあ、土曜日に映画を見ませんか。 メアリー: 土曜日はちょっと…。 たけし: じゃあ、日曜…

ICML 2024 | 全新图卷积!Mila和华为提出CKGConv:连续卷积核的图卷积网络

前言 在ICML2024上,来自麦吉尔大学, Mila魁北克人工智能研究所以及华为诺亚方舟实验室的研究者发表了一个基于连续卷积核(continuous kernel)的全新图卷积算子(图连续卷积CKGConv),基于此算子的纯图卷积网络(CKGCN)在多个图任务中同样能够达到媲美SOTA图Transformer的性能。…

ArcGIS创建渔网工具的使用方法

本文介绍在ArcMap软件中,通过“Create Fishnet”工具创建渔网,从而获得指定大小的矢量格网数据的方法~本文介绍在ArcMap软件中,通过“Create Fishnet”工具创建渔网,从而获得指定大小的矢量格网数据的方法。首先,我们在创建渔网前,需要指定渔网覆盖的范围。这里我们就以四…

Macos系统使用JPackage打包dmg

JPackage打包工具 从 Java 14 开始,jpackage 是 Oracle 加入 JDK 的一个工具用于打包 Java 应用程序为本地安装包,例如 Windows 上的 EXE 文件,macOS 上的 DMG 文件或者 Linux 上的 DEB 和 RPM 文件。 JPackage打包dmg命令 示例 ./jdk17/bin/jpackage \ --type dmg \ --inpu…

活动报名:从手搓 AI bot 到多模态 AI agent+TEN 框架丨 RTE Meetup,上海,8.31

如果你在探索构建 AI agent,请加入新一期在上海的 RTE Meetup。参会开发者将分享手搓 bot 、多模态 AI agent、TEN 框架开发的实际经验,讨论 voice AI 和语音驱动的下一代人机交互界面。分享的项目包括 AI 原生游戏《1001 夜》、生成式 AI 儿童项目 MumuLab、Folotoy AI 玩具…

038-C++运算符重载

运算符重载不会改变运算符优先级 重载不应该改变运算符原有的意义

Flask细说

Flask框架 简介 特点:微框架,间接,给开发者提供很大的扩展性 Flask和相应的插件写得很好,用起来很爽。 开发效率非常高,比如使用 SQLAlchemy 的 ORM 操作数据库可以节省开发者大量书写 sql 的时 间。文档地址中文文档(http://docs.jinkan.org/docs/flask/)英文文档(htt…

软件工程导论作业 1

这个作业属于哪个课程 https://edu.cnblogs.com/campus/gdgy/CSGrade22-34/这个作业要求在哪里 https://edu.cnblogs.com/campus/gdgy/CSGrade22-34/homework/13228这个作业的目标 通过撰写随笔,介绍自己的兴趣爱好和学习生活经历,明确软件工程的学习目标,创建博客和github账…

最后两周完成一个完整的项目

最后两个星期完成一个完整的可视化项目,成品展示:

Webpack 5 支持访问 Rust WebAssembly 线性内存

前面在《解决 Rust WebAssembly 启动 Web 程序报错》 一文中讲到,将 Webpack 升级到 5.54.0+。其实问题并未彻底解决,还潜藏另一个问题。当我们像原先那样,通过导出 memory 来访问 WebAssembly 线性内存: import { memory } from "wasm-game-of-life/wasm_game_of_lif…

小白月赛99FG

F-自爆机器人_牛客小白月赛99 (nowcoder.com)假设从个点中的某个点\(\color{#50F}{a_k}\)设立墙,将机器人往左弹 , 中间过程不考虑,其一定会回到\(\color{#50F}{m}\)点,称其为\(\color{#50F}{k}\)点的一个往返,其距离为 \(\color{#50F}{a_k - a_{i} , i \in [ 1 , k -1]}\…