【文献阅读】AdaLora: Adaptive Budget Allocation for Parameter-Efficient Fine-Tuning

1. 前言

矩阵分解为什么可以加速推理

假设原始权重矩阵 W ∈ R ( m ∗ n ) {W∈R^{(m*n)}} WR(mn),矩阵乘法中时间复杂度为mn,变形为 W = B A , B ∈ R ( m ∗ r ) , A ∈ R ( r ∗ n ) {W=BA, B∈R^{(m*r)}, A∈R{(r*n)}} W=BA,BR(mr),AR(rn),则时间复杂度变为mr+r*n

2. 矩阵分解

常见的矩阵分解方法有:奇异值分解(SVD),特征值分解(EVD),LU分解,QR分解

2.1 SVD分解

在这里插入图片描述
奇异矩阵是指不可逆矩阵,即行列式为0的矩阵。奇异矩阵的行或列向量之间是线性相关的,换句话说,它的行或列不能形成满秩(rank)矩阵。因此,奇异矩阵的秩小于它的维度。
奇异值描述了矩阵对向量的变换效果。奇异值总是非负的,矩阵的非零奇异值的数量等于矩阵的秩。即,奇异值为 0 的个数表示矩阵的线性依赖程度。

2.2 特征值分解

在这里插入图片描述
特征值分解只适用于方阵。

2.3 LU分解

在这里插入图片描述

2.4 QR分解

在这里插入图片描述

3. AdaLora

3.1 motivation

lora存在一些问题:

  • LoRA中所有适配器具有相同的秩(线性无关组的数量),忽略了在微调预训练模型时,权重矩阵的重要性在不同模块和层之间存在显著差异
  • 只训练了Attention,没有训练FFN,事实上FFN更重要。

Adalora通过lora矩阵的奇异值去衡量重要性

3.2 改进

  • 调整增量矩分配
    AdaLoRA将关键的增量矩阵分配高秩以捕捉更精细和任务特定的信息,而将较不重要的矩阵的秩降低,以防止过拟合并节省计算预算。
  • 以奇异值分解的形式对增量更新进行参数化,并根据重要性指标裁剪掉不重要的奇异值,同时保留奇异向量。
    由于对一个大矩阵进行精确SVD分解的计算消耗非常大,这种方法通过减少它们的参数预算来加速计算,同时,保留未来恢复的可能性并稳定训练。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值