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

news2025/1/12 1:40:34

欢迎来到魔法宝库,传递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最新资讯和经典论文精读分享,让我们一起交流学习!!

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

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

相关文章

【Linux】Linux常用命令—用户管理

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞 关注支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; &#x1f525;c系列专栏&#xff1a;C/C零基础到精通 &#x1f525; 给大…

Redis安装、配置

系列文章目录 第一章 Java线程池技术应用 第二章 CountDownLatch和Semaphone的应用 第三章 Spring Cloud 简介 第四章 Spring Cloud Netflix 之 Eureka 第五章 Spring Cloud Netflix 之 Ribbon 第六章 Spring Cloud 之 OpenFeign 第七章 Spring Cloud 之 GateWay 第八章 Sprin…

【算法每日一练]-单调队列(保姆级教程 篇2)#琪露诺 #选数游戏 #寻找段落

最后一期单调队列了啊 目录 题目&#xff1a;琪露诺 思路&#xff1a; 题目&#xff1a;选数游戏 思路&#xff1a; 题目&#xff1a;寻找段落 思路&#xff1a; 之前做的都是连续的长度区间求最值&#xff0c;今天体验一下不连续的区间。 然后就是要注意维护单调队列时…

Flutter有状态组件StatefulWidget生命周期

StatefulWidget是Flutter中的一个有状态的组件&#xff0c;它的生命周期相对复杂一些。下面是StatefulWidget的生命周期方法及其调用顺序&#xff1a; 1. createState(): 当StatefulWidget被插入到Widget树中时&#xff0c;会调用createState()方法来创建与之关联的State对象。…

如何有效概括一段工作经历?

问题描述&#xff1a; 如何有效概括一段工作经历&#xff1f; 解决方案&#xff1a; 1.要有效概括一段工作经历&#xff0c;可以遵循以下几个步骤&#xff1a; 确定关键信息&#xff1a;仔细审查工作经历&#xff0c;确定其中的关键信息和亮点。这可能包括你的职位、工作职责…

VR建筑仿真场景编辑软件有助于激发创作者的灵感和创造力

随着VR虚拟现实技术的不断发展和普及&#xff0c;VR虚拟场景编辑器逐渐成为了VR场景开发重要工具。它对于丰富和完善VR虚拟现实内容的创建和呈现具有重要的意义&#xff0c;为我们的工作和教学带来了许多变化和可能性。 首先&#xff0c;VR虚拟场景编辑器对于提升用户体验具有重…

C++实现查找连通域

目录 一、概述 1.1、四连通域算法 1.2、八连通域算法 1.3、种子填充法 二、代码 一、概述 图像处理中&#xff0c;查找连通域的算法是图像分割的重要方法之一。它能够将一幅图像分成若干个不重叠的区域&#xff0c;每个区域内部像素具有相似的性质&#xff0c;而不同区域…

【游戏开发算法每日一记】使用随机prime算法生成错综复杂效果的迷宫(C#和C++)

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 秩沅 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a;Uni…

【01】Istio-1.17 部署

1.1 部署Istio控制平面 部署方法 istioctl istio的专用管理工具&#xff0c;支持定制控制平面和数据平面通过命令行的选项支持完整的IstioOperator API命令行各选项可用于单独设置&#xff0c;以及接收包含IstioOperator自定义资源(CR)的yaml文件 Istio Operator Istio相关的自…

哪些东西可以用超声波清洗机洗?这四款超声波清洗机可别错过

自从去眼镜店老板用超声波清洗机给我清洗过眼镜之后&#xff0c;我就发现&#xff0c;其实很多智能家居都可以帮我们大大解决一些清洁上面的问题&#xff0c;不仅方便还很高效&#xff01;这种一举两得的事情不得安排上&#xff01;现在市面上超声波清洗机可以清洗的东西是越来…

【OpenCV(4)】使用opencv编写mp4格式和avi格式

在之前的文章《【摄影与图像】444&#xff0c;422&#xff0c;420&#xff0c;10bit&#xff0c;8bit&#xff0c;RGB,YCrCb,场序&#xff0c;h264编码,封装&#xff0c;码率&#xff0c;PR常用配置》 说到了视频&#xff1a; 1、一个视频里面包含了什么&#xff1f; 图像音频…

通过百度翻译API完成Java中的中英文翻译

因为要做英文文献索引分词&#xff0c;所以对于索引词汇必须得是英文&#xff0c;将表中的中文都转换成英文 这里用到百度的翻译API 首先需要注册成为百度翻译开发者&#xff1a;百度翻译开放平台 注册成为个人开发者就可以&#xff0c; 这里可以完善相关信息&#xff0c;要记…

关于C++链接的一些理解

无论是.h还是.cpp&#xff0c;都可以写声明或者实体&#xff0c;而且.h和.cpp的前面的名字相同不相同没有任何的影响 最终一系列要连接的程序中&#xff0c;必须有且只有一个源文件有main函数&#xff0c;然后从这个main函数开始运行 include的作用其实是跟define一样的&#x…

高效筛选的秘密武器:JVS智能BI的‘and’与‘or’逻辑

在这个信息爆炸的时代&#xff0c;数据被誉为新时代的黄金和石油&#xff0c;蕴含着无尽的价值和潜力。然而&#xff0c;随着数据的爆炸式增长&#xff0c;如何高效、准确地从海量数据中提取出真正有价值的信息&#xff0c;成为摆在我们面前的一大挑战。我们需要用数据筛选工具…

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

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

垂直领域对话系统架构

垂直领域对话系统是指针对特定领域或行业的需求而构建的对话系统。这种系统通常需要具备高度的专业知识和对特定领域的知识库进行深入的学习和训练&#xff0c;以便能够提供准确、高效、实用的服务。 垂直领域对话系统的构建通常包括以下步骤&#xff1a; 确定目标领域或行业…

OpenCV:图像噪点消除与滤波算法

人工智能的学习之路非常漫长&#xff0c;不少人因为学习路线不对或者学习内容不够专业而举步难行。不过别担心&#xff0c;我为大家整理了一份600多G的学习资源&#xff0c;基本上涵盖了人工智能学习的所有内容。点击下方链接,0元进群领取学习资源,让你的学习之路更加顺畅!记得…

飞天使-template模版相关知识

遇到报错django.template.exceptions.TemplateSyntaxError: ‘staticfiles’ is not a registered tag library. Must ROOT_URLCONF TEMPLATES [{BACKEND: django.template.backends.django.DjangoTemplates,DIRS: [os.path.join(BASE_DIR, templates)],APP_DIRS: True,OPTI…

css实现进度条

预期样式 方法一 <script setup> import { ref } from "vue"; // import ScreenLeft from "./ScreenLeft/index.vue"; const width ref("76.5%"); </script><template>Screen<div class"progress-contain">…

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

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