Arixv 2403 | Parameter-Efficient Fine-Tuning for Large Models: A Comprehensive Survey

image.png

大型模型代表了多个应用领域的突破性进步,在各种任务中取得了显着的成就。然而,其前所未有的规模伴随着巨大的计算成本。这些模型通常由数十亿个参数组成,需要大量的计算资源来执行。特别是,在为特定下游任务定制它们时,特别是在受计算能力限制的硬件平台上,广泛的规模和计算需求带来了相当大的挑战。

参数高效微调 (PEFT) 通过在各种下游任务中有效地调整大型模型,提供了实用的解决方案。具体来说,PEFT 是指调整预训练大型模型的参数以使其适应特定任务或领域,同时最大限度地减少引入的附加参数或所需的计算资源的数量的过程。在处理具有高参数量的大规模语言模型时,这种方法尤其重要,因为从头开始微调这些模型可能 computationally expensive 并且 resource-intensive,从而给支撑系统平台的设计带来相当大的挑战。

这份综述:

这对于旨在了解 PEFT 算法及其系统实现的研究人员来说是不可或缺的资源,提供了对最新进展和实际应用的详细见解。

大型模型 (LM) 最近引起了公众的极大兴趣。他们理解上下文和细微差别的能力使他们能够熟练地处理跨多个领域的不同任务,包括自然语言处理(NLP)、计算机视觉(CV)等。在 NLP 领域,大型语言模型(LLM)在各种任务上取得了显着的进步,包括文本生成、翻译、个性化聊天机器人和摘要生成,展现出出色的熟练程度。

早期的研究【Language models are few-shot learners】表明 LLM 表现出高水平的泛化能力,**使他们能够应用所学知识到在原始训练未包含的新任务,这种能力通常称为零样本学习。尽管如此,微调对于在新用户数据集和任务上进一步增强 LLM 性能仍然重要。由于其规模,广泛采用的微调 LLM 的策略主要为参数高效微调(PEFT),这有选择地调整一小部分参数,同时保持其余参数不变。**此外,PEFT 的应用超出了 NLP 领域,并迅速引起了 CV 社区的兴趣,用于微调具有大量参数视觉模型,例如 Vision Transformer 和扩散模型,以及诸如视觉语言模型(VLM)等学科模型。

image.png

这份综述系统回顾和分类 PEFT 算法最新进展,以及不同场景下各种 PEFT 算法相关的系统实施成本。图 1 概述了本文内容。

LLM 和 PEFT 的一些基本概念

PEFT 的背景知识

微调对于提高未见过的用户数据集和任务上的 LLM 性能仍然至关重要。随着模型规模的不断增长(例如,GPT-2 中的 1.5B 到 GPT-3 中的 175B),标准的完全微调范式需要数千个 GPU 并行工作,这是非常低效且不可持续的。人们提出参数高效微调(PEFT)来调整最小参数,以在下游任务的全面调整上获得更好的性能。

在并行发展中,视觉和多模态领域的大规模预训练模型也展示了其有效的表征学习能力,能够通过微调实现从大型数据集到较小数据集的适应或跨各种数据模式的适应。因此,这种能力使 PEFT 对更广泛的研究界越来越有吸引力。

常用的数据集和任务

语言方面:

视觉方面:

根据计算流程分类 PEFT 算法

根据操作将 PEFT 算法分为加性、选择性、重新参数化和混合四种类型。

image.png

Transformer 上应用不同类型 PEFT 不同类型的 PEFT 对比
image.png image.png

Additive PEFT

通常要么引入额外的权重参数,要么修改激活。在不同的附加可调模块或参数方面彼此不同。

标准的完全微调需要大量的计算费用,并且还可能损害模型的泛化能力。为了缓解这个问题,一种广泛采用的方法是保持预训练主干不变,并仅引入在模型架构中策略性定位的最少数量的可训练参数。在针对特定下游任务进行微调时,仅更新这些附加模块或参数的权重,这会导致存储、内存和计算资源需求的大幅减少。由于其添加参数的特点,这些技术可以称为附加性调整。

大体分为三类:

image.png

Adapter

在 Transformer 块内插入小型适配器层。通常适配器层由降维投影矩阵、非线性激活函数和升维投影矩阵,以及残差框架组成。配置适配器时会将内部的维度变化配置设置为超参数。

为了提高适配器的性能和泛化能力,各种研究已经实现了多任务学习策略。

Soft Prompt

