大模型(LLMs)参数高效微调(PEFT) 面

微调方法是啥?如何微调?
fine-tune,也叫全参微调,bert微调模型一直用的这种方法,全部参数权重参与更新以适配领域数据,效果好。prompt-tune, 包括p-tuning、lora、prompt-tuning、adaLoRA等delta tuning方法,部分模型参数参与微调,训练快,显存占用少,效果可能跟FT(fine-tune)比会稍有效果损失,但一般效果能打平。
链家在BELLE的技术报告《A Comparative Study between Full-Parameter and LoRA-based Fine-Tuning on

Chinese Instruction Data for Instruction Following Large Language Model》中实验显示:FT效果稍好于LoRA。
peft的论文《ADAPTIVE BUDGET ALLOCATION FOR PARAMETER- EFFICIENT FINE-TUNING》显示的结

果:AdaLoRA效果稍好于FT。

  1. 为什么需要 PEFT?
    在面对特定的下游任务时,如果进行Full FineTuning(即对预训练模型中的所有参数都进行微调),太过低效; 而如果采用固定预训练模型的某些层,只微调接近下游任务的那几层参数,又难以达到较好的效果。
  2. 介绍一下 PEFT?
    PEFT技术旨在通过最小化微调参数的数量和计算复杂度,来提高预训练模型在新任务上的性能,从而缓解大型 预训练模型的训练成本。这样一来,即使计算资源受限,也可以利用预训练模型的知识来迅速适应新任务,实现 高效的迁移学习。
  3. PEFT 有什么优点?
    PEFT技术可以在提高模型效果的同时,大大缩短模型训练时间和计算成本,让更多人能够参与到深度学习研究 中来。除此之外,FEFT可以缓解全量微调带来灾难性遗忘的问题。
  4. 微调方法批处理大小模式GPU显存速度?
    LoRA (r=8) 16 FP16 28GB 8ex/s
    LoRA (r=8) 8 FP16 24GB 8ex/s
    LoRA (r=8) 4 FP16 20GB 8ex/s
    LoRA (r=8) 4 INT8 10GB 8ex/s
    LoRA (r=8) 4 INT4 8GB 8ex/s
    P-Tuning (p=16) 4 FP16 20GB 8ex/s
    P-Tuning (p=16) 4 INT8 16GB 8ex/s
    P-Tuning (p=16) 4 INT4 12GB 8ex/s
    Freeze (l=3) 4 FP16 24GB 8ex/s
    Freeze (l=3) 4 INT8 12GB 8ex/s
    微调方法批处理大小模式GPU显存速度
  5. Peft 和 全量微调区别?
    所谓的 fune-tine 只能改变风格, 不能改变知识, 是因为我们的 fine-tune, 像是 LoRA 本来就是低秩的, 没办法对模型产生决定性的改变. 要是全量微调, 还是可以改变知识的.
  6. 多种不同的高效微调方法对比
    像P-Tuning v2、LoRA等都是综合评估很不错的高效微调技术。如果显存资源有限可以考虑QLoRA;如果只是解决一些简单任务场景,可以考虑P-Tuning、Prompt Tuning也行。
    下表从参数高效方法类型、是否存储高效和内存高效、以及在减少反向传播成本和推理开销的计算高效五个维度 比较了参数高效微调方法。


下表展示了各种参数高效方法的参与训练的参数量、最终模型与原始模型的改变参数(delta值)以及论文中参与 评估的模型的范围(<1B、<20B、>20B)。


从表中可以看到,Prompt Tuning、Prefix Tuning、LoRA等少部分微调技术针对不同参数规模的模型进行过评估,同时,这几种方式也是目前应用比较多的高效微调方法。

  1. 当前高效微调技术存在的一些问题
    当前的高效微调技术很难在类似方法之间进行直接比较并评估它们的真实性能,主要的原因如下所示:
  • 参数计算口径不一致:参数计算可以分为三类:可训练参数的数量、微调模型与原始模型相比改变的参数的 数量、微调模型和原始模型之间差异的等级。例如,DiffPruning更新0.5%的参数,但是实际参与训练的参数 量是200%。这为比较带来了困难。尽管可训练的参数量是最可靠的存储高效指标,但是也不完美。 Ladder- side Tuning使用一个单独的小网络,参数量高于LoRA或BitFit,但是因为反向传播不经过主网络,其消耗的内存反而更小。
  • 缺乏模型大小的考虑:已有工作表明,大模型在微调中需要更新的参数量更小(无论是以百分比相对而论还 是以绝对数量而论),因此(基)模型大小在比较不同PEFT方法时也要考虑到。
  • 缺乏测量基准和评价标准:不同方法所使用的的模型/数据集组合都不一样,评价指标也不一样,难以得到有 意义的结论。
  • 代码实现可读性差:很多开源代码都是简单拷贝Transformer代码库,然后进行小修小补。这些拷贝也不使用 git fork,难以找出改了哪里。即便是能找到,可复用性也比较差(通常指定某个Transformer版本,没有说明如何脱离已有代码库复用这些方法)。

  1. 高效微调技术最佳实践
    针对以上存在的问题,研究高效微调技术时,建议按照最佳实践进行实施:
  • 明确指出参数数量类型。
  • 使用不同大小的模型进行评估。
  • 和类似方法进行比较。
  • 标准化PEFT测量基准。
  • 重视代码清晰度,以最小化进行实现。

  1. PEFT 存在问题?

