引言
大型语言模型(LLM)代表了多个应用领域的突破性进展,能够在各种任务中取得显著成就。然而,它们前所未有的规模带来了巨大的计算成本。这些模型通常由数十亿个参数组成,需要大量的计算资源才能执行。特别是,当为特定的下游任务定制它们时,特别是在受计算能力限制的硬件平台上,扩展的规模和计算需求带来了相当大的挑战。
参数有效微调(Parameter Efficient Fine-Tuning, PEFT)通过在各种下游任务中有效地调整大型模型,提供了一种实用的解决方案。PEFT 是指调整预先训练的大型模型的参数,使其适应特定任务或领域,同时最小化引入的额外参数或所需计算资源的数量的过程。当处理具有高参数计数的大型语言模型时,这种方法尤其重要,因为从头开始微调这些模型可能计算成本高昂且资源密集。
本文对 PEFT 算法进行了全面的研究,检查了它们的性能和计算开销。此外,概述了使用不同 PEFT 算法开发的应用程序,并讨论了用于降低 PEFT 计算成本的常用技术。除了算法角度之外,还概述了各种现实世界中的系统设计,以研究与不同 PEFT 算法相关的实施成本。
PEFT 分类
PEFT 策略可大致分为四类:加性 PEFT、选择性 PEFT、重新参数化 PEFT 以及混合 PEFT。不同类型的 PEFT 算法概述如下。
A. 加性 PEFT (Additive PEFT)
标准的完全微调需要大量的计算费用,也可能损害模型的泛化能力。为了缓解这个问题,一种广泛采用的方法是保持预先训练的主干不变,并且只引入在模型架构中战略性定位的最小数量的可训练参数。在针对特定下游任务进行微调时,仅更新这些附加模块或参数的权重,这导致存储、内存和计算资源需求的显著减少。
-
适配器 (Adapter) 适配器方法包括在 Transformer 块中插入小型适配器层。这些层通常包含一个下投影层、一个非线性激活函数和一个上投影层,形成瓶颈结构。
-
软提示 (Soft Prompting) 提示调整提供了一种额外的方法来细化模型,以通过微调提高性能。它通过在输入序列前添加可学习的向量来引导模型生成。
-
其他加法方法 除了上述方法外,还出现了其他方法,在微调过程中战略性地加入了额外的参数。
B. 选择性 PEFT (Selective PEFT)
选择性 PEFT 不是通过添加更多参数来增加模型复杂性的附加 PEFT,而是对现有参数的子集进行微调,以提高模型在下游任务中的性能。
差分修剪是在微调期间将可学习的二进制掩码应用于模型权重的代表性工作。为了实现参数效率,通过 L0 范数惩罚的可微近似来正则化掩模。PaFi 只需选择具有最小绝对幅度的模型参数作为可训练参数。
然而,当实现 PEFT 时,上述非结构化参数掩蔽导致非零掩蔽的不均匀分布和硬件效率的降低。与随机应用的非结构化掩码不同,结构化掩码以规则模式组织参数掩码,因此可以提高训练过程中的计算和硬件效率。Diff 修剪提出了一种结构化的修剪策略,将权重参数划分为局部组,并战略性地将它们一起消除。类似地,FAR 通过将 Transformer 块中的 FFN 的权重分组为节点来微调 BERT 模型,然后使用 L1 范数对学习器节点进行排序和选择。
C. 重新参数化 PEFT (Reparameterized PEFT)
重新参数化表示通过转换模型的参数将模型的体系结构从一个等效地转换到另一个。在 PEFT 的背景下,这通常意味着在训练过程中构建一个低阶参数化来实现参数效率的目标。对于推理,可以将模型转换为其原始的权重参数化,确保推理速度不变。
早期的研究表明,常见的预训练模型表现出异常低的内在维度。换言之,可以找到对整个参数空间的微调有效的低维重新参数化。LoRA(低秩自适应)是最广泛认可的重新参数化技术之一。其核心思想是将权重矩阵的更新分解为两个低秩矩阵的乘积,从而大幅减少可训练参数的数量。
D. 混合 PEFT (Hybrid PEFT)
各种 PEFT 方法的疗效在不同的任务中可能存在显著差异。因此,许多研究旨在结合不同 PEFT 方法的优势,或通过分析这些方法之间的相似性来寻求建立统一的视角。例如,UniPELT 将 LoRA、前缀调整和适配器集成到每个 Transformer 块中。为了控制应激活哪些 PEFT 子模块,他们还引入了门控机制。该机制由三个小的 FFN 组成,每个 FFN 产生一个标量值,然后将其分别应用于 LoRA、前缀和适配器矩阵。
高效 PEFT 设计
从计算的角度来看,处理延迟和峰值内存开销是需要考虑的关键因素。本节介绍 LLM 的一个关键特性,旨在平衡延迟和内存使用。在此之后,探索了开发高效 PEFT 方法以应对计算挑战的策略,包括 PEFT 剪枝、PEFT 量化和记忆高效 PEFT 技术。
A. KV 缓存管理
LLM 模型的核心是一个自回归 Transformer 模型。当我们观察自回归特性时,它成为设计推理系统的一个主要挑战,因为每次生成新的令牌时,整个 LLM 模型都必须将所有权重从不同的内存转移到图形处理器的内存中。服务于自回归范式的挑战性部分是,所有先前的序列都必须被缓存并保存以供下一次迭代,从先前序列生成的缓存激活被存储为键值缓存(KV 缓存)。


