像 GPT 系列这样的大语言模型 (LLM) 已经彻底改变了人工智能,在从编写代码到总结文档和生成创意文本等各种任务中展现出卓越的智能。但这种强大的能力伴随着惊人的计算成本。最大的开源模型,如 OPT‑175B 和 BLOOM‑176B,包含超过 1750 亿个参数 , 需要庞大的存储和内存容量。运行此类模型进行推理可能需要多块高端 GPU——例如,五块各带 80 GB 显存的 NVIDIA A100——这使得大多数开发者和研究人员望而却步。

我们如何才能让这些庞大的模型更容易被大众使用?

答案在于模型压缩。一种常用的策略是量化 , 它降低模型权重的精度 (例如,从 16 位数字降到 4 位值) 。另一种互补的方法是剪枝 , 它完全移除模型的部分连接,使其权重矩阵变得稀疏

然而,对巨型 LLM 进行剪枝极具挑战性: 大多数精确的剪枝方法都依赖大量的再训练来恢复性能损失,这对于万亿级的计算来说几乎不可能。虽然存在更简单的一次性剪枝技术——无需再训练即可剪枝——但它们要么难以保持可接受的精度,要么在数十亿参数模型上运行速度太慢。

这正是开创性论文 SparseGPT: Massive Language Models Can be Accurately Pruned in One‑Shot 所要解决的挑战。研究团队提出了 SparseGPT , 这是首个能够在无需微调情况下,实现对大规模语言模型进行准确且高效单次剪枝的方法。结果令人震惊: SparseGPT 可移除超过 1000 亿个参数 , 实现高达 60% 稀疏度 , 而准确率损失几乎可以忽略不计。

在本文中,我们将深入解析 SparseGPT 的核心原理,逐步了解其算法机制,并探讨它为何成为高效大规模模型部署的重要里程碑。


理解挑战: 为何剪枝在超大规模下会失效

现代神经网络通常采用逐层压缩的方式——称为逐层剪枝 。 不是一次性处理所有参数,而是逐层进行。对于某一层,其权重矩阵为 \( \mathbf{W}_{\ell} \),目标是找到一个稀疏版本,使其输出与原始层几乎完全一致。在数学上,我们希望找到一个二进制掩码 \( \mathbf{M}_{\ell} \) (0 表示删除权重,1 表示保留权重) 和更新后的权重 \( \widehat{\mathbf{W}}_{\ell} \),以最小化输出差异。

逐层剪枝的目标是找到一个掩码和更新后的权重,以最小化原始层与剪枝层输出之间的差异。

*图: * 逐层剪枝旨在移除指定权重后,尽可能精确地重建原始层的输出。

解决这个优化问题需要两个相互关联的步骤:

  1. 掩码选择: 决定要剪枝哪些权重——通常使用幅度剪枝,即移除数值最小的权重。
  2. 权重重建: 调整剩余的权重以补偿丢失的信息。

难点在于这两个步骤相互依赖: 最佳掩码取决于重建效果,反之亦然。像最优脑压缩 (OBC) 这样的复杂方法尝试将两者结合——逐个删除权重并精确重建剩余部分——但其可扩展性极差。对于 OPT‑175B 这样的模型,OBC 需要数周甚至数月。

即使是更快的方法,如 AdaPrune , 剪一个十亿参数模型也需数小时,其运行时间与模型规模线性增长。若扩展到 1750 亿参数,在单块 GPU 上将需要数周

SparseGPT 通过一种全新的算法突破了这些限制,大幅加速权重重建,使高精度的一次性剪枝在规模比以往大 100 倍的模型上成为可能。


核心创新: SparseGPT 的工作原理

SparseGPT 将逐层剪枝问题重新表述为近似的稀疏回归问题,并引入创新机制,使之可在超大矩阵上高效运行。

1. 理想但不切实际的方案

若固定剪枝掩码 \( \mathbf{M} \),剩余权重的最优更新可通过对权重矩阵每一行 \( \mathbf{w}^i \) 进行回归来计算:

