【论文阅读】A Closer Look at Parameter-Efficient Tuning in Diffusion Models

Abstract

大规模扩散模型功能强大,但微调定制这些模型,内存和时间效率都很低。
本文通过向大规模扩散模型中插入小的学习器(称为adapters),实现有效的参数微调。

特别地,将适配器的设计空间分解为输入位置、输出位置、函数形式的正交因子,执行方差分析(ANOVA),是一种分析离散和连续变量之间相关性的经典统计方法。

分析表明,适配器的输入位置是影响下游任务性能的关键因素,将适配器放到cross-attention块之后可以获得最好的性能。

1 Introduction

借助从海量数据中学习到的知识,大规模扩散模型作为下游任务的强先验。其中,DreamBooth对大规模扩散模型中的所有参数进行调优,生成用户想要的特定对象。但微调整个模型在计算、内存和存储成本方面是低效的。
另一种可选方法是源于NLP领域的参数高效迁移学习方法(parameter-efficient transfer learning methods),向模型中插入小型可训练模块(称为adapters),并冻结原始模型。这个方法在扩散模型领域未得到深入的研究。扩散模型中广泛使用U-Net结构,包含了更多的组件,如带有下/上采样算子的残差快、自注意力和交叉注意力等。这导致这个方法比基于Transformer的语言模型有更大的设计空间。

本文首次系统研究了大规模扩散模型中参数有效调节的设计空间。
将Stable Diffusion作为具体案例(唯一开源大规模扩散模型)。特别地,将适配器的设计空间分解为正交因子——输入位置、输出位置和函数形式。通过使用Analysis of Variance(ANOVA)对这些因素进行分析,发现输入位置是影响下游任务表现的关键因素。然后仔细研究了输入位置的选择,发现将输入位置放在交叉注意力块之后可以最大限度地鼓励网格感知输入prompt的变化,从而导致最好的性能。

根据本文的研究,在Dreambooth中介绍的个性化任务和在一组小的文本-图像对上进行微调的任务上,本文的最佳设置可以在0.75%额外参数内达到与微调方法相当甚至更好的结果。

2 Background

2.1 Diffusion Models

扩散模型通过逆转下式表示的加噪过程学习 q ( x 0 ) q(x_0) q(x0)的数据分布:
q ( x 1 : T ∣ x 0 ) = ∏ t = 0 T q ( x t ∣ x t − 1 ) q(x_{1:T}|x_0)=\prod_{t=0}^T q(x_t|x_{t-1}) q(x1:Tx0)=t=0Tq(xtxt1)
其中 q ( x t ∣ x t − 1 ) = N ( x t ∣ α t x t − 1 , β t I ) q(x_t|x_{t-1})=\mathcal{N}(x_t|\sqrt{\alpha_t}x_{t-1},\beta_t I) q(xtxt1)=N(xtαt xt1,βtI)对应一步加噪过程。反向的转变用一个高斯模型 p ( x t − 1 ∣ x t ) = N ( x t − 1 ∣ μ ( x t ) , σ t 2 I ) p(x_{t-1}|x_t)=\mathcal{N}(x_{t-1}|\mu(x_t),\sigma_t^2 I) p(xt1xt)=N(xt1μ(xt),σt2I)来近似,其中极大似然估计下的最优均值为
μ t ∗ ( x t ) = 1 α t ( x t − β t 1 − α ˉ t E [ ϵ ∣ x t ] ) \mu_t^*(x_t)=\frac{1}{\sqrt{\alpha_t}}(x_t-\frac{\beta_t}{1-\bar{\alpha}_t}\mathbb{E}[\epsilon|x_t]) μt(xt)=αt 1(xt1αˉtβtE[ϵxt])
其中 α t ˉ = ∏ i = 1 t α i \bar{\alpha_t}=\prod_{i=1}^t \alpha_i αtˉ=i=1tαi ϵ \epsilon ϵ是向 x t x_t xt注入的标准高斯噪声。为了获得最优均值,只需通过下式的噪声预测目标来估计条件期望 E [ ϵ ∣ x t ] \mathbb{E}[\epsilon|x_t] E[ϵxt]
min ⁡ θ E t , x 0 ∣ ∣ ϵ θ ( x t , t ) − ϵ ∣ ∣ 2 2 \min_\theta\mathbb{E}_{t,x_0}||\epsilon_\theta(x_t,t)-\epsilon||_2^2 θminEt,x0∣∣ϵθ(xt,t)ϵ22
其中 ϵ θ ( x t , t ) \epsilon_\theta(x_t,t) ϵθ(xt,t)是噪声预测网络,根据 ℓ 2 \ell_2 2损失的惩罚项找到最优解,满足 ϵ θ ∗ ( x t , t ) = E [ ϵ ∣ x t ] \epsilon_{\theta*}(x_t,t)=\mathbb{E}[\epsilon|x_t] ϵθ(xt,t)=E[ϵxt]
实践中,常常关心条件生成,为了使用扩散模型,只需要在训练时将条件信息 c c c引入到噪声预测网络中:
min ⁡ θ E t , x 0 , c ∣ ∣ ϵ θ ( x t , t , c ) − ϵ ∣ ∣ 2 2 \min_\theta\mathbb{E}_{t,x_0,c}||\epsilon_\theta(x_t,t,c)-\epsilon||_2^2 θminEt,x0,c∣∣ϵθ(xt,t,c)ϵ22

