微调领域概述

背景

2018年Google发布BERT模型,BERT出现之后,fine-tuning技术也随之流行。微调旨在利用相对较少的领域特定数据对预训练模型进行优化。

一 基本技术

Fine-tuning是一种在自然语言处理(NLP)中使用的技术,用于将预训练的语言模型适应于特定任务或领域。Fine-tuning的基本思想是采用已经在大量文本上进行训练的预训练语言模型,然后在小规模的任务特定文本上继续训练它。

二 常用方法

1 全参数微调(Full-Parameter Fine-Tuning, Full Fine-Tuning)
  • 这种方法是对预训练模型的所有参数进行调整。它能够充分利用领域数据的信息,但需要较大的计算资源和较多的领域数据。因为调整所有参数可能会导致过拟合,尤其是在领域数据较少的情况下。
  • 全参数微调:需要加载和更新全部LLM参数,需要更高的显存(需要的显存一般是单一参数的4倍),数据量上也需要更多的微调数据;
  • 存在灾难性遗忘的风险,理论效果上限更高
2 参数高效微调(Parameter-Efficient Fine-Tuning, PEFT)

PEFT 旨在在保持大模型大部分参数冻结的情况下,通过少量可训练参数实现高效的适配和微调。

  • 适配层(Adapter):在模型的特定层(如 Transformer 层)引入小规模的可训练模块,而保持原始模型参数冻结,例如:
    • Adapter(Houlsby Adapter)
    • Compacter(低秩适配器)
    • Prefix Tuning(仅调整前缀参数)
  • 低秩适配(LoRA, Low-Rank Adaptation):在注意力层的权重矩阵上添加低秩矩阵进行调整,避免对整个权重进行更新。
    • 只需要加载LLM参数,训练两个可学习的低秩矩阵,显存和数据量要求较低,训练速度也更快;
    • 和全参数微调效果差距不大,稳定性和扩展性更好;
  • 提示调优(Prompt Tuning & P-Tuning)
    • Soft Prompt Tuning(Soft Prompt):为输入添加可训练的嵌入提示,而不是调整整个模型权重。
    • P-Tuning(Prompt-based Tuning):用可训练的连续嵌入替代手工设计的离散提示。
  • 差分调优(Diff-Pruning):通过学习一个稀疏的参数增量,使得仅少部分参数发生变化。
  • BitFit:仅微调模型的偏置项,而冻结所有权重参数。
3 部分参数微调(Partial Parameter Fine-Tuning, PPFT)

部分参数微调(Partial Parameter Fine-Tuning, PPFT)介于全参数微调(Full Fine-Tuning, FFT)和参数高效微调(PEFT)之间,通常选择性地调整部分模型参数,以平衡训练开销和适配能力。以下是常见的部分参数微调方法:
1. 层选择性微调(Layer-wise Fine-Tuning)

  • 只微调特定层,而冻结其他层:
    • 顶层微调(Top-layer Fine-Tuning):仅更新 Transformer 的最后几层(靠近输出端)。
    • 底层冻结(Bottom Freezing):冻结低层参数,只更新高层(适用于迁移学习)。
    • 分层解冻(Progressive Unfreezing):逐步解冻模型的不同层,从输出层到底层。
      2. 适配层(Adapter-based Fine-Tuning)
  • 在模型的某些层插入小规模可训练模块,而保持主干网络参数冻结:
    • Houlsby Adapter(Transformer 层内部增加小型全连接层)
    • Compacter(低秩适配器)
    • Parallel Adapter(适配器与主干网络并行)
    • Residual Adapter(适配器用于残差连接)
      3. 低秩微调(LoRA, Low-Rank Adaptation)
  • 仅调整注意力层中的部分参数:
    • 在注意力层权重矩阵 W 上添加低秩分解矩阵 Δ W = A B \Delta W = AB ΔW=AB(其中 A和 B是低秩矩阵)。
    • 适用于 Transformer 架构,如 BERT、GPT、T5 等。
      4. 偏置微调(BitFit, Bias-Only Fine-Tuning)
  • 只更新模型中的偏置项(bias),而冻结所有权重参数。
  • 计算和存储成本极低,但在某些 NLP 任务上效果接近全参微调。
    5. 注意力头微调(Attention Head Tuning)
  • 仅调整 Transformer 的部分注意力头:
    • 例如,在 MHA(Multi-Head Attention)中只训练部分头,而冻结其他头的参数。
    • 可用于减少计算量,保持部分预训练信息。
      6. 任务特定层微调(Task-Specific Layer Tuning)
  • 仅微调与特定任务强相关的层:
    • 例如,在 BERT 这类预训练模型上,仅调整任务相关的 FFN 层,而不微调整个 Transformer。
      7. 结构剪枝(Structured Pruning Fine-Tuning)
  • 在微调前剪枝部分权重,使模型更轻量:
    • 剪枝神经元(Neuron Pruning)
    • 剪枝通道(Channel Pruning)
    • 剪枝注意力头(Head Pruning)
