大模型PEFT之LoRA

LoRA:Low-Rank Adaptation 是PEFT(Parameter-Efficient Fine-Tuning)的一种

全参数微调:使用特定任务数据对预训练模型的所有参数进行更新,提升任务性能,但训练代价昂贵。

Adapter Tuning与Prefix Tuning:

Adapter Tuning:在模型中添加额外知识模块(Adapter),其余参数保持冻结,降低训练代价,但会增加模型层数和训练推理速度。

Prefix Tuning:通过在输入数据前添加前缀(prefix)进行微调,引导模型提取相关信息,但训练困难且减少输入层有效信息长度。

LoRA微调方法:提出LoRA以解决全参数微调成本高和Adapter Tuning、Prefix Tuning的劣势。LoRA通过使用低秩矩阵A和B来近似表示全参数微调中的增量权重ΔW,从而减少参数量。

LoRA架构:在原始预训练矩阵旁路上使用低秩矩阵A和B近似替代增量更新ΔW,减少参数量同时保持输出数据维度不变。

训练和推理过程:

训练:固定预训练权重W,只训练低秩矩阵A和B,保存时只需保存A和B。 训练时可以将AB矩阵加到 q_proj,k_proj,v_proj,o_proj,gate_proj,up_proj,down_proj、或者 q_proj,v_proj
(B 是降维矩阵,A是升维矩阵,其中 A 正常随机数初始化,B 全 0 初始化,从而保证训练初期的稳定性)

推理:合并低秩矩阵和预训练权重进行推理,不改变模型架构。

LoRA低秩适配原理:

秩的概念:表示矩阵的信息量,秩亏表示信息冗余,满秩表示信息独立。

SVD分解:用于找出矩阵中信息量丰富的维度,LoRA使用SVD分解的思想,让模型学习如何近似ΔW。

超参α:在LoRA中,α用于调整低秩矩阵的影响,类似于调整学习率。

两个超参的设置
一般 α设置为32,r设置为 4

LoRA实验:通过实验验证了LoRA低秩矩阵的有效性,包括不同r值下的微调效果、不同低秩空间的相交程度、不同层的r值设置,以及预训练权重与微调权重的关系。

实验的结论:
1、低秩确实有效果:较小秩空间中信息量较高的维度与较大秩空间的相似度较高
2、不同层可能需要不同的r值以捕捉最有用的信息
3、增量权重确实强调了预训练权重中未充分表示的信息,且秩越小,放大程度越明显

Lora原理

代码库:
LLaMA-Factory

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值