像 LLaMA 和 GPT-4 这样的大语言模型 (LLM) 已经彻底改变了自然语言处理领域,但其强大的能力也伴随着高昂的代价。这些模型拥有数十亿个参数,导致它们在运行时计算成本高、内存消耗大,并且对环境要求苛刻。这引发了一场竞赛,旨在让这些模型变得更小、更快、更高效,同时又不牺牲其卓越的性能。

模型压缩的两种常见技术是 量化 (使用更少的比特来表示数值) 和 网络剪枝 (完全移除权重) 。虽然量化在 LLM 领域发展迅速,但剪枝技术却相对滞后。为什么会这样?原因在于大多数传统剪枝方法需要高昂的重新训练代价来恢复精度损失,而对于拥有数十亿参数的模型,这几乎不可行。即使是最简单的方式——移除数值最小的权重 (即所谓的 量级剪枝) ——在 LLM 上也会彻底失败。这说明大语言模型对这种简化方式极为敏感。

此时,来自卡内基梅隆大学、Meta AI 和博世 AI 的研究者提出了一种新方法: Wanda (Pruning by Weights and Activations,即根据权重与激活值剪枝) 。它非常简单,无需重新训练或更新权重,却依旧高效。Wanda 挑战了一个长期存在的假设——剪枝决策不应仅取决于权重大小。通过将输入激活值一并考虑,它能更准确地评估权重的重要性,从而实现高效而强大的稀疏化 LLM。

本文将探讨 Wanda 的工作机制、为何它能在他人失败之处取得成功,以及它揭示了大语言模型内部的结构秘密。


背景: 剪枝难题与 LLM 的独特线索

在剖析 Wanda 之前,让我们先回顾两个启发其设计的关键理念。

量级剪枝: 经典基准方法

量级剪枝是最直观的稀疏化方式。原理简单: 权重的绝对值越小,对模型输出的影响就越弱。操作步骤是设定稀疏目标 (例如 50%) ,按权重绝对值排序,移除最小的一半。

这种方法长期是强有力的基准,并通常伴随微调以帮助剩余权重重新调整。然而,当应用于 LLM 时,量级剪枝效果会彻底崩溃。通过此方法构建的一个 50% 稀疏的 LLaMA 模型表现极差,表明权重的原始大小并非决定性因素。

线索: 突现的大量级特征

那么,还有哪些因素决定权重的重要性?线索来自超大型 Transformer 模型的一种现象——突现的大量级特征 。 FAIR 的研究者发现,当模型规模达到约 60 亿参数时,一部分特征维度的激活值会比平均值高达 100 倍

这些“异常”特征并非噪声,而是关键组成部分。如果屏蔽它们,模型性能会急剧下降。这解释了标准量化方法常常失败的原因: 无法准确表示这些极端值。但更深层的意义在于——若输入特征激活非常强烈,那么与其相连的权重可能同样至关重要,无论自身大小


Wanda 的核心: 利用激活值评估权重

基于此洞见,作者提出了 Wanda——一个兼具简洁性与数据敏感性的方案。它在剪枝时同时考虑 权重 与其对应的 输入激活值 , 引入了更聪明的评估指标与更局部的比较策略。

让我们通过一个简单示例来说明。

假设一个神经元计算:

\[ y = w_1x_1 + w_2x_2 \]

量级剪枝只看权重: 如果 \(|w_1| < |w_2|\),则剪掉 \(w_1\)。 但若 \(x_1\) 是一个远大于 \(x_2\) 的异常特征,则 \(|w_1x_1|\) 可能远超 \(|w_2x_2|\),意味着 \(w_1\) 对输出贡献更大,剪掉它便是错误决策。

这揭示了量级剪枝的缺陷: 忽略了数据尺度的影响。Wanda 同时利用 权重大小激活强度 来评估每个连接的真正重要性。


1. Wanda 度量标准: 权重 × 激活值

对于连接输入神经元 j 与输出神经元 i 的权重 \(\mathbf{W}_{ij}\),Wanda 定义其重要性得分为:

\[ \mathbf{S}_{ij} = |\mathbf{W}_{ij}| \cdot \|\mathbf{X}_j\|_2 \]

