🎀个人主页: https://zhangxiaoshu.blog.csdn.net
📢欢迎大家:关注🔍+点赞👍+评论📝+收藏⭐️,如有错误敬请指正!
💕未来很长,值得我们全力奔赴更美好的生活!
前言
近年来,扩散模型近年来取得了迅速的发展。扩散模型被广泛应用于文本到图像生成、文本到视频生成、点云完成和生成等各种生成式任务上。然而,从头训练一个扩散模型往往涉及巨大的计算成本和时间投入,限制了其在实际应用中的广泛使用。为了克服这一挑战,研究者们开始关注如何在现有的通用扩散模型基础上,通过微调的方式,将模型专门适应特定的下游任务。微调的思想源于对预训练模型知识的有效重用,通过在具体任务上进行有针对性的调整,以适应不同的应用场景。
文章目录
- 前言
- 1. PEFT
- 2. Prefix Tuning
- 3. DreamBooth和HyperDreamBooth
- 4. AdaLoRA
- 5. DiffFit
- 6. Uni-ControlNet
- 7. Textual Inversions
- 8. InstructCV
从头训练一个扩散模型的代价巨大,因为它需要大规模的数据和计算资源,并且通常需要对模型的架构和超参数进行仔细调整。相比之下,基于微调的方法在保留了预训练模型的通用性的同时,能够更加高效地适应不同的任务需求。这种方法不仅可以显著降低训练成本,同时还能够在更短的时间内实现模型的迭代和优化。
因此,通过在通用扩散模型的基础上进行微调,能够在计算效率和任务适应性之间找到平衡点,为各种特定的下游任务提供了一种灵活、可行的解决方案。这一研究方向的快速发展为在实际应用中更广泛地利用扩散模型提供了有力支持,同时为未来的深度生成模型研究开辟了新的方向。
1. PEFT
论文:Parameter-Efficient Transfer Learning for NLP
2019年,谷歌的研究人员首次提出了一种新的微调方式,即PEFT(Parameter-Efficient Transfer Learning for NLP),并在论文中详细介绍了这一方法,为PEFT研究开辟了新的方向。他们指出,在处理特定的下游任务时,进行完全微调(Full-Finetuning,即微调预训练模型中的所有参数)效率较低。另一方面,如果采用固定预训练模型的某些层,只微调接近下游任务的那几层参数,虽然效率提高,但很难获得令人满意的性能。PEFT方法旨在解决这一问题,实现在保持高效性的同时获得较好的模型性能。这一研究为微调方法的发展提供了新的思路和实践经验。
2. Prefix Tuning
论文:Prefix-Tuning: Optimizing Continuous Prompts for Generation
在2021年,斯坦福大学的研究人员在论文《Prefix-Tuning: Optimizing Continuous Prompts for Generation》中提出了一种新的微调方法,称之为Prefix Tuning。与Full-finetuning不同,该方法在进行训练之前不是更新所有参数,而是在输入token之前构造一段与任务相关的虚拟tokens作为Prefix。在训练过程中,仅更新Prefix部分的参数,而Transformer中的其他部分参数则保持固定。这一方法的思想与构造Prompt类似,但是与Prompt不同的是,Prefix是一种可以学习的“隐式”提示,相对于显式构造的Prompt具有更大的灵活性。这种新的微调方法为生成模型提供了一种更为高效且可控的调整方式。
3. DreamBooth和HyperDreamBooth
论文:DreamBooth: Fine Tuning Text-to-Image Diffusion Models for Subject-Driven Generation
论文:HyperDreamBooth: HyperNetworks for Fast Personalization of Text-to-Image Models
在CVPR 2023中Google研究院提出了一种用于文本到图像扩散模型的“个性化”新方法DreamBooth。仅给定主体的几张图像作为输入,通过微调预训练的文本到图像模型,使其学会将唯一标识符与特定主体绑定。一旦主体嵌入到模型的输出领域中,唯一标识符可用于在不同场景中合成主体的新的照片级图像。通过利用嵌入在模型中的语义先验和新的自生成类特定先验保持损失,这项技术能够应用于主体再背景化、文本引导的视图合成和艺术渲染,同时保留主体的关键特征。
之后,Google研究院又提出了HyperDreamBooth——一个能够从一个人的单张图像中高效生成一小组个性化权重的超网络。通过将这些权重组合到扩散模型中,再加上快速微调,HyperDreamBooth能够在各种情境和风格中生成一个人的面部,保持高主体细节的同时还保留了模型对各种风格和语义修改的关键知识。在大约20秒内实现了对面部的个性化,比DreamBooth快25倍,比Textual Inversion快125倍,仅使用一张参考图像,而质量和风格的多样性与DreamBooth相同。此外,此方法生成的模型比普通DreamBooth模型小10000倍。
4. AdaLoRA
论文:Adaptive budget allocation for parameter-efficient fine-tuning
2023年微软等在ICLR中提出了AdaLoRA,该方法根据权重矩阵的重要性分数自适应地分配参数预算。具体而言,AdaLoRA将增量更新参数化为奇异值分解的形式。这种新颖的方法使我们能够有效地修剪不重要更新的奇异值,从而实质上减少其参数预算,同时避免了繁琐的精确奇异值分解计算。我们在自然语言处理、问答和自然语言生成等领域对几个预训练模型进行了广泛实验证明了AdaLoRA的有效性。实验结果表明,在低预算设置下,AdaLoRA相对于基线表现出显著的改进。
5. DiffFit
论文:DiffFit: Unlocking Transferability of Large Diffusion Models via Simple Parameter-Efficient Fine-Tuning
扩散模型在生成高质量图像方面已经被证明非常有效。然而,将大型预训练的扩散模型调整适应新领域仍然是一个待解决的挑战,这对于实际应用至关重要,2023年华为诺亚方舟实验室提出了DiffFit,这是一种参数高效的策略,用于微调大型预训练的扩散模型,以实现对新领域的快速适应。DiffFit非常简单,只微调了特定层中的偏差项和新增的缩放因子,但实现了显著的训练加速和减少模型存储成本。与完全微调相比,DiffFit实现了2倍的训练加速,并且只需存储大约总模型参数的0.12%。并且文中证明缩放因子对于快速适应的有效性。在8个下游数据集上,DiffFit在效率更高的同时实现了卓越或具有竞争力的性能。展示了DiffFit可以通过最小的成本将预训练的低分辨率生成模型调整适应高分辨率的模型。
6. Uni-ControlNet
论文:Uni-ControlNet: All-in-One Control to Text-to-Image Diffusion Models
2023年香港大学Shihao Zhao等人提出了Uni-ControlNet,这是一个统一的框架,允许在单一模型内以灵活且可组合的方式同时利用不同的局部控制(例如,边缘图、深度图、分割蒙版)和全局控制(例如,CLIP 图像嵌入)。与现有方法不同,Uni-ControlNet只需要对冻结的预训练文本到图像扩散模型进行两个额外适配器的微调,消除了从头开始训练的巨大成本。此外,由于一些专门的适配器设计,Uni-ControlNet只需要一个常数数量的适配器(即2个),而不管使用的局部或全局控制的数量。这不仅降低了微调成本和模型大小,使其更适合实际部署,还促进了不同条件的可组合性。通过定量和定性比较,Uni-ControlNet在可控性、生成质量和可组合性方面展示了其优越性。
7. Textual Inversions
论文:An Image isWorth One Word: Personalizing Text-to-Image Generation using Textual Inversion
英伟达在ICLR 2023上提出了引入个性化、语言引导的生成任务,其中利用文本到图像模型创建特定概念在新环境和场景中的图像方法Textual Inversions,通过将概念反转为预训练文本到图像模型的文本嵌入空间中的新伪词而运作。这些伪词可以通过简单的自然语言描述注入到新场景中,从而实现简单且直观的修改。在某种意义上,此方法允许用户利用多模态信息,使用基于文本的界面轻松进行编辑,整个diffusion model以及Text Encoder都是冻结的,训练的优化目标是让文本编码器找到最最合适的嵌入向量,就是一个单词与其对应向量的映射记录,是一个非常非常小的数据,一般只有十几K。因此Textual Inversion的微调方法非常的轻量化,
8. InstructCV
论文:InstructCV: Instruction-Tuned Text-to-Image Diffusion Models as Vision Generalists
2023年北京大学和加州大学为计算机视觉任务开发了一个统一的语言接口,抽象了特定任务设计选择,并通过遵循自然语言指令执行任务。涉及将多个计算机视觉任务视为文本到图像生成问题。在这里,文本表示描述任务的指令,生成的图像是一个视觉编码的任务输出。为了训练模型,汇总了涵盖一系列任务的常用计算机视觉数据集,包括分割、目标检测、深度估计和分类。然后使用大型语言模型对传达每个图像上要执行的具体任务的提示模板进行释义,通过这个过程,创建了一个包括输入和输出图像以及带有注释的指令的多模态和多任务训练数据集。在InstructPix2Pix架构的指导下,使用构建的数据集对文本到图像扩散模型进行指令调整,将其功能从生成模型引导到指令引导的多任务视觉学习器。实验验证了InstructCV与其他通用和任务特定的视觉模型相比表现出竞争力。此外,它展现了强大的泛化能力,适用于未见过的数据、类别和用户指令。
参考:
大模型微调总结
SD模型微调方法
文中有不对的地方欢迎指正。