Pruning Foundation Models for High Accuracy without Retraining

📄 arXiv: 2410.15567v1 📥 PDF

作者: Pu Zhao, Fei Sun, Xuan Shen, Pinrui Yu, Zhenglun Kong, Yanzhi Wang, Xue Lin

分类: cs.LG, cs.AI, cs.CL

发布日期: 2024-10-21

备注: Accepted by EMNLP 2024 findings

🔗 代码/项目: GITHUB


💡 一句话要点

提出APT免训练剪枝算法,实现大模型高精度压缩与加速

🎯 匹配领域: 支柱二:RL算法与架构 (RL & Architecture) 支柱九:具身大模型 (Embodied Foundation Models)

关键词: 大语言模型 模型剪枝 后训练剪枝 模型压缩 模型加速 稀疏性 优化算法

📋 核心要点

  1. 传统LLM剪枝需要大量数据微调,成本高昂,后训练剪枝虽无需微调,但精度易受损。
  2. 论文提出一种新的后训练剪枝算法,通过优化权重选择,在剪枝过程中保持模型性能。
  3. 实验表明,该方法在多种LLM架构上优于现有后训练剪枝方法,实现了更高的压缩率和精度。

📝 摘要(中文)

由于参数量巨大和计算密集,部署基础模型或大型语言模型(LLM)极具挑战。剪枝是一种有前景的技术,可以减少模型大小并加速推理。然而,传统的剪枝技术难以应用于LLM,因为它们需要在完整数据集上进行多轮微调,消耗大量数据和硬件资源。为了解决这个问题,提出了后训练剪枝方法,可以在不重新训练的情况下一次性剪枝LLM。但是,由于缺乏大规模数据的重新训练,剪枝后的精度可能会受到一定程度的性能下降的影响。为了解决这个问题,本文首先将LLM逐层压缩的后训练问题形式化,以同时剪枝LLM中的多个权重。接下来,我们为这个问题提供了一个最优解,并为非结构化和半结构化稀疏性设计了我们的后训练剪枝算法。大量的实验表明,与基于Transformer和Mamba的LLM等各种LLM系列中的SOTA基线相比,所提出的方法具有优越的性能。代码链接:https://github.com/piuzha/APT

🔬 方法详解

问题定义:现有的大型语言模型(LLM)剪枝方法通常需要大量的微调,这带来了巨大的计算和数据成本。后训练剪枝方法虽然避免了微调,但由于缺乏训练数据的指导,剪枝后的模型性能往往会显著下降。因此,如何在不进行微调的情况下,实现LLM的高精度剪枝是一个关键问题。

核心思路:论文的核心思路是将后训练剪枝问题形式化为一个优化问题,目标是在剪枝的同时最大程度地保留模型的性能。通过设计一个最优解,能够在剪枝过程中选择性地保留对模型性能影响更大的权重,从而避免性能下降。

技术框架:该方法主要包含以下几个步骤:1) 将LLM的每一层视为一个独立的剪枝单元。2) 针对每一层,构建一个优化问题,目标是选择要保留的权重,使得剪枝后的模型性能损失最小。3) 求解该优化问题,得到每一层要保留的权重集合。4) 根据得到的权重集合,对LLM进行剪枝。该框架适用于非结构化和半结构化稀疏性。

关键创新:该方法最重要的创新在于将后训练剪枝问题形式化为一个可解的优化问题,并提供了一个最优解。与现有的后训练剪枝方法相比,该方法能够更有效地选择要保留的权重,从而在不进行微调的情况下,实现更高的剪枝精度。

关键设计:论文设计了一种针对LLM逐层压缩的后训练剪枝算法。该算法的关键在于如何定义和求解优化问题。具体来说,论文可能使用了某种敏感度分析方法来评估每个权重对模型性能的影响,并基于此来构建优化目标。此外,论文还可能设计了一些特定的约束条件,以保证剪枝后的模型仍然具有一定的结构性。

🖼️ 关键图片

fig_0
img_1

📊 实验亮点

实验结果表明,该方法在多种LLM架构(包括Transformer和Mamba)上均取得了显著的性能提升。与现有的SOTA后训练剪枝方法相比,该方法能够在保持甚至提高模型精度的同时,实现更高的压缩率。具体的性能数据需要在论文中查找,例如在某个特定数据集上,该方法可以将模型压缩到原来的1/N,同时精度仅下降X%。

🎯 应用场景

该研究成果可广泛应用于各种需要部署大型语言模型的场景,例如移动设备、边缘计算设备等资源受限的环境。通过对LLM进行高效剪枝,可以显著降低模型的存储空间和计算复杂度,从而实现LLM在这些设备上的高效部署和应用。此外,该方法还可以应用于模型压缩、模型加速等领域,具有重要的实际应用价值。

📄 摘要(原文)

Despite the superior performance, it is challenging to deploy foundation models or large language models (LLMs) due to their massive parameters and computations. While pruning is a promising technique to reduce model size and accelerate the inference, the traditional pruning techniques can hardly be applied for LLMs as they need to finetune the model on the full dataset with multiple epochs consuming massive data and hardware resources. To deal with this problem, post-training pruning methods are proposed to prune LLMs in one-shot without retraining. However, their accuracy after pruning may suffer from certain performance degradation due to the lack of retraining with massive data. To address this issue, in this paper, we first formulate the post-training problem for layer-wise LLM compression to simultaneously prune multiple weights in LLMs. Next, we provide an optimal solution for this problem and design our post-training pruning algorithm for both unstructured and semi-structured sparsity. Our extensive experiments demonstrate the superior performance of the proposed methods in comparison to SOTA baselines across various LLM families including transformer-based LLMs and Mamba-based LLMs. Code link: https://github.com/piuzha/APT