ALoRA - 动态调整Lora秩的新PEFT方法

云通信智能内容增长营销

        
          
https://arxiv.org/pdf/2403.16187.pdf  

      

ALoRA(Allocating Low-Rank Adaptation),核心思想是在微调过程中动态调整LoRA的内在秩(rank),以更好地适应不同的下游任务:

picture.image

  • 作者的观点,不同的下游任务可能需要不同数量的LoRA秩来达到最佳性能。因此,ALoRA提出了一种动态分配LoRA秩的方法,通过评估每个LoRA秩的重要性来决定哪些秩应该被保留或剪枝。
  • AB-LoRA策略,通过模拟对super-network中的特定LoRA秩进行消融研究,来评估该秩对性能的贡献。流程如下:
  • 首先,创建一个包含所有可能的LoRA秩的网络。在这个网络中,每个Transformer模块的权重矩阵都通过LoRA方法进行参数化,每个LoRA秩都由一个门控单元控制,初始时所有门控单元都设置为1。
  • 在训练集上训练,直到收敛。这个阶段的目的是学习每个LoRA秩对模型性能的潜在贡献。
  • 对于超网络中的每个LoRA秩r,计算重要性得分IS(r)
  • 创建一个修改后的网络M_r,其中所有除了LoRA秩r之外的LoRA秩都被置零。
  • 创建另一个修改后的网络Mr,其中只有LoRA秩r被保留,其他所有LoRA秩都被置零。picture.image
  • 使用相同的验证数据集Bval来评估原始网络M、M_r和Mr的性能。
  • 计算重要性得分IS(r),它是基于这三个网络在验证集上的性能差异。具体来说,IS(r) = S(M) - S(M_r) + S(Mr),其中S(M)可以视为常数项,因此可以简化为IS(r) = -S(M_r) + S(Mr)。
  • 评估性能:在上述公式中,S(M)表示模型M在验证集上的性能。如果一个LoRA秩在被置零后导致性能显著下降,那么这个秩就被认为是重要的。
  • 根据计算出的重要性得分,对LoRA秩进行剪枝和重新分配。得分最低的LoRA秩将被剪枝(即对应的门控单元设置为0),释放出来的参数预算将被分配给那些未被剪枝且重要性得分较高的模块。
  • 文章通过在多个任务上的实验来验证ALoRA方法的有效性,包括情感分类、自然语言推理、问答任务、受约束的自然语言生成和指令调整等。实验结果表明,ALoRA在可调参数数量相当的情况下,能够一致性地超越现有的PEFT基线方法。picture.image

0
0
0
0
关于作者
关于作者

文章

0

获赞

0

收藏

0

相关资源
DevOps 在字节移动研发中的探索和实践
在日益复杂的APP工程架构下,如何保证APP能高效开发,保障团队效能和工程质量?本次将结合字节内部应用的事件案例,介绍DevOps团队对移动研发效能建设的探索和思考。
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论