OpenAI DALL·E 3文生图模型技术揭秘(建议收藏)

欢迎来到魔法宝库,传递AIGC的前沿知识,做有格调的分享❗

喜欢的话记得点个关注吧!


DALL·E 3是OpenAI发布的一款文生成图AI系统,它无缝接入ChatGPT,通过接受文本提示作为输入,生成相应的图像作为输出。先来看看效果:

图片

图片

图片

图片

自发布以来,DALL·E 3一直备受关注,许多人对其背后的技术非常好奇。现在,我们就来探讨一下DALL·E 3的技术细节。

DALL·E 3主要是基于DALL·E 2进行了一些改进 ,研究者们在论文中是这么介绍的:

DALL·E 3 builds on DALL·E 2 by improving caption fidelity and image quality.

因此,在介绍DALL·E 3之前,我们先来回顾一下DALL·E 2的模型架构。

DALL·E 2 介绍

DALL·E 2 这个模型的任务很简单:输入文本提示内容,生成与文本高度对应的图片。该模型主要包括三个部分:CLIP,先验模块prior和decoder模块。其中CLIP又包含text encoder和img encoder。

如下图所示的是DALL·E 2的模型框架,该模型是分阶段进行训练的。

图片

虚线上方展示了CLIP的训练过程,通过该过程可以学习到一个文本和图像的联合表示空间。

虚线下方展示了文本到图像的生成过程:首先将CLIP文本embedding输入到一个自回归或扩散prior中,以生成一个图像embedding,然后使用这个embedding来调节扩散decoder,生成最终的图像。需要注意的是,在prior和decoder的训练中,CLIP模型是被冻结的。

CLIP

DALL·E 2的训练数据是由图像x和对应的图像描述y的pair对(x,y)组成。通过训练CLIP能得到图像x的embedding zi和文本embedding zt。

Prior

A prior P(zi|y) that produces CLIP image embeddings zi conditioned on captions y.

给定图像描述文本y,利用CLIP训练好的text encoder将y编码为zt,同时,利用CLIP训练好的img encoder将图像x编码为zi。在训练prior的过程中预期是能够输入zt产出zi,假设zt经过prior输出的特征为zi',那么我们自然希望zi'与CLIP产出的zi越接近越好,通过这种方式来更新DALL·E 2的prior模块。

最终训练好的prior,将与CLIP的text encoder串联起来,它们可以根据我们的输入图像文本描述y生成对应的图像embedding zi了。

prior可使用Autoregressive (AR) prior或Diffusion prior,这两种方式在效果上差异不大,但是Diffusion prior在训练效率上优于Autoregressive (AR) prior。因此,最终DALL·E 2选择Diffusion prior。

Decoder

A decoder P(x|zi,y) that produces images x conditioned on CLIP image embeddings zi (and optionally text captions y).

DALL-E 2使用的decoder是改进的GLIDE模型,这个模型可以根据图像编码zi,还原出与图像x语义相同,但又不完全一致的图像。

Generative Stack

decoder允许根据图像embedding来生成图像,而prior则允许学习图像embedding本身的生成模型。将这两个组件堆叠在一起,就能够得到给定图像文本描述y的图像x生成模型P(x|y):

图片

第一个等式成立是因为zi是x的确定性函数。第二个等式成立是因为链式法则。因此,首先通过prior生成zi,然后再使用decoder从zi中解码出图像x。

DALL·E 3 介绍

DALL·E 3延续了DALL·E 2的模型架构,但是它在DALL·E 2的基础上做了进一步的改进。

在文生图领域中,有一个关键的挑战是确保模型能够理解文本并生成与之相匹配的图像。通常情况下,文生成图模型可能会忽视给定的文字描述中的词语、词顺序或具体含义,即所说的"prompt following"问题。作者认为这个问题的关键原因在于训练数据集本身的质量不够高。在训练数据集中,很可能存在许多与图像对应的描述不准确、不精细的情况。因此,为了解决这个问题,需要改进训练数据集的质量,以确保准确地捕捉文本与图像之间的关联。

因此,DALL·E 3采用了一种全新的方法来解决prompt following问题,即caption改进(caption improvement)。首先训练了一个强大的图像-文本描述生成器,这个生成器能够以详细准确的方式描述图像。接着,将这个图像-文本描述生成器应用于文生图的训练数据集,生成更加详细的图像文本描述内容,从而得到了配对质量较高的新数据集。最后,使用这个优质的新数据集来训练文生成图模型。通过这种方法,可以有效地提升文生成图模型的性能和生成质量。

构建图像-文本描述生成器(image captioner)

DALL·E 3通过构建一个图像-文本描述生成器(image captioner)来合成图像的文本描述内容。这里选用的模型架构是Google的CoCa

图片

该图像-文本描述生成器的目标如下所示:

图片

其中t=[t1,t2,...,tn]代表文本,i代表图像,F(i)是通过CLIP模型产出图像embedding表征的函数,Θ为需要优化的图像-文本描述生成器的参数。

微调图像-文本描述生成器(image captioner)