4. 方法对比总览
类别核心思想代表方法训练参数量计算开销适用场景
全参数微调(FFT)更新模型所有参数,使其完全适配下游任务常规微调(Fine-Tuning)最大(所有参数)最高需要高性能计算资源,适用于高精度要求的特定任务
部分参数微调(PPFT)选择性地微调部分层或模块,平衡计算成本和适配能力层选择性微调、LoRA、BitFit、Adapter、注意力头微调中等(部分参数)中等适用于计算资源受限但仍需较强适配能力的场景
参数高效微调(PEFT)通过额外的可训练参数高效适配,而不更新大模型主干参数LoRA、Adapter、Prefix Tuning、Prompt Tuning、Diff-Pruning最小(极少量参数)最低适用于大模型轻量化适配、少样本学习、资源受限部署
5. 具体方法对比
类别具体方法调整的参数参数占比优点缺点
FFT常规全参微调所有模型参数100%适配能力最强,适用于高精度任务计算成本高,存储占用大,容易过拟合
PPFT层选择性微调仅调整部分 Transformer 层10% ~ 50%计算量较小,兼顾适配性和效率仍有较多参数更新,适配能力受限
LoRA(低秩适配)仅调整注意力层的低秩矩阵<1%计算量小,适配能力较强适用于 Transformer 结构,不适用于所有模型
BitFit(仅微调偏置项)仅更新偏置参数<1%计算量极小,适配效果较优适用于 NLP 任务,对 CV 任务效果较差
注意力头微调仅更新部分注意力头5% ~ 20%降低计算成本,适用于特定任务需要任务相关性分析
PEFTAdapter额外小型适配层<1%增强可扩展性,不影响主干参数适配层增加额外推理开销
Prefix Tuning仅训练可学习前缀<1%适用于文本生成任务,计算量极小适配能力比 LoRA 低
Prompt Tuning仅优化软提示<1%适用于少样本任务,计算开销极低依赖任务数据,难以泛化
Diff-Pruning仅学习参数增量<1%计算成本极低,适用于迁移学习适配能力比全参微调弱

相关技术

参考链接

  1. https://www.datalearner.com/blog/1051681306547159
  2. https://mp.weixin.qq.com/s/MiQXHrr21V0klHFN4-FRIw
  3. https://www.hwzhao.cn/pages/d6f184/
  4. https://ascii-iie.github.io/Seminar/230224-Instruction%20tuning%20&%20Prompt%20tuning-%E5%BC%A0%E7%90%AC%E6%82%A6.pdf
  5. https://www.hwzhao.cn/pages/d6f184/
  6. https://mp.weixin.qq.com/s/b16EPZ3z-LpGapGy2Q7ZUg
  7. https://github.com/datawhalechina/llm-deploy/blob/main/docs/chapter4/chapter4_1.md
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值