欢迎大家来到IT世界,在知识的湖畔探索吧!
在当今时代,大规模语言模型、计算机视觉模型等大模型不断涌现,它们在众多任务上展现出强大的表现力。然而,随着模型规模的不断扩大,传统的全模型微调方式在计算和存储资源上面临着巨大的挑战。参数高效的模型微调(PEFT)技术应运而生,它通过在保持预训练模型不变的基础上,只微调模型中的少量参数,从而实现了在下游任务上获得接近全模型微调的效果,同时显著降低计算和存储成本。来自Northeastern University 及University of California, Riverside等大学的研究者发表了“Parameter-Efficient Fine-Tuning for Large models: A Comprehensive Survey”对PEFT技术进行全面综述,探讨各种PEFT算法及其应用,为研究人员提供深入的理解。
论文地址:https://arxiv.org/abs/2403.14608
添加图片注释,不超过 140 字(可选)
以下为论文主要内容:
一、引言
随着人工智能技术的飞速发展,大模型在自然语言处理、计算机视觉等领域取得了显著的成果。以语言模型为例,从GPT-2到GPT-3,模型规模不断增长,达到了惊人的1750亿参数。然而,这种规模的扩大也带来了计算和存储上的挑战。传统的全模型微调方式需要数千个GPU并行计算,这在计算资源和时间上都是不切实际的。为了解决这一问题,PEFT技术应运而生。
添加图片注释,不超过 140 字(可选)
二、背景
A. Computation flow for LLaMA
为了更深入地理解大语言模型(LLM)和基于Transformer的模型,我们以LLaMA-7B为例,详细剖析了LLM的架构和计算流程。LLaMA-7B是一个先进的开源LLM模型,由三个主要组件组成:嵌入层、堆叠的解码器块和一个头部块,其中包括线性和softmax层。嵌入层的主要作用是将无结构化的文本信息转换为离散的数值向量(即令牌),以促进后续处理。嵌入后的令牌被传递给解码器层进行进一步处理。每个LLaMA解码器由多头自注意力模块(MSA)和前馈网络模块(FFN)组成。
在MSA模块中,每个令牌都会通过注意力图进行分组,然后通过前馈神经网络进行进一步处理。此外,LLaMA采用了Root Mean Square Layer Normalization(RMSNorm)来代替Layer Normalization,以提高训练效率。
LLM与传统的深度神经网络(DNN)模型,如卷积神经网络(CNN),有两个显著的区别。首先,LLM具有内在的自回归性质,这意味着生成任务需要多次迭代才能完成。其次,LLM包含注意力机制,其计算复杂度与输入长度成平方关系。
LLM的计算特征主要在于其每个解码器层中的注意力块。图2(c)展示了注意力块的计算流程。
在推理过程中,每个解码器层都接收一个4维张量作为输入令牌。这些输入令牌首先与三个权重矩阵相乘,产生查询(Q)、键(K)和值(V)。由于MSA模块无法识别位置信息且LLM具有自回归性质,查询和键将经过Rotary Positional Embedding(RoPE)处理以编码位置信息。随后,键和值将与先前的令牌组合。
经过位置编码后,中间激活将经历一系列的乘法、softmax和残差加法运算,以生成MSA输出。值得注意的是,方程中的 表示多头注意力机制中的特征维度。
添加图片注释,不超过 140 字(可选)
SA输出然后被传递给FFN块进行进一步处理。FFN块包含另外三个权重矩阵Wup、Wdown和Wgate,其计算可以表示为:
添加图片注释,不超过 140 字(可选)
其中,x表示FFN层的输入,SiLU表示LLaMA中使用的非线性函数。
FFN的输出被传递给最后一个解码器层,然后通过一个线性层生成概率分布,以预测序列中的下一个令牌。产生的令牌被附加到前一个令牌上,并作为下一个处理的输入。这个过程以自回归的方式重复,直到模型输出结束令牌。
添加图片注释,不超过 140 字(可选)
在训练过程中,计算流程与推理类似,但生成的句子会直接与真实输出进行比较,生成训练损失,并通过LLM权重计算梯度以最小化这个损失。
添加图片注释,不超过 140 字(可选)
为了分析LLM的计算成本和内存开销,我们还设置了一系列参数,用于后续部分的分析。表1显示了LLaMA-7B模型的参数大小和计算维度。
添加图片注释,不超过 140 字(可选)
LLM模型逐轮生成令牌(单词),如图2所示,基于前一个提示(输入)和之前生成的序列。这个过程将一直重复,直到模型输出结束令牌。为了加速LLM模型的推理过程,人们采用了存储前一个键值对(KV)缓存(KV-cache)的策略。数学上,我们可以用方程6来表示KV缓存的内存成本。
添加图片注释,不超过 140 字(可选)
其中,L、b、l、 和分别表示上下文长度、批量大小、序列长度、多头注意力机制的头数和头数
大语言模型的计算流程 大语言模型通常采用Transformer架构,其核心是自回归Transformer。以LLaMA模型为例,其由嵌入层、解码器层和头部层组成。在推理过程中,每个解码器层都会对输入序列进行处理,产生新的输出序列。这个过程中,每个解码器层都包含多头自注意力模块和前馈网络模块。
B. PEFT概述 (Overview on Parameter Efficient Fine Tuning)
微调仍然是提升LLM在未见用户数据集和任务上性能的关键。随着模型规模的增长(例如,从GPT-2的15亿到GPT-3的175亿),标准的完全微调范式需要成千上万个GPU并行工作,这是高度低效和不可持续的。一种算法被提出,即参数高效微调(PEFT),旨在调整最少的参数以在下游任务上实现比完全微调更好的性能。
在并行发展中,视觉和多模态领域的大规模预训练模型也展示了它们的有效表示学习能力,通过微调使其能够从大型数据集适应到较小的数据集或跨越各种数据模态。因此,这种能力使得PEFT越来越受到更广泛的研究社区的青睐。
添加图片注释,不超过 140 字(可选)
作者根据它们的操作将PEFT算法分类为加性微调、选择性微调、重参数化微调和混合微调。如图3所示,通常使用三种主要的加性微调算法:(1)适配器;(2)软提示;(3)其他。它们在不同的附加可调模块或参数方面有所不同。
另一方面,选择性微调不需要任何额外的参数,它从骨干模型中选择一个小的参数子集,并且只在下游任务的微调过程中使它们可调,同时在微调期间保持大多数参数不变。我们根据所选参数的分组将选择性微调分类为:(1)非结构化掩码;(2)结构化掩码。重参数化表示在两个等效形式之间转换模型参数。具体来说,重参数化微调在训练期间引入了额外的低秩可训练参数,然后将其与原始模型整合以进行推理。这种方法分为两种主要策略:(1)低秩分解;(2)LoRA导数。混合微调探索不同PEFT方法的设计空间并结合它们的优点。
C. LLM评估的下游任务(Downstream Tasks for LLM Evaluation)
用于LLM评估的任务通常分为两类,第一类是通用语言理解评估(GLUE)[11]基准,它集成了九项句子或句对语言理解任务(CoLA、SST-2、MRPC、STS-B、P、MNLI、QNLI、RTE和WNLI),这些任务由于数据集大小、文本流派和难度级别的多样性而被选择,并且基于已建立的现有数据集。它还包括一个专门设计的诊断数据集,用于评估和分析模型在自然语言中固有的各种语言现象上的性能。此外,它还提供一个公共排行榜来跟踪基准测试的性能,并提供一个仪表板来可视化模型在诊断集上的性能。
近期LLM论文中使用的另一种类型的数据集是常识推理,它融入了我们研究的各种研究方面:(1)OpenBookQA [12]旨在促进高级问答研究,深入理解主题内容及其表达语言。 (2)PIQA [13]主要强调日常场景,展示对非常规解决方案的偏好。 (3)Social IQA [14]是一种新型的针对社交常识智能评估的问答基准。 (4)HellaSwag [15]作为一个数据集,其本质在于评估机器在适当得出句子结论方面的能力。 (5)BoolQ [16]是一个专门用于问答的数据集,特别是针对二元响应(是/否查询)。 (6)WinoGrande [17]被引入为一个新的编译,包含了大约44,000个问题。 (7)ARC-easy [18]是一个新颖的数据集,由真实的小学多选科学问题组成,旨在推动复杂问答研究的发展。 (8)ARC-challenges [18]独特地包含了那些由检索算法和词共现算法都无法准确回答的问题。图像识别是视觉模型的主要基准和应用领域,以细粒度视觉分类(FGVC)和视觉任务适应基准(VTAB)为例。除了图像分类,视频动作识别是另一个关键应用领域,涉及数据集如Kinetics-400 [19]、SSv2 [20]和HMDB51 [21]。此外,PEFT已被用于密集预测任务,使用的数据集包括MSCOCO [22]、ADE20K [23]和PASCAL VOC [24]。
三、PEFT方法分类
PEFT策略可以广泛地分为四类:
Additive PEFT(第III-A节),通过注入新的可训练模块或参数修改模型架构;selective PEFT(第III-B节),在微调过程中使参数的子集可训练;reparameterized PEFT(第III-C节),为训练构建原始模型参数的(低维)重新参数化,然后等效地将其转换回推断;以及hybrid PEFT(第III-D节),将不同PEFT方法的优势结合起来构建统一的PEFT模型。图4展示了不同类型PEFT算法的概述。
添加图片注释,不超过 140 字(可选)
A. Additive PEFT
Additive PEFT技术通过在Transformer模型的特定位置添加可学习的模块或参数,以最小化下游任务中模型的参数量。这类方法包括:
1) Adapter
Adapter通过在Transformer块内添加小型Adapter层,实现了参数高效微调。每个Adapter层包含下投影矩阵 ����� 、激活函数σ和上投影矩阵 ��� 。下投影矩阵将输入特征映射到瓶颈维度 � ,激活函数用于非线性转换,上投影矩阵将瓶颈特征映射回原始维度 � 。
添加图片注释,不超过 140 字(可选)
通过这种方式,Adapter可以引入额外的参数来适应下游任务,同时保持大部分参数不变。
2) Soft Prompt
Soft Prompt通过在输入序列开头添加可学习的向量,以实现参数高效微调。代表性方法包括Prefix-tuning和Xprompt。Prefix-tuning通过在Transformer层的键、值和查询矩阵前面添加可学习的向量,实现对模型表示的微调。Xprompt通过添加可学习的向量到输入序列的开头,实现对模型表示的微调。这些可学习的向量被称为soft prompt,可以在训练过程中优化,以适应不同的下游任务。
3) 其他方法
(��)3 、SSF和IPA等方法也通过在模型中添加可学习参数来实现参数高效微调。这些方法通常将可学习的参数添加到Transformer块的某些操作(如键、值、查询矩阵、线性层等)中,以实现对模型表示的微调。
添加图片注释,不超过 140 字(可选)
Additive PEFT方法通过在Transformer模型中添加可学习的模块或参数,实现了参数高效微调。这些方法可以在保持模型大部分参数不变的情况下,通过添加少量可学习的参数来适应下游任务。这种方法具有简单、高效的特点,适用于各种不同的下游任务。
B. Selective PEFT
Selective PEFT技术在微调过程中只更新模型中的一部分参数,而保持其余参数固定。这类方法包括:
添加图片注释,不超过 140 字(可选)
1) Unstructured Masking
Unstructured Masking方法通过在模型参数上添加可学习的二值掩码来确定可微调的参数。典型的工作包括Diff pruning、PaFi和FishMask。这些方法使用可学习的二值掩码来选择模型参数中的一部分进行微调,而保持其余参数固定。Diff pruning方法使用可学习的二值掩码来选择模型参数中改变最大的一部分进行微调,而PaFi方法选择模型参数中绝对值最小的一部分进行微调。FishMask方法使用近似Fisher信息来选择模型参数中重要性最大的一部分进行微调。
2) Structured Masking
Structured Masking方法通过添加可学习的权重或偏差参数来确定可微调的参数。典型的工作包括S-Diff pruning、Bitfit和Xattn Tuning。这些方法通过添加可学习的权重或偏差参数来创建结构化的掩码,从而确定模型参数中的一部分进行微调。S-Diff pruning方法将Transformer块的权重参数分为多个节点,并使用L1正则化来确定重要性最高的节点进行微调。Bitfit方法只微调模型每个层中的偏差参数,而Xattn Tuning方法只微调模型注意力层中的交叉注意力参数。
Selective PEFT方法通过在微调过程中只更新模型中的一部分参数,实现了参数高效微调。这种方法避免了在模型中添加大量可学习参数,从而降低了计算成本和内存消耗。然而,选择哪些参数进行微调需要仔细设计,以确保微调后的模型性能。
C. Reparameterized PEFT
添加图片注释,不超过 140 字(可选)
Reparameterized PEFT技术通过构建原始模型参数的低秩表示,在训练过程中增加可学习参数,以实现参数高效微调。这类方法包括:
1) Low-rank Decomposition
Low-rank Decomposition方法通过参数分解来构建低秩表示。典型的方法包括Intrinsic SAID、LoRA、Compacter和KronA。这些方法通过参数分解将原始模型参数分解为低秩矩阵和残差矩阵,从而引入可学习的参数。Intrinsic SAID方法通过使用Singular Value Decomposition (SVD)来分解原始模型参数,并添加额外的低秩矩阵来表示残差。LoRA方法通过添加两个额外的低秩矩阵来构建原始模型参数的低秩表示,并在训练过程中调整这些低秩矩阵。Compacter方法通过构建低秩参数矩阵,引入可学习的参数。KronA方法通过使用Kronecker乘积来构建低秩参数矩阵,引入可学习的参数。
2) LoRA Derivatives
LoRA Derivatives方法通过动态选择LoRA的秩来构建低秩表示。典型的方法包括DyLoRA、AdaLoRA和SoRA。这些方法通过动态选择LoRA的秩来构建原始模型参数的低秩表示,并添加额外的低秩矩阵来表示残差。DyLoRA方法通过在训练过程中动态选择LoRA的秩来构建低秩表示。AdaLoRA方法通过使用Singular Value Decomposition (SVD)来动态选择LoRA的秩,并添加额外的低秩矩阵来表示残差。SoRA方法通过构建门控单元来动态选择LoRA的秩,并添加额外的低秩矩阵来表示残差。
Reparameterized PEFT方法通过构建原始模型参数的低秩表示,实现了参数高效微调。这种方法在训练过程中增加了可学习参数,但不会在模型中添加大量额外的参数。通过构建低秩表示,这种方法可以更好地适应下游任务,同时保持模型的大部分参数不变。然而,选择合适的低秩表示和秩需要仔细设计,以确保微调后的模型性能。
D. Hybrid PEFT
Hybrid PEFT技术结合了不同PEFT方法的优点,以构建统一的PEFT模型。这类方法包括:
1) UniPELT
UniPELT通过在Transformer块内插入LoRA、Prefix-tuning和Adapter来实现PEFT。这种方法结合了LoRA的低秩表示、Prefix-tuning的可变输入表示和Adapter的可变模型结构。通过这种方式,UniPELT可以更全面地适应下游任务,同时保持模型的大部分参数不变。
2) S4
S4通过实验分析了PEFT的设计空间。通过比较不同PEFT方法在各种下游任务上的性能,S4发现了一些设计模式,如使用Kronecker乘积来构建低秩参数矩阵、在Transformer层中使用相同的PEFT策略、以及均匀分配可训练参数的数量。基于这些发现,S4提出了一个设计空间,包括不同的PEFT方法(如Adapter、Prefix-tuning、Bitfit和LoRA)和不同的层组配置。
3) LLM-Adapters
LLM-Adapters是一个框架,可以方便地集成各种PEFT技术到语言模型中。通过全面评估不同PEFT方法在多个数据集上的性能,LLM-Adapters发现了一些设计模式,如在多头注意力层后添加Adapter、在MLP层后添加LoRA等。基于这些发现,LLM-Adapters提供了一个简单的接口,可以方便地将各种PEFT技术集成到语言模型中,以实现参数高效微调。
4) 其他方法
AUTOPEFT、NOAH和S3PET等方法也通过实验和搜索方法,探索不同PEFT方法的组合,以构建统一的PEFT模型。这些方法通过分析不同PEFT方法的设计空间,以及通过搜索方法找到最优的PEFT配置,以实现参数高效微调。
Hybrid PEFT方法通过结合不同PEFT方法的优点,构建了统一的PEFT模型。这种方法可以更全面地适应下游任务,同时保持模型的大部分参数不变。然而,如何选择合适的PEFT方法组合需要仔细设计,以确保微调后的模型性能。
四、高效PEFT设计
从计算角度考虑,处理延迟和峰值内存开销是至关重要的因素。本节介绍了LLMs中的一个关键特性,旨在平衡处理延迟和内存使用量(第IV-A节)。接着,我们探讨了开发高效PEFT方法的策略,以解决计算挑战,包括PEFT修剪(第IV-B节)、PEFT量化(第IV-C节)和内存高效PEFT技术(第IV-D节),每种方法都旨在提高模型性能同时最小化资源消耗。值得注意的是,量化本质上解决了内存开销问题。然而,鉴于其独特特性,我们单独讨论这些量化方法,而不是将它们纳入 memory-efficient PEFT部分。
添加图片注释,不超过 140 字(可选)
A. KV-cache Management for PEFT Efficiency
KV-cache(键值缓存)是LLM模型中的一个关键组成部分,主要存储模型在推理过程中产生的键值对,以加速模型的推理过程。然而,KV-cache的存储和读写过程会给系统带来一定的延迟和内存压力。因此,本文提出了一系列的KV-cache管理优化策略,以提高PEFT方法的效率。
1. KV-cache控制管理:通过动态调整KV-cache的大小,可以提高系统的吞吐量。例如,可以通过调整KV-cache的存储时长、数据压缩率等参数,以适应不同的输入数据和任务需求。
2. KV-cache压缩:对KV-cache中的键值对进行压缩,可以减少存储空间和IO性能,从而提高系统的整体效率。例如,可以采用量化、剪枝等压缩技术,对KV-cache中的键值对进行压缩。
B. Pruning Strategies for PEFT
PEFT剪枝技术通过移除模型中的部分参数,可以有效减少模型大小,从而提高训练和推理效率。本文介绍了一系列的PEFT剪枝方法,包括AdapterDrop、SparseAdapter、SPLoRA、LoRAPruning和ProPETL等。
1. AdapterDrop:通过移除部分Adapter模块,可以减少模型的大小和计算量,从而提高训练和推理效率。
2. SparseAdapter:采用高稀疏比的Adapter模块,可以在保持模型性能的同时,显著减少模型的大小和计算量。
3. SPLoRA:采用通道剪枝的方式对LoRA权重进行剪枝,不仅可以减少模型的大小和计算量,还可以提高模型性能。
4. LoRAPruning:采用结构化剪枝的方式对LoRA权重和预训练权重进行剪枝,可以有效减少模型的大小和计算量,同时保持模型性能。
5. ProPETL:通过构建一个共享原型,可以实现参数在不同层和任务之间的复用,从而提高参数效率。
C. Quantization Strategies for PEFT
PEFT量化技术通过降低模型精度来减少模型大小,从而提高计算效率。本文介绍了一系列的PEFT量化方法,包括BI-Adapter、PEQA、QLoRA、LQ-LoRA、QA-LoRA和BitDelta等。
- BI-Adapter:采用基于聚类的量化方法对Adapter模块进行量化,可以显著减少存储需求。
- PEQA:采用两阶段量化方法对FFN权重矩阵进行量化,可以同时保证模型性能和内存效率。
- QLoRA:采用多种量化技术对LoRA模块进行量化,可以显著减少模型大小和计算量。
- LQ-LoRA:采用迭代算法对权重进行分解,以解决量化误差对LoRA初始化带来的影响。
- QA-LoRA:采用INT4量化,并引入组wise运算符,以实现量化推理。
- BitDelta:对模型微调后的权重差进行量化,可以显著减少存储需求。
D. Memory-efficient PEFT Methods
为了提高PEFT方法的内存效率,本文介绍了一系列的方法,包括Side-Tuning、LST、Res-Tuning、MEFT、LoRA-FA、HyperTuning和PEFT Plug-in等。
- Side-Tuning:通过在模型中引入一个与主模型并行的辅助分支,可以减少存储梯度信息的需求。
- LST:通过解耦PEFT调节器(如提示调节器)与主模型,可以在不存储主模型梯度信息的情况下进行微调。
- Res-Tuning:通过引入一个内存高效的微调框架,可以减少存储梯度信息的需求。
- MEFT:通过将模型转换为可逆模型,可以避免在微调过程中存储中间激活信息。
- LoRA-FA:通过在微调过程中冻结预训练权重,可以减少存储激活信息的需求。
- HyperTuning:通过在少量样本上训练PEFT调节器,可以避免直接在主模型上进行梯度优化。
- PEFT Plug-in:通过在小型语言模型上训练PEFT调节器,可以减少在大型语言模型上进行梯度优化所需的内存。
五、PEFT在其他应用中的使用
本节主要是展示PEFT在各种研究领域中的显著影响,并展示如何优化和定制通用PEFT方法以在特定模型或任务中实现增强性能。 通常,微调发生在将预训练的骨干模型适应到专门的下游任务时。为此,本节围绕各种模型架构组织讨论,包括:LLM、Vision Transformer(ViT)、Vision-Language Alignment Model(VLA)和Diffusion模型。
A. PEFT for LLMs – Beyond the Basics
本文主要介绍PEFT技术在大型语言模型(LLM)下游任务中的应用。PEFT技术不仅适用于传统的自然语言处理任务,还适用于多种其他任务,如视觉指令遵循、持续学习和扩展上下文窗口等。
1. 视觉指令遵循:
– VL-BART、MiniGPT-4和LLaVA等模型成功地将LLM的文本生成能力扩展到理解和生成对视觉输入的响应。
– VL-Adapter、LLaMA-Adapter和LLaMA-Adapter V2等方法直接在VL-BART和LLaMA模型中应用PEFT技术。
– VL-PET通过在不同组件中选择性地应用PEFT模块,提高了性能。
2. 持续学习:
– AdapterCL、CPT和O-LoRA等方法利用PEFT技术进行持续学习。
– AdapterCL使用残差适配器表示每个新任务,CPT和O-LoRA使用软提示进行知识传递。
– O-LoRA通过学习不同任务之间的正交低秩向量空间,减少了灾难性遗忘的风险。
3. 扩展上下文窗口:
– LongLoRA和LongQLoRA等方法通过在预训练LLM上使用PEFT技术,实现了上下文窗口的扩展。
– LongLoRA通过使用LoRA方法扩展上下文窗口,LongQLoRA结合了LoRA和QLoRA方法。
– 这些方法在保持性能的同时,显著提高了模型处理长输入的能力。
B. PEFT for ViTs
本文介绍了PEFT技术在计算机视觉领域的应用,主要关注Vision Transformer (ViT)模型。PEFT技术可以有效提高ViT模型在下游任务中的性能,同时减少计算成本。
1. 图像分类:
– AdaptFormer等方法通过在ViT模型的FFN层添加适配器模块,实现了ViT模型在图像分类任务中的高效微调。
– VPT等方法通过在ViT模型的输入序列中添加少量可训练参数,实现了ViT模型在图像分类任务中的高效微调。
– 这些方法通过引入少量可训练参数,实现了与全模型微调性能相当的效果,同时显著减少了计算成本。
2. 视频识别:
– ST-Adapter和AIM等方法通过在ViT模型中插入适配器层,实现了从图像模型到视频任务的迁移学习。
– ST-Adapter等方法通过学习空间-时间信息,提高了视频识别任务中的性能。
– 这些方法通过适配器层的插入,实现了对视频任务的有效迁移,同时显著提高了性能。
C. PEFT for VLAs
本文介绍了PEFT技术在Vision-Language Alignment Model (VLA)中的应用,主要关注VLA模型在下游任务中的性能提高。
1. 开放词汇图像分类(Open-vocabulary Image Classification):
– CoOp、CoCoOp、ProGrad和MaPLe等方法通过在VLA模型中添加少量可训练参数,实现了VLA模型在开放词汇图像分类任务中的高效微调。
– CoOp等方法通过学习输入特定的上下文向量,提高了模型的泛化能力。
– ProGrad等方法通过正则化软提示更新,减少了过拟合风险。
– MaPLe等方法通过同时微调语言和视觉分支,提高了模型的性能。
– 这些方法通过引入少量可训练参数,实现了与全模型微调性能相当的效果,同时显著减少了计算成本。
D. PEFT for Diffusion Models
本文介绍了PEFT技术在扩散模型(Diffusion Models)中的应用。扩散模型是一种生成模型,通过渐进去噪过程学习从随机噪声生成结构化输出的能力。PEFT技术可以有效提高扩散模型的性能,同时减少计算成本。
1. 增加输入控制:
– GLIGEN等方法通过在扩散模型中插入可训练的门控Transformer层,实现了对额外输入(如布局、关键点等)的控制。
– ControlNet等方法通过微调编码层的一个副本,实现了对额外输入的控制。
– Concept Sliders等方法通过在扩散模型中插入可训练的适配器,实现了对概念的精确编辑。
– T2I-Adapter等方法通过在扩散模型中插入可训练的适配器,实现了对结构化控制信号的适配。
– 这些方法通过适配器的插入,实现了对额外输入的有效控制,同时显著提高了性能。
2. 定制内容生成:
– Textual Inversion等方法通过在扩散模型中学习表示新概念的伪词,实现了对新概念的捕捉。
– Custom Diffusion等方法通过微调文本到潜在特征的映射,实现了多概念的学习。
– IP-Adapter等方法通过在扩散模型中插入可训练的适配器,实现了对图像特征和文本特征的解耦。
– 这些方法通过适配器的插入,实现了对内容生成过程的精确控制,同时显著提高了性能。
六. PEFT的系统设计挑战(SYSTEM DESIGN CHALLENGE FOR PEFT)
A. System design for PEFT
本文介绍了PEFT系统设计的相关内容,包括PEFT查询服务的两种主要模式,以及系统设计中的挑战和评估指标。
添加图片注释,不超过 140 字(可选)
1. 系统设计模式:
– 集中式PEFT查询服务:该模式下,云服务器存储单个LLM模型副本和多个PEFT模块。云服务器根据不同PEFT查询的任务需求,选择相应的PEFT模块与LLM模型集成。
– 分布式PEFT查询服务:该模式下,LLM模型存储在云服务器上,而PEFT权重和数据集存储在用户设备上。用户设备使用PEFT方法对LLM模型进行微调,然后将微调后的PEFT权重和数据集上传到云服务器。
2. 系统设计挑战:
– 内存占用和计算成本:PEFT方法通常引入少量可训练参数,但微调过程中仍需要计算和存储LLM模型梯度信息,导致内存占用较高。
– 系统调度和并行计算:同时处理多个PEFT查询时,系统需要高效调度计算资源,以提高整体吞吐量。
– 多租户PEFT服务:设计系统以支持不同LLM模型的多租户PEFT服务是一个挑战。
3. 评估指标:
– 吞吐量:以每秒处理的令牌数来衡量系统吞吐量。
– 内存占用:运行时内存消耗,包括模型参数和KV-cache。
– 准确率性能:不同上下文长度的准确率性能。
– 服务质量:查询的延迟要求和截止时间错失率。
B. Case study: Offsite-Tuning
Offsite-Tuning是一种用于下游任务迁移学习的隐私保护和高效的PEFT框架。它通过在数据所有者设备上微调PEFT适配器,实现无需共享模型权重即可完成下游任务迁移学习的目标。
1. 工作原理:
– 数据所有者接收来自云服务器的PEFT适配器和模拟器。
– 数据所有者在本地设备上使用模拟器进行微调,生成一个适配器。
– 微调后的适配器被发送回云服务器,云服务器将其集成到完整的模型中,形成一个微调后的模型。
– 下游用户使用微调后的模型进行查询。
2. 优势:
– 数据所有者无需直接共享训练数据,因此保护了数据隐私。
– 仅需在数据所有者设备上微调适配器,大幅减少了计算资源需求。
– 微调后的适配器传递到云服务器,而完整的模型权重不会泄露,从而保护了模型的所有权。
3. 挑战:
– 微调过程中可能出现性能损失,因为提供的模拟器是低效的。
– 需要确保微调后的适配器与云服务器上的完整模型兼容。
Offsite-Tuning提供了一种隐私保护和高效的PEFT方法,适用于需要保护数据隐私的下游任务迁移学习场景。
C. Case Study: PetS
PetS是一种用于管理多PEFT任务的统一服务框架,旨在提高系统吞吐量和任务并行性。
添加图片注释,不超过 140 字(可选)
1. 系统概述:
– PetS框架通过API注册PEFT任务,提供统一的管理和调度机制。
– 框架将主要计算工作分解为三个部分:使用预训练权重进行密集矩阵-向量乘法、使用通用或特定任务的偏差向量进行加法、使用特定PEFT参数进行稀疏/密集矩阵-向量乘法。
– 框架通过参数重用、作业批处理和多任务调度等机制提高系统吞吐量和任务并行性。
添加图片注释,不超过 140 字(可选)
2. 协调批处理策略:
– PetS通过协调批处理策略将输入查询聚类,以减少填充并提高并行度。
– 首先,根据查询长度将输入查询聚类。
– 然后,根据共享的运算符将同一长度的查询进一步分组。
– 最终,对分组后的查询进行批处理,以减少填充并提高并行度。
3. 宏观批处理策略:
– PetS通过宏观批处理策略优化不同PEFT任务的执行顺序,以提高系统吞吐量。
– 框架分析不同PEFT任务的理论延迟,并根据系统建模参数生成最优的执行顺序。
– 该策略通过优化任务执行顺序,减少了PEFT任务之间的等待时间,从而提高了系统吞吐量。
D. Parallel PEFT Training Frameworks
本文介绍了两种并行PEFT训练框架,包括S-LoRA和Punica,以及它们的设计挑战。
1. S-LoRA:
– S-LoRA是一种支持并发执行多个PEFT模型的训练框架。
– 框架通过GPU并行化PEFT参数的加法和运算,提高了训练效率。
– 它通过任务和层分组,实现了任务和层的并行计算。
– 设计挑战包括高效地并行执行多个PEFT模型和设计一个有效的多租户服务系统。
2. Punica:
– Punica是一个支持多租户PEFT模型训练的框架。
– 框架通过使用现有矩阵乘法进行模型计算,并引入新的CUDA内核进行PEFT参数的加法和运算,实现了高效的训练。
– 它通过调度用户请求到已经服务的PEFT模型GPU上,提高了GPU的利用率。
– 设计挑战包括多租户服务系统的设计和GPU资源的优化利用。
七、结论
本文总结了PEFT技术在大型模型微调方面的最新进展,并对未来的研究方向提出了建议。
1. 结论:
– PEFT技术通过最小化额外参数和计算资源的引入,实现了大型模型在下游任务中的高效微调。
– PEFT技术在自然语言处理、计算机视觉等多个领域取得了显著的性能提升,同时大幅减少了计算成本。
– 不同类型的PEFT方法适用于不同的下游任务和模型规模,研究者需要根据具体任务和模型需求选择合适的PEFT方法。
2. 未来研究方向:
– 简化超参数调优:PEFT方法通常对超参数敏感,手动调优需要大量努力。未来的研究可以关注开发不依赖手动调优的PEFT方法,或者自动寻找最优的超参数设置。
– 建立统一基准:尽管已存在一些PEFT库,但缺乏一个全面的基准来公平比较不同PEFT方法的效果和效率。建立一个公认的基准将促进社区内的创新和合作。
– 增强训练效率:PEFT方法在计算效率上存在提升空间,尤其是训练阶段的内存和计算资源需求。未来的研究可以探索优化内存和计算效率的方法,如模型压缩技术。
– 探索扩展定律:PEFT方法在较小模型上的效果不一定适用于大型模型。未来的研究可以探索如何适应大型模型的PEFT方法。
– 服务更多模型和任务:随着更多大型模型的出现,PEFT技术可以解锁新的应用场景。未来的研究可以关注为特定模型和任务设计PEFT方法。
– 增强数据隐私:在服务或微调个性化PEFT模块时,中心化系统可能面临数据隐私问题。未来的研究可以探索加密协议来保护个人数据和中间训练/推理结果。
– PEFT与模型压缩:模型压缩技术对PEFT方法的影响尚未得到充分研究。未来的研究可以关注压缩后的模型如何适应PEFT方法的性能。
综上所述,本文总结了PEFT技术在大型模型微调方面的最新进展,并提出了未来研究方向的建议。这些建议将为相关领域的研究提供有价值的参考。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/69543.html