Meta将Transformer和Diffusion融合,多模态AI王者登场

JS滚动广告
✨ AI前沿 | 每日人工智能最新资讯 ✨

我们都知道,多模态生成模型需要能够感知、处理和生成离散元素(如文本或代码)和连续元素(例如图像、音频和视频数据)。
不过,离散元素和连续元素,却很难在同一个模型中大一统起来。
在离散模态中,是语言模型占主导地位,它靠的是在下一个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模式。
如此一来,就可以生成任意混合的文本和图像模态。

发表评论