头图

AIGC系列分享是整数智能推出的一个全新分享系列,在这个系列中,我们将介绍与AIGC概念相关的有趣内容。AIGC系列主要分为以下几篇文章:


最近,“AI绘画”吸引了很多人的目光,而“AI绘画”在近期取得如此巨大进展的原因之一得益于Stable Diffusion的开源。

图片

引自Imagen官网

什么是文图生成技术

image(1).png

文本描述:A small cabin on top of a snowy mountain in the style of Disney, artstation

文图生成技术的研究开始于2010年中期,伴随着深度学习技术的发展而进步。截至2023年2月,目前已知的最先进的文生图模型有:OpenAI的DALL-E2、Google的ImageGen和StableilityAI的Stable Diffusion。这些模型生成的图片已经开始接近真实照片以及人类所绘艺术作品的质量。

在深度学习兴起之前,搭建文本到图像模型的尝试仅限于通过排列现有的组件图像进行拼贴,例如从剪切画数据库中选择图像形成类似于拼贴画的图像。随着深度学习的发展,越来越多的机构提出基于深度学习的文生图模型。

2015年,由多伦多大学研究人员提出第一个现代化文生图模型:alignDRAW。它使用带有注意力机制的循环变分自动编码器来扩展之前的DRAW架构,使其能以文本序列作为输入。尽管alignDRAW生成的图片是模糊,不逼真的,但是该模型能够归纳出训练数据中没有的物体。并且可以适当地处理新的文本描述,例如:“停车标识在蓝天上飞”。这表明该模型在一定程度上可以理解语言描述,并生成新的东西,而不是仅仅在“回放”训练集中的数据。

image (3)(1).png

文本描述:停车标识在蓝天上飞,引自aligenDRAW

论文2016年,Reed、Akata、Yan等人首先试图将生成对抗网络(GAN)用于文生图任务。他们通过在特定领域的数据集上训练生成器以及判别器。训练完成的模型能够从文本描述中生成“视觉上可信的”物体。但是,基于GANs生成的图片在视觉上只可“远观”,在细节上缺乏一致性。此外,基于GANs生成的图片多样性不够好,生成的图片都差不多,原创性不佳。常见的基于GANs的文图生成模型有:AttnGAN、DM-GAN、DF-GAN、XMC-GAN、VQGAN+CLIP、GauGANs、StyleGAN、Make-A-Scen等。

2021年1月,OpenAI发布了DALL-E,这是最早引起公众广泛关注的文生图模型之一。DALL-E模型是GPT-3的多模态实现,它基于Transformer架构,拥有120亿个参数。该模型在一个从网上收集的包含2.5亿个图像文本对的数据集上进行训练得到。DALL-E会根据文本描述生成多个图像,之后由CLIP模型对这些图像进行排序,以呈现最高质量的图像。除了生成各种风格的图像(相机写实主义图像、绘画、表情符号等)之外,它还可以“操作和重新排列”图像中的对象。其创作者指出DALL-E的一项能力是在没有明确指示的情况下将设计元素正确放置在新颖的作品中。例如,输入文本:“穿着圣诞衣服的企鹅”。DALL-E不仅生成企鹅穿着毛衣的图像,还会生成与主题相关的圣诞老人的帽子。如下所示:

图片

文本描述:穿着圣诞衣的企鹅

同年4月份,OpenAI宣布了新版本的DALL-E2,宣称它可以从文本描述中生成照片般逼真的图像。与DALL-E相比,DALL-E2在速度、图像质量、训练数据集以及语言理解能力都有了显著改进。不过有时候模型也会出现错误。比如DALL-E2就无法区分:“黄色的书和红色的花瓶”。

image (5)(1).png

文本描述:黄色的书和红色的花瓶,左边图片由Imagen生成,右边图片由DALL-E2生成,引自Imagen论文

2022年5月,Google推出Imagen。它是一种文本到图像(text-to-image)扩散模型(diffusion model),具有前所未有的逼真度和深度的语言理解。Imagen建立在大型Transformer语言模型理解文本语义的能力之上,依赖于扩散模型生成高保真的图像。Imagen表明了以下四点结论:

  1. 冻结大型预训练模型的文本编码器对于文本到图像任务非常有效
  2. 缩放预训练文本编码器的大小比缩放扩散模型的大小更重要
  3. 提出一种新的阈值扩散采样器,可以使用非常大的无分类器指导权重
  4. 引入了一种新的高效的U-Net架构,其计算效率更高,内存效率更高,收敛速度更快

