在当前生成式AI(AIGC)的发展中,
微调适配器(Fine-tuned Adapters)已成为一种标准方法,允许用户以一种较低的存储和计算成本的方式来个性化定制图像
。随着计算机视觉和人工智能开源社区的迅猛发展,
社区中存在的高效适配器数量已经超过10万个,主要以低秩适配(Low-Rank Adaptation, LoRA)为主
,但它们大多都专属于某一些独特的领域,很难做到通用和泛化。为了进一步提高适配器的性能,
本文介绍一篇刚刚发表在NeurIPS 2024上的研究论文,本文提出了一种名为Stylus的适配器组合框架,它可以根据用户提示的关键字来有效地选择和自动组合特定于任务的适配器
。这使得模型能够快速适应到具备用户偏好的下游目标域中,从而实现更好的生成效果。
论文题目:
Stylus: Automatic Adapter Selection for Diffusion Models
论文链接:
https://openreview.net/forum?id=3Odq2tGSpp
代码仓库:
https://github.com/stylus-diffusion/stylus
项目主页:
https://stylus-diffusion.github.io/
一、引言
在目前的生成式图像模型社区中,Adapters方法无疑是最受欢迎的新兴技术,在Civit AI和Hugging Face等模型平台上,Adapters方法的数量已经超过10万个,并且主要以LoRA模型为主。
除此之外,
基于检索增强生成(Retrieval-Augmented Generation, RAG)的方法也展现出了优越的性能
,其主要通过向量嵌入和相似性检索在推理时对生成模型进行增强。随后也出现了组合Adapters的新技术路线,
例如通过组合多个Adapters来协同工作,以对特定的下游任务提升生成性能
。本文介绍的Stylus框架也遵循该路线,其旨在解决以下关键挑战:
-
如何
从海量Adapters中自动选择与用户提示词(prompt)最相关的Adapter
-
如何有效地
组合多个Adapter
以生成高质量、多样性的图像
-
如何
避免Adapter组合可能引入的偏见
和图像质量下降问题
具体来说,Stylus提出了一种三阶段框架,可以自动检索与当前任务相近的Adapters Card,并根据用户提示的关键字进一步组合Adapters。
上图展示了Stylus与普通扩散模型(SD v1.5)的文本到图像生成效果对比,可以看出,Stylus可以更好的拟合用户提示的上下文场景。并且生成高质量、具备多样性的图像。
二、本文方法
为了应对现实场景中的复杂需求,例如用户提示通常会指定多个细粒度的任务。
这一挑战不仅包括检索与整个用户提示相关的Adapter,还包括将它们与提示中的特定任务进行匹配
。此外,如果只是简单地组合多个Adapters也会将外部偏差注入到模型中,从而影响生成质量。为了解决上述挑战,
本文提出Stylus包含三个处理阶段,分别是优化(Refine)、检索(Retrieve)和组合(Compose)
,其整体工作流程如下图所示。
其中,
Refiner模块会将从Adapter库中选取合适的模型插入到 VLM 以生成与当前任务相关的文本描述
,然后通过编码器生成相应的文本嵌入。Retriever获取与整个用户提示相关的候选Adapter。最后,Composer根据提示的任务(对应于一组关键字)对剩余的Adapters进行修剪和适当组合。
2.1 Refiner模块
Refiner的核心目标是为每个Adapter生成高质量的描述性文本嵌入
。对于一个给定的Adapter
,Stylus会根据预训练的视觉语言模型(VLM)对
生成描述。例如将
的模型信息打包输入到VLM中,分别包含随机抽样的示例图像集
,对应的提示词集
,以及原始作者提供的描述
(也可以使用更大型的专家模型,例如Gemini Ultra对描述进行改进)。
为了实现更高效的组合,Refiner也会针对基于LoRA的Adapter提供合适的权重系数
。随后使用嵌入模型
将描述
转换为嵌入向量
,并将这些嵌入向量存储在向量数据库
中。
2.2 Retriever模块
在得到所有Adapters对应的嵌入向量数据库后,Retriever会从中检索出与用户提示词检索最相关的Adapter。
具体来说,Retriever首先使用相同的嵌入模型
处理用户提示词
,生成提示词嵌入
,并计算提示词嵌入与Adapters嵌入矩阵
的余弦相似度
,计算公式如下:
并根据该结果选取相似度最高的前
个适配器(本文
设置为150)。
2.3 Composer模块
Composer是Stylus的核心模块,
其首先将提示词分解为不同任务的关键词,随后为每个任务分配最相关的适配器
,这一过程可以直接形式化表示为:
其中
表示从提示词中识别的任务集合,
是分配给任务
的适配器子集,
是判断适配器是否与任务对齐的谓词,
Stylus内置了Gemini 1.5通过上下文学习来完成这一复杂的对齐和分配过程
。
为了进一步提高图像多样性和降低低质量Adapter的影响,
Stylus引入了一个简单巧妙的掩码机制,即对于每个任务均生成候选掩码
,其可以是全1向量
或全0向量
,随后通过对所有任务的掩码进行交叉积
,生成多样的Adapters组合
。
(1) 对Adapters的权重进行合并时,
如果单个任务的权重过大,可能会在生成结果中引入视觉伪影
。
(2)跨任务的Adapters在
权重空间往往是正交的
。
基于上述分析,作者设计了如下的Adapters权重合并公式:
其中
是最终模型权重,
是基础模型权重,
是缩放因子(文中设为0.8),
借助于这种设计,Stylus可以实现高效的Adapters组合效果,同时可以有效抑制不相关或有偏见的Adapters
。这种方法不仅在文本到图像生成中表现出色,还可以扩展到图像翻译和图像修复等其他图像生成任务中。
三、实验效果