Zubnet AI学习Wiki › 剪枝
训练

剪枝

别名:模型剪枝、权重剪枝
从已训练的模型中移除不必要的参数(权重、神经元或整层)以使其更小更快,同时不显著损失质量。就像修剪一棵树:砍掉贡献最小的树枝,树依然健康。结构化剪枝移除整个神经元或注意力头。非结构化剪枝将单个权重归零。

为什么重要

剪枝是与量化和蒸馏并列的模型压缩技术。核心洞察是:大多数神经网络都是过参数化的——许多权重对输出贡献很小。“彩票假说”表明,在大型网络中存在一个更小的子网络,能够匹配原始网络的性能。剪枝就是找到并保留那个子网络。

深度解析

非结构化剪枝根据幅度将单个权重设为零(最小的权重贡献最少)。这会产生稀疏权重矩阵。挑战在于:标准硬件无法高效处理稀疏计算,因此50%剪枝的模型在GPU上并不会快2倍——加速需要专门的稀疏计算库或硬件。这限制了非结构化剪枝的实际收益。

结构化剪枝

结构化剪枝移除整个神经元、注意力头或层。这产生了一个更小的密集模型,可以在标准硬件上更快运行,无需稀疏计算支持。研究表明许多注意力头是冗余的——在Transformer中移除20–40%的注意力头通常对性能影响很小。某些头始终比其他头贡献更大,重要的头可以通过基于梯度的重要性分数来识别。

剪枝 + 量化 + 蒸馏

三种压缩技术组合效果很好:剪去冗余参数,将剩余权重量化到更低精度,并可选地从原始模型蒸馏以恢复质量损失。这个流程可以将模型缩小到原始大小的10–20%,同时保留95%+的能力。顺序很重要:通常先剪枝,然后量化已剪枝的模型,再微调以恢复质量。

相关概念

← 所有术语
← 前馈网络 参数 →