参数效率调优(PET)近年来得到了广泛的研究,因为它在调优更少的参数(PET 模块)的同时,仍然可以从大型语言模型(LLMs)中激发足够的知识以用于下游任务。此外,当 PET 用于服务多个任务时,可以在冷冻的 LLM 上构建不同的任务特定 PET 模块,避免冗余的 LLM 部署。尽管 PET 显著降低了调优和部署 LLM 的成本,但其推理仍受到 LLM 计算瓶颈的影响。为了解决上述问题,我们提出了一种基于压缩 LLM 的有效 PET 框架,名为\"CPET\"。在 CPET 中,我们评估了主流 LLM 压缩技术对 PET 性能的影响,然后引入了知识继承和恢复策略来恢复这些压缩技术导致的知识损失。我们的实验结果表明,由于 CPET 的恢复策略,将任务特定 PET 模块与压缩 LLM 协作可以实现与协作 PET 模块与压缩 LLM 的原始版本相当的性能,并优于直接将朴素 PET 方法应用于压缩 LLM。
这篇论文介绍了一种新的框架 CPET,用于有效且参数高效的调整压缩大型语言模型。CPET 通过评估主流 LLM 压缩技术的影响,并引入知识继承和恢复策略来恢复这些压缩技术导致的知识损失。实验结果表明,由于 CPET 的恢复策略,将任务特定 PET 模块与压缩 LLM 合作可以实现与将 PET 模块与原始压缩 LLM 合作相媲美的性能,并且优于直接将经典 PET 方法应用于压缩 LLM。CPET 可以解决 PET 在推断时仍然存在的 LLM 计算瓶颈问题,同时显著降低 LLM 调整和部署的成本。
Introduction
- 近年来,数据规模和计算能力的增长推动了语言模型的参数规模的增长。虽然一些参数数量仅有数百万的小型和中型语言模型(Jawahar 等人,2019;Yenicelik 等人,2020)已经在捕捉丰富知识方面表现出色(Jawahar 等人,2019;Yenicelik 等人,2020),但大型语言模型(LLMs)拥有数十亿个参数(Brown 等人,2020;Black 等人,2022;Chowdhery 等人,2022)则表现出了更强大和更全面的能力,特别是在认知和体现方面(Lewkowski 等人,2022;Nakano 等人,2021;Driess 等人,2023)。尽管 LLM 取得了成功,但如何将 LLM 应用于实际场景中仍然是一个重要问题。由于大多数用户无法承担运行 LLM 的巨大成本,因此主要的解决方案是提供 LLM 服务,服务提供商(Ope-nAI,2022;谷歌,2023)将 LLM 适配为特定任务,然后提供用户界面以推断任务特定的 LLM。为了将 LLM 服务扩展到多任务场景中,参数效率调优(PET)已经广泛用于 LLM 的任务适配,其中将统一的 LLM 冻结为不同任务之间的骨干,然后在骨干上注入微小的可调整性 PET 模块,以刺激任务特定的知识。与传统的全参数微调(FT)相比,PET 在多任务服务中调用的参数数量要少得多,同时具有更低的内存开销,并实现与 FT 相当的性能(Ding 等人,2023;周等人,2022)。尽管 PET 在降低 LLM 的调优和部署成本方面显示出潜力,但计算共享骨干 LLM 的计算仍然必不可少,即推断骨干 LLM 和 PET 模块的组合是计算密集型和高延迟的。实验证明,采用模型压缩技术(Hinton 等人,2015;Bai 等人,2021;Liang 等人,2021)将 LLM 压缩成更小的版本是应对推断 LLM 不同延迟需求的解决方案,但压缩后的 LLM 是否能与压缩的 LLM 配合良好仍然是一个开放性问题,特别是考虑到模型压缩技术可能会引入知识丢失和性能退化到压缩的 LLM。在本文中,我们构建了一个有效的 PET 框架,名为“CPET”。为了恢复由压缩过程引起的知识丢失,CPET 引入以下两种机制:(1)PET 知识继承。更强大的 LLM 可以使学习 PET 模块更容易。同时,基于更强大
Related Work
- 本文重点介绍了与 LLMs、PET 和模型压缩相关的内容。在本文中,我们主要介绍了 PET 和模型压缩方法。有关 LLMs 的详细信息可以在相关综述中查阅(Qiu 等人,2020;Han 等人,2021;Bommasani 等人,2021;Zhao 等人,2023)。近年来,已经广泛研究了基于 Transformer 预训练语言模型(PLM),例如 GPT(Brown 等人,2020)和 BERT(Devlin 等人,2018)。随着预训练数据量和 PLM 参数规模的增长,大规模 PLM(Kaplan 等人,2020),即 LLM(Brown 等人,2020;Black 等人,2022;Chowdhery 等人,2022)也出现了,并且表现出了强大的能力(Wei 等人,2022),特别是在某些认知和体现场景中(Lewkowski 等人,2022;Nakano 等人,2021;Driess 等人,2023)。尽管 LLM 可以从大规模预训练数据中获取丰富的知识,以在零散或几散手方式处理复杂任务(Brown 等人,2020;Black 等人,2022),但为了更好地刺激 LLM 中存储的知识以服务于下游任务,仍需要将 LLM 适应各种特定任务场景。对于传统的 PLM,调整所有参数是适应它们的主要方法(Church 等人,2021),但这种方法由于参数效率低而变得昂贵,特别是在适应 LLM 时(Ding 等人,2023)。此外,在存储中维护特定任务的 LLM 版本是可接受的资源消耗(Zhou 等人,2022)。为了更有效地适应多任务场景,已经提出了各种 PET 方法(Lester 等人,2021;Houlsby 等人,2019;Hu 等人,2021;Li 和 Liang,2021;Ben Zaken 等人,2022),其中将冻结的 LLM 和一些可调整的模块注入到 LLM 的 Transformer 架构中,以帮助适应过程。PET 模块通常非常小,这可以显著降低调整 LLM 的成本。PET 模块可以注入到 Transformer 架构中的不同位置。例如,提示调整(Lester 等人,2021)和前缀调整(Li 和 Liang,2021)分别是将可调整的嵌入式向量添加到输入和隐藏状态中的两个方法。适配器调整(Houlsby 等人,2019)应用于相邻模块之间可调整的变换。BitFit(Ben Zaken 等人,2022)和 LoRA(Hu 等人,2021)对 Transformer 架构中的模块进行了轻微的内部修改。如前所述,LLM 已经获得了丰富的能力,只需要一种有效的方式来激发这些能力。可调整的 PET 模块的作用是学习任务特征,作为激发 LLM 特定能力的触发器(Ding 等人,2023)。足够的实验证明,将任务特定的 PET 模块与冻结的 LLM 结合可以达到与仅微调所有 LLM 参数相同的性能。此外,由于不同的任务特定的 PET 模块可以共享一个统一的冻结 LLM 作为它们的骨干,这也导致了在多任务服务和切换中的计算和存储开销较低(Zhou 等人,2022)。总的来说,PET 方法的出现显著降低了调整和部署 LLM 的成本。尽管 PET 方法可以降低部署 LLM 的存储成本,但 LLM 本身的计算瓶颈仍然存在。因此,为了进一步提高模型服务的效率,加快 LLM 的计算速度和模型压缩是关键。
Methodology
- 本文将介绍如何构建基于压缩 LLM 的有效 PET 框架 CPET。在介绍 CPET 之前,我们首先介绍一些必要的前置知识。为了简化,我们将一个完整的变压器架构表示为 Y = f(X; θ M),其中 f(•) 表示整个变压器架构的功能,θ M 是变压器的参数,X 是输入,Y 是输出。在 FT 设置中,所有 M 的参数(即θ M)都被调优,其中 X t , Y t 是下游任务 t 的数据,L 是任务 t 的损失函数。θ t M 是变压器 M 的最终任务特定模型参数。在 PET 设置中,M 被冻结,并使用任务特定数据调优 PET 模块 P。R n e I U 3 5 9 F 5 c d 6 d j 0 V r w c l n j u E P n M 8 f u K e M 5 Q = = X < l a t e x i t s h a 1 _ b a s e 6 4 = \" 3 V P m 2 u q r r N w s X 6 R n e I U 3 5 9 F 5 c d 6 d j 0 V r w c l n j u E P n M 8 f r g u M 3 g = = Q < l a t e x i t s h a 1 _ b a s e 6 4 = \" L P m T p l 8 R n e I U 3 5 9 F 5 c d 6 d j 0 V r w c l n j u E P n M 8 f t Z + M 4 w = = V < l a t e x i t s h a 1 _ b a s e 6 4 = \" < l a t e x i t s h a 1 _ b a s e 6 4 = \" g 6 G q 8 6 0 G e 4 n / B s e T 6 j S M 3 B m F < l a t e x i t s h a 1 _ b a s e 6 4 = \" 0 v 2 A u p W P 5 T U N g P y 4 J m g G r f m w P
我们称注入到变压器 M 中的 PET 模块的参数为θ P(M)。如图 1 所示,由于注入了 PET 模块,变压器架构的计算方式略有改变,变为 Y = f PET(X; θ M , θ P(M))。调优过程可以用以下公式表示:θ t P(M) 是最终任务特定 PET 模块,与变压器 M 协作。本文旨在通过压缩变压器 M 获得 PET 模块。为此,在压缩变压器 M 后,使其具有较少的参数或更低的位表示,我们将压缩的变压器 M 及其参数分别称为 C 和θ C。那么,压缩模型的计算可以表示为 Y = f(X; θ C)。由于 PET 方法不改变变压器 M,因此采用 PET 方法与压缩变压器 M 是正交的。因此,我们提出了更有效的 PET 框架 CPET,首先通过任务无关的模型压缩方法压缩变压器 M,然后将 PET 方法应用于压缩的变压器 M。压缩方法包括:1)使用任务无关的压缩方法压缩变压器 M,保持变压器 M 的位表示和插入位置不变;2)使用压缩的变压器 M 代替未压缩的变压器 M,可以显著减少变压器的推理时间和资源需求。值得注意的是,这种加速是不免费的。想象一下,采用任务无关的压缩方法可能会削弱变压器 M,这将不可避免地影响最佳参数θ t P(C) 的搜索和最终模型 f PET(X; θ C , θ t P(C)) 的效果。
Experiment
- 1. 实验使用了 11 个数据集,包括 BoolQ、CB、RTE、COPA、WiC、SST-2、MRPC、QQP、MNLI、QNLI 和 SQuAD,这些数据集涵盖了典型的 NLP 任务。
2. 实验使用了 T5-3B 模型,该模型由张等人(2022a)提出。
3. 实验使用了 8 位量化、结构化剪枝、无结构化剪枝和量化方法。
4. 实验实现了四个范式:T5-3b + PET,T5-base + PET,CLM + PET 和 CLM + CPET。
5. 在这些范式中,T5-3b + PET 和 T5-base + PET 使用了 PET 模块,而 CLM + PET 和 CLM + CPET 使用了压缩的 T5-3B(CLM)。
6. 实验使用了 OpenDelta 工具包(Ding 等人,2023)来实现这些范式。
7. 使用了 LoRA 方法(Hu 等人,2021)作为 PET 方法的基准。
8. 设置了 LoRA 模块的瓶颈维度为 32。
9. 设置了恢复模块的瓶颈维度为 32。
10. 实验使用了三种学习率:{1e-3, 5e-4, 1e-4, 1e-5}。
11. 实验使用了{8, 16, 32, 64, 128, 256}中的一个 batch size。
12. 实验使用了 1e-2 的权重衰减。
13. 实验将蒸馏系数设置为α = 0.05。
14. 图 2 显示了 CPET 与 PET 之间的性能改进。
15. 从图中可以看出,与原始 LLM 相比,压缩的 LLM 的性能不如原始 LLM。这说明任务无关的压缩方法导致了一些与下游任务相关的知识丢失。也就是说,为了提高推理速度,压缩模型的性能可能会下降,因为加速过程会影响性能。
16. 在压缩模型中,CPET 在所有情况下都优于纯 PET 方法。
Conclusion
- 本文提出了一种基于压缩 LLM(CPET)的有效 PET 框架,以进一步降低部署 LLM 和 PET 模块时的资源要求和推理速度。由于任务无关压缩方法可能导致丢失一些任务特定知识,我们引入了 PET 知识继承和模型知识恢复以恢复丢失的知识。通过从非压缩 LLM 中继承 PET 模块的先前任务知识,可以更容易地找到压缩 LLM 的最佳 PET 模块。此外,通过引入知识恢复模块以恢复压缩阶段丢失的任务特定能力,与压缩 LLM 合作的 PET 模块可以实现与基于非压缩 LLM 的 PET 模块相当的性能。实验结果表明,CPET 可以超越基于压缩 LLM 的基线,同时,CPET 保持了 PET 方法在多任务服务方面的优势。本文主要加速了 PET 方法和 LLMs 的推理。我们将未来工作留给了解决 LLMs 计算瓶颈。