2.2 The Architecture in Stable Diffusion

U-Net架构是目前扩散模型最热门的架构,架构图见图3。
![[Pasted image 20240821222147.png]]

图3:顶部左侧展示了基于UNet的扩散模型的框架,顶部右侧展示了扩散模型是如何从第 T − 1 T-1 T1步从噪声数据去除噪声的。底部图展示了架构中残差快和Transformer块。适配器(图中红色块)是参数高效迁移学习方法中插入模型中的带有少量参数的模块。

U-Net由堆叠的基本块组成,每个基本块包含一个Transformer块和一个残差块。

Transformer块中,由三种子层:一个自注意力层(self-attention layer),一个交叉注意力层(cross attention layer),一个全连接前馈网络(fully connected feed-forward network)。
注意力层在queries Q ∈ R n × d k Q\in\mathbb{R}^{n\times d_k} QRn×dk、key-value pairs K ∈ R m × d k , V ∈ R m × d v K\in\mathbf{R}^{m\times d_k},V\in\mathbf{R}^{m\times d_v} KRm×dk,VRm×dv上进行操作:
Attn ( Q , K , V ) ∈ R n × d v = softmax ( Q K T d k ) V (1) \text{Attn}(Q,K,V)\in\mathbb{R}^{n\times d_v}=\text{softmax}(\frac{QK^T}{\sqrt{d_k}})V\tag{1} Attn(Q,K,V)Rn×dv=softmax(dk QKT)V(1)
其中 n n n是queries的数量, m m m是key-value pairs的数量, d k d_k dk是key的维度, d v d_v dv是value的维度。
在自注意力层中, x ∈ R n × d x x\in\mathbb{R}^{n\times d_x} xRn×dx是唯一的输入。
在扩散模型的交叉注意力层中,有两个输入,分别是 x ∈ R n × d x x\in\mathbb{R}^{n\times d_x} xRn×dx c ∈ R m × d c c\in\mathbb{R}^{m\times d_c} cRm×dc x x x是前面层的输出, c c c是条件信息。
全连接前馈网络包含两层线性变换的ReLU激活函数:
FFN ( x ) = ReLU ( x W 1 + b 1 ) W 2 + b 2 (2) \text{FFN}(x)=\text{ReLU}(xW_1+b_1)W_2+b_2\tag{2} FFN(x)=ReLU(xW1+b1)W2+b2(2)
其中 W 1 ∈ R d × d m , W 2 ∈ R d m × d W_1\in\mathbb{R}^{d\times d_m},W_2\in\mathbb{R}^{d_m\times d} W1Rd×dm,W2Rdm×d是可学习的权重, b 1 ∈ R d m , b 2 ∈ R d b_1\in\mathbb{R}^{d_m},b_2\in\mathbb{R}^d b1Rdm,b2Rd是可学习的偏差。

残差块中包含一系列的卷积层和激活函数,其中时间嵌入(time embedding)通过假发操作注入倒残差块中。

2.3 Parameter-Efficient Transfer Learning

迁移学习(Transfer Learning)是一种利用从一个任务中学习到的知识来提高相关任务性能的技术。对下游任务进行预训练然后进行迁移学习的方法被广泛使用。
传统的迁移方法需要大量参数,计算代价高,占用内存大。

参数有效的迁移学习(Parameter-Efficient Transfer Learning)最早在NLP领域中提出,核心思想是减少需要更新的参数数量。这是通过更新模型的一部分参数,或添加额外的小模块实现的。

3 Design Space of Parameter-Efficient Transfer Learning in Diffusion Models

本文将适配器的设计空间分解为三个正交因子:输入位置、输出位置、函数形式。

3.1 Input Position and Output Position

输入位置(Input position)是指适配器从哪里输入,输出位置(Output position)是指适配器向哪里输出。规定记号如图4所示,位置根据其相邻层命名。