相比全参数微调,大部分的高效微调技术目前存在的两个问题:

  1. 推理速度会变慢;
  2. 模型精度会变差;

11. 能不能总结一下各种参数高效微调方法?

本文针对之前介绍的几种参数高效微调方法进行了简单的概述,主要有如下几类:

  • 增加额外参数,如:Prefix Tuning、Prompt Tuning、Adapter Tuning及其变体。
  • 选取一部分参数更新,如:BitFit。
  • 引入重参数化,如:LoRA、AdaLoRA、QLoRA。
  • 混合高效微调,如:MAM Adapter、UniPELT。

并比较了不同的高效微调方法之间的差异;同时,还指出当前大多数高效微调方法存在的一些问题并给出了最佳 实践。

### 最新研究论文:大模型微调 大模型微调(Fine-tuning Large Models)是当前人工智能领域的热门研究方向之一,尤其是在大规模语言模型(LLMs)和多模态模型(MM-LLMs)中。以下是一些与大模型微调相关的最新研究论文: 1. **LoRA (Low-Rank Adaptation of Large Language Models)** LoRA 是一种高效微调方法,通过在模型的权重矩阵上引入低秩分解来减少参数更新的数量。这种方法显著降低了计算成本和存储需求,同时保持了模型性能[^3]。 ```python # 示例代码:LoRA 的 PyTorch 实现片段 from peft import get_peft_model, LoraConfig, TaskType lora_config = LoraConfig( task_type=TaskType.CAUSAL_LM, inference_mode=False, r=8, lora_alpha=32, lora_dropout=0.1 ) model = get_peft_model(model, lora_config) ``` 2. **QLoRA: Efficient Finetuning of Quantized LLMs** QLoRA 是 LoRA 的扩展版本,结合了量化技术以进一步降低内存消耗。该方法允许在有限资源下对大规模模型进行高效微调,同时保持较高的推理质量。 3. **P-Tuning v2: Prompt Tuning Can Be Comparable to Fine-Tuning** P-Tuning v2 提出了一种基于提示的学习方法,通过优化连续提示向量来替代传统的参数微调。这种方法不仅减少了需要更新参数数量,还提高了模型的泛化能力[^2]。 4. **Adapters for Parameter-Efficient Transfer Learning** Adapters 方法通过在预训练模型中插入小型模块(adapters)来实现参数高效的迁移学习。这些模块仅占原模型参数的一小部分,但能够显著提升特定任务上的性能[^1]。 5. **BitFit: Simple Parameter-efficient Fine-tuning for Transformer-based Models** BitFit 提出了一种简单而有效的微调策略,仅调整模型中的偏差项(bias terms),而非所有参数。这种方法在多个基准测试中表现出色,并且显著降低了计算开销[^3]。 6. **DreamBooth: Fine-Tuning Text-to-Image Diffusion Models with Subject-Specific Data** DreamBooth 是一种针对生成式扩散模型的微调方法,专注于使用少量特定主题的数据来定制化生成图像。尽管主要应用于视觉领域,但其思想可以启发其他模态的大模型微调。 ### 相关工具与框架 为了方便研究人员和开发者进行大模型微调,以下是一些常用的开源工具和框架: - **Hugging Face Transformers**: 提供了丰富的预训练模型和微调接口。 - **PEFT (Parameter-Efficient Fine-Tuning)**: 专为参数高效微调设计的库,支持多种方法如 LoRA 和 Adapters。 - **DeepSpeed**: 来自微软的深度学习优化框架,支持大规模模型的高效训练和微调
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI Echoes

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值