论文《LISA: Layerwise Importance Sampling for Memory-Efficient Large Language Model Fine-Tuning》

上图是在具有全参数训练(FT)、LoRA和LISA的Alpaca GPT-4数据集上的LLaMA-2-7B模型训练损失。我们不难发现LISA随着step的增加,保持在一个较低的loss状态。

这种策略产生了分层重要性采样Adam(LISA)算法,通过有选择性地只更新基本的LLM层, 而不影响其他层,LISA能够以较少或类似于LoRA的内存消耗训练大规模语言模型(≥ 65B参数)。此外,在对下游任务进行微调后,LISA的性能比LoRA和传统的全参数微调方法都有很大的优势,这表明LISA作为LoRA的有前途的替代方案具有巨大的潜力。
我们将主要贡献总结如下:
• 在LoRA和全参数微调中,各层的权值范数分布都存在偏斜现象,这意味着不同层在大规 模LLM训练中的重要性不同。
• 本文提出逐层重要性采样的AdamW (LISA)算法,一种简单的优化方法,能够扩展到70 B以上 的LLMs,具有与LoRA更少或类似的内存成本。
• 本文证明了LISA在现代llm微调任务中的有效性,在MT-Bench中以8% - 36%优于LoRA,并表现 出更好的收敛行为。在某些设置下,LISA的性能甚至超过了全参数训练。在不同规模的模型(7 B- 70 B)和不同的任务(包括指令遵循、医疗QA和数学问题)中可以观察到类似的性能增益。

1)提示学习方法(Hambardzumyan et al., 2021; Zhong et al., 2021; Han et al., 2021; Li and Liang, 2021; Qin and Eisner, 2021; Liu et al., 2021a; Diao et al., 2022);
2)适配器方法(Houlsby et al., 2019; Diao et al., 2021; Hu et al., 2022; Diao et al., 2023c);
3)选择方法(Liu et al., 2021b,b; Li et al., 2023a)。

与LoRA中的中间层相比,嵌入层(GPT2的wte和wpe层)或语言模型(LM)头层的权重更新占比更 大,通常是数百倍。然而,这种现象在全参数训练的时候并不突出。
这一观察表明,LoRA和全参数训练的权重更新重点有显著差异,这可以归因于它们所学知识的差异。 例如,在嵌入层中,具有相似含义的标记,即同义词,可以投影到相同的嵌入空间并转换为相似的嵌 入。LoRA可以捕捉语言的这种相似性,并在低维空间中对它们进行“分组”,从而及时识别和优化语言含义的常见特征。代价是LoRA固有的低秩空间限制了其有限的表示能力。其他可能的解释也可以证明这种现象。尽管对这一观察结果有各种解释,但有一个事实仍然很清楚:LoRA的分层重要性值与完全参数调优不同。
相比于LoRA ,LISA消耗更短的时间和内存,是具有相当大优势的。


Table 1: 图表显示了各种模型架构和配置的GPU内存消耗峰值,突出了不同模型之间的差异。在表中,LISA配置被明确标记为:“E”表示嵌入层,“H”表示语言模型头部层,“2L”表示两个额外的标准 层。*:模型并行应用于70B模型。
我们不难发现:其空间消耗和 LoRA 相当甚至更低。 7B 则直接降到了单卡 24G 以下。




LISA 每次中间只会激活一小部分参数,算法对更深的网络,以及梯度检查点技术(Gradient Checkpointing)也很友好,能够带来更大的空间节省。
在指令微调任务上,LISA 的收敛性质比 LoRA 有很大提升,达到了全参数调节的水平。
大家可以自己去把玩啦!
论文链接:https://arxiv.org/abs/2403.17919
开源地址:https://github.com/OptimalScale/LMFlow

论文介绍了一种新的优化方法LISA,通过逐层重要性采样减少内存消耗,使得大型语言模型的微调更加高效。LISA在保持低训练损失的同时,比LoRA和全参数微调在下游任务中表现更好。研究还探讨了不同参数更新策略在大规模模型中的差异和优势。
1万+

被折叠的 条评论
为什么被折叠?