Wanda 剪枝度量标准的数学公式: S_ij = |W_ij| * ||X_j||_2。

每个权重的重要性得分通过将其绝对值与对应输入激活值的 L2 范数相乘获得。

拆解如下:

  • \(|\mathbf{W}_{ij}|\): 权重的绝对值。
  • \(\|\mathbf{X}_j\|_2\): 第 j 个输入特征的激活 L2 范数,在一个小的校准批次 (例如来自 C4 数据集的 128 个序列) 上计算。

两者乘积即可得权重的真实影响力。如果某输入维度频繁产生高激活值,则其相关联的权重即便很小,也能获得高重要性分数。

这使 Wanda 尤其稳健: 仅需极少的校准样本,即可估算范数,无需重新训练或访问原始数据。


2. 逐输出剪枝: 局部权重比较

获得得分后,就要决定删除哪些权重。 多数方法在整个层范围内全局排名 (逐层剪枝) ,而 Wanda 则进行 逐输出神经元 的局部比较。

对于每个输出神经元,Wanda 独立剪枝其输入权重——例如移除得分最低的 50%。

量级剪枝与 Wanda 对比图。量级剪枝跨层排序,而 Wanda 按输出行分组并在剪枝前乘以激活范数。

Wanda 逐输出神经元剪枝,在排序前结合输入激活范数,得到更平衡、更有效的稀疏结构。

令人惊讶的是,这种局部规则在 LLM 上效果显著。保持输出层连接的均衡有助于结构稳定,这对模型性能至关重要。值得注意的是,该优势未在视觉模型中体现,凸显了其特有的 LLM 属性。


Wanda 流程: 单次通过算法

完整的 Wanda 剪枝流程非常简单:

  1. 收集激活值: 对小规模校准批执行前向传播,提取各层输入激活值。
  2. 计算范数: 为每个输入维度计算 L2 范数,形成特征尺度向量。
  3. 权重评分: 计算 Wanda 得分 \(|W_{ij}| \cdot \|\mathbf{X}_j\|_2\)。
  4. 逐输出剪枝: 在权重矩阵的每一行中,将最低得分的权重置零,直到达到目标稀疏度。

无需梯度,无迭代更新。剪枝后模型即可直接使用。


理论关联: 简化的二阶剪枝

Wanda 的简洁背后蕴含着对复杂二阶方法的理论近似。例如, SparseGPT 通过海森矩阵 (二阶导) 求解逐层重建问题,其度量依赖海森矩阵的逆:

SparseGPT 剪枝度量标准公式。

计算该逆矩阵极度耗时。 作者证明,在假设海森矩阵为对角且不加正则项 (\(\lambda = 0\)) 时,SparseGPT 度量可简化为 Wanda 度量的 平方:

在特定假设下,SparseGPT 度量标准简化为 Wanda 度量标准的推导过程。

在温和假设下,耗费巨大的 SparseGPT 度量可化为 Wanda 的简单乘积形式,为二阶剪枝提供实用近似。

此结果为 Wanda 提供了坚实理论基础: 在保留二阶信息核心的同时显著降低计算开销。

剪枝方法比较总结如下:

对比量级剪枝、SparseGPT 和 Wanda 的表格: 权重更新、校准数据、剪枝度量和复杂度。

Wanda 将理论优雅与实践高效相结合——以极小时间代价实现近似效果。


实验与结果

研究者通过 LLaMA 与 LLaMA‑2 模型对 Wanda 进行广泛评测,并与量级剪枝和 SparseGPT 比较。

Zero‑Shot 准确率

在七个标准 zero‑shot 任务上,Wanda 显著超越量级剪枝,且与 SparseGPT 相当——完全无需权重更新。

表格展示不同剪枝方法下 LLaMA 与 LLaMA‑2 模型的平均 zero‑shot 准确率。Wanda 表现接近 SparseGPT。

Wanda 的性能始终接近或等同于 SparseGPT,尽管无需权重更新。

亮点结果: 在 LLaMA‑65B 与 LLaMA‑2‑70B 上实现 50% 稀疏度时,Wanda 表现几乎与密集模型持平。这暗示大型 LLM 内部存在可以直接使用的 精确稀疏子网络


语言模型困惑度

