引言
在深度学习领域,预训练模型的微调是一个常见且重要的任务。然而,随着模型规模的不断增大,传统的全参数微调方法面临着巨大的计算资源消耗和存储空间占用等挑战。为了解决这些问题,研究人员提出了一系列参数高效微调(Parameter-Efficient Fine-Tuning,PEFT)方法,其中适配器(Adapters)技术成为了最受欢迎和广泛应用的方法之一。
本文将深入探讨适配器技术的原理、主要类型及其在不同领域的应用,帮助读者全面了解这一革新性的微调方法。
适配器的基本概念
适配器是一种在预训练模型的基础上添加少量可训练参数的技术。具体来说,适配器方法在冻结的预训练模型的注意力层和全连接层之后添加额外的可训练参数。这种方法有效地减少了内存使用并加快了训练速度,同时保持了与全参数微调相当的性能。
适配器的核心思想是:
- 保持原始预训练模型的参数不变(冻结)
- 在模型的特定位置插入小型的可训练模块(适配器)
- 仅训练这些新增的适配器参数
通过这种方式,适配器技术实现了以下优势:
- 显著减少了需要训练的参数数量
- 降低了内存占用和计算资源需求
- 提高了训练效率和速度
- 实现了与全参数微调相近的性能
- 支持多任务学习和模型复用
接下来,我们将详细介绍几种主要的适配器方法及其特点。
低秩适配(Low-Rank Adaptation,LoRA)
原理
低秩适配(LoRA)是最受欢迎的PEFT方法之一,也是入门PEFT的良好起点。LoRA最初是为大型语言模型开发的,但由于其效率和有效性,它在扩散模型的训练中也得到了广泛应用。
LoRA的核心思想是通过低秩分解来表示权重更新 ΔW。具体来说,LoRA使用两个较小的矩阵(称为更新矩阵)来表示 ΔW,这些新矩阵可以被训练以适应新数据,同时保持整体参数数量较低。原始权重矩阵保持冻结状态,不接受任何进一步的更新。在生成最终结果时,原始权重和额外的适配权重被组合在一起。
优势
- 通过大幅减少可训练参数的数量,LoRA提高了微调的效率。
- 原始预训练权重保持不变,这意味着可以基于同一个基础模型为不同的下游任务构建多个轻量级且可移植的LoRA模型。
- LoRA与其他参数高效方法正交,可以与许多其他方法结合使用。
- 使用LoRA微调的模型性能与全参数微调的模型相当。
应用
理论上,LoRA可以应用于神经网络中任何权重矩阵的子集,以减少可训练参数的数量。然而,为了简单起见并进一步提高参数效率,LoRA通常只应用于Transformer模型的注意力块。
LoRA模型中可训练参数的最终数量取决于更新矩阵的大小,主要由秩r和原始权重矩阵的形状决定。
低秩哈达玛积(Low-Rank Hadamard Product,LoHa)
原理
低秩分解可能会影响性能,因为权重更新受限于低秩空间,这可能会限制模型的表达能力。然而,简单地增加秩并不是一个好的解决方案,因为这会增加可训练参数的数量。为了解决这个问题,研究人员提出了LoHa方法。
LoHa最初是为计算机视觉开发的,后来被应用于扩散模型,其中生成多样化图像的能力是一个重要考虑因素。LoHa使用哈达玛积(元素级乘积)代替矩阵乘积。在LoHa中,ΔW 由四个较小的矩阵表示,而不是像LoRA中那样使用两个矩阵。这四个低秩矩阵中的每一对都通过哈达玛积组合。
优势
- 与LoRA相比,LoHa可以在相同数量的可训练参数下实现更高的秩和表达能力。
- 特别适合于需要生成多样化输出的任务,如扩散模型。
- 理论上可以应用于各种类型的模型,尽管目前在PEFT中还未实现嵌入层。
低秩克罗内克积(Low-Rank Kronecker Product,LoKr)
原理
LoKr与LoRA和LoHa非常相似,主要应用于扩散模型,但也可以用于其他类型的模型。LoKr的特点是用克罗内克积代替了矩阵乘积。
克罗内克积分解创建了一个块矩阵,保留了原始权重矩阵的秩。克罗内克积的另一个好处是它可以通过堆叠矩阵列来向量化,这可以加速处理过程,因为避免了完全重建ΔW。
优势
- 保留了原始权重矩阵的秩,potentially提供更好的表达能力。
- 通过向量化操作提高了计算效率。
- 适用于各种类型的模型,尤其是扩散模型。
正交微调(Orthogonal Finetuning,OFT)
原理
OFT是一种主要专注于在微调模型中保留预训练模型的生成性能的方法。它试图保持一层中所有成对神经元之间的余弦相似度(超球面能量)不变,因为这更好地捕捉了神经元之间的语义信息。这意味着OFT更能保留主题,并且更适合可控生成(类似于ControlNet)。
OFT通过学习神经元的正交变换来保持超球面能量,以保持它们之间的余弦相似度不变。在实践中,这意味着将正交矩阵与预训练权重矩阵相乘。然而,为了提高参数效率,正交矩阵被表示为具有秩r块的块对角矩阵。
优势
- 更好地保留了预训练模型的生成能力。
- 适合需要精确控制生成过程的任务。
- 通过稀疏的块对角矩阵结构减少了可训练参数的数量。
正交蝶形(Orthogonal Butterfly,BOFT)
BOFT是OFT的一个变体,同样专注于保留预训练模型的生成性能。它使用蝶形结构来表示正交矩阵,这种结构可以更有效地捕捉长距离依赖关系。
自适应低秩适配(Adaptive Low-Rank Adaptation,AdaLoRA)
原理
AdaLoRA通过为重要的权重矩阵分配更多参数(即更高的秩r)来管理LoRA引入的参数预算,同时修剪不太重要的权重矩阵。秩的控制使用了类似于奇异值分解(SVD)的方法。
在AdaLoRA中,ΔW 由两个正交矩阵和一个包含奇异值的对角矩阵参数化。这种参数化方法避免了迭代应用SVD,后者在计算上是昂贵的。基于这种方法,根据重要性分数调整ΔW的秩。ΔW被分成三元组,每个三元组根据其对模型性能的贡献进行评分。重要性分数低的三元组被修剪,而重要性分数高的三元组被保留用于微调。
优势
- 动态调整不同权重矩阵的重要性,实现更高效的参数分配。
- 通过修剪不重要的参数,进一步提高了参数效率。
- 保持了与LoRA相似的性能,同时提供了更灵活的参数管理。
Llama-Adapter
原理
Llama-Adapter是一种将Llama模型适配为指令跟随模型的方法。为了帮助模型适应指令跟随,适配器使用52K指令-输出数据集进行训练。
一组可学习的适配提示被前缀到输入指令标记中。这些提示被插入到模型的上层,因为在预训练模型的高层语义上学习更好。前缀到输入的指令-输出标记指导适配提示生成上下文相关的响应。
特点
- 使用零初始化注意力,避免给标记添加噪声。
- 添加了一个可学习的门控因子(初始化为零),在训练过程中逐步向模型添加信息。
- 防止新学习的指令压倒模型的预训练知识。
结论
适配器技术为大型预训练模型的高效微调提供了一种强大而灵活的解决方案。通过添加少量可训练参数,适配器方法不仅大大降低了计算资源需求,还保持了与全参数微调相当的性能。从LoRA到AdaLoRA,从OFT到Llama-Adapter,每种适配器方法都有其独特的优势和适用场景。
随着深度学习模型规模的不断增长,参数高效微调技术将在未来扮演越来越重要的角色。适配器技术的发展不仅使得在有限资源下微调大型模型成为可能,还为多任务学习和模型复用开辟了新的道路。研究人员和实践者应根据具体任务需求和资源限制,选择合适的适配器方法,以充分发挥预训练模型的潜力。
参考文献
- Hu, E. J., et al. (2021). LoRA: Low-Rank Adaptation of Large Language Models.
- Gao, C., et al. (2023). LoHa: Low-Rank Hadamard Product for Efficient Language Model Fine-tuning.
- Zhang, Z., et al. (2022). Towards Efficient Visual Adaptation via Structural Re-parameterization.
- Zhao, R., et al. (2023). OFT: Orthogonal Finetuning for Text-to-Image Personalization.
- Sun, H., et al. (2023). BOFT: Efficient Text-to-Image Personalization with Orthogonal Butterfly Finetuning.
- Hu, E. J., et al. (2022). AdaLoRA: Adaptive Budget Allocation for Parameter-Efficient Fine-Tuning.
- Zhang, C., et al. (2023). LLaMA-Adapter: Efficient Fine-tuning of Language Models with Zero-init Attention.