image (6)(1)(1).png

文本描述:A brain riding a rocketship heading towards the moon,引自Imagen官网

2022年7月,OpenAI推出Stable Diffusion。Stable Diffusion是一个基于Latent Diffusion Models(潜在扩散模型,LDMs)的文图生成(text-to-image)模型。得益于Stability AI的计算资源以及LAION的数据资源的支持,Stable Diffusion在LAION-Aesthetics(LAION-5B的美学子集)上训练了一个Latent Diffusion Models,专门用于文图生成。Latent Diffusion Models通过在一个潜在表示空间中迭代“去噪”数据来生成图像,然后将表示结果解码为完整的图像,让文图生成任务能够在消费级GPU上,在10秒级别时间生成图片,大大降低落地门槛,也带来了文图生成领域的大火。

图片

文图生成样例,引自Stable Diffusion论文

同年11月,OpenAI发布了Stable Diffusion 2.0。与最初的v1版本相比,Stable Diffusion 2.0版本使用全新的文本编码器(OpenCLIP)训练文本到图像模型,这大大提高了生成图像的质量。此版本的文生图模型可以生成默认分辨率为512x512像素以及768x768像素的图像。此外,该模型在LAION-Aesthetics(LAION-5B的美学子集)进行训练。与v1版本不同的是,v2版本使用LAION的NSFW(色情和性内容过滤器)过滤掉了数据集中的成人内容。

微信图片_20230216101205.png

文本描述:一只戴墨镜的兔子

Stable Diffusion 2.0还包括一个超分辨率扩散模型,它可以将图像的分辨率提高4倍。结合文本到图像模型,Stable Diffusion 2.0现在可以生成分辨率为2048x2048甚至更高分辨率的图像。

image (9)(1).png

左图:128x128低分辨率的图片,右图:512x512高分辨率的图片,引自Stable Diffusion 2.0官网

除了完成基本的文生图任务、超分辨率任务之外,Stable Diffusion 2.0还可以玩转很多其他任务。比如Stable Diffusion 2.0 在v1版本图像到图像(image-to-image)的特性之上,提出深度引导的稳定扩散模型(depth-guided stable diffusion):depth2img。它使用现有模型推断输入图像的深度,然后使用文本和深度信息生成新的图像。

图片

depth2img,引自Stable Diffusion 2.0官网

此外,Stability AI团队在Stable Diffusion 2.0的基础上提出一个新的文本引导的图像模型。这可以智能且快速地切换图像中的部分内容。

图片

图像修补模型生成的图像,引自Stable Diffusion 2.0官网

同年12月,OpenAI发布了Stable Diffusion 2.1版本(公司效率不可谓不高),主要作了以下3点提升。

  • 调整过滤器,增加数据量:在2.0版本中,为了防止色情内容和名人肖像的滥用,Stability AI使用LAION的NSFW(色情和性内容过滤器),过滤了成人内容。但是,该过滤器过于保守,这导致一些模棱两可的图像惨遭“和谐”,这减少模型训练数据集中的人物数量。因此,2.1版本调整了过滤器(可以涩涩,但仍然去除绝大多数涩涩内容)
  • 加强非标准分辨率图像渲染:该版本的模型显著提升了建筑、室内设计、野生动物和景观场景方面的图像质量,可以为用户提供美丽的远景和史诗般的宽屏图像
  • 加强反向提示词:它允许用户告诉模型不生成什么,用于消除不需要的细节,使得生成的图像更加精致

图片

文本描述:A mecha robot in a favela in expressionist style,左图:v1.0版本,右图v2.1版本

图解Stable Diffusion原理

在大致了解文图技术之后,大家是不是想要了解图文生成模型的原理以及如何构建训练数据集呢?别急,下面,我们将以Stable Diffusion为例子,以图文的方式带着大家一起掀开Stable Diffusion的面纱。

图片

Stable Diffusion text-to-image示意图,引自Jay Alammar博客

Stable Diffusion是个比较杂合的系统,主要由三个核心模块组成:

  • Text Encoder(文本编码器)
  • Image Information Creator(图像信息生成器)
  • Image Decoder(图像生成器)

图片

Stable Diffusion模块示意图,引自Jay Alammar博客

