统一 transformer 与 diffusion !Meta 融合新方法剑指下一代多模态王者

news2024/11/13 9:00:51

本文引入了 Transfusion,这是一种可以在离散和连续数据上训练多模态模型的方法。

来源丨机器之心

一般来说,多模态生成模型需要能够感知、处理和生成离散元素(如文本或代码)和连续元素(如图像、音频和视频数据)。

在离散模态领域,以预测下一个词为目标的语言模型占据主导地位,而在生成连续模态方面,扩散模型及其泛化形式则是当前最先进技术。

研究者一直试图将语言模型与扩散模型结合,一种方法是直接扩展语言模型,使其能够利用扩散模型作为一个工具,或者将一个预训练的扩散模型嫁接到语言模型上。另一种替代方案是对连续模态进行量化处理,然后在离散的 token 上训练一个标准的语言模型,这种方法虽然简化了模型架构,但也会造成信息的丢失。

在这项工作中,来自 Meta 、 Waymo 等机构的研究者展示了通过训练单个模型来预测离散文本 token 和扩散连续图像,从而实现两种模态的完全集成,且不会丢失任何信息

具体而言,本文引入了一个训练模型的新方法 Transfusion,能够无缝地生成离散和连续的模态。Transfusion 将语言模型损失函数与扩散相结合,在混合模态序列上训练单个 transformer。

该研究还在文本和图像数据混合基础上从头开始预训练多个 Transfusion 模型,最多可达到 7B 参数量,并针对各种单模态和跨模态基准建立扩展定律

图片

论文地址:https://arxiv.org/pdf/2408.11039

论文标题:Transfusion: Predict the Next Token and Diffuse Images with One Multi-Modal Model

实验表明,Transfusion 的扩展能力显著优于将图像量化并在离散图像 token 上训练语言模型的方法。通过引入特定于模态的编码和解码层,该研究证明可以进一步提高 Transfusion 模型的性能,并且甚至可以将每张图像压缩到仅 16 个 patch。

最后将 Transfusion 方法扩展到 70 亿参数和 2 万亿多模态 token,能够生成与相似规模的扩散模型和语言模型相媲美的图像和文本,从而获得两个领域的优势。这意味着 Transfusion 模型不仅能够处理图像和文本的生成,还能在这两种类型的生成上达到领先水平,有效地结合了图像和文本生成的优点。 

在 GenEval 基准测试中,本文模型(7B)优于其他流行模型,例如 DALL-E 2 和 SDXL;与那些图像生成模型不同,它可以生成文本,在文本基准测试中达到与 Llama 1 相同的性能水平。因此,Transfusion 是一种很有前途的训练真正多模态模型的方法。

Transfusion 介绍

Transfusion 是一种训练单一统一模型来理解和生成离散和连续模态的方法。本文的主要创新是证明了可以在共享数据和参数上对不同模态使用单独的损失(针对文本使用语言建模,针对图像使用扩散)。图 1 说明了 Transfusion。

图片

模型架构:模型中的大部分参数来自单个 transformer,用来处理每一个序列,不论其模态如何。Transformer 接收一系列高维向量作为输入,并产生相似的向量作为输出。研究者为了将数据转换成这种空间,他们使用了具有非共享参数的轻量级特定于模态的组件。

对于文本,这些是嵌入矩阵,Transformer 将每个输入的整数转换成向量空间,每个输出向量转换成一个关于词汇表的离散分布。

对于图像,研究者尝试了两种方法来压缩 k×k patch 向量的局部窗口到一个单一 transformer 向量(以及反向操作):(1)一个简单的线性层;(2)U-Net 的 up 和 down 块。图 3 展示了整体架构。 

图片

Transfusion 注意力:语言模型通常使用因果掩码来有效地计算单个前向 - 后向传播中整个序列的损失和梯度,而不会泄露未来 token 的信息。虽然文本是自然连续的,但图像不是,并且通常使用不受限制的(双向)注意力进行建模。

Transfusion 通过将因果注意力应用于序列中的每个元素,并将双向注意力应用于每个单独图像的元素中,从而结合了两种注意力模式。这使得每个图像 patch 能够关注同一图像中的每一个其他 patch,但只限于关注序列中之前出现的文本或其他图像的 patch 。这种设计允许图像内部的高效信息交流,同时限制了与序列前面内容的交互,有助于模型在处理复杂数据序列时,更好地聚焦和整合相关信息。图 4 显示了 Transfusion 注意力掩码的示例。