为了获得更高质量的图像文本描述,OpenAI对预训练的图像-文本描述生成器进行了进一步微调,并生成了两种类型的文本描述内容:

  • short synthetic captions (SSC):图像的简短文本描述,主要描述图像中的主体内容。

  • descriptive synthetic captions (DSC):图像精细的文本描述,详细的描写了图像的内容,包含很多图像中的细节。

在下面的样例图像中,我们可以看到原始caption、SSC和DSC之间的差异。DSC描述非常丰富,包含了许多细节,而原始描述则比较简单,质量较低。

图片

OpenAI采用CLIP score来评价image captioner的prompt following能力,从下图可以看出,采用了DSC来计算CLIP score时,模型在整体上的表现要优于SSC和原始caption。

图片

上面的实验已经验证了使用DSC可以显著提升模型的prompt following能力,那最佳的混合比例是多少呢?下图给出了答案,从图中可看出使用95%的DSC时效果最佳,DALL·E 3在后续的训练过程即采用的该方案。

图片

接入ChatGPT

训练数据集中高比例的DSC能够显著提升文生图模型的训练效果,但是95%的混合比例可能会导致模型在训练过程中过分拟合DSC,从而导致用户输入简短的caption时模型的效果不好

为了解决这个问题,OpenAI接入了GPT-4来提升用户输入的caption,使用GPT-4优化后,无论用户输入何种类型的caption,都能得到一个描述更精细的caption。这样的优化能够解决模型在使用常规短文本输入时图像生成效果下降的问题。下图展示了具体的例子。

图片

参考文献

  • 论文1:Hierarchical Text-Conditional Image Generation with CLIP Latents

  • 论文2:Improving Image Generation with Better Captions

  • 论文3:CoCa: Contrastive Captioners are Image-Text Foundation Models

  • 论文4:DALL·E 3 System Card


如果对AIGC感兴趣,请关注我们的微信公众号“我有魔法WYMF”,我们会定期分享AIGC最新资讯和经典论文精读分享,让我们一起交流学习!!

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

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

相关文章

字典管理怎么使用,vue3项目使用若依的的字典管理模块

若依框架数据字典的使用_若依数据字典_哈哈水水水水的博客-CSDN博客 【精选】关于数据字典的理解与设计_数据字典怎么设计-CSDN博客 若依的字典值如何使用(超详细图文教程)_若依字典管理_丿BAIKAL巛的博客-CSDN博客 Vue3组合式API:getCurr…

基于ssm的高校失物招领管理系统

基于ssm的高校失物招领管理系统 摘要 失物招领管理系统是一种利用现代信息技术,为高校提供高效、便捷的失物招领服务的平台。本系统基于SSM框架(Spring SpringMVC MyBatis),充分利用了各框架的优势,实现了系统的稳定…

Docker 和 Kubernetes:技术相同和不同之处

Docker和Kubernetes是当今最流行的容器化技术解决方案。本文将探讨Docker和Kubernetes的技术相似之处和不同之处,以帮助读者更好地理解这两种技术。 Docker和Kubernetes:当今最流行的容器化技术解决方案 在当今的IT领域,Docker和Kubernetes无…

Python实现WOA智能鲸鱼优化算法优化BP神经网络分类模型(BP神经网络分类算法)项目实战

说明:这是一个机器学习实战项目(附带数据代码文档视频讲解),如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 鲸鱼优化算法 (whale optimization algorithm,WOA)是 2016 年由澳大利亚格里菲斯大学的Mirjalili 等提…

解密.devos病毒:如何守护你的数据免受.devos病毒威胁?

引言: 近来,网络安全威胁再次升级,其中一个备受关注的恶意软件就是.devos病毒。这种病毒通过加密你的数据文件,然后勒索赎金,给用户带来了巨大的威胁。本文将介绍如何应对被.devos病毒加密的数据文件,以及…

HashSet源码分析

HashSet内部实现很简单&#xff0c;只要看明白HashMap&#xff0c;就可以了 类图结构&#xff1a; public class HashSet<E>extends AbstractSet<E>implements Set<E>, Cloneable, java.io.Serializable {static final long serialVersionUID -502474440…

Java图像编程之:Graphics2D

一、介绍 1、Java图像编程的核心类 BufferedImage&#xff1a;用于表示图像的类&#xff0c;可以进行像素级的操作。Image&#xff1a;表示图像的抽象类&#xff0c;是所有图像类的基类。ImageIcon&#xff1a;用于显示图像的类&#xff0c;可以将图像嵌入到Swing组件中。Ima…

全国不同级别高炉炼铁主要操作指标与分析

参考网址&#xff1a;https://www.zgltw.cn/liantiexinjishu/2020/0114/23584.html &#xff08;中国炼铁网&#xff09; 参考网址&#xff1a;https://www.zgltw.cn/liantiexinjishu/2020/0114/23584.html &#xff08;中国炼铁网 世界金属导报&#xff09;

RT-DETR算法优化改进:可变形大核注意力(D-LKA Attention),超越自注意力,实现暴力涨点 | 2023.8月最新发表