单行中未剪枝权重精确重建的公式。这需要求逆由输入数据导出的矩阵。

*图: * 精确重建需为每一行求逆一个不同的 Hessian 矩阵——对大模型而言计算量极其巨大。

其中,\( \mathbf{X}_{\mathbf{M}_i}\mathbf{X}_{\mathbf{M}_i}^{\top} \) 是捕获二阶曲率信息的 Hessian 矩阵 。 问题在于每行都有不同的剪枝掩码 \( \mathbf{M}_i \),意味着每行都需要单独进行 Hessian 求逆。在隐藏维度 \( d_{\text{hidden}} \) 超过 10,000 的大型 Transformer 层中,这就涉及上万次尺寸为 \(10{,}000\times10{,}000\) 的矩阵求逆——完全不可行。

逐行 Hessian 挑战示意图。每一行都有不同的剪枝掩码 (白色表示被剪枝的权重) ,需分别进行昂贵的求逆运算。

*图: * 每一行独特的剪枝模式导致 Hessian 信息无法重用,使可扩展性难以实现。

2. 借鉴迭代结构: 最优脑外科医生 (OBS)

为绕开瓶颈,作者借鉴了最优脑外科医生 (OBS) 框架。OBS 描述了在剪除单个权重 \( w_m \) 时,如何利用预先计算的逆 Hessian 信息最优地更新剩余权重。OBS 更新可提供精确的补偿向量 \( \boldsymbol{\delta}_m \) 及对应误差 \( \boldsymbol{\varepsilon}_m \):

最优脑外科医生 (OBS) 移除单个权重的更新规则。更新依赖权重值与逆 Hessian 项。

*图: * OBS 规则说明了当某个参数移除后,剩余权重如何调整。

原则上,通过逐次应用 OBS——一次剪掉一个权重——可重建完美的最优解。但对于数十亿权重的模型而言,迭代过程仍然太慢。

3. SparseGPT 的突破: Hessian 同步

SparseGPT 引入了强有力的简化。算法不在每次剪枝后更新所有权重,而是仅更新被剪列右侧的权重,同时冻结左侧权重。

这种逐列推进意味着在每个更新步骤中,所有行共享相同的“激活”权重子集。结果是: 相同的逆 Hessian 信息可以被所有行重用

SparseGPT 算法可视化。它逐列处理矩阵。当某个权重被剪 (深蓝色) 时,仅更新后续列,而冻结的权重保持不变。共享的逆 Hessian (橙色) 在各行间被重用。

*图: * SparseGPT 逐列处理,仅更新未冻结权重,实现逆 Hessian 块的高效重用。

当从列 \( j \) 移动到 \( j+1 \) 时,算法只需一次复杂度为 \( O(d_{\text{col}}^2) \) 的轻量级逆 Hessian 更新,比重新计算快得多。这种Hessian 同步将原本 \( O(d_{\text{hidden}}^4) \) 的计算复杂度降至 \( O(d_{\text{hidden}}^3) \),实现数量级提升。

实践中,SparseGPT 可在单块 A100 GPU 上于五小时内完成对 175 B 参数模型的剪枝——这在过去难以想象。


超越幅度剪枝: 自适应掩码选择

SparseGPT 不仅高效,还能智能选择要移除的权重。

与传统简单丢弃最小权重不同,它通过 OBS 误差项 \( \boldsymbol{\varepsilon}_m \) 估计每个权重的剪枝影响,该项反映剩余权重的补偿能力。这样可识别出那些影响较小但幅度不一定小的权重。

为了保持可计算性,SparseGPT 按分块方式执行选择——例如每次评估 128 列。这种“迭代分块”使得跨列的自适应、非均匀稀疏度分布成为可能,并保持并行效率。对模型更敏感的列可保持较密集,而冗余列则更激进地剪枝。


结构化稀疏与联合量化

SparseGPT 自然可扩展至半结构化稀疏模式,如 NVIDIA 的 2:4 格式——每四个连续权重中恰有两个为零。算法只需在这些固定块内应用基于 OBS 的选择标准。