人们普遍认为,软提示的连续嵌入空间本质上包含更多信息,而不是通过上下文学习来优化离散 token 表示【When do prompting and prefix-tuning work? a theory of capabilities and limitations】。受到这个概念的启发,研究人员直接将可调整向量(称为软提示)附加到输入序列的开头。这可以表示如下:

软提示的概念已被用于各种下游任务,尽管它们的训练可能容易不稳定且收敛缓慢。

其他的一些方案

image.png

除了上面提到的方法之外,还出现了其他在微调过程中策略性地合并附加参数的方法。

Selective PEFT

专门需要对现有参数进行微调的算法。不需要任何额外的参数,它从主干模型中选择一小部分参数(就像是乘上了了一个二值掩码一样),仅使它们可学习,同时在下游任务的微调过程中保持大多数参数不变。根据所选参数的分组可以分类为非结构化掩码和结构化掩码。

image.png

Reparameterized PEFT

这通常意味着构建低秩参数化以在训练期间实现参数效率的目标。重新参数化微调在训练期间引入了额外的低秩可训练参数,然后将其与原始模型集成来推理以保持推理速度。该方法分为低秩分解和 LoRA 衍生形式两大类。

image.png

早期的研究Intrinsic SAID【Intrinsic dimensionality explains the effectiveness of language model finetuning】表明,常见的预训练模型表现出极低的内在维度。换句话说,可以找到对整个参数空间进行有效微调的低维重新参数化。 Intrinsic SAID 是在 LLM 微调过程中研究内在维度特征的开创性工作。然而,最广泛认可的重新参数化技术是LoRA (Low Rank Adaptation)

对于给定的预训练权重矩阵,如图 8(a),LoRA 引入了两个可训练的权重矩阵(其中秩 $r \ll min(d,k)$)与预训练权重并行操作,从而实现结果对预训练组件输出的增量更新,从而封装了特定于任务的知识。在训练开始时,使用随机高斯分布对降维矩阵进行初始化,而升维矩阵初始化为零,确保增量最初保持为零值。微调完成后,LoRA 的自适应权重将与预先训练的主干权重无缝集成。这种集成确保 LoRA 保持模型的效率,在推理过程中不会增加额外的负担。

在 LoRA 训练中,选择合适的 rank 一直是一个具有挑战性的问题。为了解决这个问题,出现了一些工作:

随后的几项研究旨在提高 LoRA 各方面的性能。

除了 LoRA 之外,其他几种具有巨大潜力的重新参数化技术正在兴起。

Hybrid PEFT

各种 PEFT 方法的功效在不同的任务中可能存在显着差异。因此,许多研究旨在结合不同 PEFT 方法的优点,或通过分析这些方法之间的相似性来寻求建立统一的视角。

进一步降低 PEFT 算法计算复杂性的策略

从计算的角度来看,处理延迟 latency 和峰值内存开销 peak memory overhead 是需要考虑的关键因素(pivotal factor)。以下几种策略都旨在最小化模型资源消耗的同时增强模型性能。由于量化方法的独特性,将其从内存高效的 PEFT 内容中独立出来单独讨论。

KV 缓存管理

image.png

LLM 模型的核心在于自回归 Transformer 模型。自回归特性成为设计推理系统的一个主要挑战。因为每次生成一个新的令牌时,整个 LLM 模型必须将所有权重从不同的内存转移到图形处理器的内存中,这对于单用户任务调度或多用户工作负载平衡非常不友好。

服务自回归范式的挑战性部分是所有先前的序列都必须被缓存并保存以供下一次迭代使用,由先前序列生成的缓存激活被存储为键值缓存(KV-cache)。KV-cache 的存储将消耗内存空间和 IO 性能,导致工作负载内存有限 (workload memory-bounded),并且系统的计算能力利用率不足 (under-utilizing the computation power)。

之前的工作提出了一系列解决方案,例如 KV-cache 控制管理【Efficient Memory Management for Large Language Model Serving with PagedAttention】或 KV-cache 压缩【High-throughput Generative Inference of Large Language Model with a Single GPU】,以提高吞吐量或减少延迟。

在设计 PEFT 方法时,考虑 KV-cache 的特性以补充其功能至关重要。例如,当在推理阶段应用 soft prompt 时,有效利用 KV-cache 来处理这些附加输入可以通过确保 prompt 相关的数据易于访问从而帮助加快响应时间。

剪枝

这可以大大提高 PEFT 方法的效率。特

量化

这是另一种提高计算效率和减少内存使用的流行技术。

