一文彻底搞懂Fine-tuning - 参数高效微调(Parameter-Efficient Fine-Tuning)
PEFT技术详解:如何用极简参数撬动大模型
本文详细介绍了参数高效微调(PEFT)的核心原理与三种主流实现方法:Prefix Tuning、LoRA和Adapter Tuning。
大模型的参数规模已经来到了千亿、万亿级别。在这种情况下,每换一个任务就要从头全量微调一次,无论在算力还是存储上,代价都高得惊人。那么,有没有一种方式,能让模型在几乎不改变原始参数的前提下,快速适应新的任务?
答案是肯定的。PEFT(Parameter-Efficient Fine-Tuning)就是解决这一问题的关键技术。它的思路很巧妙:冻结预训练模型绝大多数参数,只额外训练一小部分可学习的参数,用这部分“四两拨千斤”的模块来引导模型输出转向新任务。这些额外参数可以是新插入的嵌入层、低秩矩阵或者其他轻量级结构。
目前,PEFT家族中应用最广的三位成员是:
Prefix Tuning(前缀微调)、LoRA(低秩适应)和Adapter Tuning(适配器微调)
一、Prefix Tuning(前缀微调)
什么是Prefix Tuning?
Prefix Tuning的核心操作非常直观——在原始文本经过词嵌入处理之后,在前面拼接上一个可训练的前缀矩阵。这个前缀会与输入序列一同输入到注意力机制中,从而影响模型对整段文本的理解。关键在于,这一小段“前缀”是专门针对当前任务学习的,其他所有预训练参数保持不动。实践中,这个前缀可以只加在模型的输入层,也可以逐层都加上,灵活性很高。
如何对Transformer模型进行Prefix Tuning?
具体实现并不复杂,主要包含以下几个步骤:
- :在模型的输入层前,初始化一个固定长度的可学习嵌入矩阵,维度为[前缀长度,嵌入维度],其中嵌入维度与模型词嵌入一致。前缀长度则根据任务需求调整。
初始化前缀嵌入
- :将这个前缀矩阵与原始输入序列的嵌入表示拼接在一起,作为新的输入送入模型。
拼接输入序列
- :在训练时,模型只反向传播更新这个前缀嵌入的参数,以最小化当前任务的损失。原始预训练参数全部冻结。
训练更新
- :根据训练表现,还可以进一步调整前缀的初始化方式、长度、学习率等超参数,以获得更好的性能。
微调优化
- :训练完成后,在推理阶段,只需将任务输入与训练好的前缀拼接,送入模型即可得到预测结果。
推理部署
这种方法在文本分类、问答等任务上表现突出,尤其适合需要对Transformer模型进行轻量级适配的场景。
二、LoRA(低秩适应微调)
什么是LoRA?
LoRA背后的洞察很有意思:它假设预训练模型在适配新任务时,其权重的变化量(即微调前后的差值)本身是低秩的。换句话说,我们不需要直接更新整个大矩阵,而是可以用两个小矩阵的乘积来近似这个变化量。
具体来说,LoRA在预训练模型的权重矩阵旁引入了两个低秩矩阵A和B(其中A远小于原始矩阵),用它们的乘积来近似模型参数的更新ΔW = AB。训练时,只更新A和B的参数,原始预训练模型参数完全不变。
LoRA的核心参数有哪些?
LoRA的效果高度依赖于以下四个关键超参数的设置:
- :决定低秩矩阵的维度。在小型数据集或简单任务中,秩设为1或2即可;任务复杂时,可能需要4、8甚至更高。
秩(lora_rank)
- :用于在训练开始时对低秩矩阵的更新进行缩放,以保证训练的稳定性。具体值取决于秩和任务复杂度。
缩放系数(lora_alpha)
- :正则化手段,控制训练过程中随机丢弃低秩矩阵元素的比例,取值范围通常在0到1之间。
Dropout系数(lora_dropout)
- :控制权重更新步长,需要根据模型和数据规模仔细调节。
学习率(learning_rate)

LoRA凭借其高效性和稳定性,已经成为大模型微调领域使用最广泛的方法之一,特别适合于大型语言模型和扩散模型的轻量化适配。
三、Adapter Tuning(适配器微调)
什么是Adapter Tuning?
Adapter Tuning的思路类似在现有建筑的每层之间加装一个小的“扩展房间”。它通过在预训练模型的各层之间插入小型神经网络模块(即适配器),用这些模块来学习特定任务的知识,而原始模型的参数全程保持不变。
一个典型的适配器通常包含一个降维层、一个非线性激活函数和一个升维层,结构紧凑,参数量很少。
Adapter Tuning如何实现?
实施流程一般包括以下几个环节:
- :安装并配置好PyTorch或TensorFlow等深度学习框架。
环境准备
- :根据任务需求设计适配器结构,通常包含输入层、输出层、下投影和上投影前馈层以及激活函数。
定义Adapter模块
- :将适配器插入到Transformer架构的特定位置,一般放在两个全连接层(FFN)之间。
插入预训练模型
- :收集并处理好训练集、验证集和测试集。
数据集准备
- :将预训练模型与适配器模块结合,确保数据能正确处理。
定义完整模型
- :在任务数据集上训练时,只更新适配器参数,冻结所有预训练参数。
训练适配器
- :在测试集上评估性能,根据结果进行迭代调整。
评估与优化


Adaptor Tuning在参数量和表现之间取得了很好的平衡,在NLP和计算机视觉任务中都有广泛应用。
从目前行业的发展来看,PEFT这一系列方法已经成为了大模型落地的必选项。无论是让模型更迅速地适配垂直领域,还是降低中小企业使用大模型的成本和门槛,PEFT都提供了非常优雅的解决方案。未来,随着模型规模的进一步增长,参数高效微调技术的价值只会更加凸显。对于每一位从事模型工程和AI应用的人来说,深入理解并熟练运用PEFT,已经是一项必备技能了。
-
- 关于宇宙的好的网名有哪些
- 角色扮演 | 1
- 网名