点击下方卡片,关注「集智书童」公众号
本文主要解决了什么问题
大语言模型的计算和内存开销问题 :现代大语言模型参数量庞大,导致训练和推理阶段的计算与内存需求显著增加。本文提出了一种通用的无训练深度剪枝方法(ReplaceMe),旨在通过移除冗余Transformer模块并用线性变换替代,降低模型复杂度。
传统剪枝方法的依赖性问题 :大多数现有剪枝方法需要额外的训练或微调步骤以恢复性能损失。本文提出的ReplaceMe无需任何修复过程,从而大幅减少了计算开销。
跨架构泛化能力问题 :除了大语言模型外,本文还验证了ReplaceMe在视觉Transformer架构上的有效性,展示了其在不同任务中的泛化能力。
本文的核心创新是什么
无训练深度剪枝方法 :ReplaceMe是一种全新的深度剪枝技术,它通过估计线性变换来近似被剪枝的Transformer模块,而无需任何再训练或微调步骤。
线性变换矩阵的高效估计 :作者提出了基于校准数据集的解析和数值优化方法,用于估计最优线性变换矩阵,并将其无缝集成到剩余网络中,避免了额外参数的引入。
广泛的实验验证 :本文对不同模型家族(如LLaMA、Qwen、Falcon等)和任务(文本生成、图像分类等)进行了全面实验,证明了ReplaceMe的有效性和鲁棒性。
正则化策略的研究 :作者研究了正则化对线性变换估计的影响,揭示了困惑度与准确率之间的权衡关系,为实际应用提供了指导。
结果相较于以前的方法有哪些提升
更高的剪枝效率 :在合理压缩率下(如25%),ReplaceMe能够保留约90%的原始模型性能,且无需任何训练或修复步骤,显著优于其他无训练方法。
竞争力的性能表现 :即使与需要大量重新训练或微调的先进剪枝方法相比,ReplaceMe仍具有高度竞争力,在多个基准测试中表现优异。
更广泛的适用性 :ReplaceMe不仅适用于大语言模型,还能有效应用于视觉Transformer架构(如CLIP-ViT),进一步验证了其跨领域泛化能力。
局限性总结
高压缩率下的性能退化 :在极端压缩率下,仅靠线性变换可能不足以完全恢复性能,仍需引入轻量级修复过程。
校准数据质量敏感性 :ReplaceMe的性能高度依赖于校准数据的质量和数量,尤其是在指令微调模型上,指令风格的校准数据表现更优。
困惑度与准确率的权衡 :正则化策略虽然可以提升模型在某些任务上的表现,但可能导致困惑度增加,需要根据具体任务进行调整。
导读
作者介绍了ReplaceMe,这是一种通用的无训练深度剪枝方法,能够有效地用线性运算替换Transformer模块,同时保持低压缩率下的高性能。与需要额外训练或微调的传统剪枝方法不同,ReplaceMe仅需一个小型校准数据集,用于估计线性变换以近似被剪枝的模块。这种估计的线性映射可以与剩余的Transformer模块无缝融合,无需任何额外的网络参数。
实验表明,ReplaceMe始终优于其他无训练方法,并且在与需要大量重新训练/微调和架构修改的先进剪枝方法相比时仍具有高度竞争力。应用于多个大语言模型(LLMs),ReplaceMe实现了高达25%的剪枝,同时在大规模基准测试中保留了原始模型约90%的性能——无需任何训练或修复步骤,从而实现了极小的计算开销(见图1)。作者提供了一个开源库,其中实现了ReplaceMe以及多种先进的深度剪枝技术,可在本仓库获取。
1 引言
近年来,Transformer在计算机视觉和自然语言处理等多个任务上取得了前所未有的成功。现代大语言模型通常扩展到数十亿甚至数百亿个参数,显著增加了训练和推理阶段的计算和内存需求。这种巨大的资源需求对其更广泛的实际部署和可用性构成了重大挑战。
由于现代大语言模型(LLMs)的体积过大,研究行人已投入大量精力使其能够被硬件能力有限的用户使用。这些努力主要集中于三种关键策略:量化、蒸馏和剪枝。剪枝涉及识别并移除重要性较低的参数或整个结构组件,以简化模型,从而在不显著影响性能的情况下降低计算开销。结构化剪枝与非结构化剪枝的区别在于它专注于参数组或层级的整体,允许其完全移除。这种方法不仅提高了硬件利用效率,还可能实现更大的资源消耗减少。重要的是,它独立于所使用的硬件类型。
在本工作中,作者专注于结构深度剪枝,基于以下假设:一组连续的Transformer模块可以通过单个线性变换进行有效近似。为了验证这一想法,作者提出了ReplaceMe,这是一种新颖的无训练剪枝方法,它用从一个小型校准数据集估计的线性变换来替换选定的模块。
值得注意的是,大多数现有的剪枝方法需要后剪枝再训练阶段——通常被称为“修复过程”——以恢复损失的性能。这个再训练阶段可能耗时且计算成本高。相比之下,ReplaceMe在合理的压缩率场景下无需任何再训练即可保留模型的大部分性能。
ReplaceMe通过使用简单的线性变换矩阵补偿块移除后引入的错误,对深度剪枝方法进行了泛化。该变换随后与模型中剩余的一个权重融合,实现了无缝集成且不增加参数。这项工作的贡献可以总结如下:
-
- 作者提出了ReplaceMe,一种通用的深度剪枝方法,该方法能够在无需任何修复过程的情况下,在合理的压缩率下保持模型性能。
-
- 作者对不同目标下线性变换的解析和数值估计进行了详细研究;
-
- 作者对不同校准数据、求解器和LLM架构提供了详细的消融研究;
-
- 作者验证了ReplaceMe在不同模型家族中的有效性和泛化能力,包括大语言模型和视觉Transformer架构(如ViT [6])。
本文组织结构如下:第二节介绍了作者训练无关的深度剪枝方法的核心方法论。它阐述了在大语言模型(LLMs)中识别可剪枝层的框架,并估算了补偿移除组件的相应线性变换。本节还讨论了适当损失函数的选择、正则化策略以确保泛化能力,以及扩展到多个线性变换以实现更灵活剪枝的潜在可能性。第三节则提供了全面的实验结果和消融研究,展示了ReplaceMe的有效性和鲁棒性,并分析了影响其性能的关键因素。
2 方法
在本研究中,作者介绍了ReplaceMe,一种新型深度神经网络剪枝方法,该方法在简洁性和有效性之间取得平衡,以优化模型性能。ReplaceMe基于剪枝Transformer模型中的多个层,并用单个线性变换来替换它们。它包括以下关键步骤:
- • 首先,作者通过针对对性能影响最小的层来识别适合剪枝的层,这与先前研究一致(第2.1节)。
- • 接下来,作者计算一个最优线性变换(LT)来补偿被剪枝层的贡献。值得注意的是,该变换无缝集成到前一层中,在无需引入额外参数的情况下保持模型性能(第2.2节)。
- • 此外,作者研究了正则化策略对变换估计的影响,并表明这可以作为一种有助于在模型性能和困惑度之间保持平衡的策略(第2.3节)。
- • 最后,作者概述了如何扩展ReplaceMe以支持多个线性变换,从而实现灵活且明智的剪枝决策(第2.4节)。这些组件共同确立了ReplaceMe作为无训练神经网络剪枝实用且稳健的进展。
2.1 层次选择
设
为第
个transformer模块的输入,其中
表示token数量,
表示transformer模型的隐藏维度。通常情况下,传统的transformer模块可以表示为以下形式:
其中
和
分别表示多头注意力(MHA)层和MLP层,而
和
分别对应MHA层之前的层归一化算子和MLP之后的层归一化算子。注意力子模块的输出用
表示,而
和
分别表示MLP层的输出和Transformer模块的输出。
层选择策略基于每一层的显著性,该显著性由不同transformer模块的激活输出之间的距离决定。形式上,对于预定义的待剪枝层数,记为
,最优切割索引
通过最小化切割前后的隐藏状态之间的距离来确定:
作者评估了多种距离度量
,发现余弦距离在识别适合剪枝的接近最优层方面特别有效。这一观察结果与近期研究[10]中的发现一致。在补充材料A.10中,作者展示了通过穷举暴力搜索方法进行层选择的实验结果,这些结果证实余弦距离始终能识别出最优或接近最优的待移除层。此外,作者还对L2距离度量进行了比较分析,以进一步验证作者的选择。
2.2 线性变换估计
为了补偿被剪枝的Transformer模块,作者利用一小部分校准数据来计算移除点前后的激活值。利用这些激活值,作者估计一个适当的线性变换,以准确近似被剪枝模块的最终输出。根据所选标准,这种估计可以通过解析或数值方法进行,从而实现对被省略层的精确建模。
如图2所示,在MLP之后和残差求和之前应用线性变换。所ReplaceMe的目的是估计一个最优线性变换矩阵
,以便:
其中
对应于两个输入张量之间的距离函数(例如
距离、余弦距离等),
表示使用公式(4)估计的光学切割索引。一旦变换矩阵被估计出来,从
到
(包含)的转换块将被移除。
距离。方程 5 的经典解法是通过将距离
设为
距离来求解最小二乘(LS)问题。
这种公式允许处理凸二次问题,并如上所述,具有闭式解析解,详细内容请参考补充材料A.2。
余弦距离。如第2.1节所述,作者的消融研究比较了各种距离函数在评估Transformer模块重要性方面的效果,结果表明余弦距离在识别最不重要的模块方面最为有效。基于这些结果,作者进一步采用余弦距离作为估计最优线性变换的目标函数。在这种情况下,优化问题形式如下:
作者使用符号
表示矩阵
的第
行,并将其表示为列向量。在此过程中,作者针对每个 Token
计算余弦距离,并在所有
个 Token 上进行聚合。与
-距离公式不同,该目标函数没有解析解,因此需要采用数值优化方法。在作者的实验中,作者使用了Adam [16]优化算法。此外,关于各种替代数值求解器的消融研究可以在补充材料A.6中找到。
为解决等式(7)中的优化问题,需要存储隐藏状态
和
。为提高内存效率,作者优化以下简化公式:
这种替代性公式要求作者仅存储
和差值
,而不是保留所有三个矩阵。在补充材料A.11中,作者通过实验验证,这种简化对性能的影响可以忽略不计,同时提高了内存效率。
合并线性变换一旦最优线性变换
被估计出来,ReplaceMe能够将其整合到第
个transformer块的MLP层中,在那里它与第二个FFN层的权重矩阵进行合并。因此,除了移除"非有效"的transformer块外,模型的整体架构保持不变。
2.3 正则化
作者还研究了通过正则化在矩阵
上施加额外约束来估计线性变换矩阵的方法。具体来说,作者将优化问题重新表述如下:
其中
表示正则化项,
控制其强度。为了促进变换矩阵
的Sparse性,并鼓励特征重要性的更均衡分布,作者同时使用余弦距离的
和
正则化项,并针对LS推导了12正则化的解析解。经验分析表明,这些正则化项提升了剪枝模型生成准确预测的能力,如第3节所示的基于准确性的基准测试结果所反映,尽管这种改进是以增加困惑度为代价的。
2.4 多重线性变换
所提出的ReplaceMe方法可应用于模型内多个不重叠的块,为每个块估计一个独立的线性变换(多线性变换)。这种方法在实现所需性能指标方面提供了灵活性,即使在较高的压缩率下也是如此。此外,如果选定的某些块是连续的,它们可以合并成一个块,并使用相应的线性变换。
3 实验
在本节中,作者首先描述了作者的实验设置。随后,作者系统地比较了作者的无训练剪枝方法与现有的结构化剪枝方法,包括那些依赖修复机制的方法。值得注意的是,作者展示了ReplaceMe在不需要任何额外训练的情况下实现了具有竞争力的性能。为了进一步分析影响ReplaceMe的因素,作者对几个关键方面进行了消融研究:校准数据集(用于选择要剪枝的层和估计线性变换)、公式5中距离函数的选择,以及引入正则化项的影响。
3.1 实验设置
在作者的实验中,作者主要关注LLaMA-2-7B和LLaMA-3-8B-Instruct模型,同时为了对比分析,也报告了Qwen2.5-7B和Falcon-11B的结果。其他模型的结果在补充材料A.7中提供。
在主要结果部分,特别是在表1中,作者基于不同的基准测试呈现了结果,以与前人研究保持一致。作者遵循了他们各自论文中使用的基准测试:CMNLI [43]、HellaSwag [44]、PIQA [2]、CHID [46]、WSC [20]、MMLU [14]、CMMLU [21]、Race-High/Middle [18]、C3 [36]。
此外,作者使用Winogrande [33]、BoolQ [4]、OpenBookQA [27]、SciQ [42]和Lambada OpenAI [30]这些成熟的公共数据集对提出的ReplaceMe进行了基准测试。对于除Lambada OpenAI以外的所有基准测试,作者报告准确率作为评估指标,并报告所有基准测试的平均准确率。对于Lambada OpenAI,作者报告困惑度。
3.2 与其他结构化剪枝方法的比较
在本节中,作者展示了将ReplaceMe应用于不同模型架构和基准测试的关键发现。为确保结果的统计稳定性,所有实验均多次重复进行。如图1所示,作者进行了ReplaceMe与UIDL的比较分析,评估了包括获得可比精度所需时间、环境影响和最终模型性能等关键指标。值得注意的是,对于UIDL的修复过程,作者将微调限制在仅应用于MLP层的低秩适配(LoRA),而其他替代方法则会产生显著更高的计算成本。与其它方法相比,ReplaceMe显著降低了计算需求,并实现了明显更快的恢复速度。
在表1中,作者将ReplaceMe与其他最先进的结构化深度剪枝方法进行了比较。值得注意的是,所有竞争方法都依赖于修复机制,因此需要大量重新训练,而ReplaceMe完全无需训练(即未应用修复过程)。尽管具有这一优势,如表1所示,ReplaceMe在平均情况下始终优于这些 Baseline ,并在25%的压缩率下达到了未压缩Llama 2 7B模型92.5%的性能。
在表2中,作者进一步在更近的Llama
Instruct模型上,在不应用修复的情况下,将ReplaceMe与最先进的结构化剪枝方法进行比较。作者注意到SVD-LLM [41]采用权重的低秩逼近,而LLM-Pruner [25]结合了宽度和深度剪枝。尽管存在这些差异,如表2所示,ReplaceMe再次优于这些 Baseline 。所有结果均在25%的压缩率下报告。Multi_LT结果对应于第2.4节中描述的方法的应用。虽然多子块识别通常会产生连续的块,但作者额外评估了强制非连续子块的场景。这种配置在困惑度上有所改进,但在基准任务上导致性能下降。
在图3中,作者还比较了作者的无训练方法ReplaceMe与UIDL [10]在多种模型和不同层剪枝量下的表现。ReplaceMe在基准分数和困惑度评估中始终优于UIDL,同时表现出更高的稳定性。
最后,作者注意到在高压缩率下,应用修复过程变得必要,因为仅靠线性变换不足以完全恢复性能。尽管在上述条件下 ReplaceMe 仍然优于 UIDL,但在极端压缩水平下仍需要修复阶段以维持模型的有效性。
3.3 分析
迄今为止,作者已概述了作者的主要目标:使用校准数据将一系列Transformer模块替换为更简单的估计线性变换。校准数据的性质至关重要,正如作者在第3.3.1节中所示,文本类型(指令性文本与普通文本)和数据量对作者的结果有显著影响。
此外,在3.3.2节中,作者分析了正则化对结果的影响,揭示了解析度(如困惑度)和准确率等性能指标之间的权衡。在补充材料中,作者进一步探讨了结构化线性变换(例如对角矩阵或正交矩阵)A.3。
3.3.1 校准数据消融
作者的剪枝方法通过利用小规模的校准数据集替代传统训练数据,无需额外的训练。这些校准数据集具有两个核心作用:(1) 评估模块重要性,以识别需要移除的Transformer模块(第2.1节),以及(2) 捕获剪枝前后模块的隐藏状态,以解决方程5中定义的优化问题,该问题估计相应的线性变换。这些校准子集的质量和特性对估计的准确性至关重要。为了理解校准数据的影响,作者进行了消融实验,探索了样本数量和数据集类型(包括纯文本、指令微调数据和自生成内容)的影响。作者的主要实验使用了Arcee [5]、FineWeb [31]和SlimOrca [22]等数据集,与先前工作如UIDL [10]保持一致。
作者特别研究了三个关键因素:
-
- 数据集类型及其来源的影响
-
- 生成稳定和准确估计所需的最小数据量
-
- 在有限校准样本情况下, Mask 作为一种轻量级数据增强策略的有效性
如表3所示,作者使用ReplaceMe在所有消融设置中,将ReplaceMe应用于剪枝LLaMA 3 8B [7],剪枝比例达到25%。作者评估了三个不同的校准数据集:FineWeb,一个纯文本网络语料库;SlimOrca,一个由ChatGPT生成的精选指令数据集;以及orca_generated,一个合成数据集,其中响应由 Baseline 模型(目标剪枝)使用SlimOrca中的 Prompt 生成。
校准数据集类型的影响 如表3所示,使用指令数据集进行校准在基准评估中比使用纯文本表现更好,尤其对于指令微调模型而言。虽然自生成数据能够提高困惑度得分,但在下游基准测试中往往表现不佳。这一趋势在方程5中定义的两种优化目标——最小二乘(LS)和余弦距离公式中均保持一致。
作者还探索了将SlimOrca与其他数据集结合使用,例如FineWeb和Aya [34]——后者是一个涵盖66种语言的多语言语料库。有趣的是,这些混合数据集的表现与单独使用SlimOrca相当,这表明高质量指令数据主导了校准效果。
校准数据集大小的影响 图4展示了校准数据集的大小如何影响线性变换的估计,无论是使用解析的
目标还是数值余弦距离目标。虽然增加校准样本数量并不会显著提高基准精度,但它确实会大幅降低困惑度——尤其是在使用余弦距离目标进行优化时。
线性变换矩阵的形状为
,可靠估计需要大约
个token。对于每个样本的序列长度为
,这意味着至少需要
个样本。例如,在LLaMA 3 8B中,其中
且
,理论上需要大约16,000个样本。然而,如图4所示,即使只有1,000个样本,准确率仍然保持稳定,这表明对样本数量具有鲁棒性。尽管如此,随着更多数据的加入,困惑度继续提升,这表明模型置信度和预测质量有所提高。
Mask 对数据增强的影响 作者还研究了随机 Token Mask 作为一种轻量级数据增强技术,适用于校准数据有限的情况(例如,1,000个样本)。如表4所示, Mask 提高了数值优化的稳定性,并在估计线性变换时带来了更好的收敛性。这种 Mask 策略在低数据情况下尤其有益,它减少了过拟合并增强了泛化能力。然而,当有更多数据可用时, Mask 的影响变得微不足道。
总之,一个包含大约
个token的校准数据集能够确保稳定且准确的估计。在处理较少token时,随机 Mask 可以缓解过拟合并提高估计质量。对于指令微调模型,指令风格的校准数据始终能带来更好的剪枝结果。虽然自生成数据可以降低困惑度,但它可能会降低基准测试的准确率,这突显了置信度与特定任务性能之间的权衡。
3.3.2 正则化效果
在本节中,作者旨在探讨正则化如何影响线性变换估计。作者对最小二乘法(LS)应用了岭正则化,发现当公式9中的
时,困惑度略有改善,而基准测试上的平均准确率保持不变。相反,将
进一步增加到
会提高基准测试的准确率,但以更高的困惑度为代价。因此,可以将
视为困惑度和剪枝模型准确率之间的权衡参数。相比之下,
的L1正则化对准确率有更大的提升,但以余弦方法的困惑度性能以及L2的困惑度性能为代价。然而,L1正则化在基准测试上的提升增益要高得多。因此,正则化是准确率性能和困惑度之间的权衡参数。
3.4 视觉Transformer剪枝
迄今为止,作者专注于将作者的剪枝技术专门应用于解码器Transformer架构,特别是在大语言模型(LLMs)中。这引发了一个重要问题:该方法在文本生成以外的其他任务上的泛化能力如何,尤其是在Transformer作为编码器时。因此,作者直接在CLIP模型上应用ReplaceMe,检查了13%和25%的压缩率。作者使用了MIMIC数据集的8,000个样本,并遵循[32]中描述的相同评估程序,在著名的基准测试上进行了测试,即MS-COCO [23]、Cifar-10 [17]、EuroSAT [13]、VTAB [45]和Pascal VOC-2007 [8]。此外,为了与最先进的方法进行比较,作者还报告了当UIDL [10]方法应用于相同模型时的结果。
如表6所示,ReplaceMe在CLIP-ViT [32]上保持了非常强的性能,即使在13%的压缩率下,其准确度与原始模型的准确度紧密匹配,且无需任何额外的训练。虽然随着压缩率的提高性能有所下降,但这种退化是可预期的,并且在各个基准测试中表现一致。尽管如此,ReplaceMe始终优于无需训练的最先进方法UIDL [10]。作者还注意到,通过结合一种轻量级的后剪枝“修复”流程,性能可以得到进一步提升。
4 相关工作
模型剪枝[19, 12]自该领域早期发展以来一直处于深度学习研究的前沿。它不仅被应用于减小模型规模,还提升了所研究模型的可解释性。剪枝大语言模型(LLMs)同样适用这一原则。
大量研究集中于非结构化剪枝,通过将模型中矩阵内的单个权重置零,形成Sparse连接。SparseGPT [9] 通过利用逆Hessian矩阵的近似值来解决剪枝中的逐层重构挑战。Wanda [37] 在减少计算方面改进了SparseGPT的思想,通过简化Hessian近似。LLM Surgeon [40] 使用Kronecker分解曲率近似来执行LLM的剪枝。尽管剪枝后仍能保持较高的模型质量,非结构化剪枝带来的计算节省需要专门的Sparse计算硬件支持,限制了其广泛应用。
相比之下,结构化剪枝涉及在网络内部完全移除某些结构。在这种情况下,移除整个注意力头或MLP通道被称为宽度剪枝。LLM-Pruner [25] 提出根据剪枝权重组计算重要性指标,该指标基于有和没有该剪枝组时计算损失的差异。FLAP [1] 提出了一种无训练方法,该方法基于波动剪枝指标和自适应压缩率。
结构化剪枝中另一种典型策略,也是本文的研究重点,是深度剪枝。此类方法旨在移除网络中的整个Transformer层。在Shortened llama [15]中,作者建议通过困惑度分析和泰勒指标来识别每个解码层的重要性。该泰勒指标与LLM-Pruner重要性指标基于相似的理念,即它测量在计算模型损失时包含和移除剪枝层之间的差异。剪枝后,作者[15]进一步提出通过LoRA微调、持续预训练或两者的结合进行修复。
ShortGPT [26]的作者引入了块影响(Block Influence,BI)指标来量化每个网络层的贡献。该指标对应于层前后隐藏状态之间的余弦距离。剪枝后,他们建议选择性地重新训练模型以恢复模型性能。相比之下,UIDL [10](PruneMe)建议计算固定长度层序列的重要性,而不是单独计算每个层该指标。他们计算序列输入与输出之间的余弦距离,如果距离低于预定义阈值,则完全移除该层序列。移除后,在MLP上应用LoRA进行修复。在最近的LLM-Streamline论文[3]中,作者提出用轻量级网络替换固定长度层序列,该轻量级网络可以是Transformer层或 FFN (Feed-Forward Network,FFN)。然后他们使用MSE损失和LLM损失以及LoRA训练该轻量级网络。
最近,NVIDIA提出了Minitron LLM系列[28]及其剪枝版本,这些模型展示了深度和宽度剪枝之间有效的平衡,以减轻性能退化。该方法计算深度和宽度属性的重要性,力求达到一个最小化性能损失的最优平衡。然而,该方法需要大量的数据(约1000亿个token)。
5 结论
在这项工作中,作者介绍了一种名为ReplaceMe的新方法,据作者所知,这是首个无需训练的深度剪枝方法。该方法涉及用线性变换替换某些Transformer模块,作者使用校准数据来估计这些变换。ReplaceMe无需重新训练或微调,但在无需训练的设置中始终优于现有的剪枝技术,即使与依赖后剪枝“修复”阶段的方案相比也保持竞争力。
作者进行了广泛的实验,并概述了使用解析和数值技术准确估计这些线性变换的方法。所ReplaceMe在多种Transformer架构上进行了评估——包括大语言模型和视觉Transformer——展示了其鲁棒性、适应性和有效性。这些结果标志着迈向真正无需训练的剪枝策略的重要一步。
参考
[1]. ReplaceMe: Network Simplification via Layer Pruning and Linear Transformations
扫码加入👉「集智书童」交流群
(备注:方向+学校/公司+昵称)