图片

训练目标:为了训练模型,研究者将语言建模目标应用于文本 token 的预测;将扩散目标应用于图像 patch 的预测。总损失可以表示为如下形式:

图片

实验结果

该研究通过实验证明了 Transfusion 是一种可行、可扩展的统一多模态模型训练方法。研究者在一系列标准的单模态和跨模态基准上评估模型性能,如表 1 所示。

图片

图 5 直观显示了扩展趋势。在每个基准测试中,Transfusion 始终表现出比 Chameleon 更好的扩展规律。虽然线条接近平行,但 Transfusion 的优势更明显。

图片

图片

该研究在 2T token 的数据集上训练了一个 7B 参数模型,生成的图像如下所示:

图片

表 9 显示,Transfusion 实现了与 DeepFloyd 等高性能图像生成模型类似的性能,同时超越了之前发布的模型,包括 SDXL。

图片

图像编辑。经过微调的 Transfusion 模型可以按照指示执行图像编辑,比如将纸杯蛋糕从盘子中移除。

图片

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

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

相关文章

软件测试-Selenium+python自动化测试

目录 一、元素定位 1.1一个简单的模板 1.2单选框radio定位实战 1.3下拉操作 1.4弹窗 1.5文件上传 1.6 iframe(类似于页中页,嵌套进去了) 二、元素定位实战 会用到谷歌浏览器Chrome测试,需要下载一个Chromedriver(Chrome for Testing availability)对应自己的浏览…

力扣面试经典算法150题:除自身以外数组的乘积

除自身以外数组的乘积算法详解 今天的题目是力扣面试经典150题中的数组的中等难度题:除自身以外数组的乘积。 题目链接:https://leetcode.cn/problems/product-of-array-except-self/description/?envTypestudy-plan-v2&envIdtop-interview-150 …

docker基础到进阶

基础 文章目录 基础1.Docker简介2.Docker基础概念3.Docker安装4.Docker命令4.1 镜像命令4.2 容器命令 5. 数据卷5.1具名挂载5.2 匿名挂载 进阶1. 镜像5.2 Dockerfile5.3 网络1.网络模式2.网络操作 DockerCompose1.基本语法 总结 这篇文章记录了以下的内容: 1️⃣ 利…

达梦数据库的系统视图v$object_usage

达梦数据库的系统视图v$object_usage 在达梦数据库(DM Database)中,V$OBJECT_USAGE 视图提供了关于数据库对象的使用情况和统计信息。这些对象可以包括表、索引、视图、存储过程等。通过 V$OBJECT_USAGE 视图,数据库管理员可以监…

如何使用Hive构建网络电视剧收视率分析系统:大数据实战教程

✍✍计算机编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java实战 |…

什么?入网小助手无法卸载?我来手把手教你

简介 之前装了 XXXXX 公司的入网小助手,卸载的时候发现要验证码,我这小脾气就上来了,对待流氓软件是可忍熟不可忍!!! 这里介绍的只是一种方式,嫌麻烦的可以进入安全模式直接删除安装目录内容&…

操作系统----锁

