预训练模型的微调方法
利用强化学习的方法对已经预训练好的模型进行进一步训练,通过让模型与环境进行交互,根据其行为获得奖励或惩罚信号,并据此调整模型的参数,使其能够更好地完成目标。,底层冻结:底层通常学习通用特征(如文本的字符 / 词嵌入、图像的边缘 / 纹理),顶层则学习任务相关特征,所以冻结底层可减少过拟合风险(如BERT的顶层Transformer)。:(Hard Prompt)是指人工设计的模板,在提示工程中
目的:将在大规模通用数据上预训练的模型(如 BERT、GPT、ResNet 等)适配到特定任务或领域,从而提升模型在具体应用场景下的性能。
微调方法:
一、经典全参数微调(Full Fine-tuning)
方法:调整预训练模型的所有参数,在目标数据上重新训练
特点:能充分挖掘模型潜力,理论上可达到最优性能,但计算成本高(需大量 GPU 资源),下游任务数据量不足时容易过拟合
适用场景:下游任务数据量较大(如数万至数十万样本),且与预训练任务领域相近(例如用通用文本预训练的 BERT 微调情感分析)。
改进:
分层学习率:不同层使用差异化的学习率(底层靠近输入层参数更新慢,常设较小学习率,保持其已学到的特征稳定性;高层靠近输出层,可以使用较大的学习率,加快对任务特定特征的调整和优化)。
渐进解冻:逐层解冻参数(如从顶层到底层,模型的底层参数负责提取通用特征,顶层参数更专注于具体任务。从顶层到底层,目的是可以先让顶层参数适应当前任务,再逐步引入底层参数进行微调)。
二、部分参数微调
仅调整预训练模型的部分层或参数,冻结其余层
策略包括:
1、顶层微调,底层冻结:底层通常学习通用特征(如文本的字符 / 词嵌入、图像的边缘 / 纹理),顶层则学习任务相关特征,所以冻结底层可减少过拟合风险(如BERT的顶层Transformer)。
2、任务特定头微调:完全冻结预训练模型的所有参数,仅训练新增的下游任务头(如分类层、回归层)
特点:
节省计算资源并加快训练速度,几乎不会过拟合,但性能较差
适用场景:
下游任务数据量极小(如数千样本),或预训练模型已高度适配任务(例如用专门训练的模型迁移到相似任务)
3、微调特定模块:针对模型的关键组件替换(如注意力机制的参数、Transformer 的 FFN 层)
“解冻” 策略:
先冻结所有层,仅训练新增的任务头,先让任务头适应新任务;待收敛后,逐步解冻底层并微调(如 “逐层解冻”),逐步调整模型主体,避免初期训练时对预训练参数的剧烈扰动
适用场景:
下游任务数据量较小,或预训练模型与下游任务领域差异较大(需保留通用特征,仅调整高层适配)。
特点:
降低计算成本,减少过拟合风险,可能丢失部分模型潜力,需手动设计微调层,依赖经验
三、参数高效微调
1、适配器(Adapters)
原理:
在模型的每层(如 Transformer 的注意力层或 FFN 层)插入小型 “适配器模块”(如瓶颈结构:降维→非线性变换→升维),仅训练适配器参数,固定主模型参数;
即:在Transformer层间插入小型全连接网络
优点:
新增参数少(如 BERT-base 插入 Adapter 后新增参数约 3.6%),可灵活插拔,支持多任务切换
变体:
Parallel Adapter(如Houlsby结构)、LoRA-Fused Adapter(结合LoRA的混合设计)
2、 低秩适应(LoRA)
原理:
将权重更新矩阵分解为两个低秩矩阵的乘积,仅训练这两个低秩矩阵,原权重冻结。微调完成后,将低秩矩阵与原权重合并用于推理。
优点:
显著减少可训练参数量,参数效率极高(如 GPT-3 175B 模型用 LoRA 微调仅需训练数万参数), 不易过拟合,且性能接近全参数微调
3、 前缀微调(Prefix Tuning)
原理:
在输入序列前添加可学习的 “虚拟token"(Prefix),仅优化这部分参数
适用场景:
生成任务(如文本摘要、翻译)
升级版:
P-Tuning v2(在多层注入Prefix,支持序列任务)。
4、其他高效方法
BitFit:仅训练偏置项(bias terms)。
DiffPruning:学习参数掩码(mask)实现稀疏更新。
参数高效微调适用场景:
大模型微调(如 10B + 参数)、资源受限环境、多任务迁移(可共享主模型,仅切换新增参数)
四、提示微调(Prompt-based Fine-tuning)
软提示:引入可学习的连续向量(如Prompt Tuning(提示调优)方法)作为输入的一部分,来引导预训练模型生成特定的输出或完成特定任务。
优点:允许模型在不改变原有参数的情况下适应新任务,提高了灵活性和效率
硬提示:(Hard Prompt)是指人工设计的模板,在提示工程中,明确、具体且通常带有强制性的指示或要求,(如"这句话:{text},情感是[MASK]")
其中{text}是输入文本的位置,[MASK]是模型需要填充的部分,用于表达对这段文本情感的判断
混合提示:结合离散与连续提示(如OPTIPROMPT),可以更灵活地调整模型,使其更好地适应特定任务或需求
离散提示:**指使用具体的、可数的元素来引导模型生成特定类型的输出
连续提示:通过连续的数值或向量来影响模型的行为。
五、 基于强化学习的微调
原理:
利用强化学习的方法对已经预训练好的模型进行进一步训练,通过让模型与环境进行交互,根据其行为获得奖励或惩罚信号,并据此调整模型的参数,使其能够更好地完成目标。这种方法在需要决策或交互的任务中(如游戏、机器人控制、对话系统等)尤为常见。
RLHF(人类反馈强化学习):
步骤:
SFT (监督微调)→ 奖励模型训练 → PPO优化(近端策略优化)
ChatGPT 就是采用这种流程进行训练的。
扩展:
DPO(直接偏好优化)替代PPO,简化流程。
六、多任务/持续学习微调
多任务学习:
共享主干网络,同时优化多个任务损失。
持续学习:
应用一:EWC(弹性权重固化) 防止灾难性遗忘。
指神经网络在学习新任务时,会显著遗忘之前已经学会的任务。EWC 的核心思想是识别出对先前任务重要的模型参数,并对这些参数施加正则化约束,使其在学习新任务时不易发生较大变化,从而保留旧任务的知识
应用二:AdapterFusion(适配器融合):在神经网络中插入小型模块(称为适配器)来实现对新任务的学习,复用已有适配器组合新任务。
七、 数据高效微调技术
小样本学习(Few-shot FT):基于提示或元学习(如MAML)。
半监督微调:利用未标注数据(如自训练、一致性正则化)。
数据增强:通过回译、对抗样本生成扩充数据
八、稀疏微调与动态网络
稀疏微调:仅更新部分参数(如通过彩票假设筛选子网络)。
动态架构:根据输入调整激活路径(如Switch Transformers);
根据不同的输入数据或运行时条件,自动调整内部结构或计算路径的架构设计。具备灵活性和自适应性,能够在不同的场景下优化性能、资源利用或准确率。
选择建议:
资源受限:优先LoRA/P-Tuning v2/QLoRA。
数据稀缺:提示微调+小样本学习。
多任务场景:Adapter或持续学习方法。
性能至上:全参数微调+分层学习率/混合专家(MoE)
更多推荐


所有评论(0)