更令人惊讶的是,SparseGPT 的内部机制与领先的训练后量化方法 GPTQ 十分相似。由于两者都依赖逆 Hessian 更新,它们可以在单次处理中同时实现剪枝量化。

这一联合流程生成的压缩模型既具稀疏性又具低精度,无需额外计算开销——为完全优化的 LLM 奠定了基础。


实验结果: SparseGPT 的实际表现

研究团队在 OPT 与 BLOOM 模型族 (从 1.25 亿到 176 B 参数) 上全面验证了 SparseGPT,其结果重新定义了大规模压缩的可能性。

1. 在高稀疏度下保持卓越的准确率

在 OPT-175B 上对比 SparseGPT 与幅度剪枝。SparseGPT 在 60% 稀疏度下仍保持接近基线的困惑度,而幅度剪枝很早就失效。

*图 1: * SparseGPT 在高达 60% 稀疏度下仍保持近基线准确率——比幅度剪枝高出六倍以上。

困惑度是衡量语言模型质量的标准指标。对于幅度剪枝的模型,当稀疏度超过 10–30% 时,困惑度急剧上升。相比之下,SparseGPT 在 60% 稀疏度下与密集模型几乎无差异。换言之, 可移除 1000 亿权重而不降低文本建模质量

2. 模型越大,越容易剪枝

不同稀疏模式下困惑度与模型大小的关系。随着模型增大 (右侧) ,所有稀疏曲线收敛至密集基线,显示越大的模型越易压缩。

*图 2: * 随模型规模增长,密集模型与稀疏模型的性能差距逐渐消失。

一个惊人的发现是: 对于相同稀疏度,模型越大精度损失越小。从 1.25 亿到 175 B 参数的 OPT 模型中,准确率差距明显缩小,在最大模型上几乎消失。

这表明随着模型扩大, 冗余性增长快于复杂度 , 令庞大的 LLM 出乎意料地容易压缩——这是高效扩展的积极信号。

3. 下游任务零样本评估

SparseGPT 剪枝后的模型不仅保持语言建模能力,还保留下游任务表现。

OPT-175B 在多任务上的零样本准确率。幅度剪枝几乎失效,而 SparseGPT 即使在结构化稀疏下也表现与密集模型相当。

*图 3: * 尽管进行了大量剪枝,SparseGPT 在多个基准测试中仍保持高零样本准确率。

在 Lambada、PIQA、ARC 和 StoryCloze 等基准上,幅度剪枝模型表现近乎随机,而 SparseGPT 的 50% 稀疏和 2:4 结构化版本与密集模型的性能差距不到 1%。

4. 结合稀疏与量化

当研究团队将 50% 稀疏度与 4 位量化结合时,所得模型的内存占用与密集 3 位量化模型相当,但获得了更高准确率

比较 50% 稀疏 + 4 位联合模型与等效 3 位量化模型。对于大模型,混合方法始终优于单纯低位量化。

*图 4: * 在相同内存占用下,联合方法 (50% 稀疏 + 4 位) 性能超越传统 3 位量化。

这种剪枝与量化的协同效应表明,混合压缩甚至能胜过专门的低位方案。


意义与展望

SparseGPT 提供了明确的实证: 巨型 LLM 可被高效、一击式精确剪枝

关键结论:

  1. 可扩展的一次性剪枝可行。 通过 Hessian 共享和近似更新,SparseGPT 将剪枝规模从数百万扩展至数千亿参数。
  2. 过参数化使压缩成为可能。 成功剪枝更大模型表明现代架构中存在深度冗余。
  3. 迈向低成本推理。 将有效权重减少 50–60%,为更快、更廉价的部署铺平道路——尤其在 CPU 或稀疏硬件上。

更深远的意义在于: 密集 LLM 内部蕴藏着性能强大的稀疏子网络,可直接挖掘,无需额外训练。SparseGPT 高效识别这些子网络,加速高性能语言模型的普及。

通过证明剪枝与量化可无缝结合,SparseGPT 为在普通硬件上运行世界级模型同时保留近乎原生性能提供了切实路径。