微软让LoRA家族再次壮大 | LoRA与模型蒸馏相结合有效地压缩扩散模型,性能依旧不减

418次阅读
没有评论

点击下方卡片,关注AI视界引擎」公众号

微软让LoRA家族再次壮大 | LoRA与模型蒸馏相结合有效地压缩扩散模型,性能依旧不减

扩散模型,如稳定扩散(SD),能够生成具有多样化特性的高分辨率图像,但计算和内存成本较高。在分类器无关的引导扩散模型中,每次去噪步骤需要计算两个独立的扩散模型,导致推理时间延长。最近的研究表明,通过蒸馏技术可以改善推理时间,使模型在计算减少的情况下执行相似的去噪步骤。然而,蒸馏的应用增加了这些已经资源密集的扩散模型的额外内存开销,使其变得不太实际。

为解决这些挑战,作者的研究探索了一种新颖的方法,该方法将低秩自适应(LoRA)与模型蒸馏相结合,以有效地压缩扩散模型。这种方法不仅减少了推理时间,还减轻了内存开销,而且在应用蒸馏之前,内存消耗显著降低。结果令人印象深刻,由于蒸馏过程,推理时间显著减少,内存消耗减少50%。作者对生成的图像的分析表明,将LoRA增强的蒸馏纳入,保持了图像质量和与提供的提示的对齐。总之,尽管传统的蒸馏会增加内存消耗,但LoRA增强的蒸馏在质量和无损耗的情况下实现了优化。

1 Introduction

扩散模型,如尖端架构(如稳定扩散(SD)、GLIDE、DALLE和Imagen),已经发展成为最先进的生成模型,可以生成具有大量多样化特征的高分辨率图像。然而,这些非凡的模型具有固有的局限性,特别是它们巨大的大小、内存占用和延长的推理时间。

在解决推理时间过长的背景下,作者之前已经证明,某些去噪迭代具有较低的敏感性,提供了重大的优化机会。近年来,该领域的发展表明,通过使用蒸馏技术,可以将在所有迭代中实现优化。然而,需要注意的是,虽然蒸馏可以有效地减轻推理时间问题,但这也引入了一个新的困境,即加剧了内存消耗。这主要是由于需要存储教师模型和学生模型的参数。

本文介绍了一种创新且协同的方法,将蒸馏与低秩自适应(LoRA)的概念相结合。这种方法实现了两个关键目标:首先,它最小化了推理时间;其次,它完全消除了与蒸馏相关的额外内存开销。此外,它还在应用蒸馏之前显著降低了模型的总内存消耗。这种双重效益不仅优化了模型的推理速度,还从一开始提高了其内存效率。因此,这种新颖的技术有望推动扩散模型的进步,极大地提高其整体效率和资源利用率。

Classifier-free diffusion models

无分类引导是GLIDE、稳定扩散、DALL-E 2和Imagen等扩散模型中的一种有价值的技巧,它根据特定条件来提高生成样本的质量。它引入了一个指导权重参数 “s” 来平衡生成样本的质量和多样性。该方法涉及在每个更新步骤生成条件和无条件项,并用加权组合计算模型预测:

在这里, 是结合噪声, 是无条件项, 是条件项, 调整了扰动。

Applying Distillation to SD

利用蒸馏为优化指导扩散模型(如SD)提供了有利的机会。在[4]中,作者将蒸馏过程应用于SD,结果明显降低了推理成本。为了简单起见,作者专注于将蒸馏应用到一个方向上,以展示如何在不降低结果质量的同时提高效率。在这种方法中,教师模型使用两个扩散模型计算组合噪声,而学生模型只计算一个扩散模型,并通过蒸馏过程学习如何近似教师模型的组合噪声计算。这导致了推理时间的显著提高,达到40%的改善。

这种方法导致了更高的内存使用,因为需要复制权重矩阵,这是由于教师模型和学生模型的权重之间存在差异。在第三节中,作者将详细探讨这些权重矩阵的比较。在随后的部分中,作者将介绍将LoRA与蒸馏相结合的应用,以解决并减轻内存开销问题。

2 Proposing LoRA-Enhanced Distillation

在作者的方法中,作者将低秩自适应(LoRA)方法纳入到蒸馏过程的背景下,如图1所示。

微软让LoRA家族再次壮大 | LoRA与模型蒸馏相结合有效地压缩扩散模型,性能依旧不减