💡💡💡本文独家改进: 可变形大核注意力(D-LKA Attention),采用大卷积核来充分理解体积上下文的简化注意力机制,来灵活地扭曲采样网格,使模型能够适当地适应不同的数据模式 1)代替RepC3进行使用; 推荐指数:五星 RT-DETR魔术师专栏介绍: https://blog.csdn.n…

Transformer详解一:transformer的由来和先导知识

目录 参考资料前言一、预训练二、神经网络语言模型&#xff08;NNLM&#xff09;&#xff1a;预测下一个词one-hot编码的缺陷词向量&#xff08;word embedding&#xff09; 三、Word2Vec模型&#xff1a;得到词向量CBOWSkip-gramWord2Vec和NNLM的区别Word2Vec的缺陷 四、ELMO模…

Python实现WOA智能鲸鱼优化算法优化循环神经网络分类模型(LSTM分类算法)项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档视频讲解&#xff09;&#xff0c;如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 鲸鱼优化算法 (whale optimization algorithm,WOA)是 2016 年由澳大利亚格里菲斯大学的Mirjalili 等提…

Juniper SRX PPPoE配置

直接上配置脚本 6号口接运营商进行拨号 ---------- set interfaces ge-0/0/6 unit 0 encapsulation ppp-over-ether set interfaces ge-0/0/6 description "Connect_to_Modem" set interfaces pp0 unit 0 pppoe-options underlying-interface ge-0/0/6.0 set inte…

Linux(命令)——结合实际场景的命令 查找Java安装位置命令

前言 在内卷的时代&#xff0c;作为开发的程序员也需要懂一些Linux相关命令。 本篇博客结合实际应用常见&#xff0c;记录Linux命令相关的使用&#xff0c;持续更新&#xff0c;希望对你有帮助。 目录 前言引出一、查找Java安装位置命令1、使用which命令2、使用find命令3、查…

《OSTEP》信号量(chap31)

〇、前言 本文是对《OSTEP》第三十一章的实践与总结。 一、信号量 以下各个版本都是一个生产者-消费者模型&#xff0c;基于信号量实现&#xff0c;并且逐渐完善。 #include <pthread.h> #include <semaphore.h> #include <stdio.h> #define MAX 10int b…

『亚马逊云科技产品测评』活动征文|搭建带有“弱”图像处理功能的流媒体服务器

授权声明&#xff1a;本篇文章授权活动官方亚马逊云科技文章转发、改写权&#xff0c;包括不限于在 Developer Centre, 知乎&#xff0c;自媒体平台&#xff0c;第三方开发者媒体等亚马逊云科技官方渠道。 本文基于以下软硬件工具&#xff1a; aws ec2 frp-0.52.3 mediamtx-1.3…

RT-DETR算法优化改进: 一种新颖的可扩张残差(DWR)注意力模块,加强不同尺度特征提取能力

💡💡💡本文全网首发独家改进:一种新颖的可扩张残差(DWR)注意力模块,加强不同尺度特征提取能力,创新十足,独家首发适合科研 1)代替RepC3进行使用; 2)DWR直接作为注意力进行使用; 推荐指数:五星 RT-DETR魔术师专栏介绍: https://blog.csdn.net/m0_63774211/…

双十一钜惠!三门不可多得的HarmonyOS学习教程

今年双十一&#xff0c;各大商城优惠不断。这里介绍三门不可多得的HarmonyOS学习教程&#xff0c;都有非常大的折扣优惠。 《鸿蒙HarmonyOS手机应用开发实战》 《鸿蒙HarmonyOS手机应用开发实战》是由清华大学出版社出版的。 目前当当是“7.56折”&#xff1a;http://produc…

RT-DETR算法优化改进:新颖的多尺度卷积注意力(MSCA),即插即用,助力小目标检测 | NeurIPS2022

💡💡💡本文独家改进: 多尺度卷积注意力(MSCA),有效地提取上下文信息,新颖度高,创新十足。 1)代替RepC3进行使用; 2)MSCAAttention直接作为注意力进行使用; 推荐指数:五星 RT-DETR魔术师专栏介绍: https://blog.csdn.net/m0_63774211/category_12497375.ht…

app软件开发多少钱?功能会影响价格吗?

随着智能手机的普及&#xff0c;app开发市场日益繁荣&#xff0c;很多人都有开发app的梦想&#xff0c;但开发一款app需要多少钱呢?功能是否会影响价格?本文将为你揭开这个谜团。 一、app开发费用的影响因素 app开发费用受到多种因素的影响&#xff0c;例如开发难度、功能复…

【Linux】第十六站:进程地址空间

文章目录 一、程序地址空间1.内存的分布2.static修饰后为什么不会被释放3.一个奇怪的现象 二、进程地址空间1.前面现象的原因2.地址空间究竟是什么&#xff1f;3.为什么要有进程地址空间4.页表5.什么叫进程&#xff1f;6.进程具有独立性。为什么&#xff1f;怎么做到呢&#xf…