引言
大型语言模型(LLM)代表了多个应用领域的突破性进展,能够在各种任务中取得显著成就。然而,它们前所未有的规模带来了巨大的计算成本。这些模型通常由数十亿个参数组成,需要大量的计算资源才能执行。特别是,当为特定的下游任务定制它们时,特别是在受计算能力限制的硬件平台上,扩展的规模和计算需求带来了相当大的挑战。
参数有效微调(PEFT)通过调整大型模型的参数以适应下游任务,同时最小化额外计算资源。本文综述了 PEFT 的四大分类:加性、选择性、重新参数化及混合方法。详细探讨了 KV 缓存管理、剪枝、量化等提升效率的策略,以及在 LLM、视觉 Transformer、视觉语言对齐模型和扩散模型中的应用。此外,还分析了 PEFT 在云服务和分布式系统中的设计挑战与未来研究方向。

大型语言模型(LLM)代表了多个应用领域的突破性进展,能够在各种任务中取得显著成就。然而,它们前所未有的规模带来了巨大的计算成本。这些模型通常由数十亿个参数组成,需要大量的计算资源才能执行。特别是,当为特定的下游任务定制它们时,特别是在受计算能力限制的硬件平台上,扩展的规模和计算需求带来了相当大的挑战。
参数有效微调(Parameter Efficient Fine-Tuning, PEFT)通过在各种下游任务中有效地调整大型模型,提供了一种实用的解决方案。PEFT 是指调整预先训练的大型模型的参数,使其适应特定任务或领域,同时最小化引入的额外参数或所需计算资源的数量的过程。当处理具有高参数计数的大型语言模型时,这种方法尤其重要,因为从头开始微调这些模型可能计算成本高昂且资源密集。
本文对 PEFT 算法进行了全面的研究,检查了它们的性能和计算开销。此外,概述了使用不同 PEFT 算法开发的应用程序,并讨论了用于降低 PEFT 计算成本的常用技术。除了算法角度之外,还概述了各种现实世界中的系统设计,以研究与不同 PEFT 算法相关的实施成本。
PEFT 策略可大致分为四类:加性 PEFT、选择性 PEFT、重新参数化 PEFT 以及混合 PEFT。不同类型的 PEFT 算法概述如下。
标准的完全微调需要大量的计算费用,也可能损害模型的泛化能力。为了缓解这个问题,一种广泛采用的方法是保持预先训练的主干不变,并且只引入在模型架构中战略性定位的最小数量的可训练参数。在针对特定下游任务进行微调时,仅更新这些附加模块或参数的权重,这导致存储、内存和计算资源需求的显著减少。
适配器 (Adapter) 适配器方法包括在 Transformer 块中插入小型适配器层。这些层通常包含一个下投影层、一个非线性激活函数和一个上投影层,形成瓶颈结构。
软提示 (Soft Prompting) 提示调整提供了一种额外的方法来细化模型,以通过微调提高性能。它通过在输入序列前添加可学习的向量来引导模型生成。
其他加法方法 除了上述方法外,还出现了其他方法,在微调过程中战略性地加入了额外的参数。
选择性 PEFT 不是通过添加更多参数来增加模型复杂性的附加 PEFT,而是对现有参数的子集进行微调,以提高模型在下游任务中的性能。
差分修剪是在微调期间将可学习的二进制掩码应用于模型权重的代表性工作。为了实现参数效率,通过 L0 范数惩罚的可微近似来正则化掩模。PaFi 只需选择具有最小绝对幅度的模型参数作为可训练参数。
然而,当实现 PEFT 时,上述非结构化参数掩蔽导致非零掩蔽的不均匀分布和硬件效率的降低。与随机应用的非结构化掩码不同,结构化掩码以规则模式组织参数掩码,因此可以提高训练过程中的计算和硬件效率。Diff 修剪提出了一种结构化的修剪策略,将权重参数划分为局部组,并战略性地将它们一起消除。类似地,FAR 通过将 Transformer 块中的 FFN 的权重分组为节点来微调 BERT 模型,然后使用 L1 范数对学习器节点进行排序和选择。
重新参数化表示通过转换模型的参数将模型的体系结构从一个等效地转换到另一个。在 PEFT 的背景下,这通常意味着在训练过程中构建一个低阶参数化来实现参数效率的目标。对于推理,可以将模型转换为其原始的权重参数化,确保推理速度不变。
早期的研究表明,常见的预训练模型表现出异常低的内在维度。换言之,可以找到对整个参数空间的微调有效的低维重新参数化。LoRA(低秩自适应)是最广泛认可的重新参数化技术之一。其核心思想是将权重矩阵的更新分解为两个低秩矩阵的乘积,从而大幅减少可训练参数的数量。
各种 PEFT 方法的疗效在不同的任务中可能存在显著差异。因此,许多研究旨在结合不同 PEFT 方法的优势,或通过分析这些方法之间的相似性来寻求建立统一的视角。例如,UniPELT 将 LoRA、前缀调整和适配器集成到每个 Transformer 块中。为了控制应激活哪些 PEFT 子模块,他们还引入了门控机制。该机制由三个小的 FFN 组成,每个 FFN 产生一个标量值,然后将其分别应用于 LoRA、前缀和适配器矩阵。
从计算的角度来看,处理延迟和峰值内存开销是需要考虑的关键因素。本节介绍 LLM 的一个关键特性,旨在平衡延迟和内存使用。在此之后,探索了开发高效 PEFT 方法以应对计算挑战的策略,包括 PEFT 剪枝、PEFT 量化和记忆高效 PEFT 技术。
LLM 模型的核心是一个自回归 Transformer 模型。当我们观察自回归特性时,它成为设计推理系统的一个主要挑战,因为每次生成新的令牌时,整个 LLM 模型都必须将所有权重从不同的内存转移到图形处理器的内存中。服务于自回归范式的挑战性部分是,所有先前的序列都必须被缓存并保存以供下一次迭代,从先前序列生成的缓存激活被存储为键值缓存(KV 缓存)。
KV 缓存的存储将同时消耗内存空间和 IO 性能,导致工作负载内存受限且系统计算能力利用不足。以前的工作提出了一系列解决方案,如 KV 缓存控制管理或 KV 缓存压缩,以提高吞吐量或减少延迟。在设计 PEFT 方法时,考虑 KV 缓存的特性以补充其特性是至关重要的。例如,当在推理阶段应用软提示时,通过确保与提示相关的数据易于访问,有效地利用 KV 缓存进行这些额外的输入可以帮助加快响应时间。
剪枝的加入可以大大提高 PEFT 方法的效率。特别是,AdapterDrop 探索了在 AdapterFusion 中从较低的转换层和多任务适配器中删除适配器,这表明剪枝可以在性能下降最小的情况下提高训练和推理效率。SparseAdapter 研究了不同的剪枝方法,发现高稀疏率(80%)可以优于标准适配器。此外,大稀疏配置增加了瓶颈尺寸,同时保持了恒定的参数预算,大大增强了模型的容量,从而提高了性能。
量化是提高计算效率和减少内存使用的另一种流行技术。例如,通过研究适配器的损失情况,BI Adapter 发现适配器能够抵抗参数空间中的噪声。在此基础上,作者引入了一种基于聚类的量化方法。值得注意的是,它们证明了适配器的 1 位量化不仅最大限度地减少了存储需求,而且在所有精度设置中都实现了卓越的性能。
PEQA(参数高效和量化感知自适应)使用两级流水线来实现参数高效和量化器感知微调。QA LoRA 解决了 QLoRA 的另一个局限性,QLoRA 在微调后难以保持其量化特性。在 QLoRA 中,量化的预训练权重(NF4)必须恢复到 FP16,以在权重合并期间匹配 LoRA 权重精度(FP16)。相反,QA LoRA 使用 INT4 量化,并引入分组运算符以在推理阶段实现量化,因此与 QLoRA 相比提高了效率和准确性。
为了提高内存效率,已经开发了各种技术来最小化在微调期间对整个 LLM 的缓存梯度的需要,从而减少内存使用。例如,Side-Tuning 和 LST(Ladder-Side Tuning) 都引入了与主干模型并行的可学习网络分支。通过专门通过这个并行分支引导反向传播,它避免了存储主模型权重的梯度信息的需要,从而显著降低了训练期间的内存需求。类似地,Res Tuning 将 PEFT 调谐器(例如,即时调谐、适配器)与主干模型分离。在分解的基础上,提出了一个名为 Res-Mtuning Bypass 的高效内存微调框架,该框架通过去除从解耦的调谐器到主干的数据流,生成与主干模型并行的旁路网络。
尽管大多数讨论的 PEFT 方法都是应用于传统架构(如 LLM)或标准基准(如 GLUE 数据集),但在本部分我们将重点介绍和讨论利用 PEFT 策略执行各种下游任务的几项最具代表性的工作。我们围绕各种模型架构组织讨论,这些架构包括:LLM、视觉 Transformer(ViT)、视觉语言对齐模型(VLA)和扩散模型。
与 NLP 中的常见任务(如 NLU 和 NLG)不同,PEFT 技术在不同的场景中具有广泛的应用。PEFT 已成功应用于常识性问答、多层次隐含话语关系识别、分布外检测、隐私保护、联合学习和社会偏见缓解等领域。在本节中,我们将更多地关注三个具有代表性的下游任务:视觉指令跟随、持续学习和上下文窗口扩展。
视觉指导 包括 VL-BART、MiniGPT-4 和 LLaVA 在内的几项研究成功地扩展了 LLM 的能力,LLM 最初是为纯文本设计的,可以理解和生成对视觉输入的响应。这些增强的模型,即视觉指令跟随 LLM,可以处理图像和文本以产生文本响应,这些文本响应可以在图像字幕和视觉问答(VQA)等任务上进行基准测试。然而,这些方法对整个 LLM 进行微调以学习视觉表示,这在时间和内存方面都是低效的。因此,将 PEFT 技术应用于 LLM 后视觉教学的微调是很自然的。
持续学习 (CL) CL 旨在在一个模型中学习一系列新任务,在对话系统、信息提取系统和问答系统等场景中有广泛应用。CL 的主要挑战是灾难性遗忘。一种流行的做法,称为基于体系结构的方法,通过在模型中为每个新任务维护特定于任务的参数来处理 CL。因此,将 PEFT 方法用于 CL 任务是很自然的。
上下文窗口扩展 LLM 通常使用预定义的上下文大小进行训练。例如,LLaMA 和 LLaMA2 分别具有 2048 和 4096 个令牌的预定义上下文大小。位置编码 RoPE 具有弱的外推特性,这意味着在输入长度超过预定义上下文长度的情况下,性能明显下降。为了解决这个问题,一个简单的解决方案是将预先训练的 LLM 微调到更长的上下文。然而,这会随着上下文大小的二次方增加计算成本,从而使内存和处理资源紧张。
在最近的计算机视觉社区中,ViT 已经成为一种强大的骨干模型。在 ViT 模型中,图像被视为固定大小的补丁序列,类似于 LLM 如何使用离散标记。这些补丁经过线性嵌入,然后接收位置编码。随后,它们通过标准的 Transformer 编码器进行处理。ViT 的训练可以是监督的或自监督的,并且当使用更多数据和更大的模型大小进行训练时,ViT 可以实现卓越的性能。然而,这种规模的扩大不可避免地会增加培训和存储成本。因此,与 LLM 类似,PEFT 广泛应用于各种下游任务,如密集预测、连续学习、深度度量学习。在这里,我们重点关注两个典型的任务来展示 PEFT 的参与:图像分类和视频复原。
图像分类 在目标视觉数据集上进行图像分类是一种非常普遍的需求,具有广泛的应用,而预训练 - 微调范式是一种广泛的策略。多种方法利用 PEFT 技术实现有效的模型调整。
视频识别 一些工作考虑了更具挑战性的适应问题,即将 ViT 转移到具有更大领域差距的下游任务。例如,ST 适配器(时空适配器)和 AIM 都将适配器层插入到预训练的 ViT 块中。他们的主要目标是对时空信息进行建模,从而使 ViT 能够有效地从图像模型适应视频任务。值得注意的是,这两种方法的性能都超过了传统的全模型微调方法。
视觉语言对齐模型(VLA),如 CLIP、ALIGN、DeCLIP 和 FLAVA,旨在学习可以在统一表示空间内对齐的良好图像和文本特征。每个 VLA 通常由提取各自特征的独立图像和文本编码器组成。在这些模型中,对比学习被用来有效地对齐图像和文本特征。微调被用来提高 VLA 在特定数据集或任务中的性能,但对整个模型的微调是计算密集型的。
在另一个方向上,一些研究探讨了适配器在 VLA 中的使用。例如,CLIP 适配器在 CLIP 的文本和视觉编码器之后集成了残余样式适配器。因此,与 CoOp 和 CoCoOp 不同,CLIP Adapter 避免了通过 CLIP 编码器的梯度反向传播,从而降低了训练内存和时间方面的计算要求。尖端适配器采用与 CLIP 适配器相同的设计。与 CLIP 适配器不同的是,适配器的权重是以无训练的方式从查询密钥缓存模型中获得的,该模型是以非参数方式从最少监督构建的。因此,与 CLIP-Adapter 的 SGD 训练过程相比,Tip-Adapter 表现出了极大的效率。
扩散模型是一类生成模型,通过渐进去噪过程将随机噪声转换为结构化输出,学习生成数据。在训练过程中,扩散模型学习使用去噪网络来反转添加到训练数据中的噪声,而在推理中,它们从噪声开始,使用去噪网迭代创建与训练示例相同分布的数据。扩散模型有各种应用,而最值得注意的是稳定扩散,它以其直接从文本描述生成连贯和上下文相关图像的强大能力弥合了文本和图像之间的差距。许多研究利用 PEFT 技术将预先训练的扩散模型用于下游任务,包括加速采样速度、文本到视频的自适应、文本到 3D 的自适应等。本节主要关注两种场景:在仅基于文本的条件之外集成额外的输入模式,以及基于预先训练的传播模型定制内容生成。
附加输入控制 为了在保留预先训练的模型中的广泛知识的同时纳入附加输入模式(如布局、关键点),GLIGEN 引入了一种新的方法,该方法保持原始模型的权重不变,并集成新的、可训练的门控 Transformer,以接受新的接地输入。所得到的模型不仅可以准确地表示接地条件,而且可以生成高质量的图像。值得注意的是,该模型在推理过程中也能很好地推广到看不见的物体。
自定义生成 文本到图像扩散模型的有效性受到用户通过文本描述阐明所需目标的能力的限制。例如,很难描述一辆创新玩具车的精确特征,而这在大型模型训练中是不会遇到的。因此,定制生成的目标是使模型能够从用户提供的图像的最小集合中掌握新概念。
在本节中,我们首先简要介绍基于云的 PEFT 系统。接下来,我们介绍了用于评估系统性能的相应指标。此外,我们还提出了三种潜在的利用场景,以说明系统设计中的挑战。
集中式 PEFT 查询服务 云提供商最近推出了一系列 LLM 服务,旨在通过应用程序编程接口(API)提供用户应用程序。这些 API 有助于将许多 ML 功能无缝集成到应用程序中。在通过 API 接收到针对一个特定下游任务的一个查询之后,基于云的服务器使用一个特色 LLM 模型来处理该查询。在这种情况下,所提出的用于处理多个 PEFT 查询的云解决方案涉及仅存储 LLM 的单个副本和多个 PEFT 模块。此单个副本维护多个 PEFT 模块分支,每个分支与不同的 PEFT 查询相关联。图 10(b)说明了多查询 PEFT 推理的计算模式,其中打包 PEFT 查询根据其截止日期和当前系统条件进行调度和执行。
服务指标 为了评估集中式 PEFT 查询服务的系统性能,我们提出了一组评估指标。
PEFT 的分布式系统 然而,在当代 LLM 模型中,预先训练的模型并不完全支持个性化任务,因此,需要使用前面章节中提到的方法进行额外的微调。然而,当我们考虑将数据集提供给云提供商时,会引起一个很大的担忧,因为这些数据集是个性化的。对于这个问题,我们假设我们的计算遵循模型集中式和 PEFT 分布式范式。骨干 LLM 存储在云设备中,而个人 PEFT 权重以及数据集存储在用户自己的设备中。
分布式度量 为了评估所提出方法的有效性,我们建立了一组评估度量。为了进行此分析,在不失一般性的情况下,我们采用语言模型作为度量定义的基础。
多 PEFT 训练 与多个 PEFT 服务不同,使用多个定制 PEFT 进行调整总是涉及不同的骨干 LLM。当考虑在各种下游任务中使用 LLM 时,预先训练的模型通常表现出较差的性能。使 LLM 适应不同任务的一种流行方法涉及精心调整的 PEFT。然而,同时调整多个 PEFT 可能会带来相当大的挑战。如何管理内存梯度和模型权重存储,以及如何设计用于批处理 PEFT 训练的高效内核等挑战仍未解决。PEFT 将根据其 PEFT 算法和骨干 LLM 模型进行分类。设计挑战涉及如何同时将多个具有相同 LLM 主干和多个不同 LLM 主干的 PEFT 合并。
设计挑战 与旨在适应灵活的多 PEFT 算法的系统不同,SLoRA 和 Punica 仅专注于促进各种任务的多个 LoRA 块。设计多个 PEFT 培训系统主要面临两个方面的关键挑战:
高效的内核设计 Punica 解决了第一个挑战,将现有的矩阵乘法用于主干计算,并引入了一种新的 CUDA 内核——分段聚集矩阵矢量乘法(SGMV),用于以批处理的方式将 PEFT 附加项添加到主干计算中。该内核对批处理中不同请求的特征权重相乘进行并行化,并将对应于同一 PEFT 模型的请求分组,以增加操作强度并使用 GPU 张量核心进行加速。
第二个挑战超出了计算成本,设计一种高效的系统架构是另一个重大挑战,该架构可以在尽可能小的 GPU 集上有效地服务于多租户 PEFT 模型工作负载,同时占用最少的 GPU 资源。Punica 通过将用户请求调度到已经服务或训练 PEFT 模型的活动 GPU 来解决这一问题,从而提高 GPU 利用率。对于较旧的请求,Punica 会定期迁移它们以整合工作负载,从而为新请求释放 GPU 资源。
在当前由大型模型和大型数据集主导的时代,PEFT 是一种非常有吸引力的方法,可以有效地使模型适应下游任务。这项技术通过解决传统的全模型微调带来的重大挑战而获得吸引力,这种微调通常会给普通用户带来难以维持的计算和数据需求。本调查对 PEFT 的最新进展进行了系统回顾,涵盖算法开发、计算和效率方面、应用和系统部署。它提供了一个全面的分类和解释,作为一个很好的指导和知识库,使不同级别和学科的读者能够迅速掌握 PEFT 的核心概念。
为了进一步研究 PEFT,我们从算法和系统的角度提出了一系列可能的方向,希望能激励更多的研究人员在这些领域进行进一步的研究。
简化超参数调整 PEFT 的有效性通常对其超参数敏感,如适配器的瓶颈尺寸 r、LoRA 的等级和不同附加 PEFT 层的位置。手动调整这些超参数将花费大量精力。因此,未来的工作可以集中在开发不太依赖手动调整这些参数的方法,或者自动找到最佳超参数设置。一些研究已经开始解决这个问题,但需要更简单有效的解决方案来优化这些超参数。
建立统一基准 尽管存在像 HuggingFace 的 PEFT 和 AdapterHub 这样的库,但仍然缺乏一个全面的 PEFT 基准。这种差距阻碍了公平比较不同 PEFT 方法的性能和效率的能力。一个被广泛接受的、类似于物体检测的 MMDetection 的最新基准将使研究人员能够根据一组标准的任务和指标来验证他们的方法,从而促进社区内的创新和合作。
增强训练效率 PEFT 的假定参数效率并不总是与训练期间的计算和内存节省一致。考虑到可训练参数在预训练模型的体系结构中相互交织,在微调过程中通常需要计算和存储整个模型的梯度。这种监督要求重新思考什么是效率。如第四节所述,潜在的解决方案在于模型压缩技术的集成,如剪枝和量化,以及专门为优化 PEFT 调整期间的内存而设计的创新。进一步研究提高 PEFT 方法的计算效率势在必行。
探索缩放定律 最初为较小的 Transformer 模型开发的 PEFT 方法的设计和有效性不一定与较大的模型相适应。随着基础模型规模的增加,识别和调整保持有效的 PEFT 战略至关重要。这一探索将有助于根据大型模型架构的发展趋势定制 PEFT 方法。
服务更多模型和任务 大型基础模型在各个领域的兴起为 PEFT 提供了新的机会。设计适合模型独特特征的 PEFT 方法,如 Sora、Mamba 和 LVM,可以释放新的应用场景和机会。
增强数据隐私 信任集中式系统来服务或微调个性化 PEFT 模块是系统开发人员的另一个问题。侧通道攻击者已成功部署,通过劫持中间结果来重建用户的数据。未来值得信赖的 LLM 系统设计的一个视角涉及为个人数据以及中间训练和推理结果开发加密协议。
PEFT 与模型压缩 模型压缩是使 LLM 在资源有限的设备上可执行的最有效方法之一。然而,模型压缩技术对在硬件上运行的 PEFT 算法性能的影响仍然是另一个系统性挑战。量化和剪枝等常见的压缩技术需要专用的硬件平台来加快过程,而为压缩模型构建这样的硬件平台是研究人员的另一个方向。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online