PALS:面向大语言模型剪枝的百分位感知层稀疏度方法
摘要
PALS根据激活幅度的99百分位数调整大语言模型剪枝中的每层稀疏比,在LLaMA-2-7B上相比均匀稀疏实现了显著困惑度改进,且附加成本可忽略不计。
查看缓存全文
缓存时间: 2026/07/09 07:50
# PALS: 基于百分位数的逐层稀疏度用于LLM剪枝
来源:https://arxiv.org/html/2607.07557
Yazdan Jamshidi Palo Alto Networks yjamshidi@paloaltonetworks\.com & Alexey Shvets Palo Alto Networks ashvets@paloaltonetworks\.com
###### 摘要
像 Wanda 和 SparseGPT 这类一次性剪枝方法对 Transformer 的每一层都施加相同的稀疏度比例,忽略了已知的层重要性差异。我们提出 PALS(基于百分位数的逐层稀疏度),该方法根据激活幅值的第 99 个百分位数调整每层稀疏度,并在目标比例周围限制在 ±5% 以内。在 LLaMA-2-7B 上,50% 稀疏度时,PALS 在 WikiText-2 上的困惑度为 10.96,而均匀的 Wanda 为 12.92(9 次运行的平均值,p<0.001)。收益依赖于架构:LLaMA-3-8B 有边际提升,Mistral-7B 则没有提升。我们还发现,基于梯度的分配——看似更合理的方法——结果比随机分配还差,这表明梯度幅值并不能预测离散权重移除的影响。PALS 为剪枝流程增加的开销可以忽略不计,且无需微调。
## 1 引言
大型语言模型的参数通常达到数十亿。一个 7B 参数的模型在半精度下大约占用 13 GB,每个 token 处理数十亿次乘加运算,这使得在普通硬件上进行实时推理变得不可行。训练后剪枝提供了一种直接减少内存和计算量的方法:移除一部分权重,然后在稀疏模型上运行推理,无需从头重新训练。
最近的一次性剪枝方法已使这在 LLM 上变得实用。Wanda(Sun 等人,2024,https://arxiv.org/html/2607.07557#bib.bib8)通过每个权重的大小与其流经的平均绝对激活值的乘积(|w_ij|·mean(|a_i|))对权重进行评分,然后丢弃得分最低的部分。SparseGPT(Frantar 和 Alistarh,2023,https://arxiv.org/html/2607.07557#bib.bib7)解决了一个更复杂的问题——使用近似 Hessian 信息的逐层稀疏回归——但在实践中大多数基准测试上的困惑度与 Wanda 相当。这两种方法都已成为标准基线。
两者都有的一个共同点是它们强制采用*均匀*稀疏度:如果目标是 50%,LLaMA-2 的全部 32 层都恰好被剪枝到 50%。这与我们对 Transformer 层的了解不太相符。注意力头的重要性差异很大(Voita 等人,2019,https://arxiv.org/html/2607.07557#bib.bib9;Micheli 等人,2019,https://arxiv.org/html/2607.07557#bib.bib10)。早期层倾向于构建通用表示;中间层通常更冗余;后期层专门针对输出词汇。对所有层进行同等程度的剪枝似乎会浪费性能——事实也确实如此。
我们提出 PALS(基于百分位数的逐层稀疏度),该方法根据从一个小型校准集收集的激活统计信息调整每一层的稀疏度比例。思路很直接:计算每层激活幅值的第 99 个百分位数,归一化这些分数,然后用它们来向上或向下移动每层的稀疏度目标。具有较大激活异常值(表明重要信息流动)的层被剪枝较少;激活均匀较小的层被剪枝较多。目标周围 ±5% 的带防止任何单层被过度剪枝或过度保留。该过程几乎不增加 Wanda 流程的额外成本,因为 Wanda 已经收集了激活值。
在确定使用激活值之前,我们尝试了看似更自然的方法:使用梯度幅值来估计层的重要性。这彻底失败了。基于梯度的分配在 LLaMA-2-7B 上产生了 47 的困惑度,而*随机*分配为 24,我们的基于激活的方案为 11。我们认为梯度反映了优化动态——在无穷小扰动下损失会变化多少——而不是移除一大块权重的实际影响。但失败的规模是我们没有预料到的。
在 LLaMA-2-7B 上,50% 稀疏度时,PALS 将 WikiText-2 困惑度从 12.92 降低到 10.96,这是九个不同随机种子的独立运行的平均值(Welch's t(14)=8.1,p<0.001)。在其他架构上,情况不那么清晰。LLaMA-3-8B 有边际收益(10.45 vs. 10.48),而 Mistral-7B 完全没有收益(两者都是 6.31)。我们认为这反映了这些较新模型如何均匀地在各层之间分布计算——当所有层的重要性相似时,非均匀分配没有可以利用的空间。我们展示了涵盖百分位数选择、适应强度和边界宽度的消融研究,以及在四个基准测试上的下游评估和实际加速测量。
## 2 相关工作
### 2.1 LLM 的一次性剪枝
幅值剪枝(Han 等人,2015,https://arxiv.org/html/2607.07557#bib.bib6)——移除绝对值最小的权重——是最古老和最简单的方法,但忽略了激活模式,这限制了它在现代 LLM 上的应用。SparseGPT(Frantar 和 Alistarh,2023,https://arxiv.org/html/2607.07557#bib.bib7)通过将每层的剪枝公式化为一个稀疏重建问题,并使用近似的 Hessian 逆矩阵来选择要移除的权重以及如何调整幸存者,从而大大改进了这一点。Wanda(Sun 等人,2024,https://arxiv.org/html/2607.07557#bib.bib8)表明一个更简单的评分规则——|w|·mean(|a|),无需权重更新——在大多数设置中与 SparseGPT 相当。两种方法对每一层使用相同的稀疏度比例。PALS 保留 Wanda 的评分,但改变每层移除权重的比例。
### 2.2 结构化剪枝
另一条正交的工作线移除整个结构单元以实现硬件友好的稀疏性。LLM-Pruner(Ma 等人,2023,https://arxiv.org/html/2607.07557#bib.bib16)使用一阶泰勒展开对注意力头和 MLP 神经元进行评分和移除。SliceGPT(Ashkboos 等人,2024,https://arxiv.org/html/2607.07557#bib.bib17)将权重矩阵投影到低秩空间,并删除整行整列。Sheared LLaMA(Zhang 等人,2024,https://arxiv.org/html/2607.07557#bib.bib15)将结构化剪枝与继续预训练结合起来。这些方法比非结构化剪枝提供了更好的硬件利用率,但通常需要某种形式的微调。PALS 保持在非结构化、一次性的设置中。
### 2.3 非均匀层处理
不同层应该不同处理的想法并不新鲜。NISP(Yu 等人,2018,https://arxiv.org/html/2607.07557#bib.bib12)在视觉模型的层之间传播重要性分数,但它是为比当前 LLM 小多个数量级的网络设计的。对于大型语言模型,大多数关于非均匀处理的工作集中在深度剪枝上——移除整个 Transformer 块(Kurtic 等人,2022,https://arxiv.org/html/2607.07557#bib.bib14)——而不是调整层内稀疏度比例。据我们所知,PALS 是第一个报告通过一次性 LLM 剪枝中变化每层稀疏度获得明显收益的工作,也是第一个记录在此设置中基于梯度分配失败的工作。
### 2.4 Transformer 中的激活异常值
Dettmers 等人(Dettmers 等人,2022,https://arxiv.org/html/2607.07557#bib.bib26)表明,大型语言模型会出现激活异常值——个别特征的幅值比其他特征大 10-100 倍——集中在特定的维度和层中。这些异常值对模型质量至关重要:将它们归零会导致准确性急剧下降。我们使用第 99 个百分位数作为层重要性信号直接与此观察相关。具有更极端异常值的层可能正在处理更关键的信息,PALS 为它们分配较低的稀疏度。这也解释了为什么第 99 个百分位数作为重要性指标优于平均值:平均值平均掉了恰恰重要的异常值。
## 3 方法
给定一个具有 L 个 Transformer 层的预训练模型和一个目标稀疏度 s_target(例如,0.50 表示移除 50% 的权重),PALS 根据激活统计信息调整每层稀疏度,然后使用 Wanda 的评分独立剪枝每一层。
### 3.1 来自激活百分位数的层重要性
对于每一层 l,我们在 n 个校准 token 上收集激活值 A(l) ∈ R^(n×d),跨越 d 个隐藏维度。层重要性分数是绝对激活值的第 99 个百分位数:
I(l) = Percentile(|A(l)|, 99) (1)
第 99 个百分位数针对的是 Dettmers 等人(Dettmers 等人,2022,https://arxiv.org/html/2607.07557#bib.bib26)确定为关键的异常值激活,同时比最大值噪声小。为了使分数在各层之间可比,我们进行标准化:
Î(l) = (I(l) - μ_I) / σ_I (2)
其中 μ_I = (1/L)∑_{l=1}^{L} I(l) 且 σ_I 是原始分数的标准差。
### 3.2 带保守边界的稀疏度分配
归一化后的重要性 Î(l) 决定了每层偏离全局目标的程度:
s(l) = clip( s_target + α·Î(l), s_min, s_max ) (3)
其中 α 控制适应强度。裁剪操作强制:
s_min = s_target - 0.05, s_max = s_target + 0.05 (4)
±5% 的边界很重要。在初步实验中,更宽的边界(±20%)导致性能急剧下降,因为被严重剪枝的层造成了信息瓶颈——网络其余部分无法补偿损失的能力。保守的边界以潜在收益换取鲁棒性。
### 3.3 权重评分与剪枝
在确定 s(l) 之后,我们使用 Wanda 的标准对权重进行评分和剪枝:
score(w_ij^{(l)}) = |w_ij^{(l)}| · mean_n( |a_ni^{(l)}| ) (5)
对于每一层 l,移除按得分最低的 s(l)×100% 的权重。没有权重更新,没有微调。
### 3.4 完整流程
算法 1 总结了流程。与 Wanda 在步骤 6-9 中的评分相比,步骤 1-5 花费的时间可以忽略不计,并且激活收集与 Wanda 共享——因此唯一的开销是百分位数计算和稀疏度重新分配。
算法 1 PALS:基于激活的层自适应剪枝
输入:预训练模型 f 具有 L 层,校准数据 D,目标稀疏度 s_target,强度 α=0.05
1: 在 D 上为每一层 l 收集激活值 A(l)
2: for l=1 to L do
3: I(l) ← Percentile(|A(l)|, 99)
4: end for
5: 标准化:对所有的 l,Î(l) ← (I(l) - μ_I) / σ_I
6: for l=1 to L do
7: s(l) ← clip(s_target + α·Î(l), s_min, s_max)
8: 评分权重:score_ij = |w_ij^{(l)}| · mean_n(|a_ni^{(l)}|)
9: 移除按得分最低的 s(l)×100% 的权重
10: end for
11: 返回剪枝后的模型
## 4 实验设置
#### 模型。
我们在三种架构上进行评估:LLaMA-2-7B(67 亿参数,32 层)、LLaMA-3-8B(80 亿参数,32 层)和 Mistral-7B(73 亿参数,32 层)。这些涵盖了 LLaMA 家族的两代以及一个具有分组查询注意力和平滑窗口注意力的独立架构。
#### 评估。
困惑度在 WikiText-2(Merity 等人,2016,https://arxiv.org/html/2607.07557#bib.bib21)测试集上使用 2048 token 序列进行测量。对于下游评估,我们报告 BoolQ(Clark 等人,2019,https://arxiv.org/html/2607.07557#bib.bib24)、PIQA(Bisk 等人,2020,https://arxiv.org/html/2607.07557#bib.bib22)、HellaSwag(Zellers 等人,2019,https://arxiv.org/html/2607.07557#bib.bib23)和 MMLU 上的零样本准确率,使用 lm-evaluation-harness 框架(Gao 等人,2021,https://arxiv.org/html/2607.07557#bib.bib27)。
#### 校准。
所有需要校准数据的方法使用从 C4 中抽取的 128 个 2048 token 样本。使用 C4 而不是 WikiText-2 可以避免数据泄露到困惑度评估中。
#### 基线。
我们比较了:(1) Magnitude——移除具有最小 |w| 的权重,无需校准;(2) Wanda(Sun 等人,2024,https://arxiv.org/html/2607.07557#bib.bib8)——具有均匀每层稀疏度的激活感知评分;(3) SparseGPT(Frantar 和 Alistarh,2023,https://arxiv.org/html/2607.07557#bib.bib7)——基于 Hessian 的逐层优化;(4) PALS-Gradient——我们的分配公式,但用梯度范数 ||∇_{W^{(l)}} L||_F 替换激活百分位数。
#### 运行和随机种子。
对于主要的 LLaMA-2-7B 评估,我们使用 PALS 运行九次,Wanda 运行八次,使用不同的随机种子控制权重打结。这提供了方差估计并允许进行双样本检验。其他配置使用单次运行。
#### 实现。
所有实验使用 PyTorch 和 HuggingFace Transformers,在 NVIDIA A100 80GB GPU 上运行。PALS 使用 α=0.05 和第 99 个百分位数,边界为 ±5%。所有剪枝都是一次性的,没有微调或权重更新。
## 5 结果
### 5.1 LLaMA-2-7B 上的主要比较
表 1 展示了 LLaMA-2-7B 在 50% 非结构化稀疏度下的主要结果。
表 1:LLaMA-2-7B 在 50% 稀疏度下的 WikiText-2 困惑度。平均值 ± 标准差(N 次运行)。PALS 达到了 10.96 的困惑度,从 Wanda 的 12.92 下降——降低了 1.96 点。九次运行的标准差为 0.59,Wanda 的八次运行标准差为 0.40,因此分布几乎不重叠。Welch's t 检验给出 t(14)=8.1, p<0.001。¹
SparseGPT 为 13.45,略差于 Wanda,尽管计算上更昂贵。两种基于梯度的方法——幅值剪枝(43.05)和 PALS-Gradient(45.23)——都严重失败,我们将在第 6.5 节中再讨论。
图 1 显示了比较的可视化。
参见图注
图 1:LLaMA-2-7B 在 50% 稀疏度下的 WikiText-2 困惑度。误差线:PALS 的 ±1 标准差(N=9)。
### 5.2 跨模型结果
表 2 将评估扩展到 LLaMA-3-8B 和 Mistral-7B。
表 2:50% 稀疏度下的跨模型结果(WikiText-2 困惑度)。模式很清晰:PALS 对 LLaMA-2 帮助很大,但对另外两个模型帮助甚微。Mistral-7B 在绝对值上是最利于剪枝的模型(50% 稀疏度为 6.31)相似文章
超越逐层稀疏性中的层重要性:一种层间扰动吸收视角
本文提出了一种用于大语言模型逐层稀疏性的层间扰动吸收视角,表明不同层对剪枝扰动表现出异质性响应,并引入了一种吸收感知校正方法,通过降低困惑度和提升准确率来改进现有剪枝方法。
PALS: Power-Aware LLM Serving for Mixture-of-Experts Models
PALS是一种面向LLM服务的功耗感知运行时,将GPU功率上限视为可控旋钮,与批大小联合优化,以在满足吞吐量目标的同时最大化能效。该系统在功率约束下可将能效提升高达26.3%,并将QoS违规减少4倍至7倍。
持续LLM升级循环:一种用于从稠密到稀疏LLM的预测器门控按组稀疏训练方案
本文提出了一种用于大语言模型的从稠密到稀疏的持续训练方法,采用预测器门控的按组稀疏性实现4倍FFN稀疏度,并在Qwen2.5-8B上通过长上下文训练进行了验证。
TriSP: 三信号结构化剪枝用于大语言模型
TriSP 提出了一种三信号重要性度量,结合权重幅度、激活范数和梯度敏感性,用于大语言模型的结构化剪枝,在 LLaMA-7B 上实现了最低困惑度和高吞吐量提升。
When Compression Scores Cannot Decide: Information Boundaries for Group-Robust LLM Pruning
This paper analyzes why compression statistics for LLM pruning can be reproducible yet select suboptimal endpoints, introducing information boundaries and observation fibers to model the gap. It proposes group-resolved and model-specific mask selection methods that improve worst-group perplexity across dense LLMs and OLMoE.