锁 锁就是一个变量 为什么需要锁?::需要原子性的执行一系列的操作指令,程序员在源代码中加锁,放在临界区周围,保证临界区能够像单条原子指令一样执行。 举例说明 锁(通常是一个互斥量mutex&…

大数据5v特性、集群、分布式

目录 数据分析六部曲 大数据的特点 (5v特征) 分布式与集群的区别 常用的分布式方案 数据分析六部曲 明确分析目的和思路:确保分析框架的体系化和逻辑性,简单来说就是先分析什么,后分析什么,使得各个分析…

K-means算法原理及应用场景

1. 算法原理 K-means是一种广泛使用的聚类算法,其目标是将数据点划分为K个簇,使得簇内的点尽可能地接近簇中心(质心),而簇间的点则尽可能地远离。算法的核心思想是最小化簇内的平方误差。 过程: 初始化&a…

命题的相关知识

一、推论 推论由前提和结论两部分构成。前提和结论部分都是命题。 命题是推论的基本单位 命题特点:1、是陈述句 2、有确定的值(不是对就是错) 知不知道真假不重要,有真假就行 连接词和简单命题组成了复合命题。 二、…

前端:html+css:伪类画箭头(实心)

一、效果图 二、代码 html <div class"rectangle">AC/DC</div> css /* 图形 */ .rectangle {position: relative;width: 50px;height: 20px;background-color: #3498db;color: white; } .rectangle:before {content: ;position: absolute;top: 0;l…

Python-进阶-Excel基本操作

文章目录 Excel 基本操作1. 概述2. 写入2.1 使用 xlwt2.2 使用 XlsxWriter 3. 读取4. 修改 Excel 基本操作 1. 概述 在数据处理方面&#xff0c;Python 一直扮演着重要的角色&#xff0c;对于 Excel 操作&#xff0c;它有着完整且成熟的第三方库&#xff0c;使用也较为简单。…

用IP代理网速过慢:原因分析与解决方案

使用IP代理时网速过慢的原因及解决方案 在现代互联网环境中&#xff0c;使用IP代理已成为保护隐私的常见手段。然而&#xff0c;许多用户在使用代理时常常会遇到网速过慢的问题&#xff0c;这不仅影响了使用体验&#xff0c;还可能导致工作效率下降。本文将探讨导致IP代理网速…

Cornerstone3D Tools对影像进行交互(上篇)-基础交互工具及同步器

⛳️ 前言 在我们日常需求中&#xff0c;除了需要对影像进行可视化展示外&#xff0c;大多数场景下还需要对影像进行调整、注释、分割等操作。Cornerstone3DTools库则支持大多数需要的交互功能。CornerstoneTools支持的工具类型主要分为以下4类&#xff1a; 基础交互类工具&am…

VS2022 Cmake项目构建 Qt

一.创建文件和配置CMakeLists 1.创建头文件MainWindow.h #ifndef MAINWINDOW_H #define MAINWINDOW_H#include <QMainWindow>namespace Ui {class MainWindow; }class MainWindow : public QMainWindow {Q_OBJECTpublic:explicit MainWindow(QWidget* parent nullptr)…

使用Dockerfile创建应用镜像及私有仓库

目录 1.Dockerfile介绍 2.Dockerfile应用 1.创建目录 2.跳转目录 3.编辑启动脚本 4.编辑index.html文件 5.编辑 Dockerfile 6.创建镜像 7.查看镜像 8.创建容器测试 9.挂载其他项目测试 3.私有仓库 1.安装仓库镜像---仓库注册器 2.创建目录 3.启动容器、映射端口、…

读书学习笔记 # Datawhale X 李宏毅苹果书 AI夏令营

文章目录 &#x1f6a9;学习目标&#x1f6a9;学习内容&#x1f6a9; Task1.1&#x1f3af;为什么优化会失败&#x1f4cc;因非信息梯度导致的失败 &#x1f3af;局部极小值与鞍点&#x1f3af;临界点及其种类&#x1f3af;如何判断临界值种类&#x1f4cc;更简便的方法来判断 …

ubuntu环境下部署LNMP集成环境超详细图文教程

ubuntu系统下安装LNMP集成环境 一、Nginx安装 二、安装及配置MySQL数据库 修改密码 三、安装PHP 四、配置Nginx服务 ​编辑五、配置PHP 本文使用的Ubuntu版本为20.04。 php开发中集成环境的安装是必不可少的技能。 而LNMP代表的是&#xff1a;Linux系统下NginxMySQLPHP…

李沐--动手学深度学习 ResNet

1.理论 2.残差块 import torch from torch import nn from torch.nn import functional as F from d2l import torch as d2l#ResNet沿用了VGG完整的3*3卷积层设计.残差块的实现如下&#xff1a; #此代码生成两种类型的网络&#xff1a; #一种是当use_1x1convFalse时&#xff0…

96.SAP MII功能详解(09)Workbench-Transaction Debugging

目录 1.About Transaction Debugging Use Features Activities 2.How to Debug Start Debugging Create Breakpoint Watch Variables Debugging logs 1.About Transaction Debugging Use You use this function to monitor and manipulate a transaction while it …