随着NLP领域的不断发展,将预训练的大语言模型快速优雅的部署到不同的领域已经成为一个重要的研究方向。
通常这种迁移需要考虑两个关键因素:(1)模型的高计算需求和(2)在下游领域中无法持续适应
。
为了同时应对这两个问题,
本文介绍一篇来自三星半导体的研究工作,本文提出了一种自适应语言设置中的持续剪枝框架,称为COPAL
,该框架可以在持续模型适应设置下对生成式大模型进行剪枝优化。剪枝可以避免对模型在下游任务中进行二次微调,为了提高剪枝过程的性能,
本文作者提出了一种敏感性分析来指导剪枝过程,该敏感度有效地衡量了模型抵抗新数据集引入的扰动的能力,并找出最适合当前数据集的模型权重
。这使得COPAL可以在保持高效剪枝效率的同时,无缝适应到新领域中。作者在不同规模的大模型上进行了详实的实验,结果表明COPAL在效率和适应性方面都取得了优越的性能。
论文题目:
COPAL: Continual Pruning in Large Language Generative Models
论文链接:
https://arxiv.org/abs/2405.02347
一、 引言
目前以GPT和LLaMA家族为代表的大型语言模型(LLMs)为各种领域都带来了全新的活力,这些预训练的LLMs为各种NLP任务提供了前所未有的能力,包括语言理解和生成。但是将这些预训练的LLMs适应到不同领域时,目前仍然面临两个主要挑战:
考虑到模型和数据集的大规模性质,重新训练过程需要大量计算资源
。这种高计算需求在资源受限的环境中非常难解决,限制了LLMs的广泛应用。
模型一旦更新以适应某些任务或领域,
在面对不同目标域的新数据时可能无法保持原有同等水平的性能。这种现象被称为"灾难性遗忘"(catastrophic forgetting)
,是持续学习中的一个关键问题。
目前已有研究者尝试基于持续学习框架来缓解上述问题,例如[1]尝试在持续学习环境中对模型进行剪枝处理,
鉴于持续学习本身的局限性,这种方法无法保证剪枝后模型的泛化能力
。针对上述问题,本文提出了COPAL框架,
COPAL首次引入了“持续剪枝”(Continual Pruning)的概念,并且提出了一种新的敏感度分析方法
,用于衡量模型对新数据集引入的扰动的鲁棒性。这种策略使模型能够无缝适应新信息,同时保留先前的知识。
COPAL可以灵活地在模型性能和计算复杂性之间保持平衡
,上图展示了本文方法与其他剪枝baseline的效果对比。可以看到,本文方法在不同剪枝稀疏密度下均获得了优越的性能。
二、本文方法
COPAL是一种全新的持续剪枝算法,
其旨在解决LLMs在下游适应过程中的“权重停滞(weight stasis)”和“遗忘(forgetting)”问题
,具体如下图左侧所示。本文作者认为,在持续模型自适应的设置下,直接对模型进行剪枝具有一定的风险,如果一些满足特定阈值的剪枝权重始终保持不变,会导致模型在迁移到新数据时无法实现有效的激活。
因此COPAL提出了一种基于敏感性分析的指导策略来进行剪枝,无需重新训练模型即可实现模型适应性和资源效率的平衡
。
2.1 理论框架
COPAL的核心在于如何针对给定的LLMs进行连续敏感性分析
,我们可以首先考虑神经网络中的标准层,其输出
计算如下:
其中
是层函数,
是基础模型的权重矩阵,
是基于数据集
中第
个输入的特征向量。
为了分析输出对输入和权重变化的敏感性,这里直接考虑
和
的微小变化
和
,得到
:
由于直接计算无穷小变化在具体实现时并不可行,因此这里直接考虑近似值
和
。于是敏感性度量可以表示为:
在具体实现时,作者使用有限差分近似来计算这些偏导数:
结合这两个敏感性度量,可以将模型输出的微小变化量
重新表述:
为了剪除LLMs中的冗余权重,需要对关键权重进行识别
,可以直接根据当前数据集
中第
个输入向量的输出变化量
的欧氏距离平方来得到损失函数:
,我们使用上一节得到的公式可以将该损失函数重写为:
为了搜索最小化
的最优权重扰动(即要剪枝的权重),这里需要计算
相对于
的梯度:
作者进一步引入
来捕获所有
个数据集中得到的各个梯度的绝对值之和:
其中
仅表示数据集
的损失函数。最后,
可以使用
沿
方向的方向导数
的幅度作为权重重要性的度量
,表示为
:
这样计算得到的
可以作为权重
对损失函数影响的重要性或敏感性的度量,
高
值表示损失函数对沿
方向的权重变化高度敏感,这表明剪枝过程中要重点保留这些权重来保留模型整体的性能
。
2.3 剪枝过程
COPAL的剪枝算法过程如下图所示,首先需要计算模型的输出敏感性,并根据该敏感性来计算损失函数梯度以选择要保留的关键权重。
具体的剪枝操作通过构造一组基于阈值的剪枝掩码来实现,这一过程会在多个数据集序列中不断重复
,确保模型只保留对其功能最关键的权重。
三、实验效果