如图所示,教师模型和学生模型在潜在空间中接收到带有噪声的图像以及额外的条件,例如文本到图像生成的应用中的提示,用于去噪。在这种设计中,教师利用原始的引导扩散架构计算两个独立的噪声:条件噪声()和无条件噪声(),并生成参考1中的组合噪声()。通过蒸馏过程,学生模型学习到只需计算一半的相同噪声,从而导致了推理时间的显著减少。

关于权重处理,作者采用了LoRA技术将权重矩阵分解为两个组成部分:原始权重()和一系列低秩矩阵(A, B)。这种分解使模型能够在保留中的关键信息的同时,使用低维的_A, B_矩阵有效地更新和适应模型的行为。

作者方法的一个显著创新是,学生模型和教师模型共享权重矩阵。这种方法完全消除了专门为教师模型分配的独立内存资源的需求。通过共享相同的权重矩阵,教师的信息变得内在地嵌入在学生模型中,从而消除了为教师分配额外内存资源的需求。

因此,将LoRA与蒸馏相结合提供了双重优势。首先,它完全消除了与维护独立教师模型相关的内存开销,这在内存限制是一个显著关注的情况下特别有价值。其次,LoRA固有的高效适应和微调神经网络权重的能力进一步减少了适应过程中的内存需求。因此,这种结合方法不仅消除了对教师内存的需求,还优化了权重适应过程中的内存效率,使其成为在资源受限的机器学习设置(如扩散模型)中非常有价值的资产。

Experiments

在作者的实验中,作者采用了一种指导扩散模型,即SD架构,并使用Huggingface Pipeline和Dreambooth来实现。作者的训练数据是一个由SD预生成的庞大图像数据集。这些实验在一个运行CUDA版本11.6的Tesla V100 GPU上进行。作者在该模型上应用了LoRA技术进行蒸馏。作者的结果表明,在保持图像质量的同时,由于蒸馏过程,作者实现了40%的推理时间减少,以及50%的内存消耗减少,这突显了在当前背景下使用LoRA的优势。

Image quality

图2显示了图像质量的比较。第一列显示了基准图像,而第二列显示了使用蒸馏生成的图像,所有其他参数保持不变,包括提示和种子。

微软让LoRA家族再次壮大 | LoRA与模型蒸馏相结合有效地压缩扩散模型,性能依旧不减

如图所示,使用增强的LoRA蒸馏并不会降低图像质量或破坏其与给定提示的对齐。本质上,虽然使用蒸馏可能会损害结果质量,但使用增强的LoRA蒸馏可以确保在不引入任何关于结果质量的权衡或妥协的情况下进行优化。

Memory consumption

在表1中,作者检查了每个配置的最大运行时内存消耗。”内存节省”列表示基准模型与各自模型之间的内存消耗差异与基准模型本身的内存消耗之比。如表所示,应用蒸馏会导致内存消耗增加16%。然而,当采用增强的LoRA蒸馏时,不仅没有额外的内存开销,而且内存节省方面也取得了显著的改进,内存节省率增加了51%。

微软让LoRA家族再次壮大 | LoRA与模型蒸馏相结合有效地压缩扩散模型,性能依旧不减

4 Conclusion

总之,作者的研究提出了一种创新的方法,通过将LoRA技术集成到模型蒸馏中,有效地解决了推理时间减少和内存消耗的问题。通过实证实验,作者证明了在各个方面都取得了显著的改进。将增强的LoRA蒸馏集成不仅导致了推理时间的显著减少,证明了蒸馏的有效性,而且还实现了50%的内存消耗减少,消除了蒸馏通常关联的剩余内存开销。

此外,作者对生成的图像进行分析,强调了这种方法在保持图像质量和与提示的对齐方面的鲁棒性,甚至超过了仅使用蒸馏实现的结果。这项工作突显了增强的LoRA蒸馏作为大型扩散模型的强大优化技术潜力,提供了关于效率和结果质量的明确优势。

参考

[1].LoRA-Enhanced Distillation on Guided Diffusion Models.

微软让LoRA家族再次壮大 | LoRA与模型蒸馏相结合有效地压缩扩散模型,性能依旧不减

点击上方卡片,关注「AI视界引擎」公众号

 

Read More 

正文完
可以使用微信扫码关注公众号(ID:xzluomor)
post-qrcode
 
评论(没有评论)
Generated by Feedzy