Text Encoder(文本编码器)

该模块负责处理语义信息。通常是利用CLIP(v1版本)、OpenCLIP(v2版本)等模型将人类语言(文字)编码为计算机语言(语义向量)。训练CLIP(OpenCLIP)则需要一个图文配对的数据集。

image (13)(1).png

CLIP训练流程图,引自Jay Alammar博客

Image Information Creator(图片信息生成器)

该模块负责生成图片隐变量。其核心则是一个多次迭代的去噪过程,即训练一个去噪的扩散模型。模型的输入是一个带噪声的图片隐变量(含语义向量),通过扩散模型,逐步去除隐变量中的噪声(模型的预测目标是噪声),最终得到去除噪声的隐变量(加噪图减去噪声)。训练这个扩散模型,则需要一个“去噪”数据集。

图片

噪声预测器,引自Jay Alammar博客

Image Decoder(图片生成器)

该模块利用隐变量生成真正的图片。具体功能是输入去噪的隐变量,经过Image Decoder,输出一张真正的图片。

图片

不同迭代次数下的隐向量可视化,引自Jay Alammar博客

Stable Diffusion数据集构建方式

由上文可知,Stable Diffusion 算法经过了三个版本的迭代,其训练的数据集也发生不同程度的变更。总而言之,Stable Diffusion 系列模型都是在LAION-Aesthetics(LAION-5B的美学子集)上训练得到。区别在于Stable Diffusion 2.0使用LAION的NSFW(色情和性内容过滤器)过滤掉了数据集中的成人内容。Stable Diffusion 2.1调整了过滤器权重,保留了部分“涩涩”数据,扩大了数据集。

数据集内容

此类数据集由图片以及图片对应的标签(描述)组成,主要用来训练CLIP、OpenCLIP等多模态模型。

image (16)(1).png

数据集:图片以及它们的描述,引自Jay Alammar博客

数据集构建

LAION-5B是目前已知且开源的最大规模的多模态数据集。它通过CommonCrawl获取文本和图片,然后使用CLIP过滤掉图像和文本嵌入相似度低于0.28的图文对,最终保留下来50亿个图像-文本对。该数据集包含23.2亿的英文描述,22.6亿个100+其他语言以及12.7亿的未知语。

图片

LAION-5B数据集构建pipeline,引自LAION-5B论文

LAION-5B数据集的构建包含3个主要组件:

  • Common Crawl网页的分布式过滤
  • 图像-文本对的分布式下载
  • 内容过滤

【Common Crawl网页的分布式过滤】:为了从Common Crawl中提取图像-文本对,作者团队从Common Crawl的WAT元数据文件中解析HTML IMG(图片)标记。具体来说,只采集具有alt-text的图像。alt-text是IMG标记的一个HTML属性,它包含在相应图像无法呈现情况下的文字替代。在提出替代文字后,使用CLD3进行语言检测,有三种可能的输出:英语、其他语言或未检测到语言。采集的结果数据存储在PostgreSQL服务器中,以便下一阶段进行处理。目前,该服务器一直维护大约500亿个图像URL。

【图像-文本对的分布式下载】:为了最大限度地利用资源,作者团队通过使用Trio和Asks Python库的异步请求从解析过的URL下载原始图像。作者选择一个具有2个vCPUS,1GB RAM和10Mbps下载宽带的小型云节点作为工作实例。这样,工作人员可以在大约10-15分钟内处理10,000个链接。

【内容过滤】:从Common Crawl下载WAT文件后,删除小于5个字符的文本、小于5KB的图像数据以及潜在的恶意、大图像或冗余图像数据。然后根据图像-文本对的内容对其进行过滤。具体来说,使用OpenAI的ViT-B/32 CLIP模型计算图像和文本编码之间的余弦相似度,然后删除所有余弦相似度小于0.28的英文图像-文本对,以及所有相似度低于0.26的其他图像-文本对。这一步删除了原始500亿张图像中的90%,只剩下近60亿张图片。

作者将LAION-5发布为3个子集:

  • LAION-2B-en:包含23.2亿英文-图像对
  • LAION-2B-multi:包含2236亿个来自100多种其他语言的图像-文本对。其中前5种语言分别是俄语(10.6%)、法语(7.4%)、德语(6.6%)、西班牙语(6.6%)和汉语(6.3%)
  • LAION-2B-nolang:包含12.7亿个语言无法被清楚检测到的图像-文本对

