【论文阅读笔记】Continual Diffision: Continual Customization of Text-to-Image Diffusion with C-LoRA

论文信息

论文标题

Continual Diffision: Continual Customization of Text-to-Image Diffusion with C-LoRA

发表刊物

arXiv2023

作者团队

三星(美国)、佐治亚理工大学

关键词

Continual Learing, Diffusion Model, Text-to-Image, LoRA

文章结构

C-LoRA
Introduction
Background
Conditional Image Generation Models
Continual Learning
PEFT
Method
C-LoRA
Self-Regularization
Experimental Setup
Datasets
Baselines
Implementation details
Continual Text-to-Image Experimental
Setup
Implementation Details
Metrics
Baselines
Continual Customization of Real Faces
Continual Customization of Landmarks
Multi-Concept Generations
Continual Image Classification Experiments
Conclusion

引言

研究动机

解决文生图场景中的灾难性遗忘问题,即模型学习了新“概念”但降低了旧“概念”的生成能力。值得一提的是,这里的“概念”是一种抽象的对某一类事物的概括, 例如本文讨论较多的人脸和地标建筑概念。由于本文着重学习C-LoRA的思想,对扩散模型和文生图的技术细节和实验环节将不是重点。

任务背景

  • P1介绍文生图场景,引出该场景中的持续学习场景。
  • P2介绍Continual Diffusion,即text2image+few-shot+CL;还介绍了解决CD问题的一般方法(复习数据重新训练)及其缺点;
  • P3介绍本文C-LoRA: CustomDiffusion->C-LoRA
    • 将cross attention layer的固有框架应用low-rank的方式;
    • 利用self-regularization机制保存过去概念的知识;
    • 使用custom tokenization 策略减少自定义对象的word(之前工作也常用)并且初始化为随机embeddings(之前工作是arbitrary embeddings)
  • P4是对比和总结。 传统task-specific adapters或定制化tokens/words不是很令人满意的方式,因为前者其实是MOE,即多个专家模型的结合,例如每个“概念”对应一个,但解决多个“概念”的生成就会有问题;而后者学习到的是更细粒度的特征,例如某个人特定的脸部特征,而不是人脸这样一个抽象的概念。

技术背景

Conditional Image Generation Models

GAN, VAE, 偏向Diffsuion Models (U-Net)

Continual Learning

Prompt系列工作更多,偏向CV;

PEFT

偏向LoRA;

创新方法

在这里插入图片描述

下面,我们主要根据模型结构图来具体理解本文的方法。

  • 左侧是方法主体结构,右侧是模块的详细解释。主图中,绿色部分是扩散模型,其中的黄色部分是U-Net网络,再U-Net中的浅绿色部分是交叉注意力机制层,固定Q不加LoRA,KV是可以加LoRA的。灰色表示其他模块,本文不关心,用灰色隐去。
  • 从数据流顺序来看,模型输入为Concept sequence概念序列,即不同类型的图片,本文为不同特征的人脸图像。Prompt是V的图像,V是自定义token,当第t个序列来临时,得到 V t ∗ V_t^* Vt(橘黄色),此时是不能访问 V t − 1 ∗ V_{t-1}^* Vt1(蓝色)。将Prompt输入Text Encoder后编码得到KV信息。KV中加入LoRA块,保持模型原参数 W i n i t W_{init} Winit不变,每个LoRA块对应一个A和B的weight deltas,当第t个LoRA来临时前面t-1个也是固定住的。在下面公式中, W t K , V \boldsymbol{W}_{t}^{K,V} WtK,V表示当前概念的KV参数, W t − 1 K , V \boldsymbol{W}_{t-1}^{K,V} Wt1K,V表示上一概念的KV参数,则当前概念KV参数=上一概念KV参数+当前概念的LoRA参数。而上一概念的KV参数=上上一概念KV参数+上一概念的LoRA参数,通过t次迭代得到当前概念KV参数=KV初始化参数+t个概念对应的LoRA参数;
    W t K , V = W t − 1 K , V + A t K , V B t K , V = W i n i t K , V + [ ∑ t ′ = 1 t − 1 A t ′ K , V B t ′ K , V ] + A t K , V B t K , V \begin{aligned} \boldsymbol{W}_{t}^{K,V}& =\boldsymbol{W}_{t-1}^{K,V}+\boldsymbol{A}_{t}^{K,V}\boldsymbol{B}_{t}^{K,V} \\ &=\boldsymbol{W}_{init}^{K,V}+\left[\sum_{t^{\prime}=1}^{t\boldsymbol{-}1}\boldsymbol{A}_{t^{\prime}}^{K,V}\boldsymbol{B}_{t^{\prime}}^{K,V}\right]+\boldsymbol{A}_{t}^{K,V}\boldsymbol{B}_{t}^{K,V} \end{aligned} WtK,V=Wt1K,V+AtK,VBtK,V=WinitK,V+[t=1t1AtK,VBtK,V]+AtK,VBtK,V
  • 这里用了self-regularization机制去缓解CF。
    L f o r g e t = ∣ ∣ [ ∑ t ′ = 1 t − 1 A t ′ K , V B t ′ K , V ] ⊙ A t K , V B t K , V ∣ ∣ 2 2 \mathcal{L}_{forget}=||\left[\sum_{t'=1}^{t-1}A_{t'}^{K,V}B_{t'}^{K,V}\right]\odot A_{t}^{K,V}B_{t}^{K,V}||_2^2 Lforget=∣∣[t=1t1AtK,VBtK,V]AtK,VBtK,V22
    即前面t-1个LoRA块加起来后的结果与最后一个t对应的LoRA块作Hadamard product运算(对应位置相乘),这种简单而直观的惩罚以高效率和高效率“self-regularization”了之后到来的LoRA。由于A和B是低秩矩阵,因此只产生很小的训练和存储成本。如果没有LoRA的参数效率,这种针对所有过去任务的正则化是不可能的。思考:这里为什么是前面加起来与后面作乘积呢?有什么理论解释吗?
  • 这里为什么只对U-Net中的cross-attention层做微调,是因为Kumari et al. show that the cross-attention parameters of the U-Net are
    most sensitive to change during Stable Diffusion customization. 而为什么只对KV层加LoRA是因为KV是输入引导条件的文本特征。

实验环节

略;

阅读思考

C-LoRA为什么是前面LoRA加起来与当前LoRA作对应位置乘积呢?有什么理论解释吗?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值