【论文阅读】UniDiffuser: Transformer+Diffusion 用于图、文互相推理

而多模态大模型将能够打通各种模态能力,实现任意模态之间转化,被认为是通用式生成模型的未来发展方向。

最近看到不少多模态大模型的工作,有医学、金融混合,还有CV&NLP。

今天介绍: One Transformer Fits All Distributions in Multi-Modal Diffusion at Scale
论文链接:https://ml.cs.tsinghua.edu.cn/diffusion/unidiffuser.pdf
开源代码:https://github.com/thu-ml/unidiffuser

前置知识

U-ViT

大规模图文数据集 LAION-5B 80TB

https://laion.ai/blog/laion-5b/
58.5 亿个 CLIP 过滤的图像文本对组成的数据集。2,3B 包含英语,2,2B 样本来自 100 多种其他语言,1B 样本包含不允许特定语言分配的文本(例如名称)。

We provide these columns :URL: the image url, millions of domains are covered
TEXT: captions, in english for en, other languages for multi and nolang
WIDTH: picture width
HEIGHT: picture height
LANGUAGE: the language of the sample, only for laion2B-multi, computed using cld3
similarity: cosine between text and image ViT-B/32 embeddings, clip for en, mclip for multi and nolang
pwatermark: probability of being a watermarked image, computed using our watermark detector
punsafe: probability of being an unsafe image, computed using our clip based detector
pwatermark and punsafe are available either as individual collections that must be joined with the hash of url+text, either as prejoined collections.

Diffusion

大致公式:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

UniDiffusion

不同分布的扩散模型学习都可以统一成一个视角:首先向两个模态的数据分别加入某种大小的噪声,然后再预测两个模态数据上的噪声。其中两个模态数据上的噪声大小决定了具体的分布。

不同模态的扰动级别(即时间步长,timesteps)不同。UniDiffuser通过在所有模态中扰动数据而不是单个模态,输入不同模态的单独时间步长,并预测所有模态的噪声而不是单个模态,同时学习所有分布。

时间步长是指在扩散过程中,数据被扰动的次数或级别。在不同的模态中,时间步长可以不同,用于控制不同模态之间的条件和联合分布。例如,一个零时间步长意味着在相应的模态上进行条件生成,而一个绑定的时间步长意味着同时采样两个模态。
在这里插入图片描述

目标函数

在这里插入图片描述
目标函数由两部分组成:(1) 用于估计条件分布的对数似然项,(2) 用于估计噪声分布的对数似然项。这两个项都是通过对数据进行扰动来计算的。

零成本 CFG

Classifier-Free Guidance (CFG)是一种用于改善条件扩散模型采样质量的技术。它通过线性组合条件模型和无条件模型来进行采样,其中条件模型用于生成与给定条件相匹配的样本,无条件模型用于生成高质量的样本。CFG的关键是在采样过程中动态地调整条件和无条件模型的权重,以平衡两者的影响。在UniDiffuser中,CFG可以直接应用于条件和联合采样,而无需修改训练过程

CFG能直接应用于条件和联合采样,是因为UniDiffuser中的条件和联合采样都是通过对数据进行扰动来实现的

具体而言,它通过线性组合条件模型和无条件模型进行采样。

ˆ ϵ θ ( x t , y 0 , t ) = ( 1 + s ) ϵ θ ( x t , y 0 , t ) − s ϵ θ ( x t , t ) ˆϵθ(xt, y0, t) = (1 + s)ϵθ(xt, y0, t) − sϵθ(xt, t) ˆϵθ(xt,y0,t)=(1+s)ϵθ(xt,y0,t)θ(xt,t)

其中 s 是比例因子。条件和无条件模型通过引入空标记 ∅ 共享参数,即$ ϵθ(xt, t) = ϵθ(xt, y0 = ∅, t)$。

CFG 技术在采样过程中动态调整条件和无条件模型之间的权重,以平衡它们的影响。这种方法可以有效地提高样本质量和图像文本对齐。

网络结构

在这里插入图片描述

“Transformer as Joint Noise Prediction Network”

是 UniDiffuser 中用于预测注入到输入数据中的噪声的Transformer 。
采用了一个联合噪声预测网络来预测注入到输入数据中的噪声,通过最小化回归损失来训练网络。该网络是基于输入数据及其对应的时间步长所得到的嵌入向量进行训练的。

