您是否听说过SDXL Turbo?这是SDXL文生图模型的对抗性扩展蒸馏版本,可以在文本提示词的基础上实时生成各种图像。在高通Cloud AI 100 Ultra平台(热设计功耗150瓦)上,我们大约每250毫秒即可针对4条不同的提示词生成4张图像。请继续阅读,以了解更多有关现有方法的信息,并在高通云人工智能广场中亲自尝试这些方法。
DevelopCloud Al
合成以给定文本描述的图像是深度生成式人工智能模型的广泛应用之一。该类模型所依据的数学框架各不相同,其中许多数学框架已有近十年的历史,包括:变分自编码器(2012年),生成式对抗网络 (GANs) (2014年),以及归一化流(2015年)。最近,去噪扩散概率模型(2015年、2020年)及其一般模型(例如:流匹配(2022年))已经成为创建高质量图像的强大替代方案。
三难困境
肖等人于2022年首次提出了“生成式学习的三难困境”这一术语,以描述生成式模型的三项要求,而上文所述及的任何数学框架均无法满足全部这三项要求。
这三项要求包括:
1. 能够生成高质量样本;
2. 能够产生表明整个分布情况的不同输出量(即:模式覆盖);
3. 能够快速生成样本。
要求 | VAE/归一化流 | GAN | 扩散模型 |
高质量样本 | 无 | 是 | 是 |
不同输出 | 是 | 否 | 是 |
快速生成样本 | 是 | 是 | 否 |
如上表所示,生成式对抗网络可以快速生成高质量样本——因为生成式对抗网络仅对生成器进行1次评估,即需要1次NFE(网络函数评估)。各种扩散模型同样可以生成高质量的图像,甚至优于生成式对抗网络(达利瓦尔,2021年),但是,由于其具有的采样迭代性,扩散模型生成图像的速度要慢得多,并且需要上百次的NFE。
各种扩散模型在生成输出时,均从随机输入开始,并通过将结构逐步引入到输出的方式消除随机性,从而完成一系列的去噪步骤。在有条件生成的情况下(例如:利用无分类器引导 (CFG) 技术生成与给定文本提示词相对应的图像),每个去噪步骤均要调用去噪神经网络2次。CFG通过名为“引导强度”这一参数实现了多样性和样本质量之间的平衡,并同样可以用于限制模型,以避免所生成图像中的某些概念,这是通过“负面提示词”指定的。因此,各种扩散模型所需要的网络函数评估次数相当于去噪步骤的2倍。
解决三难困境的方法
如要解决三难困境,一个活跃的研究领域是加快扩散模型的采样流程,以改进其不足之处。
1. 引导蒸馏是一种将每一步需要两个NFE的去噪网络提取到另一个只需要1个NFE的去噪网络的技术。
2. 在各种扩散模型中采样相当于对一个(随机/常)微分方程求解。不应通过黑盒解算器对该微分方程求解,如利用扩散微分方程结构来构造解算器,则可以通过15个去噪步骤对高质量图像进行采样(扩散概率模型-解算器++)。点击此处,您可以在AI 100平台上的Stable Diffusion模型尝试该解算器。这种方法的主要卖点是其可以在推理时应用,而不需要重新训练模型。
3. 另一种方法是利用网络架构搜索 (NAS) 发现更简单的网络并对其权重进行微调,以减少去噪网络的计算需求。我们通过这种方法构建了Deci扩散模型,并通过该模型额外减少了所需要的去噪步骤。点击此处,可以在高通Cloud AI加速器上使用该方法。
4. 还有另一种方法,也就是本文的重点,即对抗性扩散蒸馏 (ADD) 。这是一种采用强大基础扩散模型(例如:SDXL)的新方法,可以通过若干次NFE生成具有吸引力、以文本为条件的高质量图像。利用这种方法可以非常快的生成图像。
对抗扩散蒸馏 (ADD)
对抗性扩散蒸馏 (ADD) 是绍尔等人提出的一种创新性训练技术,可通过蒸馏SDXL(一种大型基础扩散模型)的方式来创建SDXL Turbo模型。在没有分类器指导的情况下,该项技术可以使用1到4个去噪步骤,通过文本提示词生成分辨率为512x512的图像。其区别性特征在于训练中所使用的损失函数。该项技术由两部分组成:
- 分数蒸馏采样 (SDS) 损失
- 对抗性 (AD) 损失。
在普尔等人进行的开创性工作中首先引入了 SDS损失,可通过蒸馏预训练大规模文生图扩散模型的方式进行文本到三维图像生成。利用该项技术可以将预训练基础二维模型中所体现的知识转移到下游任务中,但是,就其自身而言,该项技术会产生模糊、过饱和的图像。通过整合对抗性 (AD) 损失,ADD能够通过少量去噪生成高保真的清晰图像,同时不会产生分散注意力的伪影。另外,研究显示ADD也优于其他模型,例如LCM和单步生成式对抗网络。
SDXL Turbo
综上所述,SDXL Turbo是一款具有以下特点的模型:
- 通过文本提示词生成512x512图像。
- NFE次数:1到4次。
- 无负面提示词或CFG
仅通过1次NFE 创建的图像示例
- “一个经典侦探的戏剧性镜头,穿着风衣,戴着软呢帽,站在被雨水淋透且灯光昏暗的小巷里。”
- “梦幻般的数字艺术捕捉到了郁郁葱葱的雨林中一只充满活力、色彩斑斓的鸟。”
- “在黑暗的房间中央,一只着火的折纸猪”
实验结果
在本节中,我们将介绍在高通Cloud AI 100 Ultra上运行SDXL Turbo的结果。
出于保真度的原因,我们将精度保持在FP16。此外,我们对多个推理步骤进行了实验,以彻底评估性能。我们还设置了一个切换到SDXL小型自动编码器(TAESDXL)的选项,该自动编码器从原变分自编码器蒸馏而来。
该选项大幅度减少了变分自编码器模块的延迟,但代价是丢失了所生成图像的某些精微细节。
后续步骤
使用SDXL Turbo,仅通过几个采样步骤就可以快速进行文生图。我们的实验表明,利用在高通云人工智能加速器上运行的SDXL Turbo可以实现高效、低功耗的图像生成。
这样的高效率激励着我们进行进一步的探索,例如快速生成具有更高分辨率的图像,以及更加先进的文生图模型。
今天就从高通云人工智能广场开始吧。
请加入本公司的开发人员Discord社区,以便与其他开发人员联系,并获得最新消息和及时的技术支持。
在所发布内容中表达的观点仅为原作者的个人观点,并不代表高通公司或其子公司(以下简称为“高通公司”)的观点。所提供的内容仅供参考之用,而并不意味着高通公司或任何其他方的赞同或表述。本网站同样可以提供非高通公司网站和资源的链接或参考。高通公司对于可能通过本网站引用、访问、或链接的任何非高通公司网站或第三方资源并没有做出任何类型的任何声明、保证、或其他承诺。
关于作者
张博楠
高级工程师
