2023-ICLR-Adaptive Budget Allocation for Parameter-Efficient Fine-Tuning
Paper:https://openreview.net/forum?id=lq62uWRJjiY
Code:https://github.com/QingruZhang/AdaLoRA
自适应计算分配,实现参数高效微调
为了实现动态地调节Lora的rank的大小,首先将Lora改写为SVD的形式。这是对LoRA的一种改进,它根据重要性评分动态分配参数预算给权重矩阵。
调整增量矩分配。AdaLoRA将关键的增量矩阵分配高秩以捕捉更精细和任务特定的信息,而将较不重要的矩阵的秩降低,以防止过拟合并节省计算预算。
以奇异值分解的形式对增量更新进行参数化,并根据重要性指标裁剪掉不重要的奇异值,同时保留奇异向量。由于对一个大矩阵进行精确SVD分解的计算消耗非常大,这种方法通过减少它们的参数预算来加速计算,同时,保留未来恢复的可能性并稳定训练。
W = W ( 0 ) + Δ = W ( 0 ) + P Λ Q W=W^{(0)}+\Delta=W^{(0)}+P \Lambda Q W=W(0)+Δ=W(0)+PΛQ
在训练损失中添加了额外的惩罚项,以规范奇异矩阵P和Q的正交性,从而避免SVD的大量计算并稳定训练。