困惑度反映预测能力 (越低越好) 。在 WikiText 上,Wanda 成绩出色。

表格展示剪枝后的 LLaMA 与 LLaMA‑2 模型在 WikiText 上的困惑度。Wanda 接近 SparseGPT,优于量级剪枝。

Wanda 几乎与 SparseGPT 持平,且远胜量级剪枝。

例如,量级剪枝使 LLaMA‑7B 困惑度达 17.29,而 Wanda 为 7.26——接近 SparseGPT 的 7.22,更接近密集模型 5.68。


速度与效率

Wanda 不仅高效,而且极快。

计算剪枝度量所需时间比 SparseGPT 低几个数量级。

比较 SparseGPT 与 Wanda 在不同模型规模上计算剪枝度量所需时间的表格。

Wanda 剪枝速度是 SparseGPT 的数百倍——对超大模型尤为关键。

SparseGPT 处理 65B 模型需 1350 秒 (约 22 分钟) ,而 Wanda 仅需 5.6 秒 , 实现 240× 加速

结构化稀疏 (如 NVIDIA 2:4 模式) 还能进一步提升推理速度。使用 Wanda 生成的 2:4 掩码,可使矩阵乘法约 1.6× 加速。

表格展示 LLaMA‑65B 在 2:4 稀疏结构下矩阵乘法推理加速效果。

Wanda 允许利用结构化稀疏直接获得硬件加速收益。


深入分析: 消融实验与洞见

为探究 Wanda 的有效机制,作者进行了多项消融实验。

微调可提升稀疏模型性能

首先测试微调是否能恢复剪枝后模型性能。即使轻量级方案 (如 LoRA) 也带来显著提升。

表格显示 LoRA 与全量微调均显著恢复 Wanda 剪枝模型性能。

LoRA 与全量微调几乎消除了 Wanda 剪枝模型与原始密集模型之间的性能差距。

以 LoRA 为例,结构化 2:4 稀疏的 LLaMA‑7B 准确率由 48.5% 提升至 54.5%;全量微调则将非结构化 50% 稀疏模型提高至 58.1%,接近原模型的 59.9%。


哪个组件更关键?

究竟是 Wanda 的基于激活的度量,还是其逐输出剪枝规则更重要?作者系统测试了不同组合。

消融实验显示结合 Wanda 度量与逐输出分组可获得最佳结果。

同时使用 Wanda 的度量与逐输出分组表现最佳。

结果表明两者均不可或缺,组合使用可达到最优低困惑度。


校准数据的稳健性

SparseGPT 的 Hessian 度量需大量校准样本,而 Wanda 的范数度量即使样本极少也能稳定。

折线图展示 SparseGPT 与 Wanda 困惑度随校准样本数量变化。

Wanda 在极少样本条件下仍保持稳定,使其在数据稀缺场景中尤具优势。

此稳健性进一步体现了 Wanda 的实际可用性。


权重更新: 是否必要?

SparseGPT 需迭代更新权重以修正被剪连接,Wanda 完全跳过这一步——会有影响吗?

表格展示添加权重更新对量级剪枝与 Wanda 的影响。

添加权重更新能显著改善量级剪枝,但对 Wanda 几乎无效——其模型本身已可直接使用。

对量级剪枝而言,权重更新帮助明显;对 Wanda,则基本无益,说明 Wanda 已找到预训练模型中的强大稀疏子网络。


结论: 简约之美

Wanda 证明了在 LLM 剪枝中,聪明的简约胜于复杂设计。通过引入激活值量级并采用逐输出剪枝策略,它能高效捕捉权重重要性,运行稳定、效果优异。

关键要点:

  1. 激活值至关重要: 异常特征使得考虑激活大小成为大型模型不可或缺的因素。
  2. 结构均衡关键: 逐输出剪枝保持层内平衡,对模型稳定性至关重要。
  3. 稀疏子网络已存在: Wanda 无需更新即可优异表现,说明预训练 LLM 内部已含可直接使用的稀疏架构。

Wanda 快速、高效、理论扎实,为今后 LLM 剪枝提供实用基准,并开启对大规模稀疏性与效率的进一步探索。

在追求更快、更轻的 AI 竞赛中,Wanda 提醒我们: 最聪明的方案,往往最简单。