然而,当应用极低 bit(例如 2-bit)量化时,巨大的量化误差会对 LoRA 微调的初始化产生负面影响,即 $\text{quantization}(W_0)+W_{down}W_{up} \ne W_0$($W_{down}=0$),如【Make Your Pre-trained Model Reversible: From Parameter to Memory Efficient Fine-Tuning】中对初始化的研究所示(“在初始化 PEFT 方法时保持 PLM 的起点是至关重要的”)。为了解决这个问题,提出了几种量化策略来消除量化误差。

内存优化

由于其规模相当大,微调完整的 LLM 需要大量的训练内存。虽然大多数 PEFT 方法主要以参数效率为目标,但它们在训练期间仍然会产生大量内存开销,因为梯度计算和反向传播对于这些方法仍然是必要的。例如,根据一些文献【LST: Ladder Side-Tuning for Parameter and Memory Efficient Transfer Learning,Parameter-efficient Tuning for Large Language Model without Calculating Its Gradients】,与完整模型微调相比,流行的 PEFT 技术(例如适配器和 LoRA)只能将内存使用量减少到大约 70%。从计算的角度来看,内存效率仍然是一个不容忽视的关键因素。

为了提高内存效率,人们开发了各种技术来最大限度地减少微调期间整个 LLM 缓存梯度的需要,从而减少内存使用。

为了进一步减少微调期间的内存使用,一些方法尝试规避 LLM 内的反向传播来解决此问题。

应用 PEFT 到不同模型架构

主要包括 LLM、Vision Transformer、VLM、扩散模型,以适用于各种下游任务,强调 PEFT 在各种场景中的多功能性和适用性。

针对 LLM 的应用

Visual Instruct Following

Continual Learning (CL)

CL 的目标是在一个模型中随着时间的推移学习一系列新任务,该模型在对话系统、信息提取系统和问答系统等场景中具有广泛应用。CL 的主要挑战是灾难性遗忘。

一种流行的做法,称为基于架构的方法,通过维护特定于任务的参数来解决 CL 模型中每个新任务的输入。因此,很自然地利用 PEFT 方法来执行 CL 任务。

Context Window Extension

LLM 通常使用预定义的上下文大小进行训练。如 LLaMA 和 LLaMA2 的预定义上下文大小分别为 2048 和 4096 个 token。位置编码 RoPE 具有较弱的外推属性,这意味着在输入长度超过预定义上下文长度的情况下,性能明显下降。为了解决这个问题,一个简单的解决方案是将预训练的 LLM 微调到更长的上下文。然而,这会导致计算成本随上下文大小呈二次方上升,从而导致内存和处理资源紧张。

为了解决这个问题:

除了有限的训练阶段序列长度之外,现实世界的系统内存限制还给上下文窗口带来了另一个关键瓶颈。具体来说,KV 缓存的容量受到可用系统内存的限制。例如,以输入长度 1024 和批量大小 128 运行的 30B 参数 LLM 可能需要高达 180GB 的 KV 缓存【H2O: Heavy-Hitter Oracle for Efficient Generative Inference of Large Language Models】,从而限制了上下文窗口的可行大小。针对这一点,一些策略诉诸于量化 KV 缓存,但量化肯定会损害性能。为了在不造成重大损失的情况下有效地解决这个问题,最近一些工作展开了探索:

针对 Vision Transformer(ViT)的应用

图像分类

视觉数据集上的图像分类是一种非常常见的需求,并且具有广泛的应用,而预训练然后微调范式是一种广泛的策略。多种方法利用 PEFT 技术来实现高效的模型调整。

视频识别

一些工作考虑了更具挑战性的适应问题,将 ViT 转移到具有更大域隔阂的下游任务。

针对 Vision-Language Alignment 模型(VLA)的应用

VLA 如 CLIP、ALIGN、DeCLIP 和 FLAVA,旨在学习可以在统一表示中对齐的良好图像和文本特征空间。每个 VLA 通常由提取各自特征的单独图像和文本编码器组成。这些模型利用对比学习来有效地对齐图像和文本特征。利用微调来提高 VLA 在特定数据集或任务上的性能。

为了应对这些挑战,并从 PEFT 技术在 NLP 中的成功中汲取灵感,一系列 PEFT 策略被提出并在 VLA 模型中实现,例如语义分割、点云理解、视频理解、视觉推理、时间动作检测等。本节将重点介绍一项使用 VLA 的常见任务:开放词汇图像分类。

开放词汇图像分类

早期工作为每个类别设计特定于类别的提示,例如 a photo of a [CLASS],并根据图像与这些文本描述的相似度对图像进行排序。

另一方面,一些研究探索了 VLA 中 adapter 的使用。