在 UniDiffuser 中,我们采用了基于 Transformer 的骨干网络来处理来自不同模态的输入数据。我们对 Transformer 进行了修改,将数据的两种模态及其对应的时间步长视为标记。此外,我们还对原始 Transformer 中的预层归一化进行了修改,以避免在使用混合精度训练时出现溢出问题。

结果

没有特别优化,我的实验结果相对一般。
The experiments demonstrate the ability of UniDiffuser to perform multiple generation tasks and directly compare it with existing large models in Section 6.2. UniDiffuser is shown to naturally support applications like data variation, blocked Gibbs sampling between modalities (see Section 6.3), and interpolation between images in the wild (see Section 6.4). The experiments also show that UniDiffuser outperforms existing models in terms of sample quality and diversity. The experiments are conducted on three subsets of LAION-5B dataset following Stable Diffusion.
在这里插入图片描述

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

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

相关文章

华为云云耀云服务器L实例评测 | 实例场景体验之搭建接口服务:通过华为云云耀云服务器构建 API 服务

华为云云耀云服务器L实例评测 | 实例场景体验之搭建接口服务:通过华为云云耀云服务器构建 API 服务 介绍华为云云耀云服务器 华为云云耀云服务器 (目前已经全新升级为 华为云云耀云服务器L实例) 华为云云耀云服务器是什么华为云云…

工地临时用电之智慧用电:全方位保障用电安全

随着科技进步和智能化的发展,工地用电管理也迎来了智慧化的革新。智慧用电,作为智慧工地的重要组成部分,通过集中式管理和创新的技术手段,为工地提供了全方位的用电安全保障。 针对工地临时用 的现状及系统结构,力安科…

阿里云PolarDB自研数据库详细介绍_兼容MySQL、PostgreSQL和Oracle语法

阿里云PolarDB数据库是阿里巴巴自研的关系型分布式云原生数据库,PolarDB兼容三种数据库引擎:MySQL、PostgreSQL、Oracle(语法兼容),目前提供云原生数据库PolarDB MySQL版、云原生数据库PolarDB PostgreSQL版和云原生数…

十四天学会C++之第三天(数组和字符串)

1. 数组的定义和初始化 数组是一种由相同数据类型的元素组成的集合,这些元素按照一定的顺序存储在连续的内存位置上。数组的大小在创建时是固定的,无法在运行时改变。 在C中,数组的定义和声明非常简单。定义一个数组: 数据类型…

Django之十二:模板的继承+用户列表

模板的继承 新建layout.html&#xff1a; {% load static %} <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title><link rel"stylesheet" href"{% static plugins…

C++list模拟实现

list模拟实现 1.链表结点2.类模板基本框架3.构造4.插入普通迭代器实现4.1尾插4.2普通迭代器实现4.3对比list和vector的iterator4.4迭代器的价值4.5insert4.6尾插头插复用写法 5.删除erase5.1erase5.2尾删头删复用写法 6.析构emptysizeclear6.1clear6.2size6.3 empty6.4 析构 7.…

问题: 视频颜色问题,偏绿

参考 什么是杜比视界&#xff1f; - https://www.youtube.com/watch?vldXDQ6VlC7g 【哈士亓说】07&#xff1a;HDR、杜比视界究竟是个啥&#xff1f;为什么这个视频还不是HDR视频&#xff1f; - https://www.youtube.com/watch?vrgb9Xg3cJns 正文 视频应该是 杜比视界 电…

GEO生信数据挖掘(二)下载基因芯片平台文件及注释

检索到目标数据集后&#xff0c;开始数据挖掘&#xff0c;本文以阿尔兹海默症数据集GSE1297为例 目录 下载平台文件 1.AnnotGPL参数改为TRUE,联网下载芯片平台的soft文件。&#xff08;国内网速奇慢经常中断&#xff09; 2.手工去GEO官网下载 转换芯片探针ID为gene name 拓…

保姆级Anaconda安装教程

一.anaconda下载 建议使用清华大学开源软件镜像站进行下载&#xff0c;使用官网下载速度比较慢。 anaconda清华大学开源软件镜像站 &#xff1a; https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/ 一路next即可&#xff0c;注意添加环境变量得选项都勾上。 二.验证…

【AI视野·今日Robot 机器人论文速览 第四十六期】Tue, 3 Oct 2023

