书名:扩散模型从原理到实战
ISBN:978-7-115-61887-0
本书由人民邮电出版社发行数字版。版权所有,侵权必究。
您购买的人民邮电出版社电子书仅供您个人使用,未经授权,不得以任何方式复制和传播本书内容。
我们愿意相信读者具有这样的良知和觉悟,与我们共同保护知识产权。
如果购买者有侵权行为,我们可能对该用户实施包括但不限于关闭该帐号等维权措施,并可能追究法律责任。
著 李忻玮 苏步升 徐浩然 余海铭
责任编辑 秦 健
人民邮电出版社出版发行 北京市丰台区成寿寺路11号
邮编 100164 电子邮件 315@ptpress.com.cn
网址 http://www.ptpress.com.cn
读者服务热线:(010)81055410
反盗版热线:(010)81055315
AIGC的应用领域日益广泛,而在图像生成领域,扩散模型则是AIGC技术的一个重要应用。本书以扩散模型理论知识为切入点,由浅入深地介绍了扩散模型的相关知识,并以大量生动有趣的实战案例帮助读者理解扩散模型的相关细节。全书共8章,详细介绍了扩散模型的原理,以及扩散模型退化、采样、DDIM反转等重要概念与方法,此外还介绍了Stable Diffusion、ControlNet与音频扩散模型等内容。最后,附录提供由扩散模型生成的高质量图像集以及Hugging Face社区的相关资源。
本书既适合所有对扩散模型感兴趣的AI研究人员、相关科研人员以及在工作中有绘图需求的从业人员阅读,也可以作为计算机等相关专业学生的参考书。
本书系统地介绍了扩散模型的原理和相关细节,同时书中丰富的实战案例也将引领读者快速上手扩散模型。对于任何想要学习和了解扩散模型的人来说,本书都是颇具价值的参考资料。
——周明,澜舟科技创始人兼CEO,创新工场首席科学家,CCF副理事长
受非平衡热力学的启发,扩散模型以良好的数学解释性及可控的生成多样性迅速成为AIGC领域一颗耀眼的新星。本书从“一滴墨水”开始,由浅入深,从理论到实践“扩散”出了图像、文本与音频的AIGC蓝图,并为读者保留了精华,去除了“噪声”,还原出了知识体系最真实的“分布”。
——杨耀东,北京大学人工智能研究院研究员
人工智能扩散模型在近几年取得了令人目不暇接的惊艳成果,可以有效解决视觉内容生成的瓶颈问题。仔细阅读本书,你既可以对扩散模型背后的原理有较为深刻的理解,也可以依此动手进行实践,从而牢固掌握扩散模型,为进一步创新或深度应用打下坚实基础。本书值得推荐!
——钟声,声网CTO
纵观人类历史,机遇永远属于抢先一步占据未来高度的人。我们每一个人都有必要去探究人工智能的奥秘,以便在即将到来的变革大潮中争得一席之地。
——马伯庸,作家
《扩散模型从原理到实战》以Hugging Face的扩散模型(Diffusion Model)课程为基础,通过理论和实例相结合的方式,为读者构建了一个完整的学习框架。无论你是新手还是经验丰富的从业者,这本以实战为导向的图书都能够帮助你更好地理解和应用扩散模型。
——王铁震,Hugging Face中国地区负责人,高级工程师
随着Stable Diffusion和Midjourney的推出,文生图形式的AI绘画火爆异常,很多游戏的角色设计、网上店铺的页面设计都用到了AI绘画工具。本书系统地梳理了AI绘画背后的一系列原理细节,且有代码实战,我非常推荐大家阅读本书!
——July,七月在线创始人,CEO
就在几年前,“通用人工智能”(Artificial General Intelligence,AGI)似乎还是一个只存在于科幻小说中的概念,在现实中的实现方法仍在探索中。然而到了2022年,基于大语言模型的AIGC(AI Generated Content)领域的快速发展,使得通用人工智能不再那么遥不可及。研究人员发现,当参数量超过某个阈值时,基于大语言模型的AIGC系统就能够理解人类用自然语言发布的指令,并对应生成真实、高质量的文本、图像、音视频等多模态数据。扩散模型便是其中引人注目的先行者。
扩散模型源于物理学,它最初是用于描述物质扩散的数学模型。研究人员通过将扩散模型与人工神经网络相结合,发现了它在图像生成领域的巨大潜力。从起步的DALL-E 2和Imagen,到Stability AI发布的Stable Diffusion 1.5,都证明了任何一个能用语言描述心中想法的人,都可以借助扩散模型创作出精美的绘画作品。在全球社交媒体上,带有“AI生成”标签的绘画作品得到迅速传播。我们在动画分镜、游戏立绘、图书插画、服装设计图、家装概念图等领域都能看到扩散模型的身影。这一技术给绘画相关行业带来了革命性的影响,就如同工业革命时期的珍妮纺纱机。
在这样的背景下,我们编写了这本关于扩散模型的实战指南。本书将详细介绍扩散模型的原理、发展与应用,以及如何运用Hugging Face和Diffusers进行模型实战。我们希望读者通过阅读本书,能够学习并掌握扩散模型的相关知识,探索这一领域的无限可能。
本书包含扩散模型的理论基础、项目实战、研究前沿和应用范例等,旨在帮助读者学习如何使用扩散模型生成图像内容。因此,本书适合大学生、研究人员、AIGC爱好者和绘画相关行业的从业人员阅读。在阅读本书之前,你需要具备一定的编程经验,尤其是要对Python编程语言有一定的了解。同时,你最好具备深度学习相关知识,并了解人工智能领域的相关概念和术语,以便更轻松地阅读本书。
本书分为两部分——基础知识与实战应用。第1章和第2章是基础知识部分,旨在介绍扩散模型的原理、发展、应用以及Hugging Face和环境准备;第3章~第8章则是实战应用部分,旨在逐步带领你深入扩散模型实战,包括从零开始搭建扩散模型、运用Diffusers库生成蝴蝶图像、微调和引导技术的应用、探讨Stable Diffusion的概念与运用、DDIM反转和ControlNet技巧,以及音频处理领域的扩展应用等内容。你可以根据个人兴趣和需求,选择性地阅读相关章节。同时,本书的附录部分还提供了由扩散模型生成的高质量图像集以及Hugging Face的相关资源。
在阅读本书的过程中,建议你将理论和实际相结合,以深入理解扩散模型的原理。当遇到问题时,你要敢于请教他人或在相关论坛上提问,以提高自己解决问题的能力。扩散模型是一个快速发展的领域,我们鼓励你关注AIGC和扩散模型的前沿技术、方法和模型,紧跟学术进展。
最后,我们希望你能够将学到的扩散模型知识与自己的专业领域或技能相结合,并尝试使用扩散模型解决生活或工作中的实际问题。
愿你在扩散模型的学习道路上一帆风顺,在创造的过程中获得快乐,也期待你在扩散模型领域取得辉煌成就。感谢你选择阅读本书,祝你阅读愉快。
本书第3章~第8章的内容基于Hugging Face的Diffusion 课程(https://github.com/huggingface/diffusion-models-class)。在此,我们衷心感谢该课程的设计者Jonathan Whitaker 和Lewis Tunstall 对本书提供的宝贵建议和支持,以及来自Hugging Face管理者的鼓励,他们让本书的出版成为可能。
特别感谢澜舟科技创始人兼CEO、创新工场首席科学家、CCF副理事长周明、图灵联合创始人和创始总编刘江、作家马伯庸、Stability AI技术产品总监郑屹州以及声网 CTO 钟声博士为本书提供的宝贵意见。他们的专业知识和经验让本书在内容方面得到完善和改进。
同时,我们也要感谢 Hugging Face 团队成员以及中国社区的志愿者和开发者们,他们为本书的出版付出了巨大的努力。他们的支持和贡献使本书得以顺利完成。
最后,诚挚感谢所有读者的关注和支持。我们将不断努力,为读者提供更加优质的内容和服务。
本书提供如下资源:
● 本书源代码;
● 书中彩图文件;
● 本书思维导图;
● 异步社区7天VIP会员。
要获得以上资源,您可以扫描下方二维码,根据指引领取。
作者和编辑尽最大努力来确保书中内容的准确性,但难免会存在疏漏。欢迎您将发现的问题反馈给我们,帮助我们提升图书的质量。
当您发现错误时,请登录异步社区(https://www.epubit.com/),按书名搜索,进入本书页面,点击“发表勘误”,输入勘误信息,点击“提交勘误”按钮即可(见下图)。本书的作者和编辑会对您提交的勘误进行审核,确认并接受后,您将获赠异步社区的100积分。积分可用于在异步社区兑换优惠券、样书或奖品。
我们的联系邮箱是contact@epubit.com.cn。
如果您对本书有任何疑问或建议,请您发邮件给我们,并请在邮件标题中注明本书书名,以便我们更高效地做出反馈。
如果您有兴趣出版图书、录制教学视频,或者参与图书翻译、技术审校等工作,可以发邮件给我们。
如果您所在的学校、培训机构或企业,想批量购买本书或异步社区出版的其他图书,也可以发邮件给我们。
如果您在网上发现有针对异步社区出品图书的各种形式的盗版行为,包括对图书全部或部分内容的非授权传播,请您将怀疑有侵权行为的链接发邮件给我们。您的这一举动是对作者权益的保护,也是我们持续为您提供有价值的内容的动力之源。
“异步社区”(www.epubit.com)是由人民邮电出版社创办的IT专业图书社区,于2015年8月上线运营,致力于优质内容的出版和分享,为读者提供高品质的学习内容,为作译者提供专业的出版服务,实现作者与读者在线交流互动,以及传统出版与数字出版的融合发展。
“异步图书”是异步社区策划出版的精品IT图书的品牌,依托于人民邮电出版社在计算机图书领域30余年的发展与积淀。异步图书面向IT行业以及各行业使用IT技术的用户。
扩散模型(Diffusion Model)是一类十分先进的基于扩散思想的深度学习生成模型。生成模型除了扩散模型之外,还有出现较早的VAE(Variational Auto-Encoder,变分自编码器)和GAN(Generative Adversarial Net,生成对抗网络)等。虽然它们与扩散模型也有一些渊源,不过这并不在本书的讨论范围之内。同时本书也不会深入介绍扩散模型背后复杂的数学原理。即便如此,你仍然可以基于本书介绍的内容学会通过相关代码来生成精美的图像。
在进入本书的实战章节之前,我们先来简单了解一下扩散模型。
本章涵盖的知识点如下。
● 扩散模型的原理,旨在介绍扩散模型是如何“扩散”的。
● 扩散模型的发展,旨在介绍扩散模型在图像生成方面的技术迭代与生态发展历程。
● 扩散模型的应用,旨在介绍扩散模型除了图像生成领域之外的其他应用。
扩散模型是一类生成模型,它运用了物理热力学中的扩散思想,主要包括前向扩散和反向扩散两个过程。本节将介绍扩散模型的原理,其中不包含复杂的数学推导。
在深度学习中,生成模型的目标是根据给定的样本(训练数据)生成新样本。首先给定一批训练数据X,假设其服从某种复杂的真实分布p(x),则给定的训练数据可视为从该分布中采样的观测样本x。如果能够从这些观测样本中估计出训练数据的真实分布,不就可以从该分布中源源不断地采样出新的样本了吗?生成模型实际上就是这么做的,它的作用是估计训练数据的真实分布,并将其假定为q(x)。在深度学习中,这个过程称为拟合网络。
那么问题来了,怎么才能知道估计的分布q(x)和真实分布p(x)的差距大不大呢?一种简单的思路是要求所有的训练数据样本采样自q(x)的概率最大。这种思路实际上来自统计学中的最大似然估计思想,它也是生成模型的基本思想之一,因此生成模型的学习目标就是对训练数据的分布进行建模。
最大似然估计思想已经在一些模型(如VAE)上应用并取得了不错的效果。扩散模型可看作一个更深层次的VAE。扩散模型的表达能力更加丰富,而且其核心在于扩散过程。
扩散的思想来自物理学中的非平衡热力学分支。非平衡热力学专门研究某些不处于热力学平衡中的物理系统,其中最为典型的研究案例是一滴墨水在水中扩散的过程。在扩散开始之前,这滴墨水会在水中的某个地方形成一个大的斑点,我们可以认为这是这滴墨水的初始状态,但要描述该初始状态的概率分布则很困难,因为这个概率分布非常复杂。随着扩散过程的进行,这滴墨水随着时间的推移逐步扩散到水中,水的颜色也逐渐变成这滴墨水的颜色,如图1-1所示。此时,墨水分子的概率分布将变得更加简单和均匀,这样我们就可以很轻松地用数学公式来描述其中的概率分布了。
在这种情况下,非平衡热力学就派上用场了,它可以描述这滴墨水随时间推移的扩散过程中每一个“时间步”(旨在将连续的时间过程离散化)状态的概率分布。若能够想到办法把这个过程反过来,就可以从简单的分布中逐步推断出复杂的分布。
公认最早的扩散模型DDPM(Denoising Diffusion Probabilistic Model)的扩散原理就由此而来,不过仅有上述条件依然很难从简单的分布倒推出复杂的分布。DDPM还做了一些假设,例如假设扩散过程是马尔可夫过程[1](即每一个时间步状态的概率分布仅由上一个时间步状态的概率分布加上当前时间步的高斯噪声得到),以及假设扩散过程的逆过程是高斯分布等。
[1] 马尔可夫链既是马尔可夫过程的原始模型,也是一个表示状态转移的离散随机过程。该离散随机过程具有“无记忆”的性质,即下一状态的概率分布仅由当前状态表示,而与之前的所有状态无关,同时只要时间序列足够长,即状态转移的次数足够多,最终的概率分布将趋于稳定。
图1-1 一滴墨水在水中扩散分布的示意图
DDPM的扩散过程如图1-2所示,具体分为前向过程和反向过程两部分。
图1-2 DDPM的扩散过程
1)前向过程
前向过程是给数据添加噪声的过程。假设给定一批训练数据,数据分布为x0 ~q(x0),其中,0表示初始状态,即还没有开始扩散。如前所述,将前向加噪过程分为离散的多个时间步T,在每一个时间步t,给上一个时间步t−1的数据xt−1添加高斯噪声,从而生成带有噪声(简称“带噪”)的数据xt,同时数据xt也会被送入下一个时间步t+1以继续添加噪声。其中,噪声的方差是由一个位于区间(0,1)的固定值βt确定的,均值则由固定值βt和当前时刻“带噪”的数据分布确定。在反复迭代和加噪(即添加噪声)T次之后,只要T足够大,根据马尔可夫链的性质,最终就可以得到纯随机噪声分布的数据,即类似稳定墨水系统的状态。
接下来,我们用简单的公式描述一下上述过程。从时间步t−1到时间步t的单步扩散加噪过程的数学表达式如下:
最终的噪声分布数学表达式如下:
2)反向过程
前向过程是将数据噪声化的过程,反向过程则是“去噪”的过程,即从随机噪声中迭代恢复出清晰数据的过程。
要从采样自高斯噪声的一个随机噪声中恢复出原始数据x0,就需要知道反向过程中每一步的图像分布状态转移。类似地,DDPM也将反向过程定义为一个马尔可夫链,只不过这个马尔可夫链是由一系列用神经网络参数化的高斯分布组成的,也就是需要训练的扩散模型。
从时间步t到时间步t−1的单步反向“去噪”过程的数学表达式如下:
由于反向过程的每一步都是参数化的高斯分布,因此可以分别求高斯分布的均值和方差。这里略去根据贝叶斯公式推导的过程,最终得到时间步t−1的高斯分布q(xt−1|xt, x0)的均值和方差的数学表达式如下:
可以看出,方差是一个定量(扩散过程参数固定),而均值是一个依赖于x0和xt的函数,因此需要使用扩散模型来优化参数。
3)优化目标
扩散模型预测的是噪声残差,即要求后向过程中预测的噪声分布与前向过程中施加的噪声分布之间的“距离”最小。
下面我们从另一个角度来看看扩散模型。如果把中间产生的变量看成隐变量的话,那么扩散模型其实是一种包含T个隐变量的模型,因此可以看成更深层次的VAE,而VAE的损失函数可以使用变分推断来得到变分下界(variational lower bound)。至于具体过程,本书不做过多的公式推导,感兴趣的读者可以参考 DDPM 原文。
扩散模型的最终优化目标的数学表达式如下:
可以看出,在训练DDPM时,只要用一个简单的MSE(Mean Squared Error,均方误差)损失来最小化前向过程施加的噪声分布和后向过程预测的噪声分布,就能实现最终的优化目标。
扩散模型从最初的简单图像生成模型,逐步发展到替代原有的图像生成模型,直到如今开启AI作画的时代,发展速度可谓惊人。因为本书主要介绍扩散模型的2D图像生成任务,所以本节仅介绍与2D图像生成相关的扩散模型的发展历程,具体如下。
● 开始扩散:基础扩散模型的提出与改进。
● 加速生成:采样器。
● 刷新纪录:基于显式分类器引导的扩散模型。
● 引爆网络:基于CLIP(Contrastive Language-Image Pretraining,对比语言-图像预处理)的多模态图像生成。
● 再次“出圈”:大模型的“再学习”方法——DreamBooth、LoRA和ControlNet。
● 开启AI作画时代:众多商业公司提出成熟的图像生成解决方案。
在图像生成领域,最早出现的扩散模型是DDPM(于2020年提出)。DDPM首次将“去噪”扩散概率模型应用到图像生成任务中,奠定了扩散模型在图像生成领域应用的基础,包括扩散过程定义、噪声分布假设、马尔可夫链计算、随机微分方程求解和损失函数表征等,后面涌现的众多扩散模型都是在此基础上进行了不同种类的改进[2]。
[2] Ho J, Jain A, and Abbeel P. Denoising Diffusion Probabilistic Models [J]. Advances in Neural Information Processing Systems, 2020, pp.6840-6851.
虽然扩散模型在图像生成领域取得了一定的成果,但是由于其在图像生成阶段需要迭代多次,因此生成速度非常慢(最初版本的扩散模型的生成速度甚至长达数分钟),这也是扩散模型一直受到诟病的原因。在扩散模型中,图像生成阶段的速度和质量是由采样器控制的,因此如何在保证生成质量的前提下加快采样是一个对扩散模型而言至关重要的问题。
论文“Score-Based Generative Modeling through Stochastic Differential Equations”证明了DDPM的采样过程是更普遍的随机微分方程,因此只要能够更离散化地求解该随机微分方程,就可以将1000步的采样过程缩减至50步、20步甚至更少的步数,从而极大地提高扩散模型生成图像的速度,如图1-3所示。针对如何更快地进行采样这一问题,目前已经涌现了许多优秀的求解器,如Euler、SDE、DPM-Solver++和Karras等,这些加速采样方法也是扩散模型风靡全球至关重要的推力。
图1-3 DPM-Solver++在20步采样内实现从“一碗水果”到 “一碗梨”的图像编辑
2021年5月以前,虽然扩散模型已经被应用到图像生成领域,但它实际上在图像生成领域并没有“大红大紫”,因为早期的扩散模型在所生成图像的质量和稳定性上并不如经典的生成模型GAN(Generative Adversarial Network,生成对抗网络),真正让扩散模型开始在研究领域“爆火”的原因是论文“Diffusion Models Beat GANs on Image Synthesis”的发表。OpenAI的这篇论文贡献非常大,尤其是该文介绍了在扩散过程中如何使用显式分类器引导。
更重要的是,这篇论文打败了图像生成领域统治多年的GAN,展示了扩散模型的强大潜力,使得扩散模型一举成为图像生成领域最火的模型,如图1-4所示。
图1-4 扩散模型超越GAN的图像生成示例
(左图为BigGAN-deep模型的结果,右图为OpenAI扩散模型的结果)
CLIP是连接文本和图像的模型,旨在将同一语义的文字和图片转换到同一个隐空间中,例如文字“一个苹果”和图片“一个苹果”。正是由于这项技术和扩散模型的结合,才引起基于文字引导的文字生成图像扩散模型在图像生成领域的彻底爆发,例如OpenAI的GLIDE、DALL-E、DALL-E 2(基于DALL- E 2生成的图像如图1-5所示),Google的Imagen以及开源的Stable Diffusion(Stable Diffusion v2扩散模型的主页如图1-6所示)等,优秀的文字生成图像扩散模型层出不穷,给我们带来无尽的惊喜。
图1-5 基于DALL-E 2生成的“拿着奶酪的猫”
图1-6 Hugging Face的Stable Diffusion v2扩散模型的主页
自从扩散模型走上大模型之路后,重新训练一个图像生成扩散模型变得非常昂贵。面对数据和计算资源高昂的成本,个人研究者想要入场进行扩散模型的相关研究已经变得非常困难。
但实际上,像开源的Stable Diffusion这样的扩散模型已经出色地学习到非常多的图像生成知识,因此不需要也没有必要重新训练类似的扩散模型。于是,许多基于现有的扩散模型进行“再学习”的技术自然而然地涌现,这也使得个人在消费级显卡上训练自己的扩散模型成为可能。DreamBooth、LoRA和ControlNet是实现大模型“再学习”的不同方法,它们是针对不同的任务而提出的。
DreamBooth可以实现使用现有模型再学习到指定主体图像的功能,只要通过少量训练将主体绑定到唯一的文本标识符后,就可以通过输入文本提示语来控制自己的主体以生成不同的图像,如图1-7所示。
图1-7 使用DreamBooth将小狗嵌入图像中并生成不同场景下的小狗
LoRA可以实现使用现有模型再学习到自己指定数据集风格或人物的功能,并且还能够将其融入现有的图像生成中。Hugging Face提供了训练LoRA的UI界面,如图1-8所示。
图1-8 Hugging Face提供的LoRA训练界面
ControlNet可以再学习到更多模态的信息,并利用分割图、边缘图等功能更精细地控制图像的生成。第7章将对ControlNet进行更加细致的讲解。
图像生成扩散模型“爆火”之后,缘于技术的成熟加上关注度的提高以及上手简易等,网络上的扩散模型“百花齐放”,越来越多的人开始使用扩散模型来生成图像。
众多提供成熟图像生成解决方案的公司应运而生。例如,图像生成服务提供商Midjourney实现了用户既可以通过Midjourney的Discord频道主页(如图1-9所示)输入提示语来生成图像,也可以跟全世界的用户一起分享和探讨图像生成的细节。此外通过Stability AI 公司开发的图像生成工具箱DreamStudio(如图1-10所示),用户既可以使用提示语来编辑图像,也可以将其SDK嵌入自己的应用或者作为Photoshop插件使用。当然,Photoshop也有自己的基于扩散模型的图像编辑工具库 Adobe Firefly(如图1-11所示),用户可以基于Photoshop传统的选区等精细控制功能来更高效地生成图像。
图1-9 Midjourney的Discord频道主页
图1-10 Stability AI公司开发的DreamStudio
图1-11 Adobe的图像编辑工具库Adobe Firefly
百度公司推出了文心一格AI创作平台(如图1-12所示),而阿里巴巴达摩院也提出了自己的通义文生图大模型等。除了头部企业以外,一些创业公司也开始崭露头角,退格网络推出的 Tiamat图像生成工具已获多轮投资,由该工具生成的精美概念场景图像登陆上海地铁广告牌。北京毛线球科技有限公司开发的6pen Art图像生成APP(如图1-13所示)将图像生成带到手机端,使用户在手机上就能体验AI作画。
图1-12 百度公司的文心一格AI创作平台
图1-13 6pen Art图像生成APP
众多的服务商致力于以最成熟、最简单的方式让大众能够通过输入文字或图片的方式生成想要的图像,真正开启了AI作画时代。
扩散只是一种思想,扩散模型也并非固定的深度网络结构。除此之外,如果将扩散的思想融入其他领域,扩散模型同样可以发挥重要作用。
在实际应用中,扩散模型最常见、最成熟的应用就是完成图像生成任务,本书同样聚焦于此。不过即便如此,扩散模型在其他领域的应用仍不容忽视,可能在不远的将来,它们就会像在图像生成领域一样蓬勃发展,一鸣惊人。
本节将介绍扩散模型在其他领域的应用,具体内容如下。
● 计算机视觉。
● 时序数据预测。
● 自然语言。
● 基于文本的多模态。
● AI基础科学。
计算机视觉包括2D视觉和3D视觉两个方面,这里仅介绍扩散模型在2D图像领域的应用。
图像类的应用十分广泛,而且与人们的日常生活息息相关。在扩散模型出现之前,与图像处理相关的研究已经有很多了,而扩散模型在许多图像处理任务中都可以很好地发挥作用,具体如下。
● 图像分割与目标检测。图像分割与目标检测是计算机视觉领域的经典任务,在智能驾驶、质量监测等方面备受关注。而在加入扩散的方法之后,就可以获取更精准的分割和检测结果了,例如Meta AI的SegDiff分割扩散模型可以生成分割Mask图(如图1-14所示),检测扩散模型DiffusionDet同样可以端到端地从随机矩形框逐步生成检测框(如图1-15所示)。不过,扩散模型仍然存在生成速度慢的问题,在应用于一些需要实时检测的场景时还需继续优化。
图1-14 SegDiff生成的分割Mask图
图1-15 DiffusionDet生成的检测框
● 图像超分辨率。图像超分辨率是一项能够将低分辨率图像重建为高分辨率图像,同时保证图像布局连贯的技术。CDM(Cascaded Diffusion Model,级联扩散模型)通过采用串联多个扩散模型的方式,分级式地逐步放大分辨率,实现了图像超分辨率[3],图1-16给出了一个使用CDM实现图像超分辨率的示例。
[3] Jonathan Ho, Chitwan Saharia, William Chan, David J Fleet, Mohammad Norouzi, and Tim Salimans. Cascaded Diffusion Models for High Fidelity Image Generation. J. Mach. Learn. Res. 23(2022), 47–1.
图1-16 使用CDM实现图像超分辨率
● 图像修复、图像翻译和图像编辑。图像修复、图像翻译和图像编辑是对图像的部分或全部区域执行的操作,包括缺失部分修补、风格迁移、内容替换等。Palette是一个集成了图像修复、图像翻译和图像编辑等功能的扩散模型,它可以在一个模型中完成不同的图像级任务[4]。图1-17给出了一个使用Palette修复图像的示例。
[4] Chitwan Saharia, William Chan, Huiwen Chang, Chris Lee, Jonathan Ho, Tim Salimans, David Fleet, and Mohammad Norouzi. Palette: Image-to-Image Diffusion Models. In Special Interest Group on Computer Graphics and Interactive Techniques Conference Proceedings. pp.1-10, 2022.
图1-17 使用Palette修复图像
时序数据预测旨在根据历史观测数据预测未来可能出现的数据,如空气温度预测、股票价格预测、销售与产能预测等。时序数据预测同样可以视为生成任务,即基于历史数据的基本条件来生成未来数据,因此扩散模型也能发挥作用。
TimeGrad[5]是首个在多元概率时序数据预测任务中加入扩散思想的自回归模型。为了将扩散过程添加到历史数据中,TimeGrad首先使用RNN(Recurrent Neural Network,循环神经网络)处理历史数据并保存到隐空间中,然后对历史数据添加噪声以实现扩散过程,由此处理数千维度的多元数据并完成预测任务。图1-18展示了TimeGrad在城市交通流量预测任务中的表现。
[5] Kashif Rasul, Calvin Seward, Ingmar Schuster, and Roland Vollgraf. Autoregressive Denoising Diffusion Models for Multivariate Probabilistic Time Series Forecasting. In International Conference on Machine Learning. pp.8857-8868, 2021.
图1-18 TimeGrad在城市交通流量预测任务中的表现
时序数据预测在实际生活中的应用非常广泛。在过去,传统机器学习方法以及深度学习的RNN系列方法一直处于主导地位。如今,扩散模型已经表现出巨大的潜力,而这还仅仅是开始。
自然语言领域也是人工智能的一个重要发展方向,旨在研究人类语言与计算机通信的相关问题,最近“爆火”的ChatGPT就是一个自然语言生成问答模型。
实际上,扩散模型同样可以完成语言类的生成任务。只要将自然语言类的句子分词并转换为词向量之后,就可以通过扩散的方法来学习自然语言的语句生成,进而完成自然语言领域一些更复杂的任务,如语言翻译、问答对话、搜索补全、情感分析、文章续写等。
Diffusion-LM[6]是首个将扩散模型应用到自然语言领域的扩散语言模型。该模型旨在解决如何将连续的扩散过程应用到离散的非连续化文本的问题,由此实现语言类的高细粒度可控生成。经过测试,Diffusion-LM在6种可控文本生成任务中取得非常好的生成效果,如表1-1所示。
[6] Xiang Lisa Li, John Thickstun, Ishaan Gulrajani, Percy Liang, and Tatsunori B Hashimoto. Diffusion-LM Improves Controllable Text Generation. arXiv preprint arXiv:2205.14217(2022).
表1-1 Diffusion-LM在6种可控文本生成任务中的生成效果
输入类型与输出文本 |
具体内容 |
输入(语义内容) 输出文本 |
food : Japanese Browns Cambridge is good for Japanese food and also children friendly near The Sorrento. |
输入(词性) 输出文本 |
PROPN AUX DET ADJ NOUN NOUN VERB ADP DET NOUN ADP DET NOUN PUNCT Zizzi is a local coffee shop located on the outskirts of the city. |
输入(语法树) 输出文本 |
(TOP (S (NP (*) (*)(*)) (VP(*) (NP (NP(*) ())))) The Twenty Two has great food |
输入(语法范围) 输出文本 |
(7,10, VP) Wildwood pub serves multicultural dishes and is ranked 3 stars |
输入(词数) 输出文本 |
14 Browns Cambridge offers Japanese food located near The Sorrento in the city centre. |
输入(前上下文) 输入(后上下文) 输出文本 |
My dog loved tennis balls. My dog had stolen every one and put it under there. One day, I found all of my lost tennis balls underneath the bed. |
实际上,后续也有非常多的基于Diffusion-LM的应用。不过在自然语言领域,目前的主流模型仍然是GPT(Generative Pre-trained Transformer),我们非常期待扩散模型未来能在自然语言领域得到更进一步的发展。
多模态信息指的是多种数据类型的信息,包括文本、图像、音/视频、3D物体等。多模态信息的交互是人工智能领域的研究热点之一,对于AI理解人类世界、帮助人类处理多种事务具有重要意义。在诸如DALL-E 2和Stable Diffusion等图像生成扩散模型以及ChatGPT等语言模型出现之后,多模态开始逐渐演变为基于文本和其他模态的交互,如文本生成图像、文本生成视频、文本生成3D等。
● 文本生成图像。文本生成图像是扩散模型最流行、最成熟的应用,输入文本提示语或仅仅输入几个词,扩散模型就能根据文字描述生成对应的图片。本章开头介绍的大名鼎鼎的文本生成图像扩散模型DALLE-2、Imagen以及完全开源的 Stable Diffusion等,都属于文本和图像的多模态扩散模型。图1-19给出了几个使用Imagen实现文字生成图像的示例,后面我们将重点介绍与文本生成图像相关的应用。
图1-19 使用Imagen实现文字生成图像的几个示例
● 文本生成视频。与文本生成图像类似,文本生成视频扩散模型能够将输入的文本提示语转换为相应的视频流。不同的是,视频的前后帧需要保持极佳的连贯性。文本生成视频也有非常广泛的应用,如Meta AI的Make-A-Video(如图1-20所示)以及能够精细控制视频生成的ControlNet Video等。图1-21展示了Hugging Face上的ControlNet Video Space应用界面。
图1-20 Meta AI的Make-A-Video:一条身着超人外衣、肩披红色斗篷的狗在天空中翱翔
● 文本生成3D。同样,文本生成3D扩散模型能够将输入的文本转换为相应的3D物体。稍有不同的是,3D物体的表征有多种方式,如点云、网格、NeRF等。不同的应用在实现方式上也略有差异,例如:DiffRF提出了通过扩散的方法实现从文本生成3D辐射场的扩散模型,如图1-22所示;3DFuse实现了基于二维图像生成对应的3D点云,我们可以在Hugging Face上体验官方给出的演示实例,如图1-23所示。虽然目前文本生成3D技术仍处于起步阶段,但其应用前景非常广阔,包括室内设计、游戏建模、元宇宙数字人等。
图1-21 Hugging Face上的ControlNet Video Space应用界面
图1-22 使用DiffRF生成3D沙发
图1-23 Hugging Face上的3DFuse Space应用界面
AI基础科学又称AI for Science,它是人工智能领域具有广阔前景的分支之一,甚至能够发展为造福全人类的技术。与AI基础科学相关的研究成果也不止一次荣登《自然》杂志。例如,2021年DeepMind研究的AlphaFold 2可以预测人类世界98.5%的蛋白质,2022年DeepMind用强化学习控制核聚变反应堆内过热的等离子体等。
扩散模型对生成类的任务一直表现十分专业,AI基础科学中生成预测类的研究当然也少不了扩散模型的参与。SMCDiff创建了一种扩散模型,该扩散模型可以根据给定的模体结构生成多样化的支架蛋白质,如图1-24所示。CDVAE则提出了一种扩散晶体变分自编码器模型,旨在生成和优化具有固定周期性原子结构的材料[7],[8],如图1-25所示。
[7] Brian L Trippe, Jason Yim, Doug Tischer, Tamara Broderick, David Baker, Regina Barzilay, and Tommi Jaakkola. Diffusion Probabilistic Modeling of Protein Backbones in 3D for the Motif-Scaffolding Problem. In International Conference on Learning Representations. 2023.
[8] Tian Xie, Xiang Fu, Octavian-Eugen Ganea, Regina Barzilay, and Tommi S Jaakkola. Crystal Diffusion Variational Autoencoder for Periodic Material Generation. In International Conference on Learning Representations. 2021.
图1-24 SMCDiff生成的多样化的支架蛋白质
图1-25 CDVAE生成的遵循Langevin动力学的不同原子结构的材料