![[Pasted image 20240822000212.png]]

图4:通常,激活位置的主要名称是模型中特定块的别名,激活位置的下标解释了激活与块之间的关系。

本文的框架中,输入位置可能是图4中描述的任意一个激活位置,因此一共有10个可选位置。
由于加法可交换,对于输出位置,有些位置是等价的,如 SA out \text{SA}_\text{out} SAout CA in \text{CA}_\text{in} CAin是等价的。因此有7种可选位置。

3.2 Function Form

函数形式描述了适配器如何将输入转换成输出。本文分别给出Transformer块和残差块的函数形式,见图5,二者都包含下采样操作、激活函数、上采样操作和放缩因子。
![[Pasted image 20240822000652.png]]
图5:Transformer块和残差块中适配器的函数形式。

下采样操作减少输入的维度,上采样操作增加输入的维度,以保证其具有和输入相同的维度。进一步将输出乘一个放缩因子 s s s,控制其对原网络的影响强度。’

具体地,Transformer块适配器用低秩矩阵 W d o w n W_{down} Wdown W u p W_{up} Wup作为下采样和上采样操作;残差块适配器用 3 × 3 3\times 3 3×3卷积层 Conv d o w n \text{Conv}_{down} Convdown Conv u p \text{Conv}_{up} Convup作为下采样和上采样操作。卷积核只改变通道数,不改变空间大小。
此外,残差块适配器还使用组归一化(group normalization)处理输入。

本文在设计选择中包含了不同的激活函数和缩放因子。
激活函数包括ReLU、Sigmoid、SiLU。
放缩因子包括0.5、1.0、2.0、4.0。

4 Discover the Key Factor with Analysis of Variance

本文采用单因素方差分析(one-way analysis of variance, ANOVA)方法量化模型性能与因素之间的相关性。
ANOVA的核心思想是将总方差分为两个部分:组内方差(variation within groups, MSE)和组间方差(variation between groups, MSB)。
MSB衡量不同组均值之间的差异,MSE衡量个体观测值和其对应组均值之间的差异。

ANOVA中使用的统计检验是基于F分布,即比较组间变异与组内变异的比值(F统计量,F-statistic)。
如果F统计量足够大,则表明组间均值存在显著性差异,表明具有较强的相关性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/407025.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于Ubuntu22.04 安装SSH服务

安全外壳协议(Secure Shell,简称 SSH)是一种在不安全网络上用于安全远程登录和其他安全网络服务的协议。 SSH 由 IETF 的网络小组(Network Working Group)所制定,SSH 为建立在应用层基础上的安全协议。SSH…

Excel“取消工作表保护”忘记密码并恢复原始密码

文章目录 1.前言2.破解步骤3. 最终效果4.参考文献 1.前言 有时候别人发来的Excel中有些表格不能编辑,提示如下,但是又不知道原始密码 2.破解步骤 1、打开您需要破解保护密码的Excel文件; 2、依次点击菜单栏上的视图—宏----录制宏&#xf…

音频格式转换方法有哪些?学会这3个方法让音频转换从未如此简单

在音乐的世界里,我们常常遇到各种格式的音频文件,它们就像是五线谱上的音符,需要不同的乐器来演绎。 热爱音乐的我,经常需要将这些音频文件转换成适合我设备播放的格式。在线音频格式转换工具,就像是我的音乐小助手&a…

【传输层协议】UDP协议 {端口号的范围划分;UDP数据报格式;UDP协议的特点;UDP的缓冲区;基于UDP的应用层协议}

一、再谈端口号 1.1 端口号标识网络进程 如何通过端口号找到主机上的网络进程? 在socket编程中bind绑定是最为重要的一步:他将套接字与指定的本地 IP 地址和端口号关联起来,这意味着指定的套接字可以接收来自指定 IP 地址和端口号的数据包…

收银系统源码助力零售门店数字化升级

一、国内零售业数字化转型迈入深水区 近年来,我国零售业数字化进程显著加速,从线上电商到新零售模式,再到利用大数据、人工智能等技术优化供应链、提升体验,每一步都见证了行业的深刻变革。随着零售行业进入存量市场竞争&#xf…

微服务设计原则——高性能:存储设计

文章目录 1.读写分离2.分库分表3.动静分离4.冷热分离5.重写轻读6.数据异构参考文献 任何一个系统,从单机到分布式,从前端到后台,功能和逻辑各不相同,但干的只有两件事:读和写。而每个系统的业务特性可能都不一样&#…

LangChain框架深度解析:对Chains组件的全方位探索与实战案例

