没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
试读
32页
微调语言模型 (LM) 已在各种下游任务中取得成功,但随着 LM 规模的增长,反向传播需要大量内存。零阶 (ZO) 方法原则上可以仅使用两次前向传递来估计梯度,但理论上在优化大型模型时速度极其缓慢。在这项工作中,我们提出了一种内存高效的零阶优化器 ( MeZO ),采用经典的 ZO-SGD 方法进行就地操作,从而使用与推理相同的内存占用来微调 LM。我们跨模型类型(屏蔽和自回归 LM)、模型规模(高达 66B)和下游任务(分类、多项选择和生成)进行综合实验。我们的结果表明 (1) MeZO 显着优于上下文学习和 线性探测;(2) MeZO 实现了与跨多个任务的反向传播微调相当的性能,最多减少 12 × 内存;(3) MeZO 兼容全参数和参数高效调优技术,如 LoRA 和前缀调优;(4) MeZO 可以有效地优化不可微分的目标(例如,最大化精度或 F1)。我们用理论见解支持我们的经验发现,强调充分的预训练和任务提示如何使 MeZO 能够微调大型模型。
资源推荐
资源详情
资源评论
仅使用
前向传递微调语言模型
Sadhika Malladi
∗
Tianyu Gao
∗
Eshaan Nichani Alex Damian
Jason D. Lee Danqi Chen Sanjeev Arora
Princeton University
{smalladi, tianyug, eshnich, ad27, jasonlee, danqic, arora}@princeton.edu
Abstract
微调语言模型 (LM) 已在各种下游任务中取得成功,但随着 LM 规模的增
长,反向传播需要大量内存。零阶 (ZO) 方法原则上可以仅使用两次前向传
递来估计梯度,但理论上在优化大型模型时速度极其缓慢。在这项工作中,
我们提出了一种内存高效的零阶优化器 ( MeZO ),采用经典的 ZO-SGD 方
法进行就地操作,从而使用与推理相同的内存占用来微调 LM。例如,使用
单个 A100 80GB GPU,MeZO 可以训练一个 300 亿参数的模型,而使用反
向传播进行微调在相同预算下只能训练一个 2.7B 的 LM。我们跨模型类型
(屏蔽和自回归 LM)、模型规模(高达 66B)和下游任务(分类、多项选择
和生成)进行综合实验。我们的结果表明 (1) MeZO 显着优于上下文学习和
线性探测;(2) MeZO 实现了与跨多个任务的反向传播微调相当的性能,最
多减少 12 × 内存;(3) MeZO 兼容全参数和参数高效调优技术,如 LoRA 和
前缀调优;(4) MeZO 可以有效地优化不可微分的目标(例如,最大化精度
或 F1)。我们用理论见解支持我们的经验发现,强调充分的预训练和任务提
示如何使 MeZO 能够微调大型模型,尽管经典的 ZO 分析表明并非如此。
2
1 介绍
微调预训练语言模型 (LM) 一直是解决许多语言任务的主要方法 [18] ,适应专门领域 [29]
,或结合人类指令和偏好 [51] 。然而,随着 LM 的扩大 [8, 50] ,计算反向传播的梯度需要
大量内存——在我们的测试中,推理所需的内存高达 12× ——因为它需要在前向传播期间
缓存激活,在前向传播期间缓存梯度向后传递,并且,在 Adam [35] 的情况下,还存储梯
度历史 (请参阅 Section 3.4 了解详细分析)。因此,虽然可以在单个 Nvidia A100 GPU(具
有 80GB 内存)上使用 300 亿 (30B) 参数 LM 运行推理,但使用 Adam 的反向传播仅适用于
2.7B LM。参数有效的微调方法 (PEFT [30, 40, 37] ) 只更新一小部分网络参数,但仍需要缓
存许多激活,因为调优参数分散在整个模型中。在我们的测试中,微调具有全参数或 PEFT
的 OPT-13B 模型分别需要比推理多 12 × 和 6× 的内存。
上下文学习 (ICL [8] ) 允许通过单次推理解决许多任务,在此期间模型在其上下文中处理标
记示例(演示),然后输出对测试示例的预测。虽然这允许模型快速适应特定用例,但当前模
型允许有限的上下文大小(因此,有限的演示)并且性能对演示的格式和选择很敏感 [43, 47]
。ICL 也常常比中型模型的微调表现更差 [8] 。此外,使用 ICL 进行推理的成本更高,因为它
总是需要在上下文中进行演示,从而增加了输入长度。考虑替代标准反向传播的另一个原因
是它不能包含不可微分的标准,这些标准在根据人类偏好分数或设定的安全标准微调 LMs
中很受欢迎 [63, 51] 。通常,这些调整涉及从人类反馈 (RLHF [11] ) 中强化学习,这是昂贵的。
∗
Equal contribution and corresponding authors.
2
我们的代码可在 https://github.com/princeton-nlp/MeZO 获得。
Preprint. Under review.
SST-2 RTE CB BoolQ WSC WIC MultiRC Copa ReCoRD SQuAD DROP
10
30
50
70
90
Accuracy/F1 (%)
Zero-shot ICL MeZO FT (12x memory)
Figure 1: OPT-13B 使用零样本、上下文学习 (ICL)、MeZO(我们报告 MeZO / MeZO (LoRA)/
MeZO (前缀)中最好的)和 Adam (FT) 微调的结果。MeZO 展示了优于零样本和 ICL 的结
果,并且在 11 个任务中的 7 个上与 FT(在 1 % 内)表现相当,尽管只使用了 1/12 的内存。
详细数字请参见表 1 ,内存分析请参见图 3 。
经典的零阶优化方法
( ZO-SGD [
62] )
仅使用损失值的差异来估计梯度。因此,原则上,该
方法可以仅通过前向传递来更新神经网络,尽管简单的实现仍然会使内存开销和经典下限
加倍 [49, 21] 表明收敛速度随模型大小线性减慢。因此,ZO 方法已应用于深度学习设置中
以查找对抗性示例或调整输入嵌入 [65, 64] 但不是直接优化大型模型(请参阅 Liu et al. [44]
进行调查)。
在这项工作中,我们提出了一种内存高效的零阶优化器 ( MeZO ),它采用经典的 ZO-SGD
算法并将其内存消耗降低到与推理相同的水平。我们应用 MeZO 来微调大型 LM,并表明,
无论是在经验上还是理论上,MeZO 可以成功优化具有数十亿参数的 LM。具体来说,我们
的贡献是:
1. 在 MeZO 中,我们调整了 ZO-SGD 算法 [62] 和许多变体,以在几乎没有内存开销的情
况下在任意大的模型上就地运行(参见算法 1 和 Section 2 )。
2. 我们对模型类型(掩蔽 LM 和自回归 LM)、模型规模(从 350M 到 66B)和下游任务
(分类、多项选择和生成)进行综合实验。MeZO 始终证明优于零次、ICL 和线性探测。
此外,使用 RoBERTa-large,MeZO 在 5 个% 差距内实现了接近标准微调的性能;使用
OPT-13B,MeZO 在 11 项任务中的 7 项上优于或与微调性能相当,尽管需要大约 12×
更少的内存(Figure 1 和 Section 3 )。
3. 我们在 Section 3 中展示了 MeZO 与全参数调整和 PEFT(例如,LoRA [30] 和前缀调
整 [40] )的兼容性。
4. 进一步的探索表明 MeZO 可以优化不可微分的目标,例如准确性或 F1 分数,同时仍然
只需要与推理 ( Section 3.3 ) 相同的内存。
5. 我们的理论表明,充分的预训练可确保 MeZO 的每步优化率 ( Theorem 1 ) 和全局收敛
率 ( Lemma 3 ) 取决于景观的特定条件数(即局部有效等级,参见 Assumption 1 )而不
是数字的参数。这个结果与现有的 ZO 下界形成鲜明对比 [49, 21] 表明收敛速度可以与
参数数量 ( Section 4 ) 成比例地减慢。
2 零阶优化
长期以来,人们一直在凸目标和强凸目标的背景下研究零阶 (ZO) 优化器。下面首先介绍一
个经典的 ZO 梯度估计器 SPSA( Definition 1 [62] ) 和对应的 SGD 算法 ZO-SGD ( Definition 2
)。然后我们描述 MeZO ,我们的就地实现需要与 Section 2.1 和 Algorithm 1 中的推理相同
的内存。我们强调 SPSA 也可以用于更复杂的优化器,例如 Adam,我们也为这些算法提供
内存高效实现 ( Section 2.2 )。
考虑一个带标签的数据集 D = {(x
i
, y
i
)}
i∈[|D|]
和一个大小为 B 的小批量 B ⊂ D ,我们让
L(θ; B) 表示小批量的损失。我们在此设置中引入了经典的 ZO 梯度估计。
Definition 1 (Simultaneous Perturbation Stochastic Approximation or SPSA [62]). 给定一个带有
参数 θ ∈ R
d
和损失函数 L 的模型,SPSA 将小批量 B 上的梯度估计为
ˆ
∇L(θ; B) =
L(θ + ϵz; B) − L(θ − ϵz; B)
2ϵ
z ≈ zz
⊤
∇L(θ; B) (1)
其中 z ∈ R
d
与 z ∼ N(0, I
d
) 和 ϵ 是扰动尺度。n -SPSA 梯度估计平均
ˆ
∇L(θ; B) 超过 n 随机
采样的 z 。
2
Algorithm 1: MeZO
Require : parameters θ ∈ R
d
, loss L : R
d
→ R , step budget T , perturbation scale ϵ , batch
size B learning rate schedule {η
t
}
for t = 1 , ..., T do
Sample batch B ⊂ D and random seed s
θ ← PerturbParameters( θ, ϵ, s)
ℓ
+
← L(θ; B)
θ ← PerturbParameters( θ, −2ϵ, s)
ℓ
−
← L(θ; B)
θ ← PerturbParameters( θ, ϵ, s) ▷ Reset parameters before descent
projected_grad ← (ℓ
+
− ℓ
−
)/(2ϵ)
Reset random number generator with seed s ▷ For sampling z
for θ
i
∈ θ do
z ∼ N(0, 1)
θ
i
← θ
i
− η
t
∗ projected_grad ∗ z
end
end
Subroutine PerturbParameters( θ , ϵ , s)
Reset random number generator with seed s ▷ For sampling z
for θ
i
∈ θ do
z ∼ N(0, 1)
θ
i
← θ
i
+ ϵz ▷ Modify parameters in place
end
return θ
SPSA 只需要两次前向通过模型来计算梯度估计(对于 n -SPSA,每个估计需要 2n 次前向通
过)。在训练过程中,n 可以被视为一个超参数并遵循一个时间表 [6, 9] ,尽管在粗略的实
验 ( Appendix A ) 中,n = 1 是最有效的。我们默认使用 n = 1 。众所周知,该估计可用于
替换任何优化器(例如 SGD)中的反向传播梯度。
Definition 2 (ZO-SGD). ZO-SGD 是一个学习率为 η 的优化器,它将参数更新为 θ
t+1
=
θ
t
− η
ˆ
∇L(θ; B
t
) ,其中 B
t
是时间 t 的小批量,
ˆ
∇L 是 SPSA 梯度估计。
2.1 内存高效 ZO-SGD ( MeZO )
香草 ZO-SGD 算法消耗两倍的推理内存,因为它需要存储 z ∈ R
d
。我们提出了 ZO-SGD 的
内存高效实现,称为 MeZO ,如 Algorithm 1 中所示。在每一步,我们首先对随机种子 s 进
行采样,然后对于 z 在 Algorithm 1 中的四次使用中的每一次,我们将随机数生成器重置为
s 并重新采样 z 的相关条目。使用此就地实现,MeZO 的内存占用量相当于推理内存成本。
我们注意到 Algorithm 1 描述了分别扰动每个参数,这对于大型模型来说可能很耗时。在实
践中,我们可以通过扰动整个权重矩阵而不是独立地扰动每个标量来节省时间。这会产生与
最大权重矩阵一样大的额外内存成本;通常,这是词嵌入矩阵(例如,OPT-66B 为 0.86GB)。
2.2 MeZO 扩展
MeZO 还可以与其他基于梯度的优化器结合使用,包括带有动量的 SGD 或 Adam。虽然天
真的实现需要额外的内存来存储梯度矩估计,MeZO -momentum 和 MeZO -Adam 通过使用
保存的传递损失和 z 重新计算梯度的移动平均值来减轻这种开销(有关完整讨论,请参阅
Appendix B )。
我们还注意到,SPSA 梯度估计的所有坐标都具有相同的尺度,但深度 Transformer 的每一
层都可以具有不同尺度的梯度 [42, 44] 。因此,我们从分层自适应优化器 [75, 76] 中汲取灵
感来设计几个 MeZO 变体。粗略的实验表明,这些算法并没有更有效(就前向传播而言),
但我们仍然将它们作为更复杂目标的潜在优化器。请参见 Appendix B 。
3
SST-2 SST-5 SNLI MNLI RTE TREC
30
40
50
60
70
80
90
100
Accuracy (%)
k=16 RoBERTa-large
SST-2 SST-5 SNLI MNLI RTE TREC
30
40
50
60
70
80
90
100
k=512 RoBERTa-large
Zero-shot
MeZO (prefix)
LP
FT
MeZO
FT (LoRA)
MeZO (LoRA)
FT (prefix)
Figure 2: RoBERTa-large 上的实验。我们报告了零样本、线性探测 (LP) 和 MeZO 以及具有完
整参数、LoRA 和前缀调整的微调 (FT)。MeZO 优于零样本和 LP,并且接近 FT(k = 512 的
5 % 以内),内存少得多。Table 16 中的详细数字。
3 实验
初步实验(Appendix A )表明 ZO 仅在使用提示时有效 [8, 60, 23] 。下面的所有实验都使
用 Appendix D.2 中详述的提示。所有使用反向传播 (FT) 进行微调的实验都遵循惯例并使用
Adam,尽管我们还在 Appendix E 中展示了带有 SGD 的 FT。
我们在带有提示的少镜头和多镜头设置中对中型掩蔽 LM(RoBERTa-large,350M [46] )和
大型自回归 LM(OPT-13B、30B、66B [78] )进行综合实验。我们还探索了全参数调整和
PEFT,包括 LoRA [30] 和前缀调整 [40] (详见附录 D.5 )。我们将 MeZO 与零样本、上下
文学习 (ICL)、线性探测 (LP) 和 Adam (FT) 微调进行比较。MeZO 使用的内存比 FT 少得多,
但需要更多的训练步骤。
我们首先展示 MeZO 在模型类型、大小和任务类型方面显着优于零样本、ICL 和 LP。此外,
MeZO 在许多任务上的性能与 FT 相当,同时显着降低了内存成本,例如 OPT-13B 上的 12 ×
。进一步的实验表明,MeZO 可以优化不可微分的目标,例如准确性和 F1 分数 ( Section 3.3
)。我们比较了 Figures 3 and 4 中 ICL、FT、LP 和 MeZO 的内存消耗。
3.1 中型掩码语言模型
我们使用 RoBERTa-large 在情感分类、自然语言推理和主题分类任务上进行实验。我们按
照 [23, 48] 研究少镜头和多镜头设置,为 k = 16 和 k = 512 的每个类采样 k 个示例(详见
Appendix D )。我们在下面总结了 Figure 2 和 Table 16 的结果。
MeZO 的效果明显优于零样本、线性探测和其他内存等效方法。 在所有六项不同的任
务中,MeZO 可以优化预训练模型并始终如一地表现优于零样本和线性探测。我们还针
对多项任务展示了 MeZO 可以胜过另一种 ZO 算法 BBTv2 [64] ,最高可达 11% 绝对值 (
Appendix E.4 )。
3
有了足够的数据,MeZO 可实现与 FT 相当的性能(高达 5 个% 差距)。 MeZO 在 k = 16
上实现了接近微调的性能,一些任务只有 2 个% 差距。当使用 k = 512 数据时,MeZO 和 FT
之间的差距在所有任务中进一步缩小到 5 % 以内。
MeZO 适用于全参数调优和 PEFT。 全参数调优 ( MeZO ) 和 PEFT(具有 LoRA 和前缀调
优的 MeZO )实现了相当的性能,而 MeZO(前缀)有时优于 MeZO 。我们还在 Appendix E.3
中表明这三个变体以相似的速率收敛,这与我们在 Section 4 中的理论一致,这表明 MeZO
以独立于被优化参数数量的速率收敛。
我们在附录 E.1 中展示了更多 FT(FT with SGD )和 MeZO 变体的额外结果。我们看到 (1)
ZO-Adam 有时优于 ZO-SGD 但在任务之间并不一致;(2) LP 然后 MeZO ,按照微调的建
议 [36] ,有时可以提高性能。
3
BBTv2 对 # 参数敏感,只能训练向下投影的前缀而不是完整模型。
4
Task SST-2 RTE CB BoolQ WSC WIC MultiRC COPA ReCoRD SQuAD DROP
Task type ———————— classification ———————— – multiple choice – — generation —
Zero-shot 58.8 59.6 46.4 59.0 38.5 55.0 46.9 80.0 81.2 46.2 14.6
ICL 87.0 62.1 57.1 66.9 39.4 50.5 53.1 87.0 82.5 75.9 29.6
LP 93.4 68.6 67.9 59.3 63.5 60.2 63.5 55.0 27.1 3.7 11.1
MeZO 91.4 66.1 67.9 67.6 63.5 61.1 60.1 88.0 81.7 84.7 30.9
MeZO (LoRA) 89.6 67.9 66.1 73.8 64.4 59.7 61.5 87.0 81.4 83.8 31.4
MeZO (prefix) 90.7 70.8 69.6 73.1 57.7 59.9 63.7 84.0 81.2 84.2 28.9
FT (12x memory) 92.0 70.8 83.9 77.1 63.5 70.1 71.1 79.0 74.1 84.9 31.3
Table 1: OPT-13B 上的实验(有 1,000 个例子)。ICL:情境学习;LP:线性探测;FT:与
Adam 进行全面微调。MeZO 全面优于零样本、ICL 和 LP,并在 11 项任务中的 7 项上实现
了与 FT 相当(在 1 % 以内)或更好的性能。
Task SST-2 RTE BoolQ WSC WIC SQuAD
30B zero-shot 56.7 52.0 39.1 38.5 50.2 46.5
30B ICL 81.9 66.8 66.2 56.7 51.3 78.0
30B MeZO/MeZO (prefix) 90.6 72.6 73.5 63.5 59.1 85.2
66B zero-shot 57.5 67.2 66.8 43.3 50.6 48.1
66B ICL 89.3 65.3 62.8 52.9 54.9 81.3
66B MeZO/MeZO (prefix) 93.6 66.4 73.7 63.5 58.9 85.0
Table 2: OPT-30B 和 OPT-66B 上的实验(有 1,000 个例子)。我们报告 MeZO 和 MeZO (前
缀)中最好的。有关更多结果,请参阅 Appendix E.2 。我们在大多数任务中看到 MeZO 有效
优化了多达 66B 的模型,并且优于零样本和 ICL。
3.2 大型自回归语言模型
凭借 RoBERTa-large 的可喜成果,我们将 MeZO 扩展到 OPT 系列 [78] ,规模为 13B(表 1
)、30B 和 66B(Table 2 )。我们选择 SuperGLUE [69] 任务
4
(包括分类和多选)和生成任
务。我们分别为每个数据集随机抽取 1000、500 和 1000 个示例进行训练、验证和测试。详
情请参考附录 D 。从表 1 中的主要结果,我们得出以下观察结果。
MeZO 优于内存等效方法并接近微调结果。 我们看到,在 13B 参数规模上,MeZO 及其
PEFT 变体几乎在所有任务中都优于零样本、ICL 和 LP。与 FT 相比,后者的内存多 12 × (
Section 3.4 ),MeZO 在 11 个任务中的 7 个上实现了相当(在 1 % 以内)或更好的性能。
MeZO 在分类、多项选择和生成任务中表现出强大的性能。 我们在生成任务上调查了
MeZO ,这些任务被认为比分类或多项选择任务更复杂。我们对两个问答数据集 SQuAD [57]
和 DROP [20] 进行评估。我们使用 teacher-forcing 进行训练,使用贪婪解码进行推理(Ap-
pendix D 中的详细信息)。
表 1 显示,在所有生成任务上,MeZO 优于零样本、ICL 和 LP,并实现了与 FT 相当的性
能。考虑到微调 LM 的许多应用——包括指令调优或域适应——目标生成任务,我们的结果
强调了 MeZO 作为一种内存高效技术的潜力,可以优化大型 LM 以实现现实和令人兴奋的
应用。
MeZO 可扩展至 660 亿个参数模型。 我们在表 2 中展示了 MeZO 在更大模型(高达 66B)
上的功效。虽然在这种规模上直接微调模型的成本非常高 ( Section 3.4 ),MeZO 可以有效地
优化这些模型并优于零样本和 ICL。
3.3 以不可区分的目标进行训练
我们通过初始实验证明了 MeZO 优化不可微分目标的功效。准确性和 F1 用作各自的目标
(Appendix D.6 中的详细信息)。表 3 表明具有精度/F1 的 MeZO 成功优化了 LM,其性能优
于零射击。尽管最小化交叉熵会带来更强的性能,但这些初步发现强调了应用 MeZO 优化
不可微目标的潜力,而无需明确的可微代理,例如人类偏好 [51] 。
4
我们还包括 SST-2,这是我们用于开发的简单情感分类任务。
5
剩余31页未读,继续阅读
资源评论
中译论道
- 粉丝: 0
- 资源: 5
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功