什么是 SparseGPT?一种面向大规模语言模型的一次性剪枝方法
SparseGPT 是 Elias Frantar 与 Dan Alistarh 在 2023 年论文中提出的一种剪枝方法,用于在无需重新训练的情况下,把 GPT 系列大规模语言模型一次性剪到至少 50% 稀疏度。该论文称,它可在 4.5 小时内处理 OPT-175B 与 BLOOM-176B 这类最大规模的开源模型,并支持 2:4、4:8 半结构化模式,且可与权重量化配合使用。
SparseGPT 是一种面向大规模生成式预训练 Transformer(generative pretrained transformer,GPT)系列语言模型的一次性剪枝(one-shot pruning)方法,由 Elias Frantar 与 Dan Alistarh 在论文《SparseGPT: Massive Language Models Can Be Accurately Pruned in One-Shot》中提出。按该论文的说法,它要解决的问题是:在不对模型做任何重新训练的前提下,一次性把参数量达千亿级的语言模型剪掉相当比例的权重,同时把精度损失控制在很小的范围内。
为什么重要
剪枝本身不是新想法。传统做法通常依赖「训练—剪枝—再训练」的循环:先按某种重要性准则去掉一部分权重,再用训练数据把模型精度补回来,往往还要反复多轮。这套流程对中小模型可行,但放到参数量达到百亿、千亿级别的语言模型上,代价会迅速变得难以承受——再训练一轮就需要可观的算力与数据,多轮迭代更不现实。
另一条路是训练后剪枝,即只利用少量校准数据、不更新权重地一次性完成剪枝。问题在于,模型越大,层与层、权重与权重之间的相互依赖越复杂,简单按幅度大小删权重会带来明显的精度崩塌。因此在 SparseGPT 出现之前,把超大规模 GPT 模型一次性剪到高稀疏度而不重训练,并不是一件被证明可行的事。该论文的贡献正在于给出了一个在超大模型上既快又准的一次性剪枝方案,使「剪枝」从需要重训练的重型流程,变成可以在推理部署前作为后处理步骤执行的操作。
工作机制
论文对方法的描述集中在「如何在大规模模型上高效且准确地求解剪枝问题」这一点上。可以按以下几个要点理解其核心做法:
- 逐层处理,把全局问题拆小。不把整个模型的剪枝当成一个整体优化问题,而是按层推进,使每一层的剪枝可以在可控的计算量内完成。这是它能够扩展到千亿参数模型的前提。
- 利用校准数据估计重构误差。剪枝的目标不是单纯保留绝对值大的权重,而是让剪枝后该层的输出尽量接近剪枝前的输出;为此需要一小批校准样本,用来估计输入的二阶统计信息,从而判断哪些权重被删掉后对输出的影响最小。
- 剪枝与权重补偿同步进行。在选定要删除的权重之后,方法会对保留下来的权重做修正,以抵消删除带来的输出偏差。这一步是「一次性、不重训练」仍能保持精度的关键,也是它与朴素幅度剪枝的主要区别。
- 支持半结构化稀疏模式。论文称该方法可推广到 2:4 与 4:8 这类半结构化(semi-structured)模式,而不局限于无结构稀疏;这类模式与部分硬件加速器的稀疏计算能力相对应。
- 可与权重量化组合。论文指出 SparseGPT 与权重量化(weight quantization)方法兼容,意味着稀疏化与低比特表示可以叠加使用,而不是二选一。
需要强调的是,上述机制描述来自论文本身的表述;论文给出的具体数值结论(例如稀疏度、耗时、困惑度变化)属于该论文的实验结果,不应被当作独立复现过的行业共识。
典型例子
论文中给出的真实对象与数据包括:
- OPT-175B 与 BLOOM-176B。论文称 SparseGPT 可以在这两个当时最大的开源模型上执行,单次运行耗时不到 4.5 小时。
- 50% 与 60% 稀疏度。论文称这些模型可被一次性剪到至少 50% 稀疏度而无需重训练,精度损失极小;在 60% 无结构稀疏度下,困惑度(perplexity)的上升可以忽略,对应超过 1000 亿个权重在推理时可以被忽略。
- 半结构化与量化组合场景。论文称方法可推广到 2:4 和 4:8 模式,并与权重量化兼容,这为在支持结构化稀疏的推理硬件上部署提供了路径。
这些数字均出自论文摘要与正文的自述,属于原作者报告的结果,而非第三方独立评测。
边界与常见误解
第一,SparseGPT 是剪枝方法,不是推理引擎,也不是量化方法本身。它产出的是稀疏化的权重,实际加速效果取决于推理框架与硬件是否真正利用稀疏性;无结构稀疏在通用硬件上未必直接转化为速度提升,这也是论文同时讨论 2:4、4:8 半结构化模式的原因。
第二,「一次性、不重训练」不等于「无代价」。方法仍需要一小批校准数据来估计层输入统计量,校准数据的分布与目标任务是否匹配会影响剪枝质量;同时,剪枝与权重补偿本身需要前向计算,论文报告的 4.5 小时是特定模型规模与实现下的耗时,不能外推为任意模型的固定成本。
第三,容易把它误解为「任意稀疏度都无损」。论文的主张集中在 50% 至 60% 这一区间,且以困惑度等指标衡量;更高稀疏度、或对下游任务精度更敏感的场景,论文并未给出同等强度的保证。
第四,容易把论文结论当成普遍共识。SparseGPT 的效果数据由论文作者报告,涉及具体模型、具体稀疏模式与具体评测指标;在不同模型家族、不同训练数据、不同评测任务上是否同样成立,需要独立验证,不能直接引用为通用结论。
第五,剪枝与量化可以组合,但组合后的误差是叠加的,实际部署时需要重新评估精度与压缩率的权衡,而不能简单套用单一方法的结论。