AI视野今日CS.Robotics 机器人学论文速览 Tue, 3 Oct 2023 Totally 76 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Robotics Papers Generalized Animal Imitator: Agile Locomotion with Versatile Motion Prior Authors Ruihan Yang, Zhuoqun Chen, Jianhan M…

Java 随机数的获得方法(5种)

1. Math.random() 静态方法 产生的随机数是 0 - 1 之间的一个 double&#xff0c;即 0 < random < 1 代码&#xff1a; 结果&#xff1a; 当调用 Math.random() 方法时&#xff0c;自动创建了一个伪随机数生成器&#xff0c;实际上用的是 new java.util.Random()。当接…

【考研英语】2011 年英语(一)排序题思路复盘(费曼学习法)

文章目录 引言一、找语段特征词二、确定位置写在最后 引言 英语一中的新题型之一 —— 排序题&#xff0c;我是看的刘琦老师的方法课&#xff0c;她用的 2011 年的真题来讲解方法。讲完让我们回去用“费曼学习法”复盘以下&#xff0c;我个人感觉是一个不错的方法&#xff0c;…

mysql面试题10:MySQL中有哪几种锁?表级锁、行级锁、页面锁区别和联系?

该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点 面试官:Mysql中有哪几种锁? 在MySQL中,主要有以下几种类型的锁: 共享锁(Shared Lock):也称为读锁。多个事务可以同时持有共享锁,可以读取但不能修…

106.从中序与后序遍历序列构造二叉树

力扣题目链接(opens new window) 根据一棵树的中序遍历与后序遍历构造二叉树。 注意: 你可以假设树中没有重复的元素。 例如&#xff0c;给出 中序遍历 inorder [9,3,15,20,7]后序遍历 postorder [9,15,7,20,3] 返回如下的二叉树&#xff1a; class Solution { public:Tr…

国产32位单片机 普冉PY32F002B 适用于LED灯驱,控制器等

PY32F002B 系列单片机采用高性能的 32 位 ARM Cortex-M0内核&#xff0c;宽电压工作范围的 MCU。嵌入了24Kbytes Flash 和 3Kbytes SRAM 存储器&#xff0c;最高工作频率 24MHz。有TSSOP20, QFN20, SOP16, SOP14,MSOP10多种不同封装类型多款产品。 芯片集成了I2C、SPI、USART 等…

新一代网络框架UringNet,基于最新的异步I/O

介绍 在去年的一篇文章中&#xff0c;笔者曾经提到了最新一代的网络I/O框架UringNet。具体内容可以参考Rings’ Power,性能“世界第一”的Web I/O框架。这是基于最新Linux内核的异步I/O组件io_uring开发的网络框架。由于采用了最新的异步框架&#xff0c;因此在同等硬件配置条件…

RabbitMQ的基本介绍

什么是MQ 本质是一个队列&#xff0c;只不过队列中存放的信息是message罢了&#xff0c;还是一种跨进程的通信机制&#xff0c;用于上下游传递信息。在互联网架构中&#xff0c;MQ是一种非常常见的上下游“逻辑解耦物理解耦”的消息通信服务。使用了MQ之后&#xff0c;信息发送…

【简单的留言墙】HTML+CSS+JavaScript

目标&#xff1a;做一个简单的留言墙 1.首先我们用HTML的一些标签&#xff0c;初步构造区域 样式。 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>留言墙</title><style>/* ...... */ …

STM32HAL库CRC学习及测试记录

STM32HAL库CRC学习及测试记录 1.CRC的校验原理2.基本原理3.几个基本概念13.1.1 CRC检验码的计算13.1.2 错误检测13.2 STM32中的CRC 4.CRC功能描述5.STM32Cube生成工程6.看官方说如何使用这个驱动程序7.实验现象 1.CRC的校验原理 循环冗余校验(CRC)计算单元是根据固定的生成多项…

pycharm 中的一个非常好使用的智能提示tabnine(大大提高代码的书写效率)

一. pycharm 中的代码智能提示插件 有时候,我们总是在写代码的时候,敲全部的代码,太过于麻烦了,如果有一个软件可以预知你的后续的操作,提前将代码给你写出来,你只需要检查对错,就可以了,这样就大大提高了工作的效率. 上面的一个插件是汉化pycharm的软件包,也是非常好用的一款…