作者团队提供Apache Parquet格式的元数据文件,每个图像-文本对包含以下属性:

  • 64位整数标识符
  • 图像的URL
  • 文本字符串
  • 图像的长和宽
  • 文本与图像之间的文本相似度
  • 来自NSFW和水印检测器的输出(分别是0到1之间的一个分数)

此外,为了适应不同任务的数据需求。LAION-5B还提供不同的子集。例如:LAION-High-Resolution(一个规模为170M,图像分辨率大于1024的超分辨率子集,用于超分辨率任务),LAION-Aesthetic(一个120M的美学图片子集,用于文图生成任务)。

值得一提的是,LAION-Aesthetic使用以下三个准则,从LAION-5B数据集中选择符合条件的图像:

  1. 只保留pwatermark < 0.8、punsafe < 0.5的数据。
  2. 针对上述数据,进行美学打分(按照人类审美对图片进行打分,一共10个等级,得分越高,图片越符合美学标准),保留得分大于8的数据,得到一个10M的美学子集。
  3. 当降低美学得分(得分大于7),即可得到一个120M的美学子集。

image (18)(1).png

美学图片与常规图像,引自LAION-5B官网

数据集使用

此类数据集是在图文数据集的基础之上,加入噪声,构建“去噪”数据集。主要用来训练Difussion models。

Stable Diffusion则是在LAION-5B的一个子集(LAION-Aesthetics)上训练得到的。有了图文数据集之后,只需要向普通的照片中添加噪声(高斯噪声),就有了带噪声的图片。具体的数据集构建方式如下所示:

  • 从图文数据集中随机选择照片
  • 生成从强到弱的各个强度的噪声
  • 选择某个噪声强度
  • 将噪声加到图片里

image (19)(1).png

训练数据集构建方式:1.选择图片;2.生成不同强度的噪声;3.从中选择强度(比如强度1);4.将噪声加入图片里;引自Jay Alammar博客

现在就完成了训练集里面的一张图片。实际上,噪声可以被划分为更加细腻的等级。若将其分为几十个甚至上百个等级档位,那么就可以创建出成千上万个训练集。比如,我们将噪声设置为100个档位,下面就展示了利用不同档位结合不同图片创建6张训练图片的过程:

image (20)(1).png

加噪数据集样例,引自Jay Alammar博客

值得注意的是,训练好的Diffusion模型生成的图片是接近训练集分布的,它和训练集保有相同的像素规律。比如,用一个艺术家数据集去训练模型,那么它就会遵循美学的颜色分布。用真实世界的训练集去训练模型,那么它就会遵循真实世界的规律。

上述数据集构建方式,不仅适合Stable Diffusion,也适用于OpenAI的Dall-E2和Google的Imagen。

然而,上述过程暂时没有引入文字和语义向量的控制。换言之,如果单纯按照上述方法构建数据集来训练模型,我们可能得到一些炫酷的图片,但无法控制最后生成的结果。因此,在构建数据集的时候,还需要引入本文语义输入。如下图所示:

image (21)(1).png

数据集包含编码后的文本,由于所有操作在潜空间进行操作,因此输入图像和预测噪声都在潜空间中,引自Jay Alammar博客

至此,训练Diffusion models的数据集就构建完成了。训练Diffusion models的管道如下图所示:

image (22).png

Diffusion models pipeline,输入:加噪图片、噪声强度、文本嵌入;输出:预测的噪声,引自Jay Alammar博客

常见的可用于文图生成的数据集

COCO(COCO Captions)

COCO Captions是一个字幕数据集,它以场景理解为目标,从日常生活场景中捕获图片数据,通过人工生成图片描述。该数据集包含330K个图文对。
数据集下载链接:https://cocodataset.org/

Visual Genome

Visual Genome是李飞飞在2016年发布的大规模图片语义理解数据集,含图像和问答数据。标注密集,语义多样。该数据集包含5M个图文对。
数据集下载链接:http://visualgenome.org/

Conceptual Captions(CC)

Conceptual Captions(CC)是一个非人工注释的多模态数据,包含图像URL以及字幕。对应的字幕描述是从网站的alt-text属性过滤而来。CC数据集因为数据量的不同分为CC3M(约330万对图文对)以及CC12M(约1200万对图文对)两个版本。
数据集下载链接: https://ai.google.com/researc...

