论文《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和数学问题)中可以观察到类似的性能增益。
参
数
高
效
微
调
(PEFT)
方
法
通
过
只
微
调
一
部
分
参
数
来
适
应
预
训
练
模
型
。
一
般
来
说
,
PEFT
方
法
可
以
分
为三类:
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)。
提
示
学
习
方
法
强
调
优
化
输入token
或
冻
结
模
型
参
数
的
输
入
嵌
入
,
通
常
在
所
有
三
种
类
型
中
具
有最
小
的
训
练
成
本
。
适
配
器
方
法
通
常
引入一个
辅
助
模
块
,
该
模
块
的
参
数
比
原
始
模
型
少
得
多
,
在
训
练
期
间
,
更
新
只
应
用
于
适
配
器
模
块
。
与之
相比,
选
择
性
方
法
与
LISA
的
关
系
更
密
切
,
它
专
注
于
优
化
模
型
的
一
小
部
分
参
数
,
而
不
添
加
额
外
的
模
块
。
这一领
域
的
最
新
进
展
引
入
了
几
种
通
过
层
冻
结
的
值
得
注
意
的
技
术
。
AutoFreeze (
Liu et al.
,
2021b
)
提
供
了一
种自适
应
机
制
来
自
动
识
别
冻
结
层
并
加
速
训
练
过
程
。
冻
结
(
Brock et al.
,
2017
)
逐
步
冻
结
中
间
层
,
从
而
在
不
明显影
响
准
确
性
的
情
况
下
显
著
减
少
训
练
时
间
。
SmartFRZ (
Li et al.
,
2023a
)
框
架
利
用
基
于
注
意
力
的
预
测
器
进行层
选
择
,
在
保
持
精
度
的
同
时
大大
减
少
了
计
算
和
训
练
时
间
。
然
而
,
由
于
其
固
有
的
复
杂
性
或
与
现
代
内
存减少
技
术
(
Rajbhandari et al.
,
2020
;
Rasley et al.
,
2020
)
的
不
兼
容
性
,
这
些
层
冻
结
策
略
都
没
有
在
大
型 语言
模
型
的
背
景
下
被
广
泛
采
用
。
与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