文章目录 前言一、Chains二、LLMChain⭐1.LLMChain介绍2.LLMChain案例 三、SimpleSequentialChain⭐1.SimpleSequentialChain介绍2.SimpleSequentialChain案例 四、SequentialChain⭐1.SequentialChain介绍2.SequentialChain案例 五、RouterChain⭐1.RouterChain介绍2.RouterCh…

leetcode:2520. 统计能整除数字的位数(python3解法)

难度:简单 给你一个整数 num ,返回 num 中能整除 num 的数位的数目。 如果满足 nums % val 0 ,则认为整数 val 可以整除 nums 。 示例 1: 输入:num 7 输出:1 解释:7 被自己整除,因…

大模型概念入门:探索这一AI技术的奥秘

一、引言 ChatGPT、Open AI、大模型、提示词工程、Token、幻觉等人工智能的黑话,在2023年这个普通却又神奇的年份里,反复的冲刷着大家的认知。让一部分人彻底躺平的同时,让另外一部分人开始焦虑起来,生怕在这个人工智能的奇迹之年…

JRE和JDK概念区分

1.JRE Java Runtime Environment:java运行环境。JVMJava类库。开发好的java程序,直接运行,可只安装JRE。 2.JDK Java Development Kit:java软件开发工具包。JREJava开发工具。编译、运行java代码。 3.总结 JRE就是运行Java字…

跨界融合,《黑神话:悟空》这把火,能否为实景三维再造商机?

8月20号,国产3A游戏《黑神话:悟空》正式上线,全球发售 这几天,国产游戏《黑神话:悟空》终于面世,迅速引爆了全球游戏市场。 《黑神话:悟空》作为一款国产3A游戏,不仅在游戏设计和玩法上实现了…

智慧水务项目(七)vscode 远程连接ubuntu 20.04 服务器,调试pyscada,踩坑多多

一、说明 以前用过pycharm,远程连接还可以,但是vscode用以前还可以,就用它开发python了,想搞个远程,源码直接放服务器上,能远程调试,其实也很方便的,结果第一次还成功了,…

语雀:高效记录与整理编程学习笔记的最佳实践

目录 语雀:高效记录与整理编程学习笔记的最佳实践 一、编程学习笔记的要求与目的 二、记录编程学习笔记的目的 三、如何高效地记录与整理编程学习笔记 四、推荐平台:语雀 1、语雀的优势: 2、如何使用语雀整理编程学习笔记:…

Java二十三种设计模式-状态模式(20/23)

本文深入探讨了状态模式,一种允许对象根据其内部状态变化而改变行为的软件设计模式。文章从定义、组成部分、实现方式、使用场景、优缺点分析、与其他模式的比较,到最佳实践和建议,全面介绍了状态模式的各个方面。通过Java语言的实现示例和实…

Aixos食用指南,超全面详细讲解!

前言:axios是目前最流行的ajax封装库之一,用于很方便地实现ajax请求的发送。特意花费了两个小时为大家准备了一份全面详细的Aixos食用指南,需要的小伙伴点个关注 哦~💕 🌈🌈文章目录 Axios 简介 Axios 特…

基于cubemx的STM32F103ZET6的freertos实现多任务流水灯

1、任务概述 使用freertos多任务系统实现正点原子STM32F103ZET6开发板的流水灯点亮控制。 2、cubemx设置 (1)SYS设置,注意选择定时器源为TIM1-TIM8的任一个,因为滴答定时器被多任务系统占用不能选择 (2)时…

Oracle数据库最新的支持服务年限

根据图示,建议尽快升级到19c或者23ai

彻底解决win7系统文件夹选项高级设置是空白

需求背景 win7系统的文件夹选项-高级设置里面是空白的,效果图如下。 解决方法 1、新建txt文本文档 2、文档内容 复制下面的内容到txt文件中,然后保存。 Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Ad…

ClickHouse集群的安装

目录 1.clickhouse中文文档地址 2.centos安装部署 2.1采用tgz的方式安装 2.2修改配置文件 2.3修改数据目录 2.4创建角色和目录 3 集群安装 3.1配置文件修改 3.2启动zookeeper 3.3启动clickhouse-server 3.4任意节点连接clickhouse 3.5查看集群 3.6建库 3.7查看数…

一文贯通LLM推理相关知识【上下文长度、量化、模型大小】

1 不同参数量LLM推理需要多少显存? 2 Batch Size,量化对所需显存有什么影响? 要点: BatchSize增加,显存占用也会增加。量化可以节省显存:通过下表中的数据可以看到,6B模型在float16时占用12G显…