针对扩散模型的应用

这是一类生成模型,通过渐进式去噪过程将随机噪声转换为结构化输出来学习生成数据。在训练过程中,扩散模型学习使用去噪网络反转添加到训练数据中的噪声,而在推理过程中,它们从噪声开始,使用去噪网络迭代创建反映与训练示例相同分布的数据。扩散模型各种应用中最值得注意的是 stable diffusion,它以其强大的生成能力弥合了文本和图像之间的差距。直接从文本描述中获得连贯且上下文相关的图像。许多研究利用 PEFT 技术来适应下游任务的预训练扩散模型,包括加快采样速度、文本到视频的适应、文本到 3D 适应等。这里主要关注两种场景:集成超出单纯基于文本的条件的附加输入模式,以及基于预训练扩散模型的定制化内容生成。

Additional Input Control

Customized Generation

文本到图像扩散模型的有效性受到用户通过文本阐明所需目标的能力的限制。
例如,很难描述一个大规模模型训练中不会遇到的创新玩具车的精确特征。因此,定制生成的目标是使模型能够从用户提供的最小图像集中掌握新概念。

PEFT 方法的系统设计挑战

这里主要涉及到系统设计,偏工程化的内容。所以简短摘录一下。

这里提出了三种预期的使用 :

image.png

总结

在当前以大型模型和大型数据集为主导的时代,PEFT 作为一种非常有吸引力的方法脱颖而出,可以有效地使模型适应下游任务。该技术通过解决传统全模型微调带来的重大挑战而获得吸引力,传统全模型微调通常对普通用户提出难以满足的计算和数据需求。对于 LEFT 的进一步研究,这里从算法和系统的角度提出了一系列可能的方向,希望能够启发更多的研究人员在这些领域进行进一步的研究:

  1. 简化超参数调整:PEFT 的有效性通常对其超参数敏感,例如适配器瓶颈尺寸、LoRA 秩以及不同附加性 PEFT 层的放置。手动调整这些超参数将花费大量精力。因此,未来的努力可以集中在开发更少依赖手动调整这些参数的方法,或者自动找到最佳的超参数设置。多项研究已经开始解决这个问题,但需要更简单、更有效的解决方案来优化这些超参数。
  2. 建立统一的基准:尽管存在像 HuggingFace 的 PEFT 和 AdapterHub 这样的库,但仍然缺乏全面的 PEFT 基准。这种差距阻碍了公平比较不同 PEFT 方法的性能和效率的能力。类似于 MMDetection 的广泛接受的最新目标检测基准将使研究人员能够根据任务和指标的标准集来验证他们的方法,促进社区内的创新和协作。
  3. 提升训练效率:**PEFT 的假定参数效率并不总是与训练期间的计算和内存节省一致。**鉴于可训练参数在预训练模型架构中交织在一起,因此在微调期间通常需要计算和存储完整模型的梯度。这种疏忽要求重新思考什么构成了效率。潜在的解决方案在于集成模型压缩技术,例如修剪和量化,以及专门设计用于在 PEFT 调整期间优化内存的创新。进一步提高 PEFT 方法的计算效率的研究势在必行。
  4. 探索缩放定律:最初为较小的 Transformer 模型开发的 PEFT 方法的设计和有效性不一定适用于较大的模型。 随着基础模型规模的增加,识别和调整保持有效的 PEFT 策略至关重要。这一探索将有助于根据大型模型结构的发展前景(evolving landscape)定制(tailor)PEFT 方法。
  5. 服务更多模型和任务:跨领域大型基础模型的兴起为 PEFT 带来了新的机遇。根据模型的独特特征设计定制的 PEFT 方法,例如 Sora、Mamba 和 LVM,可以解锁新的应用场景和机会。
  6. 加强数据隐私:信任中心化系统来服务或微调个性化 PEFT 模块是系统开发人员面临的另一个问题。 信道侧攻击者已成功部署通过劫持中间结果来重建用户数据。未来值得信赖的 LLM 系统设计的一个视角涉及为个人数据以及中间训练和推理结果开发加密协议。
  7. 带模型压缩的 PEFT:模型压缩是使 LLM 在资源有限的设备上可执行的最有效方法之一。然而,模型压缩技术对硬件上运行的 PEFT 算法性能的影响仍然是另一个系统性挑战。 量化和剪枝等常见的压缩技术需要专用的硬件平台来加快这一过程,而为压缩模型构建这样的硬件平台是研究人员的另一个方向。
转载请注明出处 (*❦ω❦)