文章目录
前言
本文讨论用peft库进行大模型微调,采取LoRA和P-Tuning(v2)两种方式。
一、LoRA
基于LoRA的原理,将权重矩阵分解为两个更低维的矩阵,以减少训练的参数量,即ΔW = AB。ΔW = (m,n),A=(m,r),B=(r,n)。所以最主要的一个参数为r,即矩阵的秩。
另LoRA中规定一个缩放系数alpha,本质上是LoRA应用于预训练权重的影响大小。scaling = alpha / r ,weight += (lora_B @ lora_A) * scaling。通常r和alpha设置为1:2。
Lora中同时提供dropout参数来防止过拟合。
用peft库可直接使用LoraConfig方法设置各参数。
Config = LoraConfig(r=8,
lora_alpha=16,
target_modul