论文阅读笔记——ADALORA: ADAPTIVE BUDGET ALLOCATION FOR PARAMETER-EFFICIENT FINE-TUNING

AdaLoRA 论文

在 LoRA 中通过在原特征一侧添加一个低秩的矩阵实现模型在下游任务的微调:
h = W 0 x + Δ W x = W 0 x + B A x ( 1 ) h=W_0x+\Delta Wx=W_0x+BAx \qquad \qquad (1) h=W0x+ΔWx=W0x+BAx(1)
其中 d i m ( A ) = r × k , d i m ( B ) = d × r r < < m i n ( d , k ) dim(A) = r×k, \quad dim(B)=d×r \quad r << min(d,k) dim(A)=r×k,dim(B)=d×rr<<min(d,k)
它的一个重要局限性在于:LoRA 在一个模型的所有使用 adapter 的模块都是用同一个 r,但是不同深度的参数,或者同一个深度不同模块的参数,在模型中的重要性应当是不同。

在这里插入图片描述
由图中可得,自注意力中的全连接层比计算 Q,K,V 的重要性更高,更深的参数比更浅的参数重要。

故而 AdaLoRA 解决的问题为:根据模块的重要性为他们分配不同的秩。关注于以下几个问题:

  1. 如何融合 SVD 和 LoRA
  2. 如何衡量参数的重要性
  3. 如何根据重要性计算 r

融合 SVD 和 LoRA

如果对 BA 直接进行秩的调整,会将 B 的某些列或者 A 的某些行置零,会丢失较多信息且难以恢复。并且 B 和 A 并不是正交矩阵,意味着各元素之间有强相关性,置零会破坏相关性。

AdaLoRA 将 LoRA 的计算方式调整为(SVD 奇异值分解)并且直接将参数 SVD 化可以避免训练中 SVD 计算带来的资源消耗:
W = W 0 + Δ = W 0 + P Δ Q ( 2 ) W = W_0+\Delta = W_0 + P\Delta Q \qquad \qquad (2) W=W0+Δ=W0+PΔQ(2)
其中 P ∈ R d 1 × r P \in R^{d_1×r} PRd1×r Q ∈ R r × d 2 Q \in R^{r×d_2} QRr×d2 Δ \Delta Δ 的左右奇异向量,同时为了确保 P 和 Q 的正交性有:
R ( P , Q ) = ∣ ∣ P T P − I ∣ ∣ F 2 + ∣ ∣ Q T Q − I ∣ ∣ F 2 ( 3 ) R(P,Q)=||P^TP-I||^2_F+||Q^TQ-I||^2_F \qquad \qquad (3) R(P,Q)=∣∣PTPIF2+∣∣QTQIF2(3)

  • 只调整 Δ \Delta Δ,训练中更容易恢复被误删的奇异值
  • P 和 Q 为正交向量,对 Δ \Delta Δ 的调整不会影响其他奇异值对应的奇异向量

特征重要性

在模型剪枝中,单个参数的敏感度被定义为梯度和权重乘积的绝对值:
I ( w i j ) = ∣ w i j ⋅ ∇ w i j L ∣ ( 4 ) I(w_{ij})=|w_{ij}·\nabla_{w_{ij}}\mathcal{L}| \qquad \qquad (4) I(wij)=wijwijL(4)
在 SGD 中, I ( w i j ) I(w_{ij}) I(wij) 只是单个 batch 的样本的重要性,使用滑动平均来减轻评估误差得到敏感性,并且计算滑动平均的敏感性的不确定性(表示敏感性的局部时间变化) U ( t ) = ( w i j ) = ∣ I ( t ) ( w i j ) − I ‾ ( t ) ( w i j ) ∣ U^{(t)}=(w_{ij})=|I^{(t)}(w_{ij})-\overline{I}^{(t)}(w_{ij})| U(t)=(wij<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值