YFCC100M

YFCC100M数据库是2014年来基于雅虎Flickr的影像数据库。该库由一亿条产生于2004年至2014年间的多条媒体数据组成,其中包含了9920万张的照片数据以及80万条视频数据。YFCC100M数据集是在数据库的基础之上建立了一个文本数据文档,文档中每一行都是一条照片或视频的元数据。
数据集下载链接:http://projects.dfki.uni-kl.d...

ALT200M

ALT200M是微软团队为了研究缩放趋势在描述任务上的特点而构建的一个大规模图像-文本数据集。该数据集包含200M个图像-文本对。对应的文本描述是从网站的alt-text属性过滤而来。(私有数据集,无数据集链接)

LAION-400M

LAION-400M通过CommonCrwal获取2014-2021年网页中的文本和图片,然后使用CLIP过滤掉图像和文本嵌入相似度低于0.3的图文对,最终保留4亿个图像-文本对。然而,LAION-400M含有大量令人不适的图片,对文图生成任务影响较大。很多人用该数据集来生成色情图片,产生不好的影响。因此,更大更干净的数据集成为需求。
数据集下载链接:https://laion.ai/blog/laion-4...

LAION-5B

LAION-5B是目前已知且开源的最大规模的多模态数据集。它通过CommonCrawl获取文本和图片,然后使用CLIP过滤掉图像和文本嵌入相似度低于0.28的图文对,最终保留下来50亿个图像-文本对。该数据集包含23.2亿的英文描述,22.6亿个100+其他语言以及12.7亿的未知语。
数据集下载链接:https://laion.ai/blog/laion-5... 

整数智能的数据服务助力您玩转AIGC

80%的数据 + 20%的算法 = 更好的AI

图片

人工智能的研发是一个非常标准化的流程,它会经历4步,从数据采集->数据标注->模型训练->模型部署。而80%的研发时间,则消耗在了数据采集与数据标注的环节。数据工程的核心在于高效率、高质量的数据标注。

整数智能——AI行业的数据合伙人

整数智能信息技术(杭州)有限责任公司,起源自浙江大学计算机创新技术研究院,致力于成为AI行业的数据合伙人。整数智能也是中国人工智能产业发展联盟、ASAM协会、浙江省人工智能产业技术联盟成员。

图片

整数智能提供了智能数据工程平台(ABAVA Platform)与数据集构建服务(ACE Service)。满足了智能驾驶、AIGC、智慧医疗、智能安防、智慧城市、工业制造、智能语音、公共管理等数十个应用场景的数据需求。目前公司已合作海内外顶级科技公司与科研机构200余家,拥有知识产权数十项,多次参与人工智能领域的标准与白皮书撰写。整数智能也受到《CCTV财经频道》《新锐杭商》《浙江卫视》《苏州卫视》等多家新闻媒体报道。

1.专业级的团队和技术支撑

  • 强大的研发团队持续迭代AI数据平台ABAVA Platform,创造极致的AI数据标注效率
  • 数据专家为您制定数据集构建方案,满足您对数据集的定制化需求

2.满足全领域多场景的数据标注需求

  • 在图像与视频数据方面,支持关键点标注、线标注、框标注、语义分割标注、立体框标注、逐帧标注等标注需求
  • 在点云数据方面,支持3D点云框标注、3D点云语义分割、3D点云车道线标注、2/3D融合标注等标注需求
  • 在文本数据方面,支持NER命名实体标注、SPO文本三元组标注、内容审核、情绪分析等标注需求
  • 在音频数据方面,支持ASR标注、音素标注、MIDI标注等标注需求

图片
图片

3.极致的的数据交付质量

  • 整数智能拥有数十家自建数据产业基地和合作产业基地,覆盖10万名人工智能训练师,逐步形成一套科学专业的人员、质量管控及数据安全保障机制
  • 依托数据标注方面所积累的经验,平台可达成100万张图像标注量级的峰值。整数智能数据管理平台通过流程与机制的双重保障,为您提供质量更优、响应速度更快的数据服务,助力企业用户实现降本增效

联系我们

希望能够与正在阅读这篇文章的您进一步交流沟通,一起探索AI数据的更多可能性。欢迎联系我们:
电话(微信同号):137-8507-0844
邮箱:zzj@molardata.com


整数智能AI研究院
7 声望13 粉丝