本文来自于微信公众号 AIGC开放社区(ID:AIGCOPEN),作者:AIGC开放社区。
前不久,著名开源生成式AI平台Stability.ai发布了,全新文生图模型SDXL Turbo。该模型只需1秒甚至更少的时间就能生成高精准图片,可将通常50个生成步降至1—4步。
Stability.ai表示,SDXL Turbo能有如此快的推理效率是使用了全新的技术——对抗式扩散蒸馏(Adversarial Diffusion Distillation,简称ADD)。
简单来说,ADD就是在“疯狂内卷+严师指导”的双重模式下,用最短的时间、最高效的学习方法考上了清、北。
现在你读上面那段话可能有点迷糊,看完全文后你就会心疼ADD,像极了当年学习的自己。
什么是大模型蒸馏
为了更好地理解ADD技术原理,「AIGC开放社区」先用通俗易懂的方式为大家介绍一下大模型中的“蒸馏”到底是什么技术。
模型蒸馏是一种将大型复杂模型(通常称为“教师模型”)的知识传输到小型简化模型(即“学生模型”)的技术。
蒸馏过程就像把水果压榨成精华果汁一样,我们尝试保留大模型中最重要的信息,并且让小模型能够捕获并模仿这些内容。
或者可以理解成老师教学生的过程,全部知识不一定都学会,但重要知识点肯定都掌握了。
而ADD能以最快的推理效率生成高质量图片,便使用了对抗损失和分数蒸馏两项重要技术。
一个负责生成图片的质量,另外一个充当“老师”负责教会小模型捕捉重要知识点并进行指导修正。
对抗损失
对抗损失是ADD框架中的一大关键功能。引入了对抗学习的思想,让学生模型与判别器之间进行激烈对抗。
对抗学习源于GAN模型,其核心思路是通过竞争促进模型快速逼近复杂分布。学生模型想方设法生成高质量图像蒙骗判别器,而判别器则全力识破这些虚假的图片。
所以,两人就不得不拼命的内卷,最后生成的图片质量越来越高。此外,对抗过程还可引入条件信息,如文本或图像的特征向量,以增强对应性。
对抗损失中的判别器包含两部分:一个特征提取器和几个判别头。特征网络可以预先在图像分类等任务上训练,然后切掉分类层拿特征向量。这样可以重复使用以前学到的知识。
判别头则在特征的基础上判断图像真伪。训练目标就是最大化真实图的分数,最小化假图的分数。
分数蒸馏
分数蒸馏的核心思想是,让老师模型教学生模型传授重要知识帮助ADD捕获模型的知识点。就是咱们前面介绍的“模型蒸馏”概念。
ADD的老师模型使用了Stability.ai自研性能强大的Stable Diffusion XL和Stable Diffusion2.1两个扩散模型,来监督学生模型ADD-M和ADD-XL生成的图片结果。
具体流程是,先将学生模型生成的图片进一步加噪声,模拟扩散过程,然后让老师模型基于噪声图像输出它的还原结果。
这个还原结果可以作为学习目标,并成为学生模型的生成目标,使自己的图片可以匹配老师模型。同时在老师的指点下,逐步修正偏差达到最佳效果。
在训练过程中,学生模型需要同时面对判别器的对抗,和老师模型的严厉监督,在二者的双重驱动下不断进步。
所以,在最终输出阶段学生模型能用极少的采样步骤1—4,就能输出高质量精准图片。
哎~~万万没想到现实中的高压学习、生活方法也适用于大模型界,看来开发灵感真的无处不在啊,真是名师出高徒,严父出孝子。