Adalora使用教程

Adalora使用教程
# 安装loralib pip
# pip install loralib
import loralib
# adalora使用的是svd伪装。
layer = loralib.SVDlLinear(in_feature, outfeature, r=12)

# 加载大模型
model = BigModel()
# fix大模型参数
loralib.mark_only_lora_as_trainable(model)

# RankAllocator就是所谓的r的训练scheduler,也就是最开始r先大一点,后面就是将mask住sensitivity score小的,然后开始彻底maks住。
from loralib import RankAllocator
from loralib import compute_orth_regu

# 设置RankAllocator
# init_warmup:最开始不动
# 删除但是恢复
# final_warmp:最后删除不恢复
# beta1 :i =  beta1 * i + (1 - beta1) * (sensitivity_score(wij))
# beta2 :u =  beta2 * u + (1 - beta2) * (sensitivity_score(wij) - i)
rankallocator = RankAllocator(model, lora_r=12, target_rank=8, init_warmup=500,final_warmup=1500,
                             mask_interval=10, total_step=3000, beta1=0.85, beta2=0.85)


# 让伪svd分解师正交矩阵,加上一个正交惩罚项
(loss + compute_orth_regu(model,regu_weight=0.1)).batckward()
optimizer.step()

# 将svd部分的奇异值进行mask
randallocator.update_and_mask(model, global_step)
glob_step += 1
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值