LoRA 非常侧重 LLM 的底层和顶层的权重。利用这一特性,LMFlow 团队提出一个极其简洁的算法:Layerwise Importance Sampled AdamW(LISA)。
论文链接:
https://arxiv.org/abs/2403.17919
开源地址:
https://github.com/OptimalScale/LMFlow
LISA 算法的核心在于:
-
始终更新底层 embedding 和顶层 linear head;
-
随机更新少数中间的 self-attention 层,比如 2-4 层。
实验发现该算法在指令微调任务上超过 LoRA 甚至全参数微调。LISA 每次中间只会激活一小部分参数,算法对更深的网络,以及梯度检查点技术(Gradient Checkpointing)也很友好,能够带来更大的空间节省。在指令微调任务上,LISA 的收敛性质比 LoRA 有很大提升。
LMFlow 现已集成 LISA,安装完成后只需一条指令